# Snapshots KVM

**URL:** <https://www.debian-fr.org/t/snapshots-kvm/75108>\
**Category:** Support Debian\
**Created:** [Novembre 15, 2017, 4:39 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108 "2017-11-15T16:39:08Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Lien\_Rag](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/ba8739/32.png) [@Lien\_Rag](https://www.debian-fr.org/u/Lien_Rag)\
**Post date:** [Novembre 15, 2017, 4:39 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/1 "2017-11-15T16:39:08Z")

</div>

Bonjour Debian.  
J’ai beaucoup utilisé VirtualBox sous Windows et un peu VMWare (pas taper, on m’avait forcé!) et là vu que j’ai enfin une machine physique Debian Stretch j’ai testé KVM avec virt-manager.  
Avec un peu de recherche par-ci par-là (le wiki est assez bien fait en fait) pas de problème pour faire fonctionner le tout via l’interface graphique.

Par contre je ne comprends pas du tout la fonction “snapshot” (“instantané” en français)?  
Sous VirtualBox ou VMWare quand on prend un snapshot et que l’on continue d’utiliser la VM, puis que l’on démarre le snapshot, la machine est telle que l’on l’a laissée au moment du snapshot (notamment au niveau des logiciels installés et des fichiers créés); tout ce qui a été fait après la prise du snapshot a disparu.

Mais là j’ai testé : je prends un snapshot (virt-manager prend bien le snasphot et il apparait dans la liste des instantanés) , je créée un fichier testsnapshot.txt, j’éteins la machine, je redémarre le snapshot en question, je fais un ls et le fichier testsnapshot est bien là (alors qu’il a été créé APRÈS la prise du snapshot, je le rappelle).

C’est un bug?  
Les snapshots font autre chose sous KVM que de permettre de revenir à une version antérieure de la VM?  
J’ai raté une étape?

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Novembre 15, 2017, 5:32 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/2 "2017-11-15T17:32:49Z")

</div>

Non, mais l’annulation des modifs disque ne vaut que sur le disque virtuel.  
Si tu crées/modifies un fichier qui est, par exemple, sur ton répertoire linux utilisateur que tu as monté dans ta VM comme disque supplémentaire, les modifs que tu y fais, elles, ne sont pas “snapshotées”.  
Ca peut donc être juste ça ?

---

<div class="post-metadata">

**Author:** ![Lien\_Rag](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/ba8739/32.png) [@Lien\_Rag](https://www.debian-fr.org/u/Lien_Rag)\
**Post date:** [Novembre 17, 2017, 8:38 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/3 "2017-11-17T08:38:26Z")

</div>

Non non, c’est bien sur le /home/root de la VM, la dossier partagé est en /IciHostshare…  
Tu confirmes que KVM devrait marcher comme virtualbox pour les snapshots?

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Novembre 17, 2017, 12:33 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/4 "2017-11-17T12:33:22Z")

</div>

Non, je dis juste que c’est comme ça que fonctionnent les snapshots sur les autres solutions de virtualisation, donc que ça pouvait être ça.  
Mais je ne connais pas bien KVM, j’utilise virtualbox, donc je ne peux pas te renseigner plus, désolé.

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Novembre 17, 2017, 1:01 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/5 "2017-11-17T13:01:08Z")

</div>

De souvenir la palme d’or de la seule solution bâtarde d’utilisation d’image instantanée revient reviens à Hyperv, qui lors d’une prise d’image instanatnée mets de côté le VHD et utilise l’AVHD, jusqu’a fusion de celui-ci avec le VHD et bascule (imperciptible).

Que ce soit XEN, KVM ou Vmware, les snap)shots sont mis de côté.

Maintenant tous les format ne supporte pas en pratique les prise d’image instantanée tel que RAW, mieux vaux donc s’orienter soit sur du VHD (le plus portable probablement) ou du Qcow2.  
Le gros avantages de ce dernier et de permettre le ‘copy on write’ sur un disque séparé de celui du serveur, permettant ainsi de conserver la machine intact.

