Como ampliar um volume do EBS com partições LVM?

6 minuto de leitura
0

Quero ampliar um volume do Amazon Elastic Block Store (Amazon EBS) que contém partições LVM.

Breve descrição

Há duas opções para ampliar volumes lógicos:

  1. Aumente o tamanho do volume do EBS existente.
  2. Adicione outros volumes do EBS ao seu grupo de volumes e amplie o VG-LV.

Resolução

Opção 1: Aumente o tamanho do volume do EBS existente

Observação: alterações de tamanho em volumes existentes geralmente entram em vigor segundos após o volume entrar no estado de otimização. O desempenho do volume é afetado enquanto ele estiver no estado de otimização, mas não cai abaixo da especificação da configuração de origem. Dependendo do seu tipo de volume, as alterações podem levar de alguns minutos a algumas horas. Para mais informações, consulte Monitorar o progresso das modificações de volume.

1.    Modifique o tamanho do volume do EBS existente.

2.    Execute o seguinte comando para instalar o utilitário growpart:

$ sudo yum install cloud-utils-growpart

Observação: execute o seguinte comando para instalar o utilitário growpart em sistemas baseados em Debian ou Ubuntu:

$ sudo apt install -y cloud-guest-utils

3.    Execute o comando growpart para ampliar a partição.

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

4.    Execute o comando pvresize para redimensionar o PV. No exemplo a seguir, a partição /dev/xvdh1 é ampliada:

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

Use pvs ou pvdisplay para ver os detalhes do volume físico:

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

Use vgs ou vgdisplay para ver os detalhes do grupo de volumes:

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

5.    Execute o comando lvextend para ampliar o volume lógico:

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

Observação: no exemplo anterior, 19G é o tamanho novo e aumentado do LV. 19G não é o tamanho pelo qual o LV deve ser ampliado.

Use o comando lvs ou lvdisplay para ver os detalhes do volume lógico:

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

6.    Execute o comando a seguir para ampliar o sistema de arquivos:

Sistemas de arquivos Ext2, Ext3, e Ext4:

$ sudo resize2fs /dev/examplegroup1/lvexample1

Sistemas de arquivos XFS:

$ sudo xfs_growfs /dev/examplegroup1/lvexample1

Opção 2: Adicione outros volumes do EBS ao seu grupo de volumes e amplie o VG-LV

1.    Crie outro volume do EBS de 10 GB e, em seguida, conecte o volume à instância. Crie uma partição no dispositivo /dev/xvdi seguindo a etapa 3 de Criar volumes físicos na partição do seu volume do EBS. Em seguida, execute o comando pvcreate. No exemplo a seguir, o nome do dispositivo de blocos do volume é /dev/xvdi1.

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

2.    Use o comando vgextend para ampliar o grupo de volumes e adicionar o volume novo. O exemplo a seguir amplia o grupo de volumes examplegroup1 para incluir o volume /dev/xvdi1:

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

Execute o comando vgs ou vgdisplay para confirmar a ampliação. O exemplo a seguir mostra que agora há dois PVs no grupo de volumes examplegroup1:

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

3.    Execute o comando lvextend para ampliar o volume lógico:

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

Observação: No exemplo anterior, 29G é o tamanho novo e aumentado do LV. 29G não é o tamanho pelo qual o LV deve ser aumentado.

4.    Redimensione o sistema de arquivos:

Sistemas de arquivos Ext2, Ext3, e Ext4:

$ sudo resize2fs /dev/examplegroup1/lvexample1

Sistemas de arquivos XFS:

$ sudo xfs_growfs /dev/examplegroup1/lvexample1

Amplie um volume distribuído

A distribuição é uma técnica de partilha de dados entre vários discos. Você pode receber uma mensagem semelhante à seguinte ao ampliar um volume lógico:

$ 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

O erro anterior ou erros similares ocorrem ao ampliar um volume lógico “distribuído” sem adicionar um número suficiente de dispositivos para distribuir os dados.

Para evitar esses erros ao ampliar um volume distribuído, conclua as seguintes etapas:

1.    Execute o comando a seguir para identificar o número de dispositivos pelos quais o LV está distribuindo os dados.

$ 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.    A coluna #Str, ou distribuições, representa o número de dispositivos pelos quais os dados estão sendo distribuídos. No exemplo anterior, os dados são distribuídos entre dois dispositivos. Portanto, você precisa que pelo menos dois dispositivos (ou dispositivos em múltiplos de dois) estejam adicionados ao vg para ampliar o LV. Como você adicionou um dispositivo (nas etapas anteriores), é preciso adicionar o segundo e tentar a ampliação novamente:

$ 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

O exemplo de saída anterior mostra que o comando lvextend foi concluído com êxito quando o segundo dispositivo foi adicionado.

3.    Execute o comando a seguir para redimensionar o sistema de arquivos:

Sistemas de arquivos Ext2, Ext3, e Ext4:

$ sudo resize2fs /dev/vg01/lv01

Sistemas de arquivos XFS:

$ sudo xfs_growfs /dev/vg01/lv01
AWS OFICIAL
AWS OFICIALAtualizada há um ano