Table des matières
LVM
Description
Fonctionnement
Créer un volume groupe et des files systèmes
Création du physical volume (PV) puis du volume groupe (VG)
Dans l'exemple ci-dessous on ajoute le disque sdb au volume groupe rootvg
pvcreate /dev/sdb vgcreate rootvg /dev/sdb
Seule des disques physiques ou partition de disque peuvent être ajouté à un VG
Création d'un logical Volume (LV)
Dans l'exemple ci-dessous on crée une partition de 1Go nommée lvproducts faisant partie du VG rootvg
lvcreate -L 1G -n lvproducts rootvg mkfs.ext3 /dev/rootvg/lvproducts mkdir /products echo "/dev/rootvg/lvproducts /products ext3 defaults 0 0" >> /etc/fstab
Agrandir un volume group
Pour ajouter un nouveau volume dans un volume group :
vgextend zimbravg /dev/sdc1
Resizer un Logical Volume
Augmentation
Dans le cas ci-dessous on augmente la taille de la partition nommée lvusr pour qu'elle fasse 1200Mo
lvresize -L1200M /dev/rootvg/lvusr ext2online /dev/rootvg/lvusr
ou pour RedHat 5
lvresize -L1200M /dev/rootvg/lvusr resize2fs /dev/rootvg/lvusr
Reduction
Dans le cas ci-dessous on reduit le FS /home à 300Mo
umount /home/ e2fsck -f /dev/rootvg/lvhome resize2fs /dev/rootvg/lvhome 300M lvresize -L310M /dev/rootvg/lvhome mount /home/
Augmentation de la Swap
Dans le cas ci-dessous on augmente la swap pour qu'elle fasse 1Go
swapoff -v /dev/rootvg/lvswap lvresize -L1G /dev/rootvg/lvswap mkswap /dev/rootvg/lvswap swapon -va cat /proc/swaps
Remarque : Certaines version de LVM utilisent XFS, il faut donc utiliser
xfs_growfs à la place de resize2fs. Exemple :
xfs_growfs /dev/rootvg/lvusr
Sauvegarder / Restaurer la configuration LVM
Sauvegarder la configuration lvm
vgcfgbackup
La configuration est généralement sauvegardée dans /etc/lvm/backup/
Restaurer la configuration lvm sur un nouveau disque
Si l'on veut restaurer le configuration lvm de notre ancien disque vers le nouveau, il faut :
Repérer le ou les id des physical_volumes
grep -E "_volumes|id" /etc/lvm/backup/vg01
Labéliser le ou les physical_volumes avec les mêmes id
pvcreate -u G5r87h-xmdg-7sVx-Fzpe-22Mv-97DP-QoX8g0 /dev/sdb
Restaurer la configuration du VG
vgcfgrestore vg01
Gestion des duplicate PV
Si l'on copie un disque physique contenant des partitions LVM block à block (ex: dd if=/dev/sdb of=/dev/sdc), on peut rencontrer ce genre d'erreur Found duplicate PV G5r87hxmdg7sVxFzpe22Mv97DPQoX8g0: using /dev/sdc not /dev/sdb.
Dans ce cas il est nécessaire de supprimer le label LVM de l'un des volumes physiques, la commande est donc la suivante:
pvremove -ff /dev/sdb
ou
pvremove -ff /dev/sdc
Activer / Desactiver un LV
Activer
lvchange -a y /dev/rootvg/homelv
Desactiver
lvchange -a n /dev/rootvg/homelv
Déplacer les données d'un PV à un autre PV faisant partie d'un même VG
Pour déplacer les données de /dev/sdd1 vers /dev/sdb1 :
pvmove /dev/sdd1 /dev/sdb1
Snapshots
Le snapshot permet de faire une sauvegarde d'un LogicalVolume à un instant T. Ceci permet surtout de restaurer rapidement un fichier si celui-ci a été effacé par erreur.
Créer un SnapShot
Pour prendre une image du volume logique /dev/rootvg/rootlv (monté sur /) à un instant T, lancer :
lvcreate -L100M -s -n root_snapshot_$(date +%Y-%m-%d-%H%M) /dev/rootvg/rootlv
Ce SnapShot est de 100Mo, tant qu'il y a moins de 100Mo modifié sur
/dev/rootvg/rootlv le SnapShot restera actif au delà il se désactivera et ne sera plus accessible.
Accès au SnapShot
Pour avoir accès au SnapShot, il suffit de monter le volume logique /dev/rootvg/root_snapshot_2008-09-15-0303
mkdir -p /SNAPSHOT/root_snapshot_2008-09-15-0303 mount /dev/rootvg/root_snapshot_2008-09-15-0303 /SNAPSHOT/root_snapshot_2008-09-15-0303
On trouvera la même arborescence que / dans /SNAPSHOT/root_snapshot_2008-09-15-0303 sauf qu'il y aura nos anciens fichiers. Donc pour restaurer par exemple le fichier /home/user/toto.txt il suffit de faire :
cp /SNAPSHOT/root_snapshot_2008-09-15-0303/home/user/toto.txt /home/user/toto.txt
Pour qu'un user ait accès à son snapshot, sans faire appel à l'administrateur on peut par exemple créer un lien symbolique ainsi
cd /home/user ln -s /SNAPSHOT/root_snapshot_2008-09-15-0303/$PWD /$PWD/.snapshot
Supprimer un SnapShot
umount /dev/rootvg/root_snapshot_2008-09-15-0303 lvremove /dev/rootvg/root_snapshot_2008-09-15-0303
Stratégie des SnapShots
Idéalement il faut allouer 20% du VolumeGroup pour les SnapShots. La taille de chaque SnapShot devra être définis selon la fréquence et l'historique désiré.
Thin Provisionning
Attention, le thin provisionning nécessite beaucoup de rigueur dans la supervision les volumes
Le ThinPool est le volume physiquement alloué : Creation d'un Thin Pool :
lvcreate -L 100M -T datavg/mythinpool
Nous faisons ci-dessous un volume supérieur à celui physiquement alloué : Puis le volume thin :
lvcreate -V200M -T datavg/mythinpool -n thinvolume
Faire les deux en une seule ligne de commande :
lvcreate -L100M -T datavg/mythinpool -V200M -n thinvolume

