On détaille ici les opérations à effectuer pour étendre un volume logique LVM.
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%.
# 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
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:
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]
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