4.4.9. Augmenter la taille d'un volume en mode stripe

Afin d'augmenter la taille d'un volume logique en mode stripe, il doit y avoir suffisamment d'espace libre sur les volumes physiques sous-jacents qui composent le groupe de volumes afin de supporter le mode stripe. Si vous avez par exemple un stripe à deux sens qui utilise un groupe de volumes entier, l'ajout d'un seul volume physique au groupe de volumes ne vous permettra pas d'étendre le stripe. À la place, vous devez ajouter au moins deux volumes physiques au groupe de volumes.
Considérons par exemple un groupe de volumes vg qui se compose deux volumes physiques sous-jacents, comme l'illustre la commande vgs suivante.
# vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  vg     2   0   0 wz--n- 271.31G 271.31G
Vous pouvez créer un stripe utilisant tout l'espace du groupe de volumes.
# lvcreate -n stripe1 -L 271.31G -i 2 vg
  Using default stripesize 64.00 KB
  Rounding up size to full physical extent 271.31 GB
  Logical volume "stripe1" created
# lvs -a -o +devices
  LV      VG   Attr   LSize   Origin Snap%  Move Log Copy%  Devices
  stripe1 vg   -wi-a- 271.31G                               /dev/sda1(0),/dev/sdb1(0)
Notez que le groupe de volumes n'a maintenant plus d'espace libre.
# vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  vg     2   1   0 wz--n- 271.31G    0
La commande suivante ajoute un autre volume physique au groupe de volumes, qui aura donc 135Go d'espace supplémentaire.
# vgextend vg /dev/sdc1
  Volume group "vg" successfully extended
# vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  vg     3   1   0 wz--n- 406.97G 135.66G
À ce stade, vous ne pouvez pas étendre le volume logique en mode stripe à la taille totale du groupe de volumes car deux périphériques sous-jacents sont requis afin de "striper" les données.
# lvextend vg/stripe1 -L 406G
  Using stripesize of last segment 64.00 KB
  Extending logical volume stripe1 to 406.00 GB
  Insufficient suitable allocatable extents for logical volume stripe1: 34480 
more required
Pour étendre le volume logique en mode stripe, ajoutez d'abord un autre volume physique. Dans cet exemple, étant donné que nous avons ajouté de deux volumes physiques dans le groupe de volumes, nous pouvons étendre le volume logique 5A à la taille entière du groupe de volumes.
# vgextend vg /dev/sdd1
  Volume group "vg" successfully extended
# vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  vg     4   1   0 wz--n- 542.62G 271.31G
# lvextend vg/stripe1 -L 542G
  Using stripesize of last segment 64.00 KB
  Extending logical volume stripe1 to 542.00 GB
  Logical volume stripe1 successfully resized
Même si vous n'avez pas suffisamment de périphériques physiques sous-jacents afin d'étendre le volume logique en mode stripe, vous pouvez tout de même l'étendre mais l'extension ne sera pas "stripée", ce qui peut résulter en des performances inégales. Lors de l'ajout d'espace au volume logique, l'opération par défaut consiste à utiliser les mêmes paramètres "striping" que ceux utilisés dans le dernier segment du volume logique existant, mais vous pouvez surcharger ces paramètres. L'exemple suivant étend le volume logique en mode stripe existant afin d'utiliser l'espace libre restant après que la commande initiale lvextend ait échoué.
# lvextend vg/stripe1 -L 406G
  Using stripesize of last segment 64.00 KB
  Extending logical volume stripe1 to 406.00 GB
  Insufficient suitable allocatable extents for logical volume stripe1: 34480 
more required
# lvextend -i1 -l+100%FREE vg/stripe1