Le vendredi 15 avril 2005 par Nicolas DAMIENS

Gérer son espace disque avec LVM

Logical Volume Manager vous donne la capacité de créer des partitions sur plusieurs disques, de les agrandir et réduire à volonté.

Il n’est pas difficile a mettre en place et peut simplifier la vie de bon nombre de personnes qui n’ont pas forcément bien dimensionnées leurs partitions pendant l’installation de leur système.


Le principe

Dans LVM il y a des partitions classique PV (volume physique) que l’on va réunir dans des groupes VG (Groupe de volumes), dans chacun d’eux on va créer des partitions logiques LV (Volume logique).

L’intérêt c’est que vous pouvez ajouter et retirer les volumes physique dans les groupes et ajouter, retirer et modifier la taille des volumes logique à l’intérieur de ces mêmes groupes.

Ce dont vous avez besoin : Pour ma part j’ai utilisé un noyau linux 2.4 avec le module lvm-mod et les outils de LVM.

Préparer le terrain

Le but étant de mettre dans les "partitions" gérées par LVM celles du système déjà installé il vous faudra une partition de travail qui soit vide.

Si vous avez une partition pour /tmp et qu’elle est assez grande elle faira l’affaire.

Les partitions LVM sont de type "Linux LVM", avec cfdisk par exemple on bascule alors le type de notre partition vers "8E".

On attaque avec LVM

On va commencer par créer notre premier volume physique :

(si c’est la premiére fois que vous lancez pvcreate il vous faudra d’abord exécuter vgscan (sinon c’est pvcreate qui vous le demandera)).

# pvcreate /dev/hdb2
pvcreate -- physical volume "/dev/hdb2" successfully created

On peut vérifier que le travail a bien été fait avec pvscan :

# pvscan
pvscan -- reading all physical volumes (this may take a while...)
pvscan -- inactive PV "/dev/ide/host0/bus0/target1/lun0/part2" is in no VG  [54.95 GB]
pvscan -- total: 1 [54.95 GB] / in use: 0 [0] / in no VG: 1 [54.95 GB]

Maintenant on va créer le groupe de volumes :

# vgcreate grp01 /dev/ide/host0/bus0/target1/lun0/part2
vgcreate -- INFO: using default physical extent size 32 MB
vgcreate -- INFO: maximum logical volume size is 2 Terabyte
vgcreate -- doing automatic backup of volume group "grp01"
vgcreate -- volume group "grp01" successfully created and activated

et on peut encore vérifier le travail avec vgdisplay

# vgdisplay
--- Volume group ---
VG Name               grp01
VG Access             read/write
VG Status             available/resizable
VG #                  0
MAX LV                256
Cur LV                0
Open LV               0
MAX LV Size           2 TB
Max PV                256
Cur PV                1
Act PV                1
VG Size               54.91 GB
PE Size               32 MB
Total PE              1757
Alloc PE / Size       0 / 0
Free  PE / Size       1757 / 54.91 GB
VG UUID               7cD7H7-HyuV-YlB9-yslN-HU1l-5g9O-eglSL8

Merveilleux non ?

Allez le moment tend attendu le volume logique (notre nouvelle partition) :

# lvcreate -n vl01 -L 1G grp01
lvcreate -- doing automatic backup of "grp01"
lvcreate -- logical volume "/dev/grp01/vl01" successfully created

Bon avec 1Go j’irai pas très loin, on va pousser les murs :

# lvextend -L +19G /dev/grp01/vl01
lvextend -- extending logical volume "/dev/grp01/vl01" to 20 GB
lvextend -- doing automatic backup of volume group "grp01"
lvextend -- logical volume "/dev/grp01/vl01" successfully extended

Maintenant on va le rendre accessible :

# mke2fs -j /dev/grp01/vl01 && tune2fs -c 0 /dev/grp01/vl01
# mkdir /lvm
# mount -t ext3 /dev/grp01/vl01 /lvm

Transférez le contenu de la partition que vous souhaitez ajouter au groupe de volume physique dans /lvm

