Objectif
L'instruction suivante explique comment cloner des machines virtuelles basées sur KVM sur Redhat Linux à partir de la ligne de commande à l'aide de virt-clone
commande.
Versions du système d'exploitation et du logiciel
- Système d'exploitation : – Redhat 7.3
- Logiciel : – libvirtd (libvirt) 2.0.0
Exigences
Un accès privilégié à votre installation Redhat Linux sera nécessaire.
Difficulté
FACILE
Congrès
- # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant
sudo
commande - $ - nécessite que les commandes linux données soient exécutées en tant qu'utilisateur régulier non privilégié
Instructions
Obtenir les informations de la machine virtuelle source
Avant de commencer à cloner une machine virtuelle, nous devons d'abord obtenir quelques informations de base à son sujet. Les informations minimales absolues requises sur la machine virtuelle source que nous sommes sur le point de cloner seraient son nom et le numéro de disque utilisé. Pour obtenir le nom des machines virtuelles, procédez comme suit :
# virsh list Id Name State ---------------------------------------------------- 1 server1.linuxconfig.org running
Ensuite, nous aimerions peut-être connaître le nombre de disques utilisés par nos machines virtuelles sources ainsi que leur emplacement. Les informations sur l'emplacement des disques sont facultatives car elles ne nous fournissent qu'un indice sur l'endroit où stocker les nouveaux fichiers de disque clone dans un souci de cohérence :
# virsh dumpxml server1.linuxconfig.org | grep "source file" <source file='/var/lib/libvirt/images/server1.linuxconfig.org.qcow2'/> <source file='/var/lib/libvirt/images/server1.linuxconfig.org-1.qcow2'/> <source file='/var/lib/libvirt/images/server1.linuxconfig.org-2.qcow2'/>
À partir de la sortie ci-dessus, nous pouvons voir que notre machine virtuelle d'origine a trois disques stockés à l'emplacement /var/lib/libvirt/images/
.
Suspendre la machine virtuelle source
Avant que le clonage puisse avoir lieu, notre machine virtuelle source doit être mise en pause/suspendue :
# virsh suspend server1.linuxconfig.org Domain server1.linuxconfig.org suspended
Clonage automatique de la machine virtuelle
Une façon de cloner des machines virtuelles basées sur KVM sur Redhat Linux consiste à utiliser --auto-clone
interrupteur. Le principal avantage de --auto-clone
est qu'il clone automatiquement n'importe quel nombre de disques source, l'utilisateur n'a donc pas besoin de connaître l'emplacement et le numéro du disque attaché à la machine virtuelle d'origine.
L'inconvénient est que l'utilisateur n'est pas en mesure de spécifier des noms de disque et de privilégier un emplacement alternatif aux nouveaux disques virtuels clonés. La commande linux suivante clonera la machine virtuelle d'origine server1.linuxconfig.org
vers une nouvelle machine virtuelle clone server2.linuxconfig.org
automatiquement en utilisant --auto-clone
commutateur.
# virt-clone --original=server1.linuxconfig.org --name=server2.linuxconfig.org --auto-clone WARNING Setting the graphics device port to autoport, in order to avoid conflicting. Allocating 'server2.linuxconfig.org.qcow2' | 10 GB 00:00:00 Allocating 'server1.linuxconfig.org-1-clone.qcow2' | 5.0 GB 00:00:07 Allocating 'server1.linuxconfig.org-2-clone.qcow2' | 5.0 GB 00:00:00 Clone 'server2.linuxconfig.org' created successfully.
Comme nous pouvons le voir sur la sortie ci-dessus, le --auto-clone
cloné automatiquement tous les disques virtuels attachés à la machine virtuelle d'origine et ajouté clone
mot-clé à tous les disques supplémentaires. La nouvelle machine virtuelle clonée devrait maintenant attendre dans shut off
état à démarrer :
# virsh list --all Id Name State ---------------------------------------------------- 1 server1.linuxconfig.org paused - server2.linuxconfig.org shut off
Cloner manuellement plusieurs disques
Pour mieux contrôler l'emplacement et le nom du nouveau disque cloné, nous pouvons omettre le --auto-clone
basculez et fournissez tout le nouveau nom de disque cloné et le chemin de destination en utilisant --file
interrupteur. Notez le numéro de --file
les arguments fournis doivent être égaux au nombre de disques attachés à la machine virtuelle d'origine. Exemple :
# virt-clone --original=server1.linuxconfig.org --name=server2.linuxconfig.org --file /var/lib/libvirt/images/server2.linuxconfig.org.img --file /var/lib/libvirt/images/server2.linuxconfig.org-1.img --file /var/lib/libvirt/images/server2.linuxconfig.org-2.img WARNING Setting the graphics device port to autoport, in order to avoid conflicting. Allocating 'server2.linuxconfig.org.img' | 10 GB 00:00:00 Allocating 'server2.linuxconfig.org-1.img' | 5.0 GB 00:00:07 Allocating 'server2.linuxconfig.org-2.img' | 5.0 GB 00:00:00 Clone 'server2.linuxconfig.org' created successfully.
Reprendre/Démarrer
À ce stade, nous sommes prêts à reprendre notre machine virtuelle d'origine server1.linuxconfig.org
:
# virsh resume server1.linuxconfig.org Domain server1.linuxconfig.org resumed
et démarrez également la machine virtuelle nouvellement clonée server2.linuxconfig.org
:
# virsh start server2.linuxconfig.org Domain server2.linuxconfig.org started
Vérifiez l'état de toutes les machines virtuelles :
# virsh list --all Id Name State ---------------------------------------------------- 1 server1.linuxconfig.org running 3 server2.linuxconfig.org running