« Grub, quelques détails. | Home | SystemRescueCd sur le disque dur »
LVM simplement
posté par cep le 15 décembre 2006
LVM ou Logical Volume Manager est une solution permettant de gérer plus facilement les systèmes de fichiers ( partitions ), de les augmenter, diminuer, d’ajouter d’autres partitions ou d’autres disques à un système de fichiers déjà en service.
LVM peut aussi être la solution si, par exemple, votre /home est plein et vous voulez l’agrandir mais la seule partition que vous pouvez utiliser pour cela ne jouxte pas votre /home, voir est même sur un disque différent.
Cependant il ne faut pas oublier que l’installation d’une solution LVM écrasera toutes les données et systèmes de fichiers présents sur les partitions concernées, ou les disques si l’on fait un pvcreate sur l’ensemble du périphérique.
Je vais résumer très rapidement le principe du LVM, et n’aborder que la mise en place d’une solution LVM sur un système Debian déjà en service. Pour rentrer plus en détail dans le LVM il existe de nombreux sites, et en particulier le bon article d’Anne sur Lea ou les pages de labo-linux.
a ) : les disques durs ou partitions sont configurés en Volumes Physiques ( PV ). Un Volume Physique est divisé en tranches de 4 Mo, les physical extents ( PE ).
b ) : est ensuite créé un Groupe de Volumes ( VG ou volume group ) contenant le ou les volumes physiques.
c ) : enfin le VG est divisé en Volumes Logiques, ( LV ou Logical Volumes ). On peut aussi préciser que les LV sont composés de Logical Extents ( LE ), pouvant être comparés aux partitions classiques qui pourront être copiées, déplacées, agrandies ou diminuées, ajoutées, le tout sans pertes de données et sans redémarrage de la machine.
2° / Mise en place du LVM :
S’il n’est pas encore présent sur votre système il faudra l’installer :
aptitude install lvm2
et aptitude installera automatiquement les paquets nécessaires, lvm-common et lvm2.
On part d’un disque ainsi partitionnée :
Number Start End Size Type File system Fanions 1 32,3kB 70,0GB 70,0GB primaire ext3 amorce 2 70,0GB 75,0GB 5001MB primaire ext3 3 75,0GB 80,0GB 5026MB primaire ext3
et on veut créer les Volumes physiques avec /dev/hdb2 et /dev/hdb3 :
# pvcreate /dev/hdb2 /dev/hdb3 Physical volume "/dev/hdb2" successfully created Physical volume "/dev/hdb3" successfully created
Création du Groupe de Volumes nommé pour l’occasion db2_base composé de /dev/db2 et /dev/db3 :
# vgcreate db2_base /dev/hdb2 /dev/hdb3 Volume group "db2_base" successfully created
On vérifie que le VG est bien trouvé avec la commande vgscan :
# vgscan Reading all physical volumes. This may take a while... Found volume group "db2_base" using metadata type lvm2
On met en place maintenant le Logical Volume que l’on appellera dans cet exemple gestion, d’une taille de 6 Go positionné dans le Volume Group db2_base :
# lvcreate -n gestion --size 6g db2_base Logical volume "gestion" created
On peut maintenant créer le système de fichiers ext3, avec un espace réservé à root de 1% (-m1) :
# mkfs.ext3 -m1 /dev/db2_base/gestion mke2fs 1.40-WIP (14-Nov-2006) [couic . . . ] Le système de fichiers sera automatiquement vérifié tous les 37 montages ou après 180 jours, selon la première éventualité. Utiliser tune2fs -c ou -i pour écraser la valeur.
Pour avoir un rappel visuel on met le flag LVM sur les deux partitions grace à une commande parted ( optionnel ) :
# parted -s /dev/hdb set 2 LVM on set 3 LVM on p Model: ST380020A (ide) Disk /dev/hdb: 80,0GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Fanions 1 32,3kB 70,0GB 70,0GB primaire ext3 amorce 2 70,0GB 75,0GB 5001MB primaire lvm 3 75,0GB 80,0GB 5026MB primaire lvm
Il ne reste plus qu’à créer le point de montage et rendre disponible le système de fichiers :
# mkdir /mnt/gestion # mount /dev/db2_base/gestion /mnt/gestion/ ; df -hT /mnt/gestion Sys. de fich. Type Tail. Occ. Disp. %Occ. Monté sur /dev/mapper/db2_base-gestion ext3 6,0G 141M 5,8G 3% /mnt/gestion
Pour simplifier les mounts ou la configuration du fstab on attribue avec tune2fs le label gestion au système de fichiers ( on aurait pu le faire au moment du mkfs.ext3 ) :
# tune2fs -L gestion /dev/db2_base/gestion tune2fs 1.40-WIP (14-Nov-2006) # tune2fs -l /dev/db2_base/gestion |grep name Filesystem volume name: gestion
Avec vgdisplay et lvdisplay on vérifie que tout est ok et on affiche les détails de l’ensemble :
# vgdisplay --- Volume group --- VG Name db2_base System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size 9,34 GB PE Size 4,00 MB Total PE 2390 Alloc PE / Size 1536 / 6,00 GB Free PE / Size 854 / 3,34 GB VG UUID gvaQHp-sF22-TJGT-yjZx-0r0B-FOWv-0AjRNP # lvdisplay --- Logical volume --- LV Name /dev/db2_base/gestion VG Name db2_base LV UUID PAKe5Q-Pmll-0Mjc-qAAg-E2x3-LLb6-MKhCLs LV Write Access read/write LV Status available # open 1 LV Size 6,00 GB Current LE 1536 Segments 2 Allocation inherit Read ahead sectors 0 Block device 254:0
Si l’on juge la taille de 6 Go insuffisante, on peut la passer par exemple à 7 Go avec l’utilitaire lvextend :
# umount /mnt/gestion # lvextend -L+1g /dev/db2_base/gestion Extending logical volume gestion to 7,00 GB Logical volume gestion successfully resized # e2fsck -f -y -C0 /dev/db2_base/gestion e2fsck 1.40-WIP (14-Nov-2006) Passe 1 : vérification des i-noeuds, des blocs et des tailles Passe 2 : vérification de la structure des répertoires Passe 3 : vérification de la connectivité des répertoires Passe 4 : vérification des compteurs de référence Passe 5 : vérification de l'information du sommaire de groupe gestion: 11/786432 files (9.1% non-contiguous), 60560/1572864 blocks
Il faut maintenant agrandir le système de fichiers avec la commande resize2fs pour de l’ext3 ( à noter que cela aurait pu être fait sans démonter le fs ) :
# resize2fs /dev/db2_base/gestion resize2fs 1.40-WIP (14-Nov-2006) Resizing the filesystem on /dev/db2_base/gestion to 1835008 (4k) blocks. Le système de fichiers /dev/db2_base/gestion a maintenant une taille de 1835008 blocs. # e2fsck -f -y -C0 /dev/db2_base/gestion [couic . . . ] gestion: clean, 11/917504 files, 65057/1835008 blocks # mount -L gestion /mnt/gestion/ # lvdisplay |grep Size LV Size 7,00 GB
Et voilà, c’est terminé. On a bien les 7 Go disponibles.
Un dpkg -L lvm2 vous dira tout ce qui a été installé, en particulier la documentation, les mans et les utilitaires. Un aperçu de ces derniers :
/lib/lvm-200/lvextend
/lib/lvm-200/vgsplit
/lib/lvm-200/vgimport
/lib/lvm-200/lvdisplay
/lib/lvm-200/lvmsadc
/lib/lvm-200/pvremove
/lib/lvm-200/vgmknodes
/lib/lvm-200/lvcreate
/lib/lvm-200/vgdisplay
/lib/lvm-200/pvs
/lib/lvm-200/pvscan
/lib/lvm-200/vgs
/lib/lvm-200/vgcfgrestore
/lib/lvm-200/vgscan
/lib/lvm-200/vgck
/lib/lvm-200/vgreduce
/lib/lvm-200/lvscan
/lib/lvm-200/vgrename
/lib/lvm-200/pvresize
/lib/lvm-200/lvs
/lib/lvm-200/vgcreate
/lib/lvm-200/vgmerge
/lib/lvm-200/lvmchange
/lib/lvm-200/pvdisplay
/lib/lvm-200/vgconvert
/lib/lvm-200/lvmsar
/lib/lvm-200/lvmdiskscan
/lib/lvm-200/lvreduce
/lib/lvm-200/vgextend
/lib/lvm-200/pvchange
/lib/lvm-200/vgexport
/lib/lvm-200/lvresize
/lib/lvm-200/lvrename
/lib/lvm-200/pvmove
/lib/lvm-200/vgcfgbackup
/lib/lvm-200/vgchange
/lib/lvm-200/lvconvert
/lib/lvm-200/pvcreate
/lib/lvm-200/lvchange
/lib/lvm-200/vgremove
/lib/lvm-200/lvremove
Bonne consultation de tous les mans corréspondants
cep
p.s. : pour la petite histoire, dans ma précipitation lors du pvcreate et vgcreate j’avais oublié de joindre /dev/hdb3 à /dev/hdb2. J’ai utilisé vgremove et pvremove pour revenir en arrière :
# pvcreate /dev/hdb2
Physical volume “/dev/hdb2″ successfully created
# vgcreate db2_base /dev/hdb2
Volume group “db2_base” successfully created
# vgremove /dev/db2_base
Volume group “db2_base” successfully removed
# pvremove /dev/hdb2
Labels on physical volume “/dev/hdb2″ successfully wiped
Topics: linux |

18 janvier 2007 at 10:27
[…] Enfin resize2fs est souvent utilisé sur des configurations avec lvm, après un lvextend par exemple, et ceci même sans démonter le système de ficheirs. Voir http://www.cepcasa.info/blog/?p=17 […]