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 | ||
fr:lvm_snapshot [2016/12/23 20:43] – [Créer/supprimer un volume] zatalyz | fr:lvm_snapshot [2023/06/19 07:42] (Version actuelle) – Erreur pour refaire un snapshot zatalyz | ||
---|---|---|---|
Ligne 34: | Ligne 34: | ||
Si le volume est à utiliser pour du stockage, il faut le formater et lui attribuer un système de fichier : | Si le volume est à utiliser pour du stockage, il faut le formater et lui attribuer un système de fichier : | ||
mkfs.ext4 / | mkfs.ext4 / | ||
+ | |||
+ | Vérifier que tout va bien en la montant : | ||
+ | |||
+ | mkdir /mnt/lv | ||
+ | mount / | ||
+ | |||
+ | L' | ||
+ | |||
+ | / | ||
Pour supprimer un volume, s' | Pour supprimer un volume, s' | ||
Ligne 46: | Ligne 55: | ||
Il faut que la taille du volume soit en rapport avec la table de partition du volume. | Il faut que la taille du volume soit en rapport avec la table de partition du volume. | ||
- | ==== lvextend ==== | + | ==== lvextend |
On commence par augmenter la taille du volume. On peut soit dire combien on veut ajouter ('' | On commence par augmenter la taille du volume. On peut soit dire combien on veut ajouter ('' | ||
Ligne 76: | Ligne 85: | ||
* http:// | * http:// | ||
- | ==== lvresize ==== | + | ==== lvresize |
- | <WRAP center round important 60%> | + | '' |
- | Bien que la proposition suivante soit dans la doc d'Ubuntu, | + | |
- | '' | + | Il faut d'abord réduire |
- | </ | + | |
+ | Si la partition est en ext2, 3 ou 4, on utilise resize2fs. | ||
+ | |||
+ | Pour connaître la taille minimale de la partition : | ||
+ | resize2fs -P / | ||
+ | |||
+ | Pour réduire à 50G par exemple : | ||
+ | resize2fs / | ||
Utiliser '' | Utiliser '' | ||
- | lvresize -L 100g / | + | lvresize |
+ | |||
+ | En théorie, avec l' | ||
<WRAP center round important 90%> | <WRAP center round important 90%> | ||
Pourquoi sur " | Pourquoi sur " | ||
- | > Avec LVM en version 1, c'est bien / | + | > Avec LVM en version 1, c'est bien / |
</ | </ | ||
Ligne 111: | Ligne 128: | ||
</ | </ | ||
- | Avant de créer un snapshot, il faut s' | + | Avant de créer un snapshot, il faut s' |
< | < | ||
Ligne 118: | Ligne 135: | ||
</ | </ | ||
- | 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 / | + | lvcreate -L 10g -s -n lv_test_20110617 / |
Va créer un snapshot du LV " | Va créer un snapshot du LV " | ||
Ligne 127: | Ligne 144: | ||
Lien : https:// | Lien : https:// | ||
- | Lors de la création d'un volume logique, l' | + | Lors de la création d'un volume logique, l' |
Un snapshot conserve toutes les modifications apportées au LV d' | Un snapshot conserve toutes les modifications apportées au LV d' | ||
+ | |||
+ | <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' | ||
+ | |||
+ | Cela reste un risque faible (le snapshot est relativement rapide) mais éteindre la VM évitera de potentiels problèmes. | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Utilisation du snapshot pour cloner une VM ==== | ||
Ici je vais expliquer comment dupliquer une VM en utilisant des snapshots pour réduire le temps d' | Ici je vais expliquer comment dupliquer une VM en utilisant des snapshots pour réduire le temps d' | ||
- | ==== Création du snapshot | + | === Création du snapshot === |
La création du snapshot sert pour deux raisons : | La création du snapshot sert pour deux raisons : | ||
Ligne 148: | Ligne 174: | ||
La création du snapshot prenant quelques secondes, la VM est arrêté moins d'une minute. | La création du snapshot prenant quelques secondes, la VM est arrêté moins d'une minute. | ||
- | ==== Copie du LV ==== | + | === Copie du LV === |
Le snapshot contenant l' | Le snapshot contenant l' | ||
Ligne 166: | Ligne 192: | ||
La dernière commande étant très longue, on peut aller faire autre chose. | La dernière commande étant très longue, on peut aller faire autre chose. | ||
- | ==== Création de la VM ==== | + | === Création de la VM === |
On va reprendre la configuration et les données de lirria, en modifiant ce qui est nécessaire, | On va reprendre la configuration et les données de lirria, en modifiant ce qui est nécessaire, | ||
Ligne 200: | Ligne 226: | ||
</ | </ | ||
+ | ==== Alternative : copier le clone sur un autre serveur ==== | ||
+ | <WRAP center round important 60%> | ||
+ | En cours de test. Copier une VM est très long, ce n'est pas forcément la façon la plus rapide de procéder, mais parfois, c'est utile. | ||
+ | </ | ||
+ | |||
+ | Une fois le snapshot créé, le copier (= en faire un clone) pour pouvoir relancer la VM de base rapidement. | ||
+ | |||
+ | Dans l' | ||
+ | |||
+ | On commence par éteindre liria, faire son snapshot, puis copier ce dernier (sur le même disque dur) avant de relancer liria. Copiez avec '' | ||
+ | |||
+ | Sur le serveur de destination (nuxru), on prépare l' | ||
+ | screen -DR | ||
+ | lvcreate -L 50G -n spofu-disk groska | ||
+ | lvcreate -L 4G -n spofu-swap groska | ||
+ | mkswap / | ||
+ | |||
+ | Sur le serveur d' | ||
+ | screen -DR | ||
+ | xl shutdown lirria | ||
+ | lvcreate -s -L 50G -n liria-disk-snap / | ||
+ | lvcreate -L 50G -n spofu-disk groska | ||
+ | dd if=/ | ||
+ | xl create / | ||
+ | |||
+ | |||
+ | |||
+ | Ensuite, on vérifie que nos deux serveurs peuvent [[fr: | ||
+ | |||
+ | 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=/ | ||
+ | |||
+ | Il faut ensuite vérifier que le transfert s'est bien passé et donc comparer le checksum des deux volumes : | ||
+ | md5sum / | ||
+ | md5sum / | ||
+ | |||
+ | Le swap a été créé plus haut ; il suffit de copier le fichier ''/ | ||
+ | xl create -c / | ||
==== Autre usage des snapshots : utilisation du merge ==== | ==== Autre usage des snapshots : utilisation du merge ==== | ||
Ligne 212: | Ligne 276: | ||
Le snapshot, devenu inutile, est détruit dans l' | Le snapshot, devenu inutile, est détruit dans l' | ||
+ | |||
+ | |||
+ | ==== 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 : | ||
+ | |||
+ | < | ||
+ | Parsing config from / | ||
+ | libxl: error: libxl_device.c: | ||
+ | libxl: error: libxl_create.c: | ||
+ | libxl: error: libxl.c: | ||
+ | libxl: error: libxl.c: | ||
+ | libxl: error: libxl.c: | ||
+ | </ | ||
+ | |||
+ | La commande '' | ||
+ | < | ||
+ | etherpad2-disk | ||
+ | etherpad2-swap | ||
+ | etherpad2_snap_2019-05-07 nuxru swi-a-s--- | ||
+ | etherpad2_snap_2020-02-20 nuxru swi-a-s--- | ||
+ | </ | ||
+ | |||
+ | (Ici notre groupe de volumes logique s' | ||
+ | |||
+ | Pourtant, un '' | ||
+ | |||
+ | < | ||
+ | total 0 | ||
+ | lrwxrwxrwx 1 root root 7 Feb 20 11:19 etherpad2-swap -> ../dm-9 | ||
+ | </ | ||
+ | Il y a encore le swap... mais pas le disque ou les snapshots. | ||
+ | |||
+ | Ici, la commande '' | ||
+ | |||
+ | < | ||
+ | nuxru-etherpad2_snap_2020--02--20-cow (254: | ||
+ | nuxru-etherpad2--disk (254: | ||
+ | nuxru-etherpad2_snap_2020--02--20 (254: | ||
+ | nuxru-etherpad2_snap_2019--05--07 (254: | ||
+ | nuxru-etherpad2_snap_2019--05--07-cow (254: | ||
+ | nuxru-etherpad2--disk-real (254: | ||
+ | nuxru-etherpad2--swap (254: | ||
+ | </ | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | '' | ||
+ | </ | ||
+ | |||
+ | Le deuxième chiffre entre parenthèse correspond à celui du " | ||
+ | |||
+ | En cas de doute, on peut monter temporairement le disque en question : | ||
+ | < | ||
+ | mount /dev/dm-11 /media/test | ||
+ | ls / | ||
+ | umount / | ||
+ | |||
+ | Il reste à refaire le lien symbolique (reprenez bien le terme listé dans lvs) : | ||
+ | < | ||
+ | cd /dev/nuxru/ | ||
+ | ln -s ../dm-11 etherpad2-disk</ | ||
+ | |||
+ | 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é) : | ||
+ | < | ||
+ | nuxru-etherpad2_snap_2020--02--20 (254: | ||
+ | nuxru-etherpad2_snap_2019--05--07 (254: | ||
+ | nuxru-etherpad2_snap_2019--05--07-cow (254: | ||
+ | |||
+ | Il ne faut pas faire un lien vers les volumes se terminant en '' | ||
+ | < | ||
+ | ln -s ../dm-15 etherpad2_snap_2020-02-20 | ||
+ | ln -s ../dm-13 etherpad2_snap_2019-05-07 | ||
+ | </ | ||
+ | |||
+ | 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 '' | ||
+ | </ | ||
+ | |||
+ | Si jamais vous avez des disques listés comme " | ||
+ | |||
+ | < | ||
+ | nuxru-kuckla--disk (254: | ||
+ | nuxru-kuckla--disk-real (254: | ||
+ | nuxru-kuckla--swap (254: | ||
+ | |||
+ | < | ||
+ | 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 -> ../ | ||
+ | |||
+ | Donc, s'il y avait besoin, ce serait '' | ||
+ | |||
+ | === Impossible de refaire un snapshot === | ||
+ | Après un merge, et malgré un reboot, il y a parfois un souci, et l' | ||
+ | Snapshots of an origin that has a merging snapshot are not supported. | ||
+ | |||
+ | '' | ||
+ | |||
+ | Cela viendrait d'une incohérence dans le potage. Pour corriger ça, une petite mise à jour des données de LVM via | ||
+ | lvchange --refresh << | ||
+ | |||
+ | Cette fois '' | ||