11.2.2.9. Creación y asignación de volúmenes de almacenamiento mediante la CLI
Para obtener una imagen de disco y adjuntarla a una máquina virtual (VM) como disco virtual, cree un volumen de almacenamiento y asigne su configuración XML a la VM.
Requisitos previos
Hay un pool de almacenamiento con espacio no asignado en el host. Para verificarlo, liste los pools de almacenamiento en el host:
virsh pool-list --details
# virsh pool-list --details Name State Autostart Persistent Capacity Allocation Available -------------------------------------------------------------------------------------------- default running yes yes 48.97 GiB 36.34 GiB 12.63 GiB Downloads running yes yes 175.92 GiB 121.20 GiB 54.72 GiB VM-disks running yes yes 175.92 GiB 121.20 GiB 54.72 GiB
Copy to Clipboard Copied!
Procedimiento
Crea un volumen de almacenamiento utilizando el comando
virsh vol-create-as
. Por ejemplo, para crear un volumen qcow2 de 20 GB basado en el pool de almacenamientoguest-images-fs
:virsh vol-create-as --pool guest-images-fs --name vm-disk1 --capacity 20 --format qcow2
# virsh vol-create-as --pool guest-images-fs --name vm-disk1 --capacity 20 --format qcow2
Copy to Clipboard Copied! Important: Algunos tipos de pool de almacenamiento no soportan el comando
virsh vol-create-as
y en su lugar requieren procesos específicos para crear volúmenes de almacenamiento:-
GlusterFS-based - Utilice el comando
qemu-img
para crear volúmenes de almacenamiento. - iSCSI-based - Prepare los LUNs iSCSI por adelantado en el servidor iSCSI.
-
Multipath-based - Utilice el comando
multipathd
para preparar o gestionar el multipath. - vHBA-based - Prepare la tarjeta de canal de fibra por adelantado.
-
GlusterFS-based - Utilice el comando
Cree un archivo XML y añada las siguientes líneas en él. Este archivo se utilizará para añadir el volumen de almacenamiento como un disco a una VM.
<disk type='volume' device='disk'> <driver name='qemu' type='qcow2'/> <source pool='guest-images-fs' volume='vm-disk1'/> <target dev='hdk' bus='ide'/> </disk>
<disk type='volume' device='disk'> <driver name='qemu' type='qcow2'/> <source pool='guest-images-fs' volume='vm-disk1'/> <target dev='hdk' bus='ide'/> </disk>
Copy to Clipboard Copied! Este ejemplo especifica un disco virtual que utiliza el volumen
vm-disk1
, creado en el paso anterior, y configura el volumen como discohdk
en un buside
. Modifique los parámetros respectivos según sea apropiado para su entorno.Important: Con determinados tipos de pool de almacenamiento, debe utilizar diferentes formatos XML para describir un disco de volumen de almacenamiento.
Para piscinas GlusterFS-based:
<disk type='network' device='disk'> <driver name='qemu' type='raw'/> <source protocol='gluster' name='Volume1/Image'> <host name='example.org' port='6000'/> </source> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </disk>
<disk type='network' device='disk'> <driver name='qemu' type='raw'/> <source protocol='gluster' name='Volume1/Image'> <host name='example.org' port='6000'/> </source> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </disk>
Copy to Clipboard Copied! Para piscinas multipath-based:
<disk type='block' device='disk'> <driver name='qemu' type='raw'/> <source dev='/dev/mapper/mpatha' /> <target dev='sda' bus='scsi'/> </disk>
<disk type='block' device='disk'> <driver name='qemu' type='raw'/> <source dev='/dev/mapper/mpatha' /> <target dev='sda' bus='scsi'/> </disk>
Copy to Clipboard Copied! Para piscinas RBD-based storage:
<disk type='network' device='disk'> <driver name='qemu' type='raw'/> <source protocol='rbd' name='pool/image'> <host name='mon1.example.org' port='6321'/> </source> <target dev='vdc' bus='virtio'/> </disk>
<disk type='network' device='disk'> <driver name='qemu' type='raw'/> <source protocol='rbd' name='pool/image'> <host name='mon1.example.org' port='6321'/> </source> <target dev='vdc' bus='virtio'/> </disk>
Copy to Clipboard Copied!
Utilice el archivo XML para asignar el volumen de almacenamiento como disco a una VM. Por ejemplo, para asignar un disco definido en
~/vm-disk1.xml
a la VMtestguest1
:attach-device --config testguest1 ~/vm-disk1.xml
# attach-device --config testguest1 ~/vm-disk1.xml
Copy to Clipboard Copied!
Verificación
- En el sistema operativo invitado de la VM, confirme que la imagen de disco ha quedado disponible como un disco sin formatear y sin asignar.