Logo Khaganat

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:lvm_snapshot [2017/07/19 10:20] – [Alternative : copier le clone sur un autre serveur] Mise à jour zatalyzfr:lvm_snapshot [2023/06/19 07:42] (Version actuelle) – Erreur pour refaire un snapshot zatalyz
Ligne 97: Ligne 97:
  
 Pour réduire à 50G par exemple : Pour réduire à 50G par exemple :
-  resize2fs /nom/de/la/partition 500G+  resize2fs /nom/de/la/partition 50G
  
 Utiliser ''lvresize'' (dans l'exemple, on réduit à 100Go) : Utiliser ''lvresize'' (dans l'exemple, on réduit à 100Go) :
   lvresize -r -L 100g /dev/mapper/svg-ca   lvresize -r -L 100g /dev/mapper/svg-ca
  
-En théorie, avec l'options -r, pas besoin de faire ''resize2fs'' avant, il fera le redimmensionnement du système de fichier puis de la partition. L'option -L indique la taille finale que l'on souhaite obtenir.+En théorie, avec l'options -r, pas besoin de faire ''resize2fs'' avant, ''lvresize'' s'occupera de redimensionner le système de fichier puis ensuite la partition. L'option -L indique la taille finale que l'on souhaite obtenir.
  
  
Ligne 108: Ligne 108:
 Pourquoi sur "mapper" Pourquoi sur "mapper"
  
-> Avec LVM en version 1, c'est bien /dev/mvg/Vol1 qui aurait été affiché. Depuis la version 2, LVM utilise le périphérique mapper, ce qui permet pas mal de choses (comme chiffrer les volumes logiques, etc.). Pour simplifier, disons que ces deux notations « /dev/mvg/Vol1 » et « /dev/mapper/mvg-Vol1 » sont synonymes. Dans la pratique, il est conseillé quand même d'utiliser plutôt la forme « /dev/mvg/Vol1 », certaines commandes ne passeront pas autrement. \\ //Source : [[https://doc.ubuntu-fr.org/lvm#systeme_de_fichiers|Ubuntu]]//+> Avec LVM en version 1, c'est bien /dev/mvg/Vol1 qui aurait été affiché. Depuis la version 2, LVM utilise le périphérique mapper, ce qui permet pas mal de choses (comme chiffrer les volumes logiques, etc). Pour simplifier, disons que ces deux notations « /dev/mvg/Vol1 » et « /dev/mapper/mvg-Vol1 » sont synonymes. Dans la pratique, il est conseillé quand même d'utiliser plutôt la forme « /dev/mvg/Vol1 », certaines commandes ne passeront pas autrement. \\ //Source : [[https://doc.ubuntu-fr.org/lvm#systeme_de_fichiers|Ubuntu]]//
 </WRAP> </WRAP>
  
Ligne 128: Ligne 128:
 </WRAP> </WRAP>
  
