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
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
Pour ajouter un nouveau volume dans un volume group :
vgextend zimbravg /dev/sdc1
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
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/
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
vgcfgbackup
La configuration est généralement sauvegardée dans /etc/lvm/backup/
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
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
lvchange -a y /dev/rootvg/homelv
Desactiver
lvchange -a n /dev/rootvg/homelv
Pour déplacer les données de /dev/sdd1 vers /dev/sdb1 :
pvmove /dev/sdd1 /dev/sdb1
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.
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.
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
umount /dev/rootvg/root_snapshot_2008-09-15-0303 lvremove /dev/rootvg/root_snapshot_2008-09-15-0303
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é.
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