Linux Virtualization Adding Storage to Guests
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:
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: