Snapshot temporaires

Niveau : Star Star Star Empty Empty
Résumé : lvm snapshot

J'ai déjà fait des articles sur LVM. Aujourd'hui parlons de snapshot en ram et d'une nouveauté du noyau 2.6.33, le snapshot-merge.

Snapshot en RAM

Tout comme il est possible de faire un LV en RAM, il est possible de faire un snapshot en RAM.

Pour faire un LV (Logical Volume) en RAM : il suffit d'utiliser un ramdisk comme PV(Physical Volume).

$ pvcreate /dev/rd0
$ vgcreate myvg /dev/rd0
$ lvcreate -l 100%FREE -n mylv myvg

Pour faire un snapshot en RAM :

$ pvcreate /dev/rd0
$ vgextend myvg /dev/rd0
$ lvcreate -L 100M -s -n mysnapshot /dev/myvg/mylv

Mais pour quoi faire ? Pour la même chose qu'un livecd : transformer un périphérique en lecture seule en périphérique lecture-écriture qui perdra toutes ses modifications au prochain reboot.

Seul inconvénient, les ramdisk ont une taille prédéfinie au démarrage du noyau (ramdisk_size=).

Mais j'ai gardé le meilleur pour la suite.

Snapshot de test

Maintenant qu'une nouvelle fonctionnalité a été ajoutée au noyau vous allez enfin pouvoir faire les snapshot dont vous aviez toujours rêvé.

Avant il y avait le snapshot qu'on pouvait créer, puis détruire. Selon que l'on travaillait sur le snapshot ou sur la partition originale la destruction nous ramenait à la nouvelle version ou à l'ancienne sans possibilité de choisir entre les 2 une fois le premier octet écrit. Maintenant avec le snapshot merge, il est possible de supprimer un snapshot en réimportant les données qu'il contenait dans la partition originale. Ce qui veut dire qu'on peut choisir.

Prenons un exemple parce que là j'ai franchement mal expliqué.

Toto est un sysadmin prudent, il ne fait jamais de mise à jour du système sans être sûr que ça ne posera pas de problème. Aujourd'hui on lui demande de faire une mise à jour importante, mais il ne sait pas quelles en seront les conséquences. En bon sysadmin il a déjà un noyau à jour et par chance son système est tout en LVM. Hop une synchro (rsync), un snapshot (ou plusieurs, il a bien séparé ses partitions ...), on prévient que ca peut casser et c'est parti, upgrade !

Maintenant 2 choix sont possibles :

  • Ça marche ! Alors il suffit de supprimer le snapshot et on n'entendra plus parler de l'ancienne version.
  • Ça merde ! Hop un petit snapshot-merge et on revient à l'ancienne version comme si de rien n'était. (lvconvert --merge)

Et voilà ! Maintenant vous pouvez faire vos mises à jour en toute sérénité ! En fin presque : on parle de la racine et donc de nombreux fichiers en cours d'utilisation sur la partition en question, ce qui veut dire reboot pour pouvoir terminer le merge. Mais le merge peut quand même se faire en live (vous pouvez déjà utiliser la partition pendant que le merge se termine en arrière plan). Il est donc possible de lancer la commande de merge, modifier son fstab si besoin et de rebooter.

Enfin n'oubliez pas une chose, les snapshot lvm ne fonctionnent qu'au niveau block device, c'est-à-dire en dessous du système de fichiers. C'est comme si vous enleviez le disque sans éteindre la machine, il se peut que le système de fichier ne soit pas au mieux de sa forme au moment ou vous le lancez, ayez au moins un système journalisé pour éviter les surprises et jouez du sync pour un peu plus de garanties.

Rien ne vaudra jamais les snapshot au niveau du système de fichier comme chez ZFS ou le futur BTRFS.

Tags:, ,
Vus : 339
Publié par Peck : 100