Comment puis-je étendre un volume EBS contenant des partitions LVM ?

Lecture de 6 minute(s)
0

Je souhaite étendre mon volume Amazon Elastic Block Store (Amazon EBS) contenant des partitions LVM.

Brève description

Il existe deux options pour étendre les volumes logiques :

  1. Augmenter la taille du volume EBS existant
  2. Ajouter des volumes EBS supplémentaires à votre groupe de volumes et étendre le VG-LV

Résolution

Option 1 : Augmenter la taille du volume EBS existant

Remarque : les modifications de taille apportées aux volumes existants prennent généralement effet quelques secondes après que le volume passe à l'état d'optimisation. Les performances du volume sont affectées pendant l'état d'optimisation, mais elles ne sont pas inférieures aux spécifications de configuration source. Selon le type de volume, les modifications peuvent prendre de quelques minutes à quelques heures. Pour plus d'informations, reportez-vous à la section Surveiller la progression des modifications de volume.

1.    Modifiez la taille du volume EBS existant.

2.    Exécutez la commande suivante pour installer l'utilitaire growpart :

$ sudo yum install cloud-utils-growpart

Remarque : exécutez la commande suivante pour installer l'utilitaire growpart pour des systèmes basés sur Debian ou Ubuntu :

$ sudo apt install -y cloud-guest-utils

3.    Exécutez la commande growpart pour étendre la partition.

$ sudo growpart /dev/xvdh 1
 CHANGED: disk=/dev/xvdh partition=1: start=2048 old: size=20971519,end=16777182 new: size=41940958,end=41943006

4.    Exécutez la commande pvresize pour redimensionner le PV. Dans l'exemple suivant, la partition /dev/xvdh1 est étendue :

$ sudo pvresize /dev/xvdh1
Physical volume "/dev/xvdh1" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized

Utilisez la commande pvs ou pvdisplay pour afficher les détails du volume physique :

$ sudo pvs
PV         VG            Fmt  Attr PSize   PFree
 /dev/xvdh1 examplegroup1 lvm2 a--  <20.00g <13.00g

Utilisez la commande vgs ou vgdisplay pour afficher les détails du groupe de volumes :

$ sudo vgs
 VG            #PV #LV #SN Attr   VSize   VFree
examplegroup1   1   1   0 wz--n- <20.00g <13.00g

5.    Exécutez la commande lvextend pour étendre le volume logique :

$ sudo lvextend -L 19G /dev/examplegroup1/lvexample1

Remarque : Dans l'exemple précédent, 19 G est la nouvelle taille augmentée du LV. 19 G n'est pas la taille par laquelle le LV doit être augmenté.

Utilisez la commande lvs ou lvdisplay pour afficher les détails du volume logique :

$ sudo lvs  LV        VG            Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
lvexample1 examplegroup1 -wi-a----- 19.00g

6.    Exécutez la commande suivante pour étendre le système de fichiers :

Systèmes de fichiers Ext2, Ext3 et Ext4 :

$ sudo resize2fs /dev/examplegroup1/lvexample1

Systèmes de fichiers XFS :

$ sudo xfs_growfs /dev/examplegroup1/lvexample1

Option 2 : Ajouter des volumes EBS supplémentaires à votre groupe de volumes et étendre le VG-LV

1.    Créez un autre volume EBS de 10 Go, puis associez le volume à l'instance. Créez une partition sur le périphérique /dev/xvdi en suivant l'étape 3 de Création de volumes physiques sur la partition de votre volume EBS. Exécutez ensuite la commande pvcreate. Dans l'exemple suivant, le nom du périphérique de stockage en mode bloc du volume est /dev/xvdi1.

$ sudo pvcreate /dev/xvdi1
Physical volume "/dev/xvdi1" successfully created

2.    Utilisez la commande vgextend pour étendre le groupe de volumes et ajouter le nouveau volume. L'exemple suivant étend le groupe de volumes examplegroup1 pour inclure le volume /dev/xvdi1 :

$ sudo vgextend examplegroup1 /dev/xvdi1
Volume group "examplegroup2" successfully extended

