15.5. Gestion des volumes de stockage des machines virtuelles à l'aide de la CLI
Vous pouvez utiliser la CLI pour gérer les aspects suivants de vos volumes de stockage afin d'affecter du stockage à vos machines virtuelles (VM) :
15.5.1. Visualisation des informations sur les volumes de stockage à l'aide de l'interface de ligne de commande
En utilisant la ligne de commande, vous pouvez afficher une liste de tous les pools de stockage disponibles sur votre hôte, ainsi que des détails sur un pool de stockage spécifique
Procédure
La commande
virsh vol-list
permet de répertorier les volumes de stockage d'un pool de stockage donné.# virsh vol-list --pool RHEL-Storage-Pool --details Name Path Type Capacity Allocation --------------------------------------------------------------------------------------------- .bash_history /home/VirtualMachines/.bash_history file 18.70 KiB 20.00 KiB .bash_logout /home/VirtualMachines/.bash_logout file 18.00 B 4.00 KiB .bash_profile /home/VirtualMachines/.bash_profile file 193.00 B 4.00 KiB .bashrc /home/VirtualMachines/.bashrc file 1.29 KiB 4.00 KiB .git-prompt.sh /home/VirtualMachines/.git-prompt.sh file 15.84 KiB 16.00 KiB .gitconfig /home/VirtualMachines/.gitconfig file 167.00 B 4.00 KiB RHEL_Volume.qcow2 /home/VirtualMachines/RHEL8_Volume.qcow2 file 60.00 GiB 13.93 GiB
La commande
virsh vol-info
permet de répertorier les volumes de stockage d'un pool de stockage donné.# virsh vol-info --pool RHEL-Storage-Pool --vol RHEL_Volume.qcow2 Name: RHEL_Volume.qcow2 Type: file Capacity: 60.00 GiB Allocation: 13.93 GiB
15.5.2. Création et affectation de volumes de stockage à l'aide de la CLI
Pour obtenir une image de disque et l'attacher à une machine virtuelle (VM) en tant que disque virtuel, créez un volume de stockage et attribuez sa configuration XML à la VM.
Conditions préalables
Un pool de stockage avec de l'espace non alloué est présent sur l'hôte.
Pour vérifier, dressez la liste des pools de stockage sur l'hôte :
# 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
- Si vous n'avez pas de pool de stockage existant, créez-en un. Pour plus d'informations, voir Gestion du stockage pour les machines virtuelles.
Procédure
Créez un volume de stockage à l'aide de la commande
virsh vol-create-as
. Par exemple, pour créer un volume qcow2 de 20 Go basé sur le pool de stockageguest-images-fs
:# virsh vol-create-as --pool guest-images-fs --name vm-disk1 --capacity 20 --format qcow2
Important: Certains types de pools de stockage ne prennent pas en charge la commande
virsh vol-create-as
et nécessitent des processus spécifiques pour créer des volumes de stockage :- iSCSI-based - Préparez les LUN iSCSI à l'avance sur le serveur iSCSI.
-
Multipath-based - Utilisez la commande
multipathd
pour préparer ou gérer le chemin multiple. - vHBA-based - Préparez la carte fibre channel à l'avance.
Créez un fichier XML et ajoutez-y les lignes suivantes. Ce fichier sera utilisé pour ajouter le volume de stockage en tant que disque à une 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>
Cet exemple spécifie un disque virtuel qui utilise le volume
vm-disk1
, créé à l'étape précédente, et configure le volume en tant que disquehdk
sur un buside
. Modifiez les paramètres respectifs en fonction de votre environnement.Important: Avec certains types de pools de stockage, vous devez utiliser différents formats XML pour décrire un disque de volume de stockage.
Pour les piscines multipath-based:
<disk type='block' device='disk'> <driver name='qemu' type='raw'/> <source dev='/dev/mapper/mpatha' /> <target dev='sda' bus='scsi'/> </disk>
Pour les piscines 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>
Utilisez le fichier XML pour affecter le volume de stockage en tant que disque à une VM. Par exemple, pour affecter un disque défini dans
~/vm-disk1.xml
à la VMtestguest1
, utilisez la commande suivante :# virsh attach-device --config testguest1 ~/vm-disk1.xml
Vérification
- Dans le système d'exploitation invité de la VM, confirmez que l'image disque est devenue disponible en tant que disque non formaté et non alloué.
15.5.3. Suppression de volumes de stockage à l'aide de l'interface de programmation
Pour supprimer un volume de stockage de votre système hôte, vous devez arrêter le pool et supprimer sa définition XML.
Conditions préalables
- Toute machine virtuelle utilisant le volume de stockage à supprimer est arrêtée.
Procédure
La commande
virsh vol-list
permet de répertorier les volumes de stockage d'un pool de stockage donné.# virsh vol-list --pool RHEL-SP Name Path --------------------------------------------------------------- .bash_history /home/VirtualMachines/.bash_history .bash_logout /home/VirtualMachines/.bash_logout .bash_profile /home/VirtualMachines/.bash_profile .bashrc /home/VirtualMachines/.bashrc .git-prompt.sh /home/VirtualMachines/.git-prompt.sh .gitconfig /home/VirtualMachines/.gitconfig vm-disk1 /home/VirtualMachines/vm-disk1
Optional: Utilisez la commande
virsh vol-wipe
pour effacer un volume de stockage. Par exemple, pour effacer un volume de stockage nommévm-disk1
associé au pool de stockageRHEL-SP
:# virsh vol-wipe --pool RHEL-SP vm-disk1 Vol vm-disk1 wiped
Utilisez la commande
virsh vol-delete
pour supprimer un volume de stockage. Par exemple, pour supprimer un volume de stockage nommévm-disk1
associé au pool de stockageRHEL-SP
:# virsh vol-delete --pool RHEL-SP vm-disk1 Vol vm-disk1 deleted
Vérification
Utilisez à nouveau la commande
virsh vol-list
pour vérifier que le volume de stockage a été supprimé.# virsh vol-list --pool RHEL-SP Name Path --------------------------------------------------------------- .bash_history /home/VirtualMachines/.bash_history .bash_logout /home/VirtualMachines/.bash_logout .bash_profile /home/VirtualMachines/.bash_profile .bashrc /home/VirtualMachines/.bashrc .git-prompt.sh /home/VirtualMachines/.git-prompt.sh .gitconfig /home/VirtualMachines/.gitconfig