Como ampliar um volume do EBS com partições LVM?
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:
- Aumente o tamanho do volume do EBS existente.
- 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
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há um ano