Come posso estendere un volume EBS con partizioni LVM?

6 minuti di lettura
0

Voglio estendere il mio volume Amazon Elastic Block Store (Amazon EBS) con partizioni LVM.

Breve descrizione

Esistono due opzioni per estendere i volumi logici:

  1. aumentare le dimensioni del volume EBS esistente.
  2. Aggiungere ulteriori volumi EBS al tuo gruppo di volumi ed estendere il VG-LV.

Risoluzione

Opzione 1: aumentare le dimensioni del volume EBS esistente

Nota: Le modifiche alle dimensioni dei volumi esistenti di solito hanno effetto entro pochi secondi dopo che il volume è entrato nello stato di ottimizzazione. Le prestazioni del volume sono influenzate durante lo stato di ottimizzazione, ma non scendono al di sotto delle specifiche di configurazione di origine. A seconda del tipo di volume, le modifiche alle prestazioni potrebbero richiedere da alcuni minuti a qualche ora. Per ulteriori informazioni, consulta Monitoraggio dell'avanzamento delle modifiche del volume.

1.    Modifica le dimensioni del volume EBS esistente.

2.    Esegui il seguente comando per installare l'utilità growpart :

$ sudo yum install cloud-utils-growpart

Nota: Usa il seguente comando per installare l'utilità growpart su sistemi basati su Debian o Ubuntu:

$ sudo apt install -y cloud-guest-utils

3.    Esegui il comando growpart per estendere la partizione.

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

4.    Esegui il comando pvresize per ridimensionare il PV. Nell'esempio seguente, la partizione /dev/xvdh1 è estesa:

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

Usa pvs o pvdisplay per visualizzare i dettagli del volume fisico:

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

Usa vgs o vgdisplay per visualizzare i dettagli del gruppo di volumi:

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

5.    Esegui il comando lvextend per estendere il volume logico:

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

Nota: Nell'esempio precedente, 19G è la nuova dimensione aumentata del volume logico (LV). 19G non è la dimensione con cui il LV deve essere aumentato.

Usa il comando lvs o lvdisplay per visualizzare i dettagli del volume logico:

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

6.    Esegui il seguente comando per estendere il file system:

I file system Ext2, Ext3 e Ext4:

$ sudo resize2fs /dev/examplegroup1/lvexample1

File systemXFS:

$ sudo xfs_growfs /dev/examplegroup1/lvexample1

Opzione 2: Aggiungi ulteriori volumi EBS al tuo gruppo di volumi ed estendi il VG-LV

1.    Crea un altro volume da 10 GB e quindi collega il volume all'istanza. Crea una partizione sul dispositivo /dev/xvdi seguendo il passaggio 3 di Creare volumi fisici sulla partizione del tuo volume EBS. Quindi esegui il comando pvcreate. Nell'esempio seguente, il nome del dispositivo a blocchi del volume è /dev/xvdi1.

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

2.    Usa il comando vgextend per estendere il gruppo di volumi e aggiungere il nuovo volume. L'esempio seguente estende il gruppo di volumi examplegroup1 per includere il volume /dev/xvdi1:

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

Per confermare l'estensione, esegui il comando vgs o vgdisplay. L'esempio seguente mostra che ora ci sono due PV nel gruppo di volumi examplegroup1:

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

3.    Esegui il comando lvextend per estendere il volume logico:

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

Nota: Nell'esempio precedente, 29G è la nuova dimensione aumentata del volume logico (LV). 29G non è la dimensione con cui il LV deve essere aumentato.

4.    Ridimensiona il file system:

I file system Ext2, Ext3 e Ext4:

$ sudo resize2fs /dev/examplegroup1/lvexample1

File systemXFS:

$ sudo xfs_growfs /dev/examplegroup1/lvexample1

Estendere un volume a strisce

Lo striping è una tecnica per distribuire i dati su più dischi. Potresti ricevere un messaggio simile al seguente quando estendi un volume logico:

$ 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'errore precedente o errori simili si verificano quando si estende un volume logico "a strisce" senza aggiungere un numero sufficiente di dispositivi per lo stripping dei dati.

Per evitare questi errori durante l'estensione di un volume a strisce, completa i seguenti passaggi:

1.    Esegui il seguente comando per identificare il numero di dispositivi su cui LV trasmette i dati.

$ 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 colonna #Str, o a strisce, rappresenta il numero di dispositivi su cui vengono suddivisi i dati. Nell'esempio precedente, i dati vengono distribuiti su 2 dispositivi. Quindi, è necessario aggiungere almeno 2 dispositivi (o dispositivi in multipli di 2) al vg per estendere il LV. Dopo aver aggiunto un dispositivo (nei passaggi precedenti), aggiungi il secondo dispositivo e tenti di eseguire nuovamente l'estensione:

$ 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'esempio di output precedente mostra che il comando lvextend è stato completato correttamente quando è stato aggiunto il secondo dispositivo.

3.    Esegui il seguente comando per ridimensionare il file system:

I file system Ext2, Ext3 e Ext4:

$ sudo resize2fs /dev/vg01/lv01

File systemXFS:

$ sudo xfs_growfs /dev/vg01/lv01
AWS UFFICIALE
AWS UFFICIALEAggiornata 10 mesi fa