Pour confirmer l'extension, exécutez la commande vgs ou vgdisplay. L'exemple suivant montre qu'il existe désormais deux PV dans le groupe de volumes examplegroup1 :

$ sudo vgs
  VG                       #PV #LV #SN Attr   VSize   VFree
examplegroup1            2   1   0 wz--n-  29.99g   20.99g

3.    Exécutez la commande lvextend pour étendre le volume logique :

$ sudo lvextend -L 29G /dev/examplegroup1/lvexample1

Remarque : Dans l'exemple précédent, 29 G est la nouvelle taille augmentée du LV. 29 G n'est pas la taille par laquelle le LV doit être augmenté.

4.    Redimensionnez le système de fichiers :

Systèmes de fichiers Ext2, Ext3 et Ext4 :

$ sudo resize2fs /dev/examplegroup1/lvexample1

Systèmes de fichiers XFS :

$ sudo xfs_growfs /dev/examplegroup1/lvexample1

Étendre un volume agrégé par bandes

L'agrégation par bandes est une technique qui permet de répartir les données sur plusieurs disques. Vous pouvez recevoir un message similaire au suivant lors de l'extension d'un volume logique :

$ pvcreate /dev/xvdd
Physical volume "/dev/xvdd" successfully created.

$ vgextend vg01 /dev/xvdd
Volume group "vg01" successfully extended

$ vgs
VG   #PV #LV #SN Attr   VSize   VFree
vg01   3   1   0 wz--n- <23.99g <13.99g

$ lvextend /dev/vg01/lv01 -L +10G
Using stripesize of last segment 128.00 KiB
Insufficient suitable allocatable extents for logical volume lv01: 1026 more required

L'erreur précédente ou des erreurs similaires se produisent lors de l'extension d'un volume logique « agrégé par bandes » sans ajouter un nombre suffisant de périphériques pour agréger les données par bandes.

Pour éviter ces erreurs lors de l'extension d'un volume agrégé par bandes, procédez comme suit :

1.    Exécutez la commande suivante pour identifier le nombre de périphériques sur lesquels le LV agrège les données par bandes.

$ lvs -o+lv_layout,stripes
LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Layout     #Str
lv01 vg01 -wi-a----- 10.00g                                                     striped       2

2.    La colonne #Str, ou bandes, représente le nombre de périphériques sur lesquels les données sont agrégées par bandes. Dans l'exemple précédent, les données sont agrégées par bandes sur 2 périphériques. Vous devez donc ajouter au moins 2 périphériques (ou des périphériques par multiples de 2) au vg pour étendre le LV. Comme vous avez ajouté un périphérique (dans les étapes précédentes), ajoutez un deuxième périphérique et essayez de l'étendre à nouveau :

$ pvcreate /dev/xvde
Physical volume "/dev/xvde" successfully created.

$ vgextend vg01 /dev/xvde
Volume group "vg01" successfully extended

$ vgs
VG   #PV #LV #SN Attr   VSize  VFree
  vg01   4   1   0 wz--n- 31.98g 21.98g

$ lvextend /dev/vg01/lv01 -L +10G
Using stripesize of last segment 128.00 KiB
Size of logical volume vg01/lv01 changed from 10.00 GiB (2560 extents) to 20.00 GiB (5120 extents).
Logical volume vg01/lv01 successfully resized.

$ lvs -o+lv_layout,stripes
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Layout     #Str
lv01 vg01 -wi-a----- 20.00g                                                     striped       2
lv01 vg01 -wi-a----- 20.00g                                                     striped       2

L'exemple de sortie précédent montre que la commande lvextend s'est correctement terminée lorsque le deuxième périphérique a été ajouté.

3.    Exécutez la commande suivante pour redimensionner le système de fichiers :

Systèmes de fichiers Ext2, Ext3 et Ext4 :

$ sudo resize2fs /dev/vg01/lv01

Systèmes de fichiers XFS :

$ sudo xfs_growfs /dev/vg01/lv01
AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 10 mois