Recherche de site Web

Comment cloner des machines virtuelles basées sur KVM sur Redhat Linux


Objectif

Les instructions suivantes expliquent comment cloner des machines virtuelles basées sur KVM sur Redhat Linux à partir de la ligne de commande à l’aide de la commande virt-clone.

Système d’exploitation et versions logicielles

  • Système d’exploitation : – Redhat 7.3
  • Logiciel : – libvirtd (libvirt) 2.0.0

Exigences

Un accès privilégié à votre installation de Redhat Linux sera requis.

Difficulté

FACILE

Conventions

  • # – 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 la commande sudo
  • $ – nécessite que des 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 requises sur la machine virtuelle source que nous sommes sur le point de cloner sont son nom et le nombre de disques utilisés. Pour obtenir le nom des machines virtuelles, exécutez :


virsh list
 Id    Name                           State
----------------------------------------------------
 1     server1.linuxconfig.org            running

Ensuite, nous pouvons souhaiter 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 cloné par 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'/>

D’après la sortie ci-dessus, nous pouvons voir que notre machine virtuelle d’origine a trois disques stockés dans 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 le commutateur --auto-clone. Le principal avantage de l’option --auto-clone est qu’elle clone automatiquement n’importe quel nombre de disques sources, de sorte que l’utilisateur n’a 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 choisir un autre emplacement pour les nouveaux disques virtuels clonés. La commande linux suivante clonera la machine virtuelle d’origine server1.linuxconfig.org vers une nouvelle machine virtuelle de clonage server2.linuxconfig.org automatiquement à l’aide du commutateur --auto-clone.


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 a automatiquement cloné tous les disques virtuels attachés à la machine virtuelle d’origine et a ajouté le mot-clé clone à tous les disques supplémentaires. La nouvelle machine virtuelle clonée doit maintenant attendre d’être démarrée à l’état d’arrêt :


virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     server1.linuxconfig.org            paused
 -     server2.linuxconfig.org            shut off

Cloner manuellement plusieurs disques

Pour avoir plus de contrôle sur l’emplacement et le nom du nouveau disque cloné, nous pouvons omettre l’option --auto-clone et fournir tous les nouveaux noms et chemins de destination du disque cloné à l’aide de l’option --file. Notez que le nombre d’arguments --file fournis doit être égal 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.

CV/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

Articles connexes: