{{tag>sysadmin lvm lv}}
====== Extension d'un volume logique ======
On détaille ici les opérations à effectuer pour étendre un volume logique LVM.
===== Prérequis =====
Pour l'exercice on va créer un fichier périphérique de 20 Mo que l'on associera a un groupe de volume vgtest. On créera un volume logique databank puis un système de fichier que l'on remplira à 100%.
La création d'un volume logique est détaillée dans le wiki
# creation du fichier périphérique
$ sudo dd if=/dev/zero of=/tmp/vdisk-1 bs=1M count=20
$ sudo losetup /dev/loop0 vdisk-1
# creation du volume logique
$ sudo pvcreate /dev/loop0
$ sudo vgcreate --physicalextentsize 1M vgtest /dev/loop0
$ sudo lvcreate --extents 19 --name databank vgtest
# creation et saturation du système de fichier
$ sudo mkfs.ext4 /dev/vgtest/databank
$ sudo mount /dev/vgtest/databank /mnt/
$ sudo dd if=/dev/zero of=/mnt/file.data bs=1M count=16
===== Procédure =====
Ici notre système de fichier est plein comme l'indique le retour de la commande **df**:
$ df -lh
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/sda1 9,3G 1,1G 7,8G 12% /
...
/dev/mapper/vgtest-databank 18M 17M 0 100% /mnt
Utilisation à 100% du système de fichier sur le périphérique /dev/mapper/vgtest-databank.
Il va nous falloir agrandir notre système de fichier afin de continuer a l'utili
Pour pouvoir agrandir le système de fichier contenu dans le volume logique databank il faut:
* Ajouter un volume physique au groupe de volume vgtest
* Étendre le volume logique databank
==== Ajout du volume physique ====
on utilise un fichier de 30 Mo monté via losetup:
$ sudo dd if=/dev/zero of=/tmp/vdisk-2 bs=1M count=30
$ sudo losetup /dev/loop1 /tmp/vdisk-2
Création du descripteur de groupe de volume sur le périphérique de type bloc:
$ sudo pvcreate /dev/loop1
Physical volume "/dev/loop1" successfully created
La commande **pvscan** détecte à présent 2 PVs:
$ sudo pvscan
PV /dev/loop0 VG vgtest lvm2 [19,00 MiB / 0 free]
PV /dev/loop1 lvm2 [30,00 MiB]
Total: 2 [49,00 MiB] / in use: 1 [19,00 MiB] / in no VG: 1 [30,00 MiB]
* Le périphérique de type bloc /dev/loop0 est utilisé par le groupe de volume vgtest
* Le périphérique /dev/loop1 n'est associé à aucun groupe de volume pour l'instant.
**vgdisplay** permet d'afficher les attributs des groupes de volumes existants:
$ sudo vgdisplay vgtest
--- Volume group ---
VG Name vgtest
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
...
VG Size 19,00 MiB
PE Size 1,00 MiB
Total PE 19
Alloc PE / Size 19 / 19,00 MiB
Free PE / Size 0 / 0
VG UUID TW5Miy-3QdA-3ve1-I4R5-50Hy-tfie-Cu7pf4
Ici vgtest a une taille totale de 19 Mo. Il se compose de 19 PE de 1 Mo tous utilisés.
On associe le volume physique /dev/loop1 au groupe de volume vgtest:
$ sudo vgextend vgtest /dev/loop1
Volume group "vgtest" successfully extended
Un nouvel appel à vgdisplay permet de confirmer l'association du volume physique au groupe de volume vgtest et de noter la nouvelle taille ou le nombre de PE allouables:
$ sudo vgdisplay vgtest
--- Volume group ---
VG Name vgtest
...
VG Size 48,00 MiB
PE Size 1,00 MiB
Total PE 48
Alloc PE / Size 19 / 19,00 MiB
Free PE / Size 29 / 29,00 MiB
Ici 29 PE de 1Mo sont à présent disponibles. On affecte les PE disponibles au volume logique databank
$ sudo lvextend --extents +29 /dev/vgtest/databank
A présent il ne reste qu'a démonter et retailler le système de fichier pour qu'il s'adapte a la nouvelle taille du volume logique:
$ sudo umount /dev/vgtest/databank
$ sudo resize2fs /dev/vgtest/databank
$ sudo mount /dev/vgtest/databank /mnt
La commande **df** montre que le système de fichier a bien été agrandi:
$ df -lh /dev/vgtest/databank
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/mapper/vgtest-databank 46M 17M 27M 39% /mnt
===== Références =====
* http://tldp.org/HOWTO/LVM-HOWTO/extendlv.html