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 :
- echo “- – -“>/sys/class/scsi_host/host0/scan
- echo “- – -“>/sys/class/scsi_host/host1/scan
- echo “- – -“>/sys/class/scsi_host/host2/scan
- dmesg (pour récupérer le nom du disque /dev/sdX)
- fdisk /dev/sdX
- vgdisplay (pour récupérer le nom du VG)
- vgextend VG_Name /dev/sdX1
- lvextend /dev/VG_Name/mountpoint -l +100%FREE
- resize2fs /dev/mapper/VG_Name-vg-mountpoint
Et voilà !