====== LVM ======
* Objet : gestionnaire de volumes logiques LVM
* Niveau requis : {{tag>avisé}}
* Commentaires : //Mettre en oeuvre LVM sous Debian. //
* Suivi : {{tag>à-tester}}
* Création par [[user>smolski]] le 26/12/2009
* Testé et révisé par Croutons le 03/05/2017
* Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=7818 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
===== Introduction =====
**raleur** //a écrit sur le forum df ici// :
* [[https://debian-facile.org/viewtopic.php?pid=131844#p131844 | Conseil pour un partitionnement LVM]]
//Le choix de séparer les systèmes de fichiers n'a aucun rapport en soi avec le choix d'utiliser LVM. LVM rend juste plus facile cette séparation.
Le problème quand on sépare, c'est de déterminer la taille des différents systèmes de fichiers. \\
Avec des partitions classiques, cette taille est plus ou moins figée à l'installation ; agrandir une partition n'est possible qu'après avoir réduit et déplacé la partition suivante. \\
Au contraire avec LVM on peut facilement agrandir n'importe quel volume logique en cas de besoin tant qu'il y a de l'espace libre dans le VG qu'on peut agrandir en ajoutant une partition, un disque... On n'a donc pas à anticiper les besoins futurs pour chaque volume individuel dès l'installation. \\
En un mot : LVM, c'est la souplesse. \\
Cerise sur le gâteau, les volumes sont identifiés de façon persistante par leur nom choisi par l'administrateur au lieu d'[[doc:systeme:uuid_des_partitions|UUID]] sans signification.//
//Merci// **raleur** :-)
LVM sont les initiales de Logical Volume Manager ou gestionnaire de volumes logiques.
Son utilisation consiste à :
- Créer une partition spécifique de type ''LVM'', (qui correspond à un **disque** monté).
- A l'intérieur de laquelle, nous créons et modifions à volonté des ''volumes logiques'', (qui correspondent aux **partitions**) que nous y créerons, eux-mêmes formatés et dimensionnés à notre convenance.
Ainsi, l’utilisation de ''Volumes Logiques'' remplace tout de go ''le partitionnement'' des disques habituel d'une manière beaucoup plus souple, permettant à tout moment la gestion du volume de chacun d'eux.
De même, il est possible de conserver une partie de la partition LVM sans volume logique d'installé, dans l'attente d'une gestion ultérieure...
''**ATTENTION !**'' \\
\\
1/ Une fois que ''LVM'' est installé sur un disque ou une partition de ce disque, Windows ne pourra plus y accéder. \\
2/ Si vous réduisez un Volume Logique, il doit conserver au minimum toute la capacité nécessaire pour représenter son contenu. S'il est diminué davantage que cette limite, les données excédentes seront irrémédiablement effacées.
===== Comment ça marche =====
LVM se base sur des espaces de stockage virtuels appelés "groupes de volumes". \\
Un groupe de volumes :
- a un nom arbitraire,
- est constitué d'un ou plusieurs "volumes physiques",
- et sert à contenir des "volumes logiques".
=== Volume physique ===
* Un volume physique peut être tout type de périphérique bloc :
* disque entier,
* partition,
* ensemble RAID,
* volume chiffré...
=== Volume logique ===
Un volume logique est un périphérique bloc qui a un nom arbitraire et peut s'utiliser comme une partition classique : système de fichiers, swap...
==== Avantages ====
Quelques avantages de LVM sur les partitions classiques :
- un volume logique peut être constitué d'espace de stockage physique non contigu
- un volume logique peut être agrandi facilement à chaud si son groupe a de l'espace libre
- un groupe de volumes peut être agrandi à chaud en lui ajoutant un nouveau volume physique
- un volume logique a un nom de périphérique persistant de la forme /dev/nom_groupe/nom_volume ou /dev/mapper/nom_groupe-nom_volume plus parlant qu'un nom de périphérique partition
- la possibilité de créer des "instantanés" (snapshots) d'un volume logique pouvant servir par exemple à créer des points de restauration ou faciliter les sauvegardes à chaud
==== Inconvénients ====
Il y a aussi des inconvénients :
- une complexité accrue
- une possible fragmentation des volumes logiques qui peut impacter négativement les performances
- la récupération de données peut aussi être rendue plus difficile par la fragmentation des volumes logiques
- le noyau seul ne gère pas LVM, il faut des programmes pour activer les volumes logiques
- le démarrage d'un système dont la racine est dans un volume logique nécessite donc un initramfs (déjà nécessaire avec les noyaux Debian) avec le support de LVM (comme dans Debian)
- le démarrage d'un système dont le contenu de /boot est dans un volume logique nécessite un chargeur d'amorçage qui supporte LVM, comme [[doc:systeme:grub2|GRUB 2]] (mais pas LILO ni GRUB 1).
- la perte d'un disque contenant un volume physique cause la perte de tous les volumes logiques qui sont stockés en partie ou totalement dans ce volume physique.
==== Utilisations ====
Une utilisation classique de LVM consiste à créer plusieurs volumes logiques dans un ensemble RAID ou un volume chiffré utilisé comme volume physique, plutôt que créer plusieurs ensembles RAID ou volumes chiffrés séparés.
LVM est aussi particulièrement pratique quand on veut créer beaucoup de volumes et gérer leurs tailles au plus juste. \\
Par exemple, je veux créer des systèmes de fichiers séparés pour :
* /home
* /srv
* /tmp
* /var/cache
* /var/log
Pourquoi cette séparation ?
Parce que le contenu de ces répertoires peut grossir de façon incontrôlée, la séparation évite d'envahir la totalité du système de fichiers.
Mais voilà, je ne sais pas à l'avance quelle taille allouer à chacun ?
Avec des partitions habituelles non LVM, lors de leur création je devrais estimer l'espace nécessaire à long terme.
- Si une partition s'avère trop grande, j'aurai gaspillé de l'espace.
- Si une partition s'avère trop petite à l'usage, il faudra l'agrandir, et pour cela la déplacer ou réduire et/ou déplacer une ou plusieurs autres partitions.Ce qui nécessite souvent d'arrêter le système et démarrer avec un système live.
Avec LVM, je peux créer les volumes logiques avec
* des tailles initiales minimum raisonnables,
* et laisser beaucoup d'espace libre dans le groupe de volumes.
Si un volume s'avère trop petit à l'usage, je peux alors l'agrandir à chaud et facilement
sans arrêter le système !
//Et tout ça sous le post de //**raleur**// sur le forum// :
* [[https://debian-facile.org/viewtopic.php?pid=288306#p288306]]
:-D
===== Installation =====
Installez **LVM2** :
apt-get install lvm2
===== LVM - Initialisation =====
* Pour illustrer cet article nous appellerons le disque système LVM : **volumeGroupTest**
* Et nous appellerons la partition créé dans ce disque système : **logicalVolumeTest1**
Dans 2 partitions linux, initialisons LVM :
pvcreate /dev/partition_linux1 /dev/partition_linux2
Créons maintenant le groupe de volumes nommé volumeGroupTest :
vgcreate volumeGroupTest /dev/partition_linux1 /dev/partition_linux2
===== Volumes Logiques - Création =====
Il ne reste plus qu'à créer les Volumes Logiques LVM. \\
Les deux options vraiment importantes sont ''-n'' pour son nom, et ''-L'' pour sa taille. Puis on précise sur quel VG (ex: volumeGroupTest).
Les tailles des volumes sont arbitraires mais doivent être compatibles avec celle du groupe.
La taille ci-dessous est donnée à titre d'exemple.
lvcreate -L 1024M -n logicalVolumeTest1 volumeGroupTest
lvcreate -L -n logicalVolumeTest2 volumeGroupTest
Pour connaître cette taille restante, taper :
vgdisplay
et regarder la ligne :
Free PE Size
Nos partitions sont prêtes.
===== Système de fichiers =====
Avec les partitions, on avait des noms ressemblant à ''/dev/hda3'', etc... \\
Avec ''LVM'', on utilise aussi des périphériques dans ''/dev'', mais le chemin est :
/dev/nom_du_vg/nom_du_lv
Puisqu’on a décidé d’appeler notre volume logique ''logicalVolumeTest1'', le nom de périphérique de ce volume logique est :
/dev/volumeGroupTest/logicalVolumeTest1
À partir de maintenant, ''/dev/volumeGroupTest/logicalVolumeTest1'' peut être utilisé dans toutes les situations et avec toutes les commandes qui attendent ''/dev/…'' \\
===== Formater une partition créée =====
Nous appelons souvent vulgairement cette action : ''formater''. \\
En fait **nous créons une couche** appelée système de fichier (ou filesystem) !
Donc, pour créer un système de fichier en **ext4**, démonter la partition LV **logicalVolumeTest1** :
Puis, taper :
mkfs.ext4 /dev/volumeGroupTest/logicalVolumeTest1
maintenant on peut monter la partition
mount /dev/volumeGroupTest/logicalVolumeTest1 /media/nom_utilisateur/logicalVolumeTest1
le choix de /media permet de voir apparaître la partition comme périphérique dans le menu latéral du gestionnaire de fichier (comportement par défaut dans Thunar)
Une fois la partition monté on va s'apercevoir que on ne peut ajouter aucun fichier ou répertoire car la partition appartient a root
On va donc se placer dans le répertoire /media/nom_utilisateur et changer le propriétaire du sous dossier
cd /media/nom_utilisateur
chown utilisateur:utilisateur logicalVolumeTest1
===== Agrandir une partition LV =====
Rappellez vous le schéma des couches :
Disque ou partition(s)
|----> Volume Group le/les disques,partition inclus dans LVM ''volumeGroupTest''
----> Logicals Volumes la/les partition LV ''logicalVolumeTest1''
|----> Filesystem sur ''logicalVolumeTest1''
==== Première opération : réduction de logicalVolumeTest2 ====
La réduction du système de fichier à l'aide de resize2fs doit se faire au préalable, partition démonté, contrairement à l'agrandissement (voir man resize2fs)
Pour la réduction du système de fichier on pourra utiliser l'utilitaire fsadm inclus dans le paquet LVM2 avec lequel on peut démonter la partition avec l'option -e , lui même utilise resize2fs
Enfin on choisira une taille de partition légèrement supérieur au système de fichier pour être sur de préserver les données
lvreduce -L-1024M /dev/volumeGroupTest/logicalVolumeTest2
Rounding size to bundary between physical extents : arrondi de taille demandé
Ce message apparaît si la taille demandé n'est pas un multiple de PE (PE=4MiB par defaut), dans notre cas si nous avions demandé 1025M de réduction le système aurait adapter la taille demandé "de façon intelligente" a un multiple de PE (1024M) =)
==== Deuxième opération : agrandissons logicalVolumeTest1 ====
Pour un agrandissement de la partition, l'opération peut se faire à chaud, sans démontage du volume. \\
Voir sur le forum : \\
http://debian-facile.org/viewtopic.php?pid=105114#p105114
lvextend -L+1024M /dev/volumeGroupTest/logicalVolumeTest1
==== Troisième opération : mettons le système de fichiers à la taille du LV. ====
[[doc:systeme:partition|resize2fs]] ne s'applique qu'aux systèmes de fichiers ext2, ext3 ou ext4. Pour les autres types (btrfs, xfs, reiserfs...) il faut utiliser les commandes appropriées.
resize2fs /dev/volumeGroupTest/logicalVolumeTest1
commande **e2fsadm** OBSOLÈTE après LVM 1 -t2/ext3 via e2fsadm.
e2fsadm -L+1024M /dev/volumeGroupTest/logicalVolumeTest1
Lien dans le forum : \\
http://debian-facile.org/viewtopic.php?pid=105114#p105114
==== Un exemple ====
Lien dans le forum : \\
https://debian-facile.org/viewtopic.php?id=13071
===== Supprimer une partition LVM =====
''**ATTENTION !**'' \\
Effacer une partition LVM revient à en perdre immédiatement tout le contenu.
==== lvremove ====
Pour supprimer une partition LVM, il suffit d'utiliser [[:doc:systeme:umount | la commande umount]] pour la démonter :
umount /media/nom_utilisateur/logicalVolumeTest1
Puis de l'effacer avec la commande lvremove :
lvremove /dev/volumeGroupTest/logicalVolumeTest1
===== Chiffrer LVM =====
Le tuto dans le wiki :
* https://debian-facile.org/doc:install:raid-logiciel-crypte-lvm-a-l-installation-de-wheezy
===== Supprimer tout le partitionnement LVM =====
==== Gparted ====
Utiliser depuis une live : [[doc:systeme:gparted|Gparted]].
===== Liens et remerciements =====
* http://www.lea-linux.org/documentations/index.php/Leapro-pro_sys-lvm
* http://www.traduc.org/Guides_pratiques/Suivi/LVM-HOWTO/Document#latest_version
* http://doc.ubuntu-fr.org/lvm
\\
\\
\\
\\
''A suivre...''