Une fois fait démontez votre partition, changez là en "Linux LVM" avec cfdisk et on faites en un volume physique pour LVM avec pvcreate

# cfdisk /dev/hdb
[...]
# pvcreate /dev/hdb5
pvcreate -- physical volume "/dev/hdb5" successfully created

# pvscan
pvscan -- reading all physical volumes (this may take a while...)
pvscan -- ACTIVE   PV "/dev/ide/host0/bus0/target1/lun0/part2" of VG "grp01" [54.91 GB / 34.91 GB free]
pvscan -- inactive PV "/dev/ide/host0/bus0/target1/lun0/part5" is in no VG  [18.63 GB]
pvscan -- total: 2 [73.58 GB] / in use: 1 [54.95 GB] / in no VG: 1 [18.63 GB]

On va ajouter notre nouveau volume dans le groupe "grp01" :

# vgextend grp01 /dev/ide/host0/bus0/target1/lun0/part5
vgextend -- INFO: maximum logical volume size is 2 Terabyte
vgextend -- doing automatic backup of volume group "grp01"
vgextend -- volume group "grp01" successfully extended

Je vais encore agrandir mon premier volume logique et en créer un deuxiéme. Pour celà il faudra que je démonte mon volume, que je l’agrandisse et redimensionne le système de fichiers. En suite je vais ajouter un deuxiéme volume logique dans le groupe.

# umount /lvm
# lvextend -L +20G /dev/grp01/vl01
lvextend -- extending logical volume "/dev/grp01/vl01" to 40 GB
lvextend -- doing automatic backup of volume group "grp01"
lvextend -- logical volume "/dev/grp01/vl01" successfully extended

# e2fsck -f /dev/grp01/vl01
e2fsck 1.35 (28-Feb-2004)
[...]
/dev/grp01/vl01: 37/2621440 files (0.0% non-contiguous), 4344939/5242880 blocks

# resize2fs /dev/grp01/vl01
resize2fs 1.35 (28-Feb-2004)
Resizing the filesystem on /dev/grp01/vl01 to 10485760 (4k) blocks.
[...]

# lvcreate -n vl02 -L 10G grp01
lvcreate -- doing automatic backup of "grp01"
lvcreate -- logical volume "/dev/grp01/vl02" successfully created

# mke2fs -j /dev/grp01/vl02 && tune2fs -c 0 /dev/grp01/vl02
# mkdir /lvm2
# mount /dev/grp01/vl01 /lvm
# mount /dev/grp01/vl02 /lvm2

Liste des principaux outils pour gérer votre espace disque avec LVM

- pvscan : Liste les volumes physique.
- pvcreate : Créé des volumes physique.
- vgcreate : Créé des groupes de volumes.
- vgextend : Ajoute un volume physique dans un groupe.
- vgreduce : Retire un volume physique d’un groupe.
- vgdisplay : Affiche la liste des groupes de volumes.
- lvcreate : Ajoute un volume logique dans un groupe.
- lvextend : Agrandire un volume logique.
- lvreduce : Réduire la taille d’un volume logique.
- lvremove : Détruire un volume logique.
- lvscan : La liste des volumes logique.

Voilà celà devrai vous permettre de démarrer. LVM supporte de nombreuses manipulations, n’hésitez pas a regarder les pages de man des outils et visiter le site du projet http://sourceware.org/lvm/

Répondre à cet article

Les fortunes de #epplug. Retrouvez les membres de notre association sur notre salon IRC: irc.geeknode.net #epplug
Voici quelques extraits amusants (Télécharger le fichier de fortune)

Association Picarde des Utilisateurs de Logiciels Libres (EPPLUG) ­ Association régie par la loi 1901
137, avenue du général FOY 80000 AMIENS.
Parution au Journal Officiel le 21/06/03 sous le n° 20030025 ­ Siren : 494 525 280

© epplug.org 2002-2005 - ce site fonctionne grace au moteur d'edition collaboratif SPIP fonctionnant sous license GPL

ADMIN

Toutes les interventions sur ce site sont la propriété de leurs auteurs respectifs.