Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| elearning:workbooks:centos:8:avance:l106 [2021/08/23 10:52] – created admin | elearning:workbooks:centos:8:avance:l106 [2022/02/22 15:15] (Version actuelle) – created admin | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ======LCF606 - L'Installation | + | ~~PDF: |
| + | |||
| + | Version : **2022.01** | ||
| + | |||
| + | Dernière mise-à-jour : ~~LASTMOD~~ | ||
| + | |||
| + | ======LCF606 - Gestion des Clones, des Snapshots et des Sauvegardes sous KVM====== | ||
| + | |||
| + | =====Contenu du Module===== | ||
| + | |||
| + | * **LCF606 - Gestion des Clones, des Snapshots et des Sauvegardes sous KVM** | ||
| + | * Contenu du Module | ||
| + | * LAB #1 - Gestion des Clones | ||
| + | * 1.1 - Création d'une VM à partir d'un Clone | ||
| + | * LAB #2 - Gestion des Snapshots | ||
| + | * 2.1 - Création d'un Snapshot - VM Arrêté | ||
| + | * 2.2 - Création d'un Snapshot - VM en Cours d' | ||
| + | * 2.3 - Restauration d'un Snapshot | ||
| + | * 2.4 - Suppression de Snapshots | ||
| + | * LAB #3 - Gestion des Sauvegardes | ||
| + | * 3.1 - Création d'une Copie du Disque de la VM | ||
| + | * 3.2 - Création d'une Copie de la Configuration de la VM | ||
| + | * 3.3 - Sauvegarder les Copies | ||
| + | |||
| + | =====LAB #1 - Gestion des Clones===== | ||
| + | |||
| + | La création de clones offre une méthode rapide de création de VMs basées sur des configurations déjà existantes. | ||
| + | |||
| + | ====1.1 - Création d'une VM à partir d'un Clone==== | ||
| + | |||
| + | Commencez par vérifier l' | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh list | ||
| + | | ||
| + | ------------------------- | ||
| + | | ||
| + | </ | ||
| + | |||
| + | <WRAP center round important 60%> | ||
| + | **Important** : Notez que la VM est dans un état de **running** et que son **Id** est de **3**. | ||
| + | </ | ||
| + | |||
| + | Afin de procéder à la création d'un clone, arrêtez la VM avec la commande **virsh shutdown**. Cette commande peut prendre en argument l' | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh shutdown 3 | ||
| + | Domain 3 is being shutdown | ||
| + | </ | ||
| + | |||
| + | Vérifiez ensuite que la VM est arrêtée : | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh list | ||
| + | | ||
| + | -------------------- | ||
| + | |||
| + | </ | ||
| + | |||
| + | Utilisez la commande **virsh-clone** pour créer une deuxième VM dénommée **testvm2** ayant une image au format qcow2 stockée dans le répertoire **/ | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virt-clone --original testvm1 --name testvm2 -f / | ||
| + | Allocating ' | ||
| + | |||
| + | Clone ' | ||
| + | </ | ||
| + | |||
| + | <WRAP center round important 60%> | ||
| + | **Important** : Notez la rapidité de la création du clone par rapport à la lenteur de la création d'une VM à partir d'une image ISO. | ||
| + | </ | ||
| + | |||
| + | La sortie de la commande **virsh list** ne montre pas les VMs en état d' | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh list | ||
| + | | ||
| + | -------------------- | ||
| + | |||
| + | </ | ||
| + | |||
| + | Pour voir la liste des VMs, peu importe leurs états, utilisez l' | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh list --all | ||
| + | | ||
| + | -------------------------- | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | |||
| + | Le **State** peut être une des valeurs suivantes : | ||
| + | |||
| + | * **running** - la machine virtuelle est active, | ||
| + | * **blocked** ou **blocking** - la machine virtuelle est en attente d'E/S ou l' | ||
| + | * **paused** - la machine virtuelle est suspendue, | ||
| + | * **shutdown** - la machine virtuelle est en cours d' | ||
| + | * **shut off** - la machine virtuelle est éteinte et elle n' | ||
| + | * **crashed** - la machine virtuelle a crashée et est arrêtée. | ||
| + | |||
| + | =====LAB #2 - Gestion des Snapshots===== | ||
| + | |||
| + | La création de snapshots offre une méthode rapide de sauvegarde des VMs. | ||
| + | |||
| + | Il existe deux types de snapshots : | ||
| + | |||
| + | * **Internal**, | ||
| + | * uniquement possibles avec les images qcow2, | ||
| + | * la VM est mise en pause pendant la création du snapshot, | ||
| + | * ne fonctionne pas avec des pools de stockage de type LVM. | ||
| + | * **External**, | ||
| + | * sont basés sur le concept COW (**C**opy **O**n **W**rite), | ||
| + | * l' | ||
| + | * une image de type overlay en mode lecture/ | ||
| + | * est compatible avec n’importe lequel des formats de l' | ||
| + | |||
| + | ====2.1 - Création d'un Snapshot - VM Arrêté==== | ||
| + | |||
| + | Utilisez la commande **virsh snapshot-list** pour consulter la liste des snapshots déjà présents pour la VM **testvm1** : | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh snapshot-list testvm1 | ||
| + | | ||
| + | ------------------------------- | ||
| + | |||
| + | </ | ||
| + | |||
| + | La création d'un snapshot se fait grâce à l' | ||
| + | |||
| + | * **--domain**, | ||
| + | * le domaine à l' | ||
| + | * **--name**, | ||
| + | * le nom attribué au snapshot. | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh snapshot-create-as --domain testvm1 --name " | ||
| + | Domain snapshot testvm1-snap-03092021 created | ||
| + | </ | ||
| + | |||
| + | Vérifiez que le snapshot a bien été pris en compte : | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh snapshot-list testvm1 | ||
| + | | ||
| + | -------------------------------------------------------------- | ||
| + | | ||
| + | </ | ||
| + | |||
| + | <WRAP center round important 60%> | ||
| + | **Important** : Notez que l' | ||
| + | </ | ||
| + | |||
| + | Pour obtenir des informations concernant le snapshot, il convient d' | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh snapshot-info --domain testvm1 --current | ||
| + | Name: | ||
| + | Domain: | ||
| + | Current: | ||
| + | State: | ||
| + | Location: | ||
| + | Parent: | ||
| + | Children: | ||
| + | Descendants: | ||
| + | Metadata: | ||
| + | </ | ||
| + | |||
| + | ====2.2 - Création d'un Snapshot - VM en Cours d' | ||
| + | |||
| + | Il est aussi possible de prendre des snapshot d'une VM en cours d' | ||
| + | |||
| + | Démarrez donc la VM **testvm2** avec la commande **virsh start** : | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh start testvm2 | ||
| + | Domain testvm2 started | ||
| + | |||
| + | </ | ||
| + | |||
| + | Vérifiez ensuite l' | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh list --all | ||
| + | | ||
| + | -------------------------- | ||
| + | | ||
| + | | ||
| + | |||
| + | </ | ||
| + | |||
| + | Créez un snapshot de **testvm2** : | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh snapshot-create-as --domain testvm2 --name " | ||
| + | Domain snapshot testvm2-snap-03092021 created | ||
| + | </ | ||
| + | |||
| + | Consultez la liste des snapshots pour le domaine **testvm2** : | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh snapshot-list testvm2 | ||
| + | | ||
| + | -------------------------------------------------------------- | ||
| + | | ||
| + | </ | ||
| + | |||
| + | Pour obtenir des informations concernant le dernier snapshot effectué pour le domaine **testvm2**, | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh snapshot-info --domain testvm2 --current | ||
| + | Name: | ||
| + | Domain: | ||
| + | Current: | ||
| + | State: | ||
| + | Location: | ||
| + | Parent: | ||
| + | Children: | ||
| + | Descendants: | ||
| + | Metadata: | ||
| + | </ | ||
| + | |||
| + | <WRAP center round important 60%> | ||
| + | **Important** : Notez que le **State** est **running** par rapport au snapshot précédent qui avait rapporté un **State** de **shutoff**. | ||
| + | </ | ||
| + | |||
| + | ====2.3 - Restauration d'un Snapshot==== | ||
| + | |||
| + | Pour restaurer un snapshot la commande virsh fournit la sous-commande **snapshot-revert**. Commencez donc par arrêter la VM : | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh shutdown testvm2 | ||
| + | Domain testvm2 is being shutdown | ||
| + | |||
| + | [root@centos8 ~]# virsh list --all | ||
| + | | ||
| + | -------------------------- | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | |||
| + | Restaurez ensuite le snapshot : | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh snapshot-revert --domain testvm2 --snapshotname testvm2-snap-03092021 --running | ||
| + | |||
| + | [root@centos8 ~]# virsh list --all | ||
| + | | ||
| + | -------------------------- | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | |||
| + | <WRAP center round important 60%> | ||
| + | **Important** : Notez que le **State** est **running** après la restauration du snapshot. | ||
| + | </ | ||
| + | |||
| + | Connectez-vous à la VM grâce à la commande **virsh console** et vérifiez que celle-ci ne présente pas d’anomalies de fonctionnement : | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh console 5 | ||
| + | Connected to domain testvm2 | ||
| + | Escape character is ^] | ||
| + | |||
| + | CentOS Linux 8 | ||
| + | Kernel 4.18.0-305.12.1.el8_4.x86_64 on an x86_64 | ||
| + | |||
| + | testvm1 login: root | ||
| + | Mot de passe : fenestros | ||
| + | Dernière connexion : | ||
| + | [root@testvm1 ~]# | ||
| + | ... | ||
| + | [root@testvm1 ~]# [ALT GR]+[CTRL]+[)] | ||
| + | [root@centos8 ~]# | ||
| + | </ | ||
| + | |||
| + | ====2.4 - Suppression de Snapshots==== | ||
| + | |||
| + | Les snapshots peuvent être supprimés grâce à l' | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh snapshot-delete --domain testvm1 --snapshotname testvm1-snap-03092021 | ||
| + | Domain snapshot testvm1-snap-03092021 deleted | ||
| + | |||
| + | [root@centos8 ~]# virsh snapshot-delete --domain testvm2 --snapshotname testvm2-snap-03092021 | ||
| + | Domain snapshot testvm2-snap-03092021 deleted | ||
| + | |||
| + | [root@centos8 ~]# virsh snapshot-list testvm1 | ||
| + | | ||
| + | ------------------------------- | ||
| + | |||
| + | [root@centos8 ~]# virsh snapshot-list testvm2 | ||
| + | | ||
| + | ------------------------------- | ||
| + | </ | ||
| + | |||
| + | =====LAB #3 - Gestion des Sauvegardes===== | ||
| + | |||
| + | Pour effectuer une sauvegarde d'une VM en utilisant les outils classiques, il convient simplement de copier le fichier d' | ||
| + | |||
| + | ====3.1 - Création d'une Sauvegarde du Disque de la VM==== | ||
| + | |||
| + | Actuellement seule la VM **testvm2** est en cours d' | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh list | ||
| + | | ||
| + | ------------------------- | ||
| + | | ||
| + | </ | ||
| + | |||
| + | Créez donc un répertoire destiné à contenir les copies créées : | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# mkdir / | ||
| + | </ | ||
| + | |||
| + | Placez-vous dans le répertoire des images **/ | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# cd / | ||
| + | [root@centos8 images]# ls -l | ||
| + | total 4029008 | ||
| + | -rw-------. 1 root root 5369757696 Sep 3 11:42 testvm1-os.qcow2 | ||
| + | -rw-------. 1 qemu qemu 2261123072 Sep 4 02:25 testvm2.qcow2 | ||
| + | </ | ||
| + | |||
| + | Copiez ensuite l' | ||
| + | |||
| + | < | ||
| + | [root@centos8 images]# cp -p testvm1-os.qcow2 / | ||
| + | </ | ||
| + | |||
| + | <WRAP center round important 60%> | ||
| + | **Important** : Notez que cette copie est effectuée en arrière plan afin de libérer le prompt en avant plan du terminal. | ||
| + | </ | ||
| + | |||
| + | ====3.2 - Création d'une Sauvegarde de la Configuration de la VM==== | ||
| + | |||
| + | La configuration de chaque VM est contenue dans un fichier au format XML dans le répertoire **/ | ||
| + | |||
| + | < | ||
| + | [root@centos8 images]# cd / | ||
| + | [root@centos8 qemu]# ls -lR | ||
| + | .: | ||
| + | total 16 | ||
| + | drwx------. 3 root root 42 Sep 2 10:22 networks | ||
| + | -rw-------. 1 root root 4936 Sep 3 10:07 testvm1.xml | ||
| + | -rw-------. 1 root root 4933 Sep 3 11:35 testvm2.xml | ||
| + | |||
| + | ./ | ||
| + | total 4 | ||
| + | drwx------. 2 root root 25 Aug 10 17:00 autostart | ||
| + | -rw-------. 1 root root 575 Sep 2 10:22 default.xml | ||
| + | |||
| + | ./ | ||
| + | total 0 | ||
| + | lrwxrwxrwx. 1 root root 14 Jun 16 06:28 default.xml -> ../ | ||
| + | </ | ||
| + | |||
| + | Si vous consultez le contenu du fichier **testvm1.xml**, | ||
| + | |||
| + | < | ||
| + | ... | ||
| + | < | ||
| + | <vcpu placement=' | ||
| + | ... | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | [root@centos8 qemu]# cat testvm1.xml | ||
| + | <!-- | ||
| + | WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE | ||
| + | OVERWRITTEN AND LOST. Changes to this xml configuration should be made using: | ||
| + | virsh edit testvm1 | ||
| + | or other application using the libvirt API. | ||
| + | --> | ||
| + | |||
| + | <domain type=' | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | <memory unit=' | ||
| + | < | ||
| + | <vcpu placement=' | ||
| + | < | ||
| + | <type arch=' | ||
| + | <boot dev=' | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | <cpu mode=' | ||
| + | <clock offset=' | ||
| + | <timer name=' | ||
| + | <timer name=' | ||
| + | <timer name=' | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | <disk type=' | ||
| + | <driver name=' | ||
| + | <source file='/ | ||
| + | <target dev=' | ||
| + | <address type=' | ||
| + | </ | ||
| + | <disk type=' | ||
| + | <driver name=' | ||
| + | <target dev=' | ||
| + | < | ||
| + | <address type=' | ||
| + | </ | ||
| + | < | ||
| + | <address type=' | ||
| + | </ | ||
| + | < | ||
| + | <address type=' | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | <address type=' | ||
| + | </ | ||
| + | < | ||
| + | <model name=' | ||
| + | <target chassis=' | ||
| + | <address type=' | ||
| + | </ | ||
| + | < | ||
| + | <model name=' | ||
| + | <target chassis=' | ||
| + | <address type=' | ||
| + | </ | ||
| + | < | ||
| + | <model name=' | ||
| + | <target chassis=' | ||
| + | <address type=' | ||
| + | </ | ||
| + | < | ||
| + | <model name=' | ||
| + | <target chassis=' | ||
| + | <address type=' | ||
| + | </ | ||
| + | < | ||
| + | <model name=' | ||
| + | <target chassis=' | ||
| + | <address type=' | ||
| + | </ | ||
| + | < | ||
| + | <model name=' | ||
| + | <target chassis=' | ||
| + | <address type=' | ||
| + | </ | ||
| + | < | ||
| + | <model name=' | ||
| + | <target chassis=' | ||
| + | <address type=' | ||
| + | </ | ||
| + | < | ||
| + | <mac address=' | ||
| + | <source bridge=' | ||
| + | <model type=' | ||
| + | <address type=' | ||
| + | </ | ||
| + | <serial type=' | ||
| + | <target type=' | ||
| + | <model name=' | ||
| + | </ | ||
| + | </ | ||
| + | <console type=' | ||
| + | <target type=' | ||
| + | </ | ||
| + | <channel type=' | ||
| + | <target type=' | ||
| + | <address type=' | ||
| + | </ | ||
| + | <input type=' | ||
| + | <input type=' | ||
| + | < | ||
| + | <address type=' | ||
| + | </ | ||
| + | <rng model=' | ||
| + | <backend model=' | ||
| + | <address type=' | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | Ce fichier doit donc être copié vers le répertoire **/ | ||
| + | |||
| + | < | ||
| + | [root@centos8 qemu]# cp -p testvm1.xml / | ||
| + | </ | ||
| + | |||
| + | Une fois le processus en arrière plan terminé, vous pouvez constater la présence des deux fichiers dans le répertoire | ||
| + | |||
| + | < | ||
| + | [root@centos8 vm-backups]# | ||
| + | total 3992904 | ||
| + | -rw-------. 1 root root 5369757696 Sep 3 11:42 testvm1-os.qcow2-04092021 | ||
| + | -rw-------. 1 root root 4936 Sep 3 10:07 testvm1.xml-backup-04092021 | ||
| + | </ | ||
| + | |||
| + | Notez que la taille de l' | ||
| + | |||
| + | < | ||
| + | [root@centos8 ~]# virsh vol-info / | ||
| + | Name: | ||
| + | Type: | ||
| + | Capacity: | ||
| + | Allocation: | ||
| + | </ | ||
| + | |||
| + | ====3.3 - Sauvegarder les Copies des Fichiers==== | ||
| + | |||
| + | Ayant effectué les copies, il est maintenant possible de sauvegarder les fichiers à l'aide d'un outil classique tel **tar** : | ||
| + | |||
| + | < | ||
| + | [root@centos8 vm-backups]# | ||
| + | [root@centos8 vm-backups]# | ||
| + | [root@centos8 vm-backups]# | ||
| + | testvm1 | ||
| + | |||
| + | [root@centos8 vm-backups]# | ||
| + | testvm1/ | ||
| + | testvm1/ | ||
| + | testvm1/ | ||
| + | |||
| + | [root@centos8 vm-backups]# | ||
| + | total 846724 | ||
| + | drwxr-xr-x. 2 root root 74 Sep 4 03:19 testvm1 | ||
| + | -rw-r--r--. 1 root root 867042697 Sep 4 03:24 testvm1-backup-04092021.tar.gz | ||
| + | </ | ||
| + | |||
| + | ----- | ||
| + | Copyright © 2022 Hugh Norris | ||