LVM : Agrandir facilement un volume

LVM : Agrandir facilement un volume

Alors aujourd’hui, nous allons voir comment agrandir facilement un volume LVM.

Nous sommes dans un environnement virtuel et nous devons agrandir le volume monté dans /var.

La première étape est d’ajouter un disque virtuel : oui, vous avez bien entendu – on n’augmente pas la taille du disque d’origine, on ajoute un disque.

Pourquoi ? Déjà parce que c’est plus simple et ensuite car cela permet de multiplier par 2 les axes de stockage et donc, la performance !

Les préparatifs

Donc, on part du principe que le VMDK (ou le VHDX, bien sûr), a déjà été ajouté.

Détection du nouveau disque à chaud

En root, on tape les commandes suivantes pour forcer le noyau à scanner les contrôleurs SCSI :

root@guylux:/# echo "- - -">/sys/class/scsi_host/host0/scan
echo "- - -">/sys/class/scsi_host/host1/scan
echo "- - -">/sys/class/scsi_host/host2/scan

Une fois fait, on fait un « dmesg » pour vérifier que le nouveau disque est bien détecté :

root@guylux:/# dmesg :
[1276662.029092] vmw_pvscsi: msg type: 0x0 - MSG RING: 1/0 (5)
[1276662.029094] vmw_pvscsi: msg: device added at scsi0:1:0
[1276662.029384] scsi 0:0:1:0: Direct-Access     VMware   Virtual disk     2.0  PQ: 0 ANSI: 6
[1276662.029771] sd 0:0:1:0: [sdb] 16777216 512-byte logical blocks: (8.59 GB/8.00 GiB)
[1276662.029812] sd 0:0:1:0: [sdb] Write Protect is off
[1276662.029813] sd 0:0:1:0: [sdb] Mode Sense: 61 00 00 00
[1276662.029825] sd 0:0:1:0: [sdb] Cache data unavailable
[1276662.029826] sd 0:0:1:0: [sdb] Assuming drive cache: write through
[1276662.029936] sd 0:0:1:0: Attached scsi generic sg2 type 0
[1276662.030370] sd 0:0:1:0: [sdb] Attached SCSI disk
[1276680.320092] ata1: soft resetting link
[1276680.490899] ata1: EH complete
[1276682.111940] ata2: soft resetting link
[1276682.275050] ata2.00: configured for UDMA/33
[1276682.276361] ata2: EH complete

On voit bien que le noyau a détecté /dev/sdb de 8 GiB.

Préparation du disque

Le disque étant détecté, on va le partitionner – 1 partition au format LVM:

root@guylux:/# fdisk /dev/sdb

Bienvenue dans fdisk (util-linux 2.29.2).
Les modifications resteront en mémoire jusqu'à écriture.
Soyez prudent avant d'utiliser la commande d'écriture.

Le périphérique ne contient pas de table de partitions reconnue.
Création d'une nouvelle étiquette pour disque de type DOS avec identifiant de disque 0xa8baffed.

Commande (m pour l'aide) : n
Type de partition
   p   primaire (0 primaire, 0 étendue, 4 libre)
   e   étendue (conteneur pour partitions logiques)
Sélectionnez (p par défaut) : p
Numéro de partition (1-4, 1 par défaut) :
Premier secteur (2048-16777215, 2048 par défaut) :
Dernier secteur, +secteurs ou +taille{K,M,G,T,P} (2048-16777215, 16777215 par défaut) :

Une nouvelle partition 1 de type « Linux » et de taille 8 GiB a été créée.

Commande (m pour l'aide) : t
Partition 1 sélectionnée
Type de partition (taper L pour afficher tous les types) : 8e
Type de partition « Linux » modifié en « Linux LVM ».

Commande (m pour l'aide) : w
La table de partitions a été altérée.
Appel d'ioctl() pour relire la table de partitions.
Synchronisation des disques.

Augmentation du volume LVM

Pour commencer, on va lancer la commande « vgdisplay » pour obtenir le nom du Volume Group à agrandir :

root@guylux:/# vgdisplay
  --- Volume group ---
  VG Name               Guylux-vg
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  15
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                4
  Open LV               4
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               59,76 GiB
  PE Size               4,00 MiB
  Total PE              15298
  Alloc PE / Size       15298 / 59,76 GiB
  Free  PE / Size       0 / 0
  VG UUID               vrnIex-pv6P-5WIy-61Il-B6Lo-o6j6-zFkIR3

Maintenant, on étend le VG « Guylux-vg » avec /dev/sdb1 :

root@guylux:/# vgextend Guylux-vg /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
  Volume group "Guylux-vg" successfully extended

root@guylux:/# vgdisplay
  --- Volume group ---
  VG Name               Guylux-vg
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  16
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                4
  Open LV               4
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               67,75 GiB
  PE Size               4,00 MiB
  Total PE              17345
  Alloc PE / Size       15298 / 59,76 GiB
  Free  PE / Size       2047 / 8,00 GiB
  VG UUID               vrnIex-pv6P-5WIy-61Il-B6Lo-o6j6-zFkIR3

root@guylux:/# lvextend /dev/Guylux-vg/var -l +100%FREE
  Size of logical volume Guylux-vg/var changed from 4,66 GiB (1192 extents) to 12,65 GiB (3239 extents).
  Logical volume Guylux-vg/var successfully resized.

Et maintenant, on agrandit le filesystem

Le Volume Group a gagné 8 GiO, maintenant il faut les déclarer au niveau du filesystem :

root@guylux:/# resize2fs /dev/mapper/Guylux-vg-var
resize2fs 1.43.4 (31-Jan-2017)
Le système de fichiers de /dev/mapper/Guylux-vg-var est monté sur /var le changement de taille doit être effectué en ligne
old_desc_blocks = 1, new_desc_blocks = 2
Le système de fichiers sur /dev/mapper/Guylux-vg-var a maintenant une taille de 3316736 blocs (4k).

En résumé

On reprend le modus operandi :

  1. echo « – – -« >/sys/class/scsi_host/host0/scan
  2. echo « – – -« >/sys/class/scsi_host/host1/scan
  3. echo « – – -« >/sys/class/scsi_host/host2/scan
  4. dmesg (pour récupérer le nom du disque /dev/sdX)
  5. fdisk /dev/sdX
  6. vgdisplay (pour récupérer le nom du VG)
  7. vgextend VG_Name /dev/sdX1
  8. lvextend /dev/VG_Name/mountpoint -l +100%FREE
  9. resize2fs /dev/mapper/VG_Name-vg-mountpoint

Et voilà !

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.