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
Prochaine révisionLes deux révisions suivantes
fr:lvm_snapshot [2017/07/09 22:41] – [Copie du LV] zatalyzfr:lvm_snapshot [2018/04/15 23:06] – [lvresize : augmenter ou réduire] /* ortho */ merlin8282
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 229: Ligne 235:
 Dans l'exemple ici, on va cloner liria pour en faire spofu, et envoyer spofu sur un autre serveur.  Dans l'exemple ici, on va cloner liria pour en faire spofu, et envoyer spofu sur un autre serveur. 
  
-On commence par éteindre liria, faire son snapshot, puis copier ce dernier (sur le même disque dur) avant de relancer liria. +On commence par éteindre liria, faire son snapshot, puis copier ce dernier (sur le même disque dur) avant de relancer liria. Copiez avec ''dd'' avant de relancer liria, sinon le snapshot va enregistrer les modifications et c'est le bazar. Copiez tout le volume ; même si, techniquement, un snapshot plus petit (avec uniquement les données écrites) devrait aussi marcher, nos tests n'ont pas été concluants. Pensez bien à créer le volume logique sur le serveur de destination //avant// de commencer le transfert, sinon il peut y avoir des erreurs pour "manque de place" (même s'il a y a la place). 
 + 
 +Sur le serveur de destination (nuxru), on prépare l'arrivée : 
 +  screen -DR 
 +  lvcreate -L 50G -n spofu-disk groska 
 +  lvcreate -L 4G -n spofu-swap groska 
 +  mkswap /dev/nuxru/spofu-swap 
 + 
 +Sur le serveur d'origine (groska) : 
 +  screen -DR
   xl shutdown lirria   xl shutdown lirria
-  lvcreate -s -L 10G -n liria-disk-snap /dev/groska/liria-disk +  lvcreate -s -L 50G -n liria-disk-snap /dev/groska/liria-disk 
-  lvcreate -L 100G -n spofu-disk groska+  lvcreate -L 50G -n spofu-disk groska
   dd if=/dev/groska/liria-disk-snap of=/dev/groska/spofu-disk   dd if=/dev/groska/liria-disk-snap of=/dev/groska/spofu-disk
   xl create /etc/xen/liria.cfg   xl create /etc/xen/liria.cfg
  
-Copiez avec dd avant de relancer liria, sinon le snapshot va enregistrer les modifications et c'est le bazar. À noter, vous pouvez du coup créer un snapshot plus petit que le LV de base, du moment qu'il copie tout ce qui est dessus ; le snapshot n'aura pas le temps de se remplir et ça accélérera le transfert.  
  
-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). On prépare sur le serveur d'accueil une place (on ne peux pas directement copier dans /dev/, ça met du bazar), puis on envoie. La commande suivante est à exécuter depuis le serveur primaire vers le serveur secondaire :+ 
 +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) :
   dd if=/dev/groska/spofu-disk bs=4096 | pv | ssh root@192.168.0.20 dd of=/dev/nuxru/spofu-disk bs=4096   dd if=/dev/groska/spofu-disk bs=4096 | pv | ssh root@192.168.0.20 dd of=/dev/nuxru/spofu-disk bs=4096
  
Ligne 245: Ligne 262:
   md5sum /dev/nuxru/spofu-disk   md5sum /dev/nuxru/spofu-disk
  
-Une fois transféré, on peut étendre la VM (voir [[fr:lvm_snapshot#lvextendaugmenter|plus haut]]) afin d'avoir de la place ensuite. +Le swap a été créé plus haut ; il suffit de copier le fichier ''/etc/xen/liria.cfg'' sur le nouveau serveur, sous le nom ''spofu.cfg'', en adaptant le chemin pour les partitions et, si besoin, le réseau. Lancer ensuite la vm. 
 +  xl create -c /etc/xen/spofu.cfg
  
 ==== Autre usage des snapshots : utilisation du merge ==== ==== Autre usage des snapshots : utilisation du merge ====
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/lvm_snapshot.txt · Dernière modification : 2023/06/19 07:42 de zatalyz

Licences Mentions légales Accueil du site Contact