Linux Virtualization Adding Storage to Guests

From NovaOrdis Knowledge Base
Revision as of 03:13, 7 December 2020 by Ovidiu (talk | contribs) (→‎Internal)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

External

Internal

Add a Storage Volume as Block Device to Guest

Provision the Storage Volume

Create the storage volume with:

   virsh vol-create-as --pool <pool-name> --name <volume-name> --capacity <capacity> --format <fomat>

Shut Down the Guest

   virsh shutdown <guest-name>

Note that is also possible to add the device while the guest is running, see virsh man page for more details.

Configure the Guest to Mount the Storage Volume at Boot

With virsh attach-disk

Use virsh attach-disk as shown in the example, by specifying the file-based storage volume path, as shown by the virsh vol-list command, and the device name under which the disk is exposed to guest, typically "vdX", where X is "a", "b", etc:

Attaching a File-Based Storage Volume with virsh attach-disk

Edit Guest Configuration

Alternatively, the guest configuration can be edited manually with virsh edit and the following sequence added after the last declared <disk>. Adjust accordingly the driver type, the source file and the target dev:

<disk type='file' device='disk'>
   <driver name='qemu' type='raw'/>
   <source file='/main-storage-pool/test.raw'/>
   <target dev='vdc' bus='virtio'/>
</disk>

Start the Guest

   virsh start <guest-name>

Upon startup, the new disk should be available as /dev/vdX.

lsblk

Partition the New Disk

Optionally, if you want to break the block device into several smaller parts, partition the new disk with:

fdisk /dev/vdX

More details about fdisk are available here:

fdisk

Build a File System

Create Filesystems

Mount at Boot

/etc/fstab