Outils pour utilisateurs

Outils du site


informatique:linux:lvm

LVM

Description

Diagramme des différentes couches de l'architecture LVM.

lvm.jpg

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
informatique/linux/lvm.txt · Dernière modification: 2018/12/28 06:55 par benoit