Chapitre 3. Création de machines virtuelles
Pour créer une machine virtuelle (VM) dans RHEL 9, utilisez l'interface de ligne de commande ou la console web RHEL 9.
3.1. Création de machines virtuelles à l'aide de l'interface de ligne de commande
Pour créer une machine virtuelle (VM) sur votre hôte RHEL 9 à l'aide de l'utilitaire virt-install
, suivez les instructions ci-dessous.
Conditions préalables
- La virtualisation est activée sur votre système hôte.
- Vous disposez d'une quantité suffisante de ressources système à allouer à vos machines virtuelles, telles que l'espace disque, la mémoire vive ou les processeurs. Les valeurs recommandées peuvent varier de manière significative en fonction des tâches prévues et de la charge de travail des VM.
Une source d'installation du système d'exploitation (OS) est disponible localement ou sur un réseau. Il peut s'agir de l'une des sources suivantes
- Une image ISO d'un support d'installation
Une image disque d'une installation VM existante
AvertissementL'installation à partir d'un CD-ROM ou d'un DVD-ROM hôte n'est pas possible dans RHEL 9. Si vous sélectionnez un CD-ROM ou un DVD-ROM comme source d'installation lors de l'utilisation d'une méthode d'installation de VM disponible dans RHEL 9, l'installation échouera. Pour plus d'informations, consultez la base de connaissances de Red Hat.
Notez également que Red Hat ne prend en charge qu'un nombre limité de systèmes d'exploitation invités.
- Facultatif : Un fichier Kickstart peut être fourni pour faciliter et accélérer la configuration de l'installation.
Procédure
Pour créer une VM et lancer l'installation de son système d'exploitation, utilisez la commande virt-install
, avec les arguments obligatoires suivants :
-
--name
le nom de la nouvelle machine -
--memory
la quantité de mémoire allouée -
--vcpus
le nombre d'unités centrales virtuelles allouées -
--disk
le type et la taille de l'espace de stockage alloué -
--cdrom
ou--location
: le type et l'emplacement de la source d'installation du système d'exploitation
En fonction de la méthode d'installation choisie, les options et valeurs nécessaires peuvent varier. Voir les commandes ci-dessous pour des exemples :
La commande suivante crée une VM nommée demo-guest1 qui installe le système d'exploitation Windows 10 à partir d'une image ISO stockée localement dans le fichier /home/username/Downloads/Win10install.iso. Cette VM est également dotée de 2048 MiB de RAM et de 2 vCPU, et un disque virtuel qcow2 de 80 GiB est automatiquement configuré pour la VM.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow virt-install \ --name demo-guest1 --memory 2048 \ --vcpus 2 --disk size=80 --os-variant win10 \ --cdrom /home/username/Downloads/Win10install.iso
# virt-install \ --name demo-guest1 --memory 2048 \ --vcpus 2 --disk size=80 --os-variant win10 \ --cdrom /home/username/Downloads/Win10install.iso
La commande suivante crée une VM nommée demo-guest2 qui utilise l'image /home/username/Downloads/rhel9.iso pour exécuter un système d'exploitation RHEL 9 à partir d'un CD live. Aucun espace disque n'est attribué à cette VM, de sorte que les modifications apportées pendant la session ne seront pas conservées. En outre, la VM se voit attribuer 4096 MiB de RAM et 4 vCPU.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow virt-install \ --name demo-guest2 --memory 4096 --vcpus 4 \ --disk none --livecd --os-variant rhel9.0 \ --cdrom /home/username/Downloads/rhel9.iso
# virt-install \ --name demo-guest2 --memory 4096 --vcpus 4 \ --disk none --livecd --os-variant rhel9.0 \ --cdrom /home/username/Downloads/rhel9.iso
La commande suivante crée une VM RHEL 9 nommée demo-guest3 qui se connecte à une image disque existante, /home/username/backup/disk.qcow2. Cela revient à déplacer physiquement un disque dur d'une machine à l'autre, de sorte que le système d'exploitation et les données disponibles pour demo-guest3 sont déterminés par la manière dont l'image a été gérée précédemment. En outre, cette VM est dotée de 2048 MiB de RAM et de 2 vCPU.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow virt-install \ --name demo-guest3 --memory 2048 --vcpus 2 \ --os-variant rhel9.0 --import \ --disk /home/username/backup/disk.qcow2
# virt-install \ --name demo-guest3 --memory 2048 --vcpus 2 \ --os-variant rhel9.0 --import \ --disk /home/username/backup/disk.qcow2
Notez que l'option
--os-variant
est fortement recommandée lors de l'importation d'une image disque. Si elle n'est pas fournie, les performances de la VM créée seront affectées négativement.La commande suivante crée une VM nommée demo-guest4 qui s'installe à partir de l'URL
http://example.com/OS-install
. Pour que l'installation démarre avec succès, l'URL doit contenir une arborescence d'installation du système d'exploitation qui fonctionne. En outre, le système d'exploitation est automatiquement configuré à l'aide du fichier kickstart de /home/username/ks.cfg. Cette VM est également dotée de 2048 MiB de RAM, de 2 vCPU et d'un disque virtuel qcow2 de 160 GiB.Copy to Clipboard Copied! Toggle word wrap Toggle overflow virt-install \ --name demo-guest4 --memory 2048 --vcpus 2 --disk size=160 \ --os-variant rhel9.0 --location http://example.com/OS-install \ --initrd-inject /home/username/ks.cfg --extra-args="inst.ks=file:/ks.cfg console=tty0 console=ttyS0,115200n8"
# virt-install \ --name demo-guest4 --memory 2048 --vcpus 2 --disk size=160 \ --os-variant rhel9.0 --location http://example.com/OS-install \ --initrd-inject /home/username/ks.cfg --extra-args="inst.ks=file:/ks.cfg console=tty0 console=ttyS0,115200n8"
En outre, si vous souhaitez héberger demo-guest4 sur un hôte RHEL 9 on an ARM 64, incluez les lignes suivantes pour vous assurer que le fichier kickstart installe le paquetage
kernel-64k
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow %packages -kernel kernel-64k %end
%packages -kernel kernel-64k %end
La commande suivante crée une VM nommée demo-guest5 qui s'installe à partir d'un fichier image
RHEL9.iso
en mode texte uniquement, sans graphiques. Elle connecte la console invitée à la console série. La VM a 16384 MiB de mémoire, 16 vCPU, et 280 GiB de disque. Ce type d'installation est utile pour se connecter à un hôte sur un réseau lent.Copy to Clipboard Copied! Toggle word wrap Toggle overflow virt-install \ --name demo-guest5 --memory 16384 --vcpus 16 --disk size=280 \ --os-variant rhel9.0 --location RHEL9.iso \ --graphics none --extra-args='console=ttyS0'
# virt-install \ --name demo-guest5 --memory 16384 --vcpus 16 --disk size=280 \ --os-variant rhel9.0 --location RHEL9.iso \ --graphics none --extra-args='console=ttyS0'
La commande suivante crée une VM nommée demo-guest6, qui a la même configuration que demo-guest5, mais qui réside sur l'hôte distant 192.0.2.1.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow virt-install \ --connect qemu+ssh://root@192.0.2.1/system --name demo-guest6 --memory 16384 \ --vcpus 16 --disk size=280 --os-variant rhel9.0 --location RHEL9.iso \ --graphics none --extra-args='console=ttyS0'
# virt-install \ --connect qemu+ssh://root@192.0.2.1/system --name demo-guest6 --memory 16384 \ --vcpus 16 --disk size=280 --os-variant rhel9.0 --location RHEL9.iso \ --graphics none --extra-args='console=ttyS0'
La commande suivante crée une VM nommée demo-guest-7, qui a la même configuration que demo-guest5, mais pour son stockage, elle utilise un périphérique DASD médiatisé
mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8
, et lui attribue le numéro de périphérique1111
.Copy to Clipboard Copied! Toggle word wrap Toggle overflow virt-install \ --name demo-guest7 --memory 16384 --vcpus 16 --disk size=280 \ --os-variant rhel9.0 --location RHEL9.iso --graphics none \ --disk none --hostdev mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8,address.type=ccw,address.cssid=0xfe,address.ssid=0x0,address.devno=0x1111,boot-order=1 \ --extra-args 'rd.dasd=0.0.1111'
# virt-install \ --name demo-guest7 --memory 16384 --vcpus 16 --disk size=280 \ --os-variant rhel9.0 --location RHEL9.iso --graphics none \ --disk none --hostdev mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8,address.type=ccw,address.cssid=0xfe,address.ssid=0x0,address.devno=0x1111,boot-order=1 \ --extra-args 'rd.dasd=0.0.1111'
Notez que le nom du dispositif médiatisé disponible pour l'installation peut être récupéré à l'aide de la commande
virsh nodedev-list --cap mdev
.
Vérification
- Si la VM est créée avec succès, une fenêtre virt-viewer s'ouvre avec une console graphique de la VM et démarre l'installation du système d'exploitation invité.
Résolution de problèmes
Si
virt-install
échoue avec une erreurcannot find default network
:Assurez-vous que le paquetage
libvirt-daemon-config-network
est installé :Copy to Clipboard Copied! Toggle word wrap Toggle overflow {PackageManagerCommand} info libvirt-daemon-config-network
# {PackageManagerCommand} info libvirt-daemon-config-network Installed Packages Name : libvirt-daemon-config-network [...]
Vérifiez que le réseau par défaut
libvirt
est actif et configuré pour démarrer automatiquement :Copy to Clipboard Copied! Toggle word wrap Toggle overflow virsh net-list --all
# virsh net-list --all Name State Autostart Persistent -------------------------------------------- default active yes yes
Si ce n'est pas le cas, activez le réseau par défaut et configurez-le pour qu'il démarre automatiquement :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow virsh net-autostart default virsh net-start default
# virsh net-autostart default Network default marked as autostarted # virsh net-start default Network default started
Si l'activation du réseau par défaut échoue avec l'erreur suivante, c'est que le paquet
libvirt-daemon-config-network
n'a pas été installé correctement.Copy to Clipboard Copied! Toggle word wrap Toggle overflow error: failed to get network 'default' error: Network not found: no network with matching name 'default'
error: failed to get network 'default' error: Network not found: no network with matching name 'default'
Pour résoudre ce problème, réinstallez
libvirt-daemon-config-network
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow {PackageManagerCommand} reinstall libvirt-daemon-config-network
# {PackageManagerCommand} reinstall libvirt-daemon-config-network
Si l'activation du réseau par défaut échoue avec une erreur similaire à la suivante, un conflit s'est produit entre le sous-réseau du réseau par défaut et une interface existante sur l'hôte.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow error: Failed to start network default error: internal error: Network is already in use by interface ens2
error: Failed to start network default error: internal error: Network is already in use by interface ens2
Pour résoudre ce problème, utilisez la commande
virsh net-edit default
et modifiez les valeurs de192.0.2.*
dans la configuration pour un sous-réseau qui n'est pas déjà utilisé sur l'hôte.
Ressources supplémentaires
-
La page de manuel
virt-install (1)
- Création de machines virtuelles et installation de systèmes d'exploitation invités à l'aide de la console web
- Clonage de machines virtuelles