-Avant de créer un snapshot, il faut s'assurer qu'il aura ce qu'il faut d'espace. Pas besoin de le faire aussi gros que le volume d'origine ! Le plus simple est de vérifier la taille du volume d'origine avec ''df'' ou ''ncdu'' et de compter un peu plus de place.+Avant de créer un snapshot, il faut s'assurer qu'il aura ce qu'il faut d'espace. Pas besoin de le faire aussi gros que le volume d'origine ! Le plus simple est de vérifier la taille du volume d'origine avec ''df'' ou ''ncdu'' (depuis la VM, pas depuis l'hyperviseur) et de compter un peu plus de place.
  
 <code># df -h <code># df -h
Ligne 135: Ligne 135:
 </code> </code>
  
-Donc, ici, prévoir un snapshot de 5Go sera largement assez pour démarrer.+Donc, ici, prévoir un snapshot de 10Go sera largement assez pour démarrer.
  
-  lvcreate -L 5g -s -n lv_test_20110617 /dev/volume_groupe/lv_test+  lvcreate -L 10g -s -n lv_test_20110617 /dev/volume_groupe/lv_test
  
 Va créer un snapshot du LV "lv_test" à la taille de 10Go qui va avoir comme nom "lv_test_20110617". Attention, la taille d'utilisation du snapshot évolue avec l'utilisation. Si ce snapshot se retrouve rempli à 100%, il devient alors inutilisable (état "INACTIVE") mais pas d’inquiétude car il n'y a pas d’impact pour le LV d'origine((Source : [[https://doc.ubuntu-fr.org/lvm#snapshot]])). <wrap important> Va créer un snapshot du LV "lv_test" à la taille de 10Go qui va avoir comme nom "lv_test_20110617". Attention, la taille d'utilisation du snapshot évolue avec l'utilisation. Si ce snapshot se retrouve rempli à 100%, il devient alors inutilisable (état "INACTIVE") mais pas d’inquiétude car il n'y a pas d’impact pour le LV d'origine((Source : [[https://doc.ubuntu-fr.org/lvm#snapshot]])). <wrap important>
Ligne 144: Ligne 144:
 Lien : https://wiki.archlinux.org/index.php/LVM#Snapshots Lien : https://wiki.archlinux.org/index.php/LVM#Snapshots
  
-Lors de la création d'un volume logique, l'option -s créé un snapshot d'un volume existant. Il est conseillé de lui donner une taille de 10% du disque initial+Lors de la création d'un volume logique, l'option -s créé un snapshot d'un volume existant. 
  
 Un snapshot conserve toutes les modifications apportées au LV d'origine, afin de pouvoir les rejouer à l'envers, soit à la volée si on utilise le snapshot comme périphérique, soit lors d'un merge. Ansi il est vide au départ et se remplit au fur et à mesure que des modifications sont apportées au LV d'origine. Un snapshot conserve toutes les modifications apportées au LV d'origine, afin de pouvoir les rejouer à l'envers, soit à la volée si on utilise le snapshot comme périphérique, soit lors d'un merge. Ansi il est vide au départ et se remplit au fur et à mesure que des modifications sont apportées au LV d'origine.
 +
 +<WRAP center round tip 90%>
 +Si le volume logique est utilisé pour une VM, il vaut mieux éteindre la VM, faire le snapshot, puis rallumer la VM. Cela évitera d'avoir des incohérences lié à ce qui est stocké dans la RAM, le cache disque etc... De même, si une écriture se fait durant le snapshot, cela pourrait amener des incohérences. 
 +
 +Cela reste un risque faible (le snapshot est relativement rapide) mais éteindre la VM évitera de potentiels problèmes.
 +</WRAP>
  
  
Ligne 247: Ligne 253:
  
  
-Ensuite, on vérifie que nos deux serveurs peuvent [[fr:connexion_serveur_admin|communiquer via ssh]], on installe ''pv'' si ce n'est pas fait (cela permet de suivre la progression de l'échange). +Ensuite, on vérifie que nos deux serveurs peuvent [[fr:ssh#se_connecter_sans_mot_de_passe_methode_non_securisee|communiquer via ssh]], on installe ''pv'' si ce n'est pas fait (cela permet de suivre la progression de l'échange). 
  
 La commande suivante est à exécuter depuis le serveur primaire vers le serveur secondaire (toujours sous screen ou tmux pour qu'une déconnexion ssh ne casse pas la commande) : La commande suivante est à exécuter depuis le serveur primaire vers le serveur secondaire (toujours sous screen ou tmux pour qu'une déconnexion ssh ne casse pas la commande) :
Ligne 270: Ligne 276:
  
 Le snapshot, devenu inutile, est détruit dans l'opération. Le snapshot, devenu inutile, est détruit dans l'opération.
 +
 +
 +==== Problèmes divers ====
 +=== LVS liste des disques qui ont disparus ===
 +Cas typique : vous voulez lancer une VM avec Xen et la réponse ressemble à ça :
 +
 +<code># xl create /etc/xen/etherpad2.cfg
 +Parsing config from /etc/xen/etherpad2.cfg
 +libxl: error: libxl_device.c:381:libxl__device_disk_set_backend: Disk vdev=xvda2 failed to stat: /dev/nuxru/etherpad2-disk: No such file or directory
 +libxl: error: libxl_create.c:946:initiate_domain_create: Unable to set disk defaults for disk 0
 +libxl: error: libxl.c:1575:libxl__destroy_domid: non-existant domain 2
 +libxl: error: libxl.c:1534:domain_destroy_callback: unable to destroy guest with domid 2
 +libxl: error: libxl.c:1463:domain_destroy_cb: destruction of domain 2 failed
 +</code>
 +
 +La commande ''lvs'' liste pourtant bien ceci :
 +<code>  LV                        VG    Attr       LSize   Pool Origin         Data%  Meta%  Move Log Cpy%Sync Convert
 +  etherpad2-disk            nuxru owi-aos---  25.00g                                                            
 +  etherpad2-swap            nuxru -wi-a-----   1.00g                                                            
 +  etherpad2_snap_2019-05-07 nuxru swi-a-s---  25.00g      etherpad2-disk 79.15                                  
 +  etherpad2_snap_2020-02-20 nuxru swi-a-s---  25.00g      etherpad2-disk 0.00 
 +</code>
 +
 +(Ici notre groupe de volumes logique s'appelle nuxru, et la VM "etherpad" ne répond plus).
 +
 +Pourtant, un ''ls'' sur le groupe logique montre qu'il manque des disques :
 +
 +<code># ls -l /dev/nuxru/
 +total 0
 +lrwxrwxrwx 1 root root 7 Feb 20 11:19 etherpad2-swap -> ../dm-9
 +</code>
 +Il y a encore le swap... mais pas le disque ou les snapshots.
 +
 +Ici, la commande ''dmsetup ls'' est notre alliée :
 +
 +<code># dmsetup ls
 +nuxru-etherpad2_snap_2020--02--20-cow (254:14)
 +nuxru-etherpad2--disk (254:11)
 +nuxru-etherpad2_snap_2020--02--20 (254:15)
 +nuxru-etherpad2_snap_2019--05--07 (254:13)
 +nuxru-etherpad2_snap_2019--05--07-cow (254:12)
 +nuxru-etherpad2--disk-real (254:10)
 +nuxru-etherpad2--swap (254:9)
 +</code>
 +
 +<WRAP center round info 60%>
 +''dmsetup ls'' va lister des volumes utilisés et à quoi ils correspondent. On trouve aussi ces volumes quand on fait ''ls /dev/'', tout ce qui commence par "dm-" : ce sont nos volumes utilisés par LVM. 
 +</WRAP>
 +
 +Le deuxième chiffre entre parenthèse correspond à celui du "dm" qu'on cherche. Par exemple, ici, on cherche où est passé la partie "disk" : c'est //nuxru-etherpad2--disk (254:**11**)// ce qui correspond à ///dev/dm-**11**//
 +
 +En cas de doute, on peut monter temporairement le disque en question :
 +<code>mkdir /media/test
 +mount /dev/dm-11 /media/test
 +ls /media/test/home/etherpad
 +umount /media/test</code>
 +
 +Il reste à refaire le lien symbolique (reprenez bien le terme listé dans lvs) :
 +<code>
 +cd /dev/nuxru/
 +ln -s ../dm-11 etherpad2-disk</code>
 +
 +Il faut aussi remettre les snapshots en place, qui ont sauté aussi à cette occasion. Ici, il y a une subtilité, car nous avons deux dm qui peuvent correspondre pour la même date (attention c'est dans le désordre quand tout est listé) :
 +<code>nuxru-etherpad2_snap_2020--02--20-cow (254:14)
 +nuxru-etherpad2_snap_2020--02--20 (254:15)
 +nuxru-etherpad2_snap_2019--05--07 (254:13)
 +nuxru-etherpad2_snap_2019--05--07-cow (254:12)</code>
 +
 +Il ne faut pas faire un lien vers les volumes se terminant en ''-cow'', mais sur les autres (et toujours faire attention à la façon dont c'est noté !). 
 +<code>
 +ln -s ../dm-15 etherpad2_snap_2020-02-20
 +ln -s ../dm-13 etherpad2_snap_2019-05-07
 +</code>
 +
 +Après ça, la VM peut être relancée.
 +
 +<WRAP center round important 60%>
 +Attention, si le lien vers un volume logique a sauté, ce ne sera probablement pas le seul. Vérifier la concordance entre tous les volumes listés dans ''lvs'' et ceux réellement liés dans ''ls -l /dev/nuxru''.
 +</WRAP>
 +
 +Si jamais vous avez des disques listés comme "real", comme dans l'exemple ci-dessous, liez vers le dm sans ce "real" :
 +
 +<code># dmsetup ls
 +nuxru-kuckla--disk (254:4)
 +nuxru-kuckla--disk-real (254:3)
 +nuxru-kuckla--swap (254:2)</code>
 +
 +<code>#ls -l
 +total 0
 +lrwxrwxrwx 1 root root 7 Feb 20 11:19 kuckla-disk -> ../dm-4
 +lrwxrwxrwx 1 root root 7 Feb 20 11:19 kuckla-swap -> ../dm-2</code>
 +
 +Donc, s'il y avait besoin, ce serait ''ln -s ../dm-4 kuckla-disk'' (et on oublie le dm-3).
 +
 +=== Impossible de refaire un snapshot ===
 +Après un merge, et malgré un reboot, il y a parfois un souci, et l'erreur suivante apparait lorsqu'on tente de refaire un snapshot du volume : 
 +  Snapshots of an origin that has a merging snapshot are not supported.
 +
 +''lvs'' monntre un pourcentage de "data" sur le volume qu'on tente de faire en snapshot, alors que ce n'est pas un snaphot. 
 +
 +Cela viendrait d'une incohérence dans le potage. Pour corriger ça, une petite mise à jour des données de LVM via 
 +  lvchange --refresh <<VG_NAME>>
 +
 +Cette fois ''lvs'' va montrer les volumes correctement, et le snapshot est possible.
  
  
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/lvm_snapshot.1500452422.txt.gz · Dernière modification : 2021/12/03 19:18 (modification externe)

Licences Mentions légales Accueil du site Contact