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