Extension de la partition LVM sur une machine virtuelle VMWARE à chaud

Cet article est un copier/coller des commandes que j’ai utilisé pour étendre un volume LVM sur un machine virtuelle.
Habituellement, je crée un nouveau disque sur lequel je crée un nouveau physical volume que j’ajoute à mon LVM.

J’ai regardé si je pouvais « simplement » augmenter la taille de mon disque déjà configuré et l’étendre. Voici la réponse 🙂

Point sur la machine avant mise à jour du disque.

root@MonServeur:~# fdisk -l /dev/sda
Disque /dev/sda : 50 GiB, 53687091200 octets, 104857600 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d’E/S (minimale / optimale) : 512 octets / 512 octets
Type d’étiquette de disque : dos
Identifiant de disque : 0xe7b11870

Périphérique Amorçage Début Fin Secteurs Taille Id Type
/dev/sda1 * 2048 499711 497664 243M 83 Linux
/dev/sda2 501758 104855551 104353794 49,8G 5 Étendue
/dev/sda5 501760 104855551 104353792 49,8G 8e LVM Linux

On voit que mon disque fait 50Go et que le LVM (/dev/sda5) est sur la partition étendue (dev/sda2).

On installe l’outil dont on a besoin pour continuer, PARTED.

apt -y install parted

On visualise le partitionnement avec parted. On constatera que parted indique une taille différente du disque 53,7 au lieu de 50Go. Je ne sais pas pourquoi, mais bon, passons 🙁

root@MonServeur:~# parted /dev/sda print
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 53,7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1 1049kB 256MB 255MB primary ext2 boot
2 257MB 53,7GB 53,4GB extended
5 257MB 53,7GB 53,4GB logical lvm

On augmente maintenant la taille du disque dans VMWARE, ici à 100Go et on rescanne depuis le LINUX la taille des périphériques.

Dans un premier temps, on vérifie les noms des périphériques SCSI présents sur la VM.

root@MonServeur:~# ls /sys/class/scsi_device/
0:0:0:0 2:0:0:0

On fait un nouveau scan à chaud des 2 périphériques afin de ne pas avoir à rebooter.

echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan
echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan

Le serveur voit bien le changement.

root@MonServeur:~# parted /dev/sda print
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1 1049kB 256MB 255MB primary ext2 boot
2 257MB 53,7GB 53,4GB extended
5 257MB 53,7GB 53,4GB logical lvm

Il faut maintenant étendre la partition étendue qui porte mon lvm.
On va agrandir la partition étendue 2 à la taille max de 100Go (enfin, 107 pour parted ??)

parted /dev/sda resizepart 2 107GB

Ce qui donne ceci :

root@MonServeur:~# parted /dev/sda print
Model: VMware Virtual disk (scsi)

Disk /dev/sda: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1 1049kB 256MB 255MB primary ext2 boot
2 257MB 107GB 107GB extended
5 257MB 53,7GB 53,4GB logical lvm

On fait de même sur la partition 5 qui est le lvm lui-même.

root@MonServeur:~# parted /dev/sda resizepart 5 107GB
Information: You may need to update /etc/fstab.

root@MonServeur:~# parted /dev/sda print
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1 1049kB 256MB 255MB primary ext2 boot
2 257MB 107GB 107GB extended
5 257MB 107GB 107GB logical lvm

Au niveau des partitions, on est maintenant à jour.
On demande maintenant à LVM d’étendre le volume physique.

Avant :

root@MonServeur:~# pvdisplay
— Physical volume —
PV Name /dev/sda5
VG Name MonServeur-vg
PV Size 49,76 GiB / not usable 2,00 MiB
Allocatable yes (but full)
PE Size 4,00 MiB
Total PE 12738
Free PE 0
Allocated PE 12738
PV UUID Rxixj5-bYrG-4XF4-ZtGd-yv6y-pdMU-EDH43c

Extension :

root@MonServeur:~# pvresize /dev/sda5
Physical volume « /dev/sda5 » changed
1 physical volume(s) resized / 0 physical volume(s) not resized

Ce qui donne :