Idem de souvenir sous Openstack je n’ai jamais démarré une instance à l’aide d’une instantanée, je me suis toujours appuyez sur la construction d’un template en utilisant l’instantanée.

Quels est le format de ton disque virtuel, et quel est la commande utilisé pour faire l’instantanée ?

Dans le pire des cas fait un snapshot de ta machine post-installation comme référentiel, puis fais tes modifs et fais un snapshots, tu pourra ainsi utilisé la fonction de virsh pour ‘revert’ sur celui de ton choix.

A savoir que sur Xenserver il existe plusieurs type d’instantanée seule le deuxième permet de pouvoir recréer à la volé le serveur, l’autre ne pourra servir qu’a être monté pour de la récupération de donnée :

- snapshot de volume (only disk)
- snapshot d’instance (complete server)

Je ne saurai que trop de prendre le temps de bien pesé le pour et le contre des différents format exploitable sous KVM selon tes besoins et de mettre ne place une certaines automatisations (surtout si tu as pas mal de machines) pour les sauvegardes/snapshots de celle-ci.

De ce côté longue vie à Docker ou LXC en s’appuyant sur KVM 😃 😃 la simplicité pour ce type d’opération courante dans la vie d’un sysadmin/devops 😃

---

<div class="post-metadata">

**Author:** ![Lien\_Rag](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/ba8739/32.png) [@Lien\_Rag](https://www.debian-fr.org/u/Lien_Rag)\
**Post date:** [Novembre 17, 2017, 1:09 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/6 "2017-11-17T13:09:02Z")

</div>

Là je suis en qcow2.  
J’ai fait les snapshots avec l’outil graphique virt-manager.

> [@Clochette](#):
>
> Dans le pire des cas fait un snapshot de ta machine post-installation comme référentiel, puis fais tes modifs et fais un snapshots, tu pourra ainsi utilisé la fonction de virsh pour ‹&nbsp;revert&nbsp;› sur celui de ton choix.

OK, c’est quoi les commandes virsh pour ça?

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Novembre 17, 2017, 1:11 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/7 "2017-11-17T13:11:38Z")

</div>

J’ai la fainéantise de tout taper voici un lien 🙂

> **[How to create snapshot in Linux KVM VM/Domain - nixCraft](https://www.cyberciti.biz/faq/how-to-create-create-snapshot-in-linux-kvm-vmdomain/)**
>
> Before upgrading my virtual machine, I would like to make a snapshot. I want to revert a domain/VM to a snapshot if something goes wrong with my upgrade. Is there a command to create a snapshot of virtual machine (VM) while it is running? Does...

Mais il y en a pléthore sur le web.

---

<div class="post-metadata">

**Author:** ![Lien\_Rag](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/ba8739/32.png) [@Lien\_Rag](https://www.debian-fr.org/u/Lien_Rag)\
**Post date:** [Novembre 17, 2017, 4:28 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/8 "2017-11-17T16:28:58Z")

</div>

OK merci, ça marche pour l’instant (et puis ça m’a forcé à me mettre à la ligne de commande pour KVM, et c’est bien de voir qu’elle ne mord pas).

Aurais-tu une idée sur un autre souci:  
Pour ne pas saturer la partition / j’ai fait (sans comprendre tout)  
`virsh pool-create-as srv-kvm dir --target /home/lienrag/kvm/`  
mais malgré tout les VMs ont été créées dans /var/lib/libvirt/images/

J’ai créé en graphique un nouveau pool (SPool1LR) pointant sur /home/lienrag/kvm mais ça n’empêche pas que les VM que je créé ensuite avec Virt-Manager sont toujours dans /var/lib/libvirt/images/

Il se passe quoi?

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Novembre 17, 2017, 11:44 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/9 "2017-11-17T23:44:45Z")

</div>

a première vue je dirais que le pool n’est pas pris en compte lors du déploiement de l’instance, reste à voir ce qu’il y a dans le xml de configuration utilisé à moins que virtmanager gère ça autrement.

Peux-tu tenter cette commande et voir si dedans justement tu ne spécifie pas l’endroit ou sera stocké la configuration et les disques.

```auto

```

N’étant pas un utilisateur de virtmanager je ne pourrait pas t’infirmer ou te confirmer mais je pense malgré tout qu’il gère lui même la configuration et donc le lieu de déploiement.

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Novembre 18, 2017, 1:46 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/10 "2017-11-18T13:46:40Z")

</div>

Bonjour **Lien\_Rag**

Il te faudrait détruire le pool nommé **default** qui est utilisé par **virt-manager**  
puis ensuite en créer un nouveau nommé aussi **default** en choisissant  
le répertoire que tu veux utiliser : **/home/lienrag/kvm/**  
pour que les fichiers image disque y soient stockés par défaut quand tu créera des nouvelles machines virtuelles avec l’interface **virt-manager**.

Et comme tu avais créé le pool **srv-kvm** en utilisant déjà le répertoire **/home/lienrag/kvm/**  
Il te faudra d’abord détruire ce pool.

* * *

Ça peut se faire depuis l’interface graphique de **virt-manager** :  
**Gestionnaire de machines virtuelles** -\> **Édition** -\> **Détails de la connexion** -\> Onglet **Stockage**

Ou alors, en ligne de commandes :

**NOTE :**  
Dans ce qui suit, les commandes virsh **pool-destroy …** et **pool-undefine …**  
ne modifieront pas le contenu des répertoires utilisés par les pools **default** et **srv-kvm**

Autrement dit : les fichiers contenus dans les répertoires **/home/lienrag/kvm/** et **/var/lib/libvirt/images/** ne seront pas supprimés.

* * *

```bash
virsh pool-destroy default
virsh pool-undefine default
virsh pool-destroy srv-kvm
virsh pool-undefine srv-kvm

virsh pool-define-as --name default --type dir --target /home/lienrag/kvm/
virsh pool-autostart default
virsh pool-build default
virsh pool-start default

```

* * *

**@Clochette** J’ai rajouté un **v** à **v** irsh dans la ligne de commande de ton message.

(saleté de [cacahuette fourbe !](https://www.debian-fr.org/t/impossible-dinstaller-php-sous-debian-9-1/74608/8?u=micp) 😉 )

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Novembre 18, 2017, 2:53 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/11 "2017-11-18T14:53:14Z")

</div>

> [@anon29980398](#):
>
> @Clochette J’ai rajouté un v à virsh dans la ligne de commande de ton message.
> 
> (saleté de cacahuette fourbe ! 😉 )

😉 je l’avais pas vue celle-la

---

<div class="post-metadata">

**Author:** ![Lien\_Rag](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/ba8739/32.png) [@Lien\_Rag](https://www.debian-fr.org/u/Lien_Rag)\
**Post date:** [Novembre 20, 2017, 8:32 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/12 "2017-11-20T08:32:43Z")

</div>

> [@anon29980398](#):
>
> virsh pool-define-as --name default --type dir --target /home/lienrag/kvm/  
> virsh pool-autostart default  
> virsh pool-build default  
> virsh pool-start default

OK merci.  
Résultat:  
root@debian:/home/lienrag# virsh pool-undefine default  
Pool default has been undefined  
Normal si j’ai bien compris ce que ton code veut faire.

```
root@debian:/home/lienrag# virsh pool-destroy srv-kvm
error: failed to get pool 'srv-kvm'
error: Storage pool not found: no storage pool with matching name 'srv-kvm'

```

Pourtant j’ai bien `virsh pool-create-as srv-kvm dir --target /home/lienrag/kvm/`  
dans mon historique et je ne vois pas quand je l’aurais supprimé…

```
root@debian:/home/lienrag# virsh pool-undefine srv-kvm
error: failed to get pool 'srv-kvm'
error: Storage pool not found: no storage pool with matching name 'srv-kvm'

```

Logique vue la première erreur rencontrée

```
root@debian:/home/lienrag# 
root@debian:/home/lienrag# virsh pool-define-as --name default --type dir --target /home/lienrag/kvm/
error: Failed to define pool default
error: operation failed: Storage source conflict with pool: 'SPool1LR'

```

Erreur qui a une certaine logique, mais comment je fais?  
Je change la destination du répertoire? C’est le plus simple mais mes machines seront créées dans le nouveau default ou dans SPool1LR?  
Ou je détruis SPool1LR?

```
root@debian:/home/lienrag# virsh pool-build default
error: failed to get pool 'default'
error: Storage pool not found: no storage pool with matching name 'default'

root@debian:/home/lienrag# virsh pool-autostart default
error: failed to get pool 'default'
error: Storage pool not found: no storage pool with matching name 'default'

```

Là encore logique vue l’erreur principale…

root@debian:/home/lienrag# virsh pool-start default  
error: failed to get pool ‹&nbsp;default&nbsp;›  
error: Storage pool not found: no storage pool with matching name ‹&nbsp;default&nbsp;›

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Novembre 20, 2017, 9:51 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/13 "2017-11-20T09:51:48Z")

</div>

Bonjour **Lien\_Rag**

Pour savoir où tu en es avec tes **pool** s,  
utilises les commandes :

```bash
virsh pool-list

```

et :

```bash
virsh pool-info nomDuPollQuiTintéresse

```

ou bien :

```bash
virsh pool-dumpxml nomDuPollQuiTintéresse

```

* * *

Le but est d’abord de «&nbsp;libérer&nbsp;» (s’il existe) le pool nommé **default**  
car c’est celui qui est utilisé par **virt-manager** par défaut pour y créer les fichiers images disques.

Mais apparemment, il n’existe pas :

> [@Lien\_Rag](#):
>
> error: Storage pool not found: no storage pool with matching name ‹&nbsp;default&nbsp;›

* * *

Je pensais que tu voulais que les fichiers images soient créés dans le répertoire **/home/lienrag/kvm/**  
mais on dirait que ce répertoire est déjà associé au poll nommé **SPool1LR**

> [@Lien\_Rag](#):
>
> root@debian:/home/lienrag#  
> root@debian:/home/lienrag# virsh pool-define-as --name default --type dir --target /home/lienrag/kvm/  
> error: Failed to define pool default  
> error: operation failed: Storage source conflict with pool: ‹&nbsp;SPool1LR&nbsp;›

* * *

Il faudrait donc désassocier le répertoire **/home/lienrag/kvm/** du pool **SPool1LR**

```bash
virsh pool-destroy SPool1LR
virsh pool-undefine SPool1LR

```

pour pouvoir ensuite associer le répertoire **/home/lienrag/kvm/** au pool **default**

```bash
virsh pool-define-as --name default --type dir --target /home/lienrag/kvm/

```

---

<div class="post-metadata">

**Author:** ![Lien\_Rag](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/ba8739/32.png) [@Lien\_Rag](https://www.debian-fr.org/u/Lien_Rag)\
**Post date:** [Novembre 20, 2017, 9:54 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/14 "2017-11-20T09:54:50Z")

</div>

```
root@debian:/home/lienrag# virsh pool-list
 Name State Autostart 
-------------------------------------------
 lienrag active yes       
 SPool1LR active yes       
 Téléchargements active yes   

root@debian:/home/lienrag# virsh pool-destroy SPool1LR
Pool SPool1LR destroyed

root@debian:/home/lienrag# virsh pool-undefine SPool1LR
Pool SPool1LR has been undefined

root@Idebian:/home/lienrag# virsh pool-define-as --name default --type dir --target /home/lienrag/kvm/
Pool default defined

```

Jusque-là tout va bien…

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Novembre 20, 2017, 9:56 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/15 "2017-11-20T09:56:47Z")

</div>

> [@Lien\_Rag](#):
>
> Jusque-là tout va bien…

Donc maintenant, si tu utilises l’interface graphique de **virt-manager** pour créer une nouvelle machine virtuelle, le fichier image disque de cette nouvelle machine virtuelle devrait être créé dans le répertoire :  
**/home/lienrag/kvm/**

---

<div class="post-metadata">

**Author:** ![Lien\_Rag](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/ba8739/32.png) [@Lien\_Rag](https://www.debian-fr.org/u/Lien_Rag)\
**Post date:** [Novembre 20, 2017, 10:34 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/16 "2017-11-20T10:34:23Z")

</div>

OK ça marche (il a juste fallu faire un `virsh pool-start default`, il faudra le refaire à chaque fois?), merci.

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Novembre 20, 2017, 11:06 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/17 "2017-11-20T11:06:07Z")

</div>

Effectivement, je n’avais pas recopié de mon premier message  
les trois lignes manquantes après le “define”

```auto
virsh pool-define-as --name default --type dir --target /home/lienrag/kvm/
virsh pool-autostart default
virsh pool-build default
virsh pool-start default

```

donc il faudra lancer une la ligne “autostart” pour que le pool soit automatiquement démarré à chaque boot suivant du système debian

* * *

Pour chaque commande de **virsh** , tu peux afficher l’aide la concernant  
en ajoutant **–help** à la suite de la commande

```auto
virsh pool-autostart --help

virsh pool-build --help

virsh pool-start --help

virsh --help

```

---

<div class="post-metadata">

**Author:** ![Lien\_Rag](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/ba8739/32.png) [@Lien\_Rag](https://www.debian-fr.org/u/Lien_Rag)\
**Post date:** [Novembre 20, 2017, 3:57 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/18 "2017-11-20T15:57:08Z")

</div>

OK ça ça marche.

Par contre pour revenir à la question de départ: grâce à l’aide de Clochette et de son lien magique vers cyberciti, j’ai pu faire des instantanés en ligne de commande avec virsh, et ils fonctionnent comme des snapshots bien élevés doivent le faire.

Mais pourquoi quand je regarde la liste des snapshots dans virt-manager ils n’apparaissent pas? Et pourquoi dans la liste des snapshots de virt-manager, j’en ai trois sur cinq qui disent qu’ils sont “en cours d’exécution” (alors que une seule VM, normalement le snapshot maître, est lancée)?

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Novembre 21, 2017, 8:05 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/19 "2017-11-21T08:05:49Z")

</div>

Peut-être en fermant **virt-manager** ce qui ne stoppe pas les machines virtuelles qui seraient en cours de fonctionnement,  
puis en démarrant à nouveau l’interface **virt-manager**

---

<div class="post-metadata">

**Author:** ![Lien\_Rag](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/ba8739/32.png) [@Lien\_Rag](https://www.debian-fr.org/u/Lien_Rag)\
**Post date:** [Novembre 21, 2017, 11:03 UTC](https://www.debian-fr.org/t/snapshots-kvm/75108/20 "2017-11-21T11:03:48Z")

</div>

Eteindre et redémarrer n’a pas fait apparaître le snapshot créé avec virsh dans la liste des snaphots affichés par virt-manager, non.  
Le snapshot créé avec virsh et ceux créés avec virt-manager apparaissent bien avec `virsh snapshot-list --domain debian9` par contre.

Pour déplacer les anciennes VM de leur place actuelle vers le nouveau pool en /home/lienrag/kvm il y a une solution?  
Je fais un cp à la main du fichier qcow2?

Ce que je trouve sur le net à ce sujet concerne apparemment la migration d’un serveur à un autre (c’est un cas qui se produira quand mes VMs seront entièrement fonctionnelles, mais pas tout de suite).  
Le plus simple à comprendre est là:  
[https://access.redhat.com/documentation/en-us/red\_hat\_enterprise\_linux/6/html/virtualization\_administration\_guide/sect-virtualization-kvm\_live\_migration-live\_kvm\_migration\_with\_virsh](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/virtualization_administration_guide/sect-virtualization-kvm_live_migration-live_kvm_migration_with_virsh)

Mais je ne comprends pas malgré tout si `virsh migrate debian9 localhost/home/lienrag/kvm` devrait marcher (j’obtiens `error: no connection driver available for localhost/home/lienrag/kvm` et pareil quand je fais `virsh migrate debian9 /home/lienrag/kvm`) ou non (et dans ce cas quoi utiliser).

debian9 étant bien sûr le nom de ma machine.  
Le nom de fichier est lui /var/lib/libvirt/images/debian9.qcow2

[Page suivante](https://www.debian-fr.org/t/snapshots-kvm/75108.md?page=2)
