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édentes Révision précédente
Prochaine révision
Révision précédente
lvm [Le 16/06/2021, 11:43]
zococo [Agrandissement]
lvm [Le 22/08/2023, 15:31] (Version actuelle)
193.247.130.253 [Système de fichiers]
Ligne 8: Ligne 8:
  
 **LVM** (Logical Volume Manager, ou //​gestionnaire de volumes logiques// en français) permet la création et la gestion de volumes logiques sous Linux. L'​utilisation de volumes logiques remplace en quelque sorte le partitionnement des disques. C'est un système beaucoup plus souple, qui permet par exemple de diminuer la taille d'un système de fichier pour pouvoir en agrandir un autre, sans se préoccuper de leur emplacement sur le disque.\\ **LVM** (Logical Volume Manager, ou //​gestionnaire de volumes logiques// en français) permet la création et la gestion de volumes logiques sous Linux. L'​utilisation de volumes logiques remplace en quelque sorte le partitionnement des disques. C'est un système beaucoup plus souple, qui permet par exemple de diminuer la taille d'un système de fichier pour pouvoir en agrandir un autre, sans se préoccuper de leur emplacement sur le disque.\\
-Depuis Intrepid, il existe le paquet [[apt://​system-config-lvm|system-config-lvm]] dans les dépôts Universe, qui propose une interface graphique. 
- 
  
 +Il permet notamment de redimensionner les partitions de disques sans reformatage.
 +Il permet également de rajouter des disques à la volée.\\
 ==== Avantages de LVM ==== ==== Avantages de LVM ====
  
Ligne 30: Ligne 30:
 ===== Installation ===== ===== Installation =====
  
-[[gestionnaire_de_paquets|Installez]] le paquet [[apt://lvm2|lvm2]].+[[gestionnaire_de_paquets|Installez]] le paquet [[apt>lvm2|lvm2]].
 Avant d'​utiliser LVM, il faut comprendre un peu de vocabulaire. Ne vous inquiétez pas si tout n'est pas encore très clair, ça viendra au fur et à mesure, en passant à la pratique. Avant d'​utiliser LVM, il faut comprendre un peu de vocabulaire. Ne vous inquiétez pas si tout n'est pas encore très clair, ça viendra au fur et à mesure, en passant à la pratique.
  
Ligne 90: Ligne 90:
 pvscan (8)           - scan all disks for physical volumes pvscan (8)           - scan all disks for physical volumes
 </​code>​ </​code>​
 +
 +Il faudra donc créer (plutôt initier) notre volume physique par la commande :
 +<​code>​
 +pvcreate /dev/sdc1
 +</​code>​
 +
 +Cela nous permettra de l'​utiliser dans notre groupe de volume
 +
 +//Noter que la création d'un volume physique avec un disque complet comme ''/​dev/​sdc''​ n'est pas recommandé : [[https://​tldp.org/​HOWTO/​LVM-HOWTO/​initdisks.html]]//​
 ==== Groupe de volumes ==== ==== Groupe de volumes ====
  
Ligne 194: Ligne 203:
 > Pourquoi est-il écrit ''/​dev/​mapper/​mvg-Vol1''​ et non ''/​dev/​mvg/​Vol1''​ ? > Pourquoi est-il écrit ''/​dev/​mapper/​mvg-Vol1''​ et non ''/​dev/​mvg/​Vol1''​ ?
  
-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.+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/mappfer/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.
  
  
Ligne 214: Ligne 223:
  
 ==== Volume physique ==== ==== Volume physique ====
 +=== Agrandissement ===
  
 Imaginons maintenant que notre groupe de volume (mvg) n'ait plus suffisamment d'​espace libre. On souhaite donc lui rajouter un volume physique afin de rajouter de l'​espace libre. Ça tombe bien, on dispose d'un volume physique sdc2 que l'on va pouvoir ajouter à mvg : Imaginons maintenant que notre groupe de volume (mvg) n'ait plus suffisamment d'​espace libre. On souhaite donc lui rajouter un volume physique afin de rajouter de l'​espace libre. Ça tombe bien, on dispose d'un volume physique sdc2 que l'on va pouvoir ajouter à mvg :
Ligne 224: Ligne 234:
  
   vgextend mvg /dev/sdc2   vgextend mvg /dev/sdc2
 +  ​
 +=== Rétrécissement ===
 +Imaginons maintenant que la partition Boot soit devenue trop petite et que tout le reste du disque qui contient cette partition soit défini comme une partition ​ utilisée en LVM (/dev/sda2 dans l'​exemple). Il sera alors nécessaire de diminuer l'​espace ​ physique de ce groupe de volume (mvg).
 +
  
 +En premier, il est nécessaire de rétrécir le ou les LV qui sont définis dans ce volume-groupe. Voir ci-après.
  
 +Puis il faut rétrécir l'​enveloppe physique. Normalement c'est sans risque: Les commandes sont refusées si la demande est trop agressive.
  
 +Commençons par vérifier l'​implantation physique des données dans la partition. Le but est de vérifier que la fin de la partition n'est pas utilisée. <code bash>​sudo pvs -v --segments /​dev/​sda2</​code>​ La dernière ligne de la réponse indique si la fin de la partition est libre  ou non.
 +Si la fin de la partition n'a pas suffisamment d'​espace libre, il est possible de procéder a une réorganisation physique.<​code bash>​sudo pvmove --alloc anywhere /​dev/​sda2:​88888888-9999999999 /​dev/​sda2:​0-88888887</​code>​ (les valeurs 88888887 et 88888888 sont à adapter en fonction de la réponse précédente notamment la quantité d'​espace libre en début de partition. ​
 +Lancer alors l'​[[gparted|éditeur de partitions]] . Indiquer alors la nouvelle taille de la partition. Le minima possible est exprimé en MiO et obtenu par la formule 88888888*4
  
  
Ligne 235: Ligne 254:
 Il est très facile d'​augmenter ou de diminuer la taille d'un volume logique. Mais attention, la taille d'un LV n'a pas de lien direct avec la taille de ce qu'il contient (//swap// ou système de fichier). Le LV est une boîte, le système de fichier est le contenu de la boîte. Augmenter la taille de la boîte sans augmenter la taille du contenu ne pose pas de problème, mais l'​inverse… Il est très facile d'​augmenter ou de diminuer la taille d'un volume logique. Mais attention, la taille d'un LV n'a pas de lien direct avec la taille de ce qu'il contient (//swap// ou système de fichier). Le LV est une boîte, le système de fichier est le contenu de la boîte. Augmenter la taille de la boîte sans augmenter la taille du contenu ne pose pas de problème, mais l'​inverse…
  
- +=== Agrandissement ===
- +
- +
- +
- +
- +
-===== Agrandissement ​=====+
  
 Bien qu'il soit évidemment moins risqué d'​agrandir ou de diminuer la taille d'un système de fichiers après l'​avoir démonté, la plupart des formats (ext3, reisersfs, ext4...) supportent désormais cette modification "à chaud" (avec des données qui restent donc accessibles en lecture/​écriture durant toute l'​opération). Bien qu'il soit évidemment moins risqué d'​agrandir ou de diminuer la taille d'un système de fichiers après l'​avoir démonté, la plupart des formats (ext3, reisersfs, ext4...) supportent désormais cette modification "à chaud" (avec des données qui restent donc accessibles en lecture/​écriture durant toute l'​opération).
Ligne 251: Ligne 264:
   lvresize --resizefs --size +5G /​dev/​mvg/​Vol2   lvresize --resizefs --size +5G /​dev/​mvg/​Vol2
   ​   ​
-<note important>​Le paramètre ''​--resizefs''​ ne fonctionne pas avec tous les systèmes de fichiers (voir [[http://​linux.die.net/​man/​8/​fsadm|ici]]).</​note>​+<note important>​Le paramètre ''​​%%--%%resizefs''​ ne fonctionne pas avec tous les systèmes de fichiers (voir [[https://​linux.die.net/​man/​8/​fsadm|ici]]).</​note>​
  
 Une fois l'​opération terminée, le volume une fois monté a gagné 5Gio. Une fois l'​opération terminée, le volume une fois monté a gagné 5Gio.
  
-==== Rétrécissement ​====+Il est également possible d'​augmenter la taille du volume logique à l'​ensemble de l'​espace libre disponible sur le support en utilisant **lvextend -l +100%FREE**. 
 +<​code>​ 
 +usr@pc:~$ lvextend -l +100%FREE /​dev/​mvg/​Vol2 
 +</​code>​ 
 + 
 +=== Rétrécissement ===
  
 Diminuer la taille d'un système de fichier est un peu plus délicat. En effet, il faut dans un premier temps s'​assurer de pouvoir réduire d'​autant qu'on le souhaite. Diminuer la taille d'un système de fichier est un peu plus délicat. En effet, il faut dans un premier temps s'​assurer de pouvoir réduire d'​autant qu'on le souhaite.
  
-<note important>​Tous les systèmes de fichiers ne supportent pas d'​être redimensionnés (voir [[http://​linux.die.net/​man/​8/​fsadm|ici]])</​note>​+<note important>​Tous les systèmes de fichiers ne supportent pas d'​être redimensionnés (voir [[https://​linux.die.net/​man/​8/​fsadm|ici]])</​note>​
  
 Voyons d'​abord l'​espace du système de fichier : Voyons d'​abord l'​espace du système de fichier :
-  df -h | grep ca+  df -h -BM | grep ca
   /​dev/​mapper/​svg-ca ​   512M  230M  283M  45% /home/ca   /​dev/​mapper/​svg-ca ​   512M  230M  283M  45% /home/ca
  
Ligne 283: Ligne 301:
  
 Et on peut alors afficher sa nouvelle taille : Et on peut alors afficher sa nouvelle taille :
-  df -h | grep ca+  df -h -BM| grep ca
   /​dev/​mapper/​svg-ca ​   256M  230M   ​27M ​ 90% /home/ca   /​dev/​mapper/​svg-ca ​   256M  230M   ​27M ​ 90% /home/ca
 +  ​
 +<note warning>​Attention:​ Il est possible que le rétrécissement soit refusé suite à une dé-organisation qui se fait  pendant la vie du LVM car la demande est trop importante. Dans cas, voici la démarche à effectuer:
 +  -    Démonter le volume <code bash> sudo umount /​dev/​mapper/​svg-ca </​code>​
 +  -    Contrôler la qualité du volume <code bash> sudo e2fsck -f /​dev/​mapper/​svg-ca </​code>​
 +  -    Demander l'​espace réel minima nécessaire <code bash> sudo resize2fs -PM /​dev/​mapper/​svg-ca </​code>​
 +  -    Rétrécir à la taille minima indiquée. Mettre la valeur retournée par la commande précédente (ou une valeur plus importante) à la place de la valeur 123456789 de cette commande <code bash> sudo lvresize --resizefs --size $((123456789/​256+1))M ​ /​dev/​mapper/​svg-ca </​code>​
 +  - Remonter le volume ​ <code bash>​mount /​dev/​mapper/​svg-ca /​home/​ca</​code>​
 +   </​note>​
 +   
 +<note tip>De même, il est possible de rétrécir une partition logique chiffrée. La procédure est un peu plus longue. Un exemple est disponible ​ [[https://​forum.ubuntu-fr.org/​viewtopic.php?​pid=22639556#​p22639556|ici.]]</​note> ​  
 ===== Snapshot ===== ===== Snapshot =====
-__Comprendre la magie du Snapshot LVM :__ +__Comprendre la magie du Snapshot LVM :__
  
 //Pourquoi donner une taille au snapshot ? Tout simplement parce que celui-ci est intelligent,​ donc il ne va pas copier l'​intégralité du LV original. Au contraire, il ne va stocker que les différences. C'est pourquoi il est instantané et commence avec une occupation taille nulle. La commande lvdisplay permet de voir l'​évolution de la taille.// //Pourquoi donner une taille au snapshot ? Tout simplement parce que celui-ci est intelligent,​ donc il ne va pas copier l'​intégralité du LV original. Au contraire, il ne va stocker que les différences. C'est pourquoi il est instantané et commence avec une occupation taille nulle. La commande lvdisplay permet de voir l'​évolution de la taille.//
Ligne 295: Ligne 323:
 **Avec LVM 2**, les instantanés sont par défaut en lecture/​écriture. Le fonctionnement est similaire aux instantanés en lecture seule avec la possibilité supplémentaire d'​écrire sur l'​instantané : le bloc est alors marqué comme utilisé dans la table d'​exceptions et ne sera plus récupéré du volume source. Cela ouvre de nouvelles perspectives par rapport au fonctionnement en lecture seule de LVM 1. Par exemple, on peut faire l'​instantané d'un volume, le monter et tester un programme expérimental qui modifie les fichiers dessus. Si le résultat n'est pas satisfaisant,​ on peut le démonter, le supprimer et remonter le système de fichiers originel à la place. C'est aussi utile pour créer des volumes utilisés avec Xen. Vous pouvez créer une image disque et en faire un instantané que vous pourrez modifier avec une instance spécifique de domU. Vous pourrez ensuite créer un autre instantané de l'​image originale et le modifier avec une autre instance de domU. Comme les instantanés ne stockent que les blocs modifiés, la majeure partie du volume sera partagée entre les domUs. **Avec LVM 2**, les instantanés sont par défaut en lecture/​écriture. Le fonctionnement est similaire aux instantanés en lecture seule avec la possibilité supplémentaire d'​écrire sur l'​instantané : le bloc est alors marqué comme utilisé dans la table d'​exceptions et ne sera plus récupéré du volume source. Cela ouvre de nouvelles perspectives par rapport au fonctionnement en lecture seule de LVM 1. Par exemple, on peut faire l'​instantané d'un volume, le monter et tester un programme expérimental qui modifie les fichiers dessus. Si le résultat n'est pas satisfaisant,​ on peut le démonter, le supprimer et remonter le système de fichiers originel à la place. C'est aussi utile pour créer des volumes utilisés avec Xen. Vous pouvez créer une image disque et en faire un instantané que vous pourrez modifier avec une instance spécifique de domU. Vous pourrez ensuite créer un autre instantané de l'​image originale et le modifier avec une autre instance de domU. Comme les instantanés ne stockent que les blocs modifiés, la majeure partie du volume sera partagée entre les domUs.
  
-Voir [[http://​doc.ubuntu-fr.org/​tutoriel/​sauvegarder_a_chaud|ici]] Pour sauvegarder son système à chaud avec LVM+Voir [[https://​doc.ubuntu-fr.org/​tutoriel/​sauvegarder_a_chaud|ici]] Pour sauvegarder son système à chaud avec LVM
 ==== Création d'un snapshot LVM ==== ==== Création d'un snapshot LVM ====
 <​code>​lvcreate -L 10g -s -n lv_test_20110617 /​dev/​vg_data/​lv_test</​code>​ <​code>​lvcreate -L 10g -s -n lv_test_20110617 /​dev/​vg_data/​lv_test</​code>​
 Va créer un snapshot du LV "​**lv_test**"​ à la taille de **10Go** qui va avoir comme nom "​**lv_test_20110617**"​. 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. ​+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.
  
  
Ligne 327: Ligne 355:
 ==== Avec GParted ==== ==== Avec GParted ====
  
-Lancez Gparted (Système -> Administration -> Editeur de partitions GParted).  +Lancez Gparted (Système -> Administration -> Editeur de partitions GParted). 
-Les partitions de votre disque /dev/sda s'​affichent. Notez la taille de /dev/sda1, ainsi que son filesystem (ext2/​ext3/​ext4). ​+Les partitions de votre disque /dev/sda s'​affichent. Notez la taille de /dev/sda1, ainsi que son filesystem (ext2/​ext3/​ext4).
  
 Passez au disque /dev/sdb. Créez-y une nouvelle partition primaire /dev/sdb1, de taille légèrement supérieure à celle de /dev/sda1. "​Appliquez"​ pour que la création soit effective, puis modifiez (par clic droit) les drapeaux de /dev/sdb1 pour rendre cette partition bootable. Créez une partition étendue /dev/sdb2, occupant le reste du disque. Sur cette partition, créez une partition logique /dev/sdb5 non formatée. "​Appliquez"​ pour que vos créations soient effectives. Passez au disque /dev/sdb. Créez-y une nouvelle partition primaire /dev/sdb1, de taille légèrement supérieure à celle de /dev/sda1. "​Appliquez"​ pour que la création soit effective, puis modifiez (par clic droit) les drapeaux de /dev/sdb1 pour rendre cette partition bootable. Créez une partition étendue /dev/sdb2, occupant le reste du disque. Sur cette partition, créez une partition logique /dev/sdb5 non formatée. "​Appliquez"​ pour que vos créations soient effectives.
Ligne 336: Ligne 364:
 ==== En ligne de commande ==== ==== En ligne de commande ====
  
-Remontez votre partition de boot : +Remontez votre partition de boot :
   sudo mount /boot   sudo mount /boot
  
Ligne 463: Ligne 491:
 lvm vgscan lvm vgscan
 </​code>​ </​code>​
-=== Obtenir la liste des partitions === +=== Obtenir la liste des partitions ===
 <​code>​ <​code>​
 lvm lvs lvm lvs
 </​code>​ </​code>​
-=== Rendre la partition disponible === +=== Rendre la partition disponible ===
 <​code>​ <​code>​
 lvm lvchange -ay /​dev/​VolGroup01/​LogVol00 lvm lvchange -ay /​dev/​VolGroup01/​LogVol00
Ligne 476: Ligne 504:
 mount /​dev/​VolGroup01/​LogVol00 /​media/​user/​point_de_montage mount /​dev/​VolGroup01/​LogVol00 /​media/​user/​point_de_montage
 </​code>​ </​code>​
-===  Exemple === +===  Exemple ===
 <​code>​ <​code>​
 user@ubuntu:​~$ sudo lvm vgscan user@ubuntu:​~$ sudo lvm vgscan
Ligne 501: Ligne 529:
 </​code>​ </​code>​
 ==== Références ==== ==== Références ====
-  * [[http://​hoper.dnsalias.net/​tdc/​index.php?​pages/​Documentation-LVM|l'​origine de cette page ]] par [[utilisateurs:​Hoper]]+  * [[http://​hoper.dnsalias.net/​tdc/​index.php?​pages/​Documentation-LVM|l'​origine de cette page ]] par [[utilisateurs:​Hoper]]--lien mort
   * [[http://​www.lea-linux.org/​documentations/​index.php/​Leapro-pro_sys-lvm|Article de Léa Linux]] un peu vieux (LVM 1) mais plus complet que le mien…   * [[http://​www.lea-linux.org/​documentations/​index.php/​Leapro-pro_sys-lvm|Article de Léa Linux]] un peu vieux (LVM 1) mais plus complet que le mien…
   * [[http://​linux.developpez.com/​lvm/#​L4.1.1|Article de developpez.com]] excellent aussi (attention, sauf la partie réduction !)   * [[http://​linux.developpez.com/​lvm/#​L4.1.1|Article de developpez.com]] excellent aussi (attention, sauf la partie réduction !)
-  * [[http://​tldp.org/​HOWTO/​LVM-HOWTO/​|LVM HOW TO (en)]] un how to assez complet en anglais+  * [[https://​tldp.org/​HOWTO/​LVM-HOWTO/​|LVM HOW TO (en)]] un how to assez complet en anglais
   * [[http://​www.traduc.org/​Guides_pratiques/​Suivi/​LVM-HOWTO/​Document| Guide pratique de LVM (fr)]] un guide assez complet en français   * [[http://​www.traduc.org/​Guides_pratiques/​Suivi/​LVM-HOWTO/​Document| Guide pratique de LVM (fr)]] un guide assez complet en français
   * [[http://​www.korben.info/​comment-chiffrer-une-partition-systeme-linux-ici-ubuntu.html#​comment-164907|Comment chiffrer une partition système Linux]]   * [[http://​www.korben.info/​comment-chiffrer-une-partition-systeme-linux-ici-ubuntu.html#​comment-164907|Comment chiffrer une partition système Linux]]
-  * [[http://​www.it-connect.fr/​gestion-des-lvm-sous-linux/​|Gestion des LVM sous Linux]] sur IT-Connect.fr +  * [[https://​www.it-connect.fr/​gestion-des-lvm-sous-linux/​|Gestion des LVM sous Linux]] sur IT-Connect.fr 
-  * [[https://​doc.ubuntu-fr.org/​lvm_tutorial_install|Mise en place LVM tout simplement]] ​+  * [[https://​doc.ubuntu-fr.org/​lvm_tutorial_install|Mise en place LVM tout simplement]]
  
 ---- ----
 //​Contributeurs : Koshie-2.0, [[utilisateurs:​claudiux]] (remplacement disque défectueux),​ Alexandre LG ; merci à [[utilisateurs:​Ner0lph]] et à tous les autres correcteurs :)// //​Contributeurs : Koshie-2.0, [[utilisateurs:​claudiux]] (remplacement disque défectueux),​ Alexandre LG ; merci à [[utilisateurs:​Ner0lph]] et à tous les autres correcteurs :)//
  • lvm.1623836623.txt.gz
  • Dernière modification: Le 16/06/2021, 11:43
  • par zococo