root@MonServeur:~# pvdisplay
— Physical volume —
PV Name /dev/sda5
VG Name MonServeur-vg
PV Size 99,41 GiB / not usable 1,15 MiB
Allocatable yes
PE Size 4,00 MiB
Total PE 25449
Free PE 12711
Allocated PE 12738
PV UUID Rxixj5-bYrG-4XF4-ZtGd-yv6y-pdMU-EDH43c

On étend maintenant le volume logique qui nous intéresse. Sur ma machine, il y en a 2.

root@MonServeur:~# lvdisplay
— Logical volume —
LV Path /dev/MonServeur-vg/root
LV Name root
VG Name MonServeur-vg
LV UUID v6ZPCy-UBdo-8h5w-LQqr-ATYk-WVZl-a5oc4Q
LV Write Access read/write
LV Creation host, time MonServeur, 2017-11-29 09:23:48 +0100
LV Status available
# open 1
LV Size 41,76 GiB
Current LE 10690
Segments 1
Allocation inherit
Read ahead sectors auto
– currently set to 256
Block device 254:0

— Logical volume —
LV Path /dev/MonServeur-vg/swap_1
LV Name swap_1
VG Name MonServeur-vg
LV UUID c8dbpc-vu2b-gxhM-rN07-n8xD-cxY8-f7OEof
LV Write Access read/write
LV Creation host, time MonServeur, 2017-11-29 09:23:48 +0100
LV Status available
# open 2
LV Size 8,00 GiB
Current LE 2048
Segments 1
Allocation inherit
Read ahead sectors auto
– currently set to 256
Block device 254:1

Je vais augmenter mon volume  » /dev/MonServeur-vg/root ».

root@MonServeur:~# lvextend -l +100%FREE /dev/MonServeur-vg/root
Size of logical volume MonServeur-vg/root changed from 41,76 GiB (10690 extents) to 91,41 GiB (23401 extents).
Logical volume MonServeur-vg/root successfully resized.

Vérifions…

root@MonServeur:~# lvdisplay
— Logical volume —
LV Path /dev/MonServeur-vg/root
LV Name root
VG Name MonServeur-vg
LV UUID v6ZPCy-UBdo-8h5w-LQqr-ATYk-WVZl-a5oc4Q
LV Write Access read/write
LV Creation host, time MonServeur, 2017-11-29 09:23:48 +0100
LV Status available
# open 1
LV Size 91,41 GiB
Current LE 23401
Segments 2
Allocation inherit
Read ahead sectors auto
– currently set to 256
Block device 254:0

— Logical volume —
LV Path /dev/MonServeur-vg/swap_1
LV Name swap_1
VG Name MonServeur-vg
LV UUID c8dbpc-vu2b-gxhM-rN07-n8xD-cxY8-f7OEof
LV Write Access read/write
LV Creation host, time MonServeur, 2017-11-29 09:23:48 +0100
LV Status available
# open 2
LV Size 8,00 GiB
Current LE 2048
Segments 1
Allocation inherit
Read ahead sectors auto
– currently set to 256
Block device 254:1

Enfin, on refait la taille du système de fichiers.

root@MonServeur:~# resize2fs /dev/MonServeur-vg/root
resize2fs 1.43.4 (31-Jan-2017)
Le système de fichiers de /dev/MonServeur-vg/root est monté sur / ; le changement de taille doit être effectué en ligne
old_desc_blocks = 6, new_desc_blocks = 12
Le système de fichiers sur /dev/MonServeur-vg/root a maintenant une taille de 23962624 blocs (4k).

Le « / » de mon système est bien passé à sa taille max possible (ici 84Go).

root@MonServeur:~# df -h
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
udev 3,9G 0 3,9G 0% /dev
tmpfs 799M 8,9M 790M 2% /run
/dev/mapper/ispconfig–core–vg-root 90G 2,7G 84G 4% /
tmpfs 3,9G 0 3,9G 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 3,9G 0 3,9G 0% /sys/fs/cgroup
/dev/sda1 236M 62M 162M 28% /boot
tmpfs 799M 0 799M 0% /run/user/0

Et voila !
On est arrivé au bout de la démarche.
Ce n’est pas très compliqué, mais c’est toujours stressant de travailler sur des partitions de machines actives 🙂

Je crois que je préfère tout de même mes ajouts de disque virtuel au LVM…

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *