Lvm
Un article de MemoWiki.
Sommaire |
LVM – mise en oeuvre
Ce document décrit l'utilisation de LVM. Il s'agit d'un aide mémoire plutôt que d'un document de référence. La distribution utilisée est CentOS 4.1 avec un noyau 2.6.9 release 11.EL.
Ce document suppose la présence de deux petits disques de 128 Mo.
Ici, il s'agit de disque ajoutés sur une machine virtuelle. Il serait possible de simuler des disques physiques en utilisant la
commande dd (voir annexes).
- Le volum group créé se nomme volGroupFbt.
- Le volume logique créé se nomme lvfbt1.
- Le point de montage de la partition correspondante se nomme /fbt1.
Préparation des partions
Dans l'exemple ci-dessous, les disques sont marqués pour lvm directement sans créer de partition. Ce mode de fonctionnement peut être dangereux à posteriori, car les outils comme fdisk ou parted considèrent les disques inutilisés. Il est préférable de créer une partition sur les disques et de positionner le drapeau lvm sur celle-ci, puis de faire le pvcreate sur cette partition identifiée comme lvm.
Vérifications des disques disponibles
sfdisk -l lvmdiskscan
Création des volumes physiques
pvcreate /dev/sdb pvcreate /dev/sdc
Vérification
pvscan pvdisplay
Création du volume group
vgcreate VolGroupFbt /dev/sdb /dev/sdc
Vérification
vgdisplay VolGroupFbt -v
Création d'un volume logique
Création d'un volume logique de 64 Mo dans le volume group volgroupFbt
lvcreate -L 64M -n lvfbt1 volGroupFbt
Etendre un logical volume
lvextend -L+256 /dev/volgroup/lvol
créer un systeme de fichier sur un logical volume
mkfs.ext3 -j /dev/volGroupFbt/lvfbt1
montage du volume
creation d'un point de montage
mkdir /fbt1
montage du volume
mount /dev/volGroupFbt/lvfbt1 /fbt1
Vérification
mount
Rendre le montage persistent
modifier le fichier /etc/fstab pour ajouter la ligne correspondante au point de montage
/dev/volGroupFbt/lvfbt1 /fbt1 defaults 1 1
Vérifier le fonctionnement
umount /fbt1 mount
recharger les liens du fstab
mount -a mount
Modification des volume groups et des logical volumes
L'intéret de LVM et de pouvoir modifier la taille des volumes sans avoir à réinstaller le système de fichiers, voire de faire ces modifications pendant la production.
Extension d'un volume group
Il est possible d'ajouter un volume physique à un volum group existant.
vgextend volGroupFbt /dev/sdc
Réduction d'un volume group
Il est possible de supprimer un disque d'un volume group à condition qu'il ne soit pas utilisé. Il faudra déplacer les données le cas échéant avec pvmove.
vgreduce volGroupFbt /dev/sdc
Extension d'un volume logique
Il est possible d'affecter de l'espace supplémentaire à un volume logique. Il faudra aussi redimensionner le file system linux pour prendre en compte ce nouvel espace. Cette opération peut être faite à chaud avec ext2online. Extention du volume logique
lvextend -L +20M /dev/volGroupFbt/lvfbt1
Extention du file system
ext2online /dev/volGroupFbt/lvfbt1 84M
Réduire la taille d'un volume logique
Il faut réduire dans un premier temps la taille du file system contenu. Cette opération implique de démonter la partition
umount /fbt1 e2fsck -f /dev/dev/volGroupFbt/lvfbt1 resize2fs /dev/dev/volGroupFbt/lvfbt1 64M mount /fbt1
Déplacement des données d'un volume physique vers un autre
Il est possible de déplacer les données d'un volume physique vers un autre appartenant au même volume groupe. Il est possible de remplacer de cette manière un disque par un autre de capacité supérieure ou même de consolider plusieurs petits volumes physiques sur un plus important.
pvmove /dev/sdb /dev/sdd
On peut ensuite supprimer /dev/sdb du volum group:
vgreduce volGroupFbt /dev/sdb
Il restera à étendre le volume logique et le file system comme décrit plus haut.