gestion_des_volumes_avec_lvm
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 | ||
gestion_des_volumes_avec_lvm [2009/03/14 20:18] – édition externe 127.0.0.1 | gestion_des_volumes_avec_lvm [Date inconnue] (Version actuelle) – supprimée - modification externe (Date inconnue) 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== 1. Présentation ====== | ||
- | |||
- | La gestion de " | ||
- | * la configuration physique de son sytème de stockage: les machines, leurs disques et l' | ||
- | |||
- | Afin de pouvoir concilier sereinement les deux aspects, on a introduit un sytème permettant de créer des lens arbitraires entre les " | ||
- | |||
- | ===== Historique ===== | ||
- | |||
- | * [[http:// | ||
- | |||
- | * [[http:// | ||
- | |||
- | * [[http:// | ||
- | |||
- | ===== Nomenclature ===== | ||
- | |||
- | Il faut un composant noyau et divers outils pour faire fonctionner un gestionnaire de volumes logiques. On note que dans la série 2.6 du noyau Linux un système générique (//device mapper//) a été créé pour être partagé par différents gestionnaires: | ||
- | |||
- | |||
- | {| bgcolor="# | ||
- | |- bgcolor="# | ||
- | | **Gestionnaire** || **Composant noyau** || **Outils** | ||
- | |- | ||
- | | LVM || lvm || lvm | | ||
- | |- | ||
- | | LVM2 || device-mapper || libdevmapper + lvm2 | ||
- | |- | ||
- | | EVMS || device-mapper || libdevmapper + evms | | ||
- | |} | ||
- | |||
- | ===== Ressources ===== | ||
- | * [[http:// | ||
- | |||
- | ====== 2. Principes ====== | ||
- | |||
- | La préparation " | ||
- | * Bas niveau: un disque dur physique, qui se présente sous le système comme un //block device// (ex: /dev/hda) | ||
- | * Intermédiaire: | ||
- | * Haut niveau: un système de fichier, qui permet de manipuler naturellement les données; il doit être construit au dessus d'un //block device// | ||
- | |||
- | Pour appliquer le principe de LVM, on voit qu'il nous faut ajouter un mécanisme d' | ||
- | |||
- | ===== Le Volume Group ===== | ||
- | |||
- | Il s'agit de la notion centrale de LVM: la première opération lors de la configuration de LVM consiste à créer au moins un //Volume Group//. Ce dernier se considère de deux points de vue: | ||
- | * d'une part, il agrège différents volumes physiques (donc des disques durs et/ou des partitions) en une seule entité logique dont la capacité de stockage est la somme de ses composants | ||
- | * d' | ||
- | |||
- | |||
- | /dev/hda1 --\ /--> / | ||
- | |--> vg-filer --| | ||
- | /dev/hdc --/ \--> / | ||
- | |||
- | |||
- | Sous réserve de la création correcte des //Physical Volumes// (voir ci-dessous), | ||
- | |||
- | #vgcreate vg-filer /dev/hda1 /dev/hdc | ||
- | #vgchange -ay vg-filer | ||
- | #vgdisplay | ||
- | |||
- | ===== Physical Volumes ===== | ||
- | |||
- | Il s'agit des éléments physiques de stockage (à gauche sur le schéma précédent), | ||
- | |||
- | #pvcreate /dev/hda1 | ||
- | #pvcreate /dev/hdc | ||
- | #pvdisplay | ||
- | |||
- | Il est également recommandé pour les partitions d' | ||
- | |||
- | ===== Logical Volumes ===== | ||
- | |||
- | Il s'agit de la partie utile d'un //Volume Group//, celle où l'on va pouvoir créer nos systèmes de fichiers. L' | ||
- | |||
- | #lvcreate -L 50G -n eleves vg-filer | ||
- | #lvcreate -L 10G -n profs vg-filer | ||
- | #lvdisplay | ||
- | |||
- | A ce stade nous pouvons donc créer des sytèmes de fichiers, les monter, etc: | ||
- | |||
- | #mke2fs -j / | ||
- | #mount / | ||
- | |||
- | ====== 3. Utilisation ====== | ||
- | |||
- | ===== Concaténation ===== | ||
- | |||
- | Cette opération est implicite lors de la construction des éléments LVM. | ||
- | |||
- | Bien qu'il existe un autre mécanisme (//md// sous Linux), LVM reste la solution la plus simple pour agréger différents disques ou portions de disques et les présenter comme un //block device// consolidé. L' | ||
- | |||
- | ===== Extension ===== | ||
- | |||
- | Il est très simple de rajouter un " | ||
- | |||
- | #pvcreate /dev/sda | ||
- | #vgextend vg-filer /dev/sda | ||
- | |||
- | |||
- | Cependant, avant d' | ||
- | * étendre un //Logical Volume// pour profiter de cet espace physique accru | ||
- | * étendre le sytème de fichier ad hoc pour profiter de l' | ||
- | |||
- | Si étendre un //Logical Volume// est trivial et sans risque, la modification de la taille d'un système de fichier n'est pas toujours évidente. Peu de systèmes de fichiers sont capables de faire cette opération "à chaud" (ReiserFS, ext3, XFS), il faudra donc souvent démonter le //Logical Volume//, transformer le système de fichier, puis le remonter: | ||
- | |||
- | #umount /mnt/profs | ||
- | #lvextend -L+1G / | ||
- | #resize2fs / | ||
- | #mount /mnt/profs | ||
- | |||
- | ===== Réduction ===== | ||
- | |||
- | L' | ||
- | |||
- | **Attention**: | ||
- | |||
- | ===== Migration ===== | ||
- | |||
- | Comme les volumes logiques et physiques sont décorélés, | ||
- | |||
- | Par exemple, en supposant qu'il y a assez de place dans le //Volume Group// auquel il participe, les données du disque sda peuvent être migrés libérant ainsi ce dernier: | ||
- | |||
- | #pvmove /dev/sda | ||
- | |||
- | On peut bien entendu désigner un endroit précis où migrer les données, etc. | ||
- | |||
- | Notez que si le processus est interommpu inopinément (crash, panne de courant), il peut être repris en invoquant simplement la commande pvmove. Il est toutefois possible de perdre quelques blocs (// | ||
- | |||
- | ===== Snapshots ===== | ||
- | |||
- | Peut être la fonction la plus sophistiquée, | ||
- | |||
- | Ce miracle repose sur la création d'un nouveau //Logical Volume// spécial: | ||
- | |||
- | #lvcreate -L1G -s -n profs-snapshot / | ||
- | |||
- | Il est important de comprendre que ce volume consomme de l' | ||
- | |||
- | ====== 4. Pièges ====== | ||
- | |||
- | ===== lvm et device-mapper ===== | ||
- | |||
- | Certaines documentations citent /proc/lvm, et il est possible que ce répertoire existe sur votre machine. Cependant celui-ci appartient au module noyau //lvm// (donc LVM1) et non au module // | ||
- | |||
- | ===== ext2online ===== | ||
- | |||
- | Il existe un patch plus ou moins sauvage pour permettre le redimensionnement "à chaud" des systèmes de fichier ext2/ext3: attention il est considéré approximatif et dangereux. | ||
- | |||
- | **Note**: le support du redimensionnement a été officiellement intégré dans **ext3** à partir de Linux 2.6.17. Il est toujours // | ||
- | |||
- | ===== Stripping ===== | ||
- | |||
- | Lors de l' | ||
- | * soit continu: on passe de la fin d'un PV au début de l' | ||
- | * soit en " | ||
- | |||
- | Ce mode peut être utilisé avec la connaissance de la configuration précise des PV pour améliorer le débit d' | ||
- | |||
- | ===== Physical Extents ===== | ||
- | |||
- | Ceci n'a pas été évoqué dans le cours, mais l' | ||
gestion_des_volumes_avec_lvm.1237061911.txt.gz · Dernière modification : 2009/03/14 20:43 (modification externe)