Agrandir un LUN présenté à un serveur Linux

Nous allons voir dans cet article les différentes étapes pour agrandir un LUN présenté à un serveur Linux. La méthode a le grand avantage de pouvoir se faire en ligne ce qui est plutôt confortable si on aime bien pouvoir rentrer chez soi le soir ou le weekend… Pour résumer, l’opération se déroulera en 4 étapes:

  • Agrandir le LUN sur la baie SAN
  • Faire en sorte que le serveur Linux voit les modifications au niveau multipathing
  • Agrandir tous les éléments des LVM (PV/VG/LV)
  • Agrandir le système de fichiers

Je ne traiterai pas de tout ce qui concerne la baie SAN car l’opération est différente en fonction des constructeurs / baies. Nous allons nous concentrer sur la partie Linux.

Pour rappel: Pensez à faire des sauvegardes !!!

Configuration du serveur de test

Le serveur utilisé pour les tests est un HP proliant DL380 G6. L’OS utilisé est une Red Hat Enterprise Linux 6.3. Le serveur est nommé SRV01. La baie SAN est une EMC VNX5300. Le volume qui sera agrandi est vu par l’OS en tant que /dev/mapper/mpathj. La gestion de la redondance des liens est gérée par multipathd. Le volume est géré par LVM et est simplement composé d’un PV, un VG et un LV. La taille d’origine est 10 Go, nous allons l’agrandir jusqu’à 50 Go.

Liste des commandes

Prise en compte par l’OS de l’agrandissement du LUN

Lancer la commande multipath -ll. Prenez note des différents devices qui pointent vers le LUN (ici sdg, sdm,sds et sdy).

srv01:root:/root> multipath -ll mpathj
mpathj (36006016072312f00563e92d8039de511) dm-4 DGC,VRAID
size=10G features='1 queue_if_no_path' hwhandler='1 emc' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| |- 3:0:0:14 sdg 8:96   active ready  running
| `- 4:0:0:14 sdm 8:192  active ready  running
`-+- policy='round-robin 0' prio=0 status=enabled
  |- 3:0:1:14 sds 65:32  active ready  running
  `- 4:0:1:14 sdy 65:128 active ready  running

Faire un rescan de ces devices pour que l’OS voit que le LUN a été agrandi.

srv01:root:/root> echo 1 > /sys/block/sdg/device/rescan
srv01:root:/root> echo 1 > /sys/block/sdm/device/rescan
srv01:root:/root> echo 1 > /sys/block/sds/device/rescan
srv01:root:/root> echo 1 > /sys/block/sdy/device/rescan

Recharger la configuration du multipathing pour la prise en compte des modifications.

srv01:root:/root> multipath -r

En relançant la commande multipath -ll on peut valider que la taille du volume est bien de 50 Go.

srv01:root:/root> multipath -ll mpathj
mpathj (36006016072312f00563e92d8039de511) dm-4 DGC,VRAID
size=50G features='1 queue_if_no_path' hwhandler='1 emc' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| |- 3:0:0:14 sdg 8:96   active ready  running
| `- 4:0:0:14 sdm 8:192  active ready  running
`-+- policy='round-robin 0' prio=0 status=enabled
  |- 3:0:1:14 sds 65:32  active ready  running
  `- 4:0:1:14 sdy 65:128 active ready  running
Agrandissement du PV / VG / LV

Maintenant que l’OS est au courant des changements, il reste à agrandir tous les éléments gérés par LVM. La commande pvs affiche des informations sur les PV existants.

srv01:root:/root> pvs /dev/mapper/mpathj
  PV                 VG   Fmt  Attr PSize   PFree
  /dev/mapper/mpathj vg05 lvm2 a-     9,00g    0

La commande pvresize permet d’agrandir le PV en utilisant tout l’espace disponible sur le device.

srv01:root:/root> pvresize /dev/mapper/mpathj
  Physical volume "/dev/mapper/mpathj" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

En relançant la commande pvs, on peut voir que la taille du PV à bien augmenté.

srv01:root:/root> pvs /dev/mapper/mpathj
  PV                 VG   Fmt  Attr PSize   PFree
  /dev/mapper/mpathj vg05 lvm2 a-    49,00g 40,00g

Augmenter la taille du PV entraine automatiquement l’agrandissement du VG. On peut le vérifier avec la commande vgs.

srv01:root:/root> vgs vg05
  VG   #PV #LV #SN Attr   VSize   VFree
  vg05   1   1   0 wz--n-  49,00g 40,00g

Reste maintenant à augmenter la taille du LV, lvs permet d’obtenir des infos sur les LV existants.

srv01:root:/root> lvs lv05
  LV   VG   Attr   LSize   Origin Snap%  Move Log Copy%  Convert
  lv05 vg05 -wi-ao   9,00g

lvextend avec l’argument -l +100%FREE va agrandir le LV en prenant tout l’espace disponible sur le VG.

srv01:root:/root> lvextend -l +100%FREE /dev/vg05/lv05
  Extending logical volume lv05 to 49,00 GiB
  Logical volume lv05 successfully resized

On peut vérifier que le LV a bien été agrandi avec, encore une fois, la commande lvs.

srv01:root:/root> lvs lv05
  LV   VG   Attr   LSize   Origin Snap%  Move Log Copy%  Convert
  lv05 vg05 -wi-ao  49,00g
Resize du file system

Dernière étape ! On va agrandir le file system. La commande df -h permet d’avoir des informations sur les files systems existants.

srv01:root:/root> df -h
Sys. de fichiers    Taille  Uti. Disp. Uti% Monté sur
/dev/sda2              58G  6,2G   49G  12% /
tmpfs                  48G     0   48G   0% /dev/shm
/dev/sda1             194M   89M   95M  49% /boot
/dev/mapper/vg01-lv01
                      492G  459G  7,9G  99% /u01
/dev/mapper/vg02-lv02
                      1,5T  1,4T   75G  95% /u02
/dev/mapper/vg03-lv03
                      492G   56G  411G  12% /u03
/dev/mapper/vg04-lv04
                      8,9G  6,6G  1,9G  78% /u04
/dev/mapper/vg05-lv05
                      8,9G  3,4G  5,2G  40% /u05

resize2fs va agrandir le file system de manière transparente pour les utilisateurs. Notez bien qu’il faut utiliser le device généré par LVM /dev/mapper/vg05-lv05 au lieu de celui géré par multipathd. /dev/mapper/mpathj.

srv01:root:/root> resize2fs /dev/mapper/vg05-lv05
resize2fs 1.41.12 (17-May-2010)
Le système de fichiers de /dev/mapper/vg05-lv05 est monté sur /u05 ; le changement de taille doit être effectué en ligne
old desc_blocks = 1, new_desc_blocks = 4
En train d'effectuer un changement de taille en ligne de /dev/mapper/vg05-lv05 vers 12845056 (4k) blocs.
Le système de fichiers /dev/mapper/vg05-lv05 a maintenant une taille de 12845056 blocs.

On vérifie avev la commande df que le file system a bien la taille désirée.

srv01:root:/root> df -h /dev/mapper/vg05-lv05
Sys. de fichiers    Taille  Uti. Disp. Uti% Monté sur
/dev/mapper/vg05-lv05
                       49G  3,4G   43G   8% /u05

Si vous avez des questions ou un commentaire à faire, n’hesitez pas à laisser un message ci-dessous. Si vous avez aimé cet article, vous pouvez le partager avec vos followers ou bien me suivre sur Twitter!

comments powered by Disqus