Como diminuir o tamanho do volume raiz do EC2

Os volumes EBS (Elastic Block Store) da Amazon são fáceis de usar e expandir, mas são difíceis de diminuir quando o tamanho aumenta. Aqui vou deixar um dica de como diminuir o tamanho do EBS. Eu vou assumir que você queira diminuir o volume raiz da sua EC2.

Primeiramente você vai precisar parar a instância que deseja fazer a alteração no tamanho do disco. Após essa etapa crie um snapshot do atual volume e crie um volume do tipo General Purpose SSD a partir deste snapshot.

Crie outro volume do tipo General Purpose SSD com o tamanho desejado

Adicione esses dois novos volumes a instância:

  • /dev/sda1 para o atual volume
  • /dev/xvdf para o volume com o tamanho desejado
  • /dev/xvdg para o volume feito a partir do snapshot do atual volume

Observação Para os novos tipos de discos da AWS eles podem se chamar por /dev/nvme1n1 ao inves de /dev/sda1, por exemplo.

Agora com todos os volumes adicionados ligue a instância novamente e faça acesse-a via SSH.

Crie os seguintes diretórios para poder “montar” os discos que foram adicionados
mkdir /source /target

Crie o sistema de arquivos ext4 para o novo volume
mkfs.ext4 /dev/xvdf

“Monte” o disco para o seguinte diretorio
mount -t ext4 /dev/xvdf /target

Essa parte é bem importante, o sistema de arquivo precisa do e2label para que o linux reconheça e possa dar boot, use e2label /dev/sda1 no principal disco da instância para ver o que deveria ser.
e2label /dev/xvdf cloudimg-rootfs

Agora monte o disco criado a partir do snapshot
mount -t ext4 /dev/xvdg /source

Copie os arquivos para o disco alvo
rsync -ax /source/ /target
Nota: não há "/" para "/target". Além disso, pode haver alguns erros sobre links simbólicos e atributos, mas o redimensionamento ainda foi bem-sucedido

E por último atualize as configurações do Grub procure e substitua o uuid no arquivo /target/boot/grub/grub.cfg

$ blkid
/dev/sda1: LABEL="cloudimg-rootfs" UUID="651cda91-e465-4685-b697-67aa07181279" TYPE="ext4" PARTUUID="eeaf5908-01"
/dev/xvdg: LABEL="cloudimg-rootfs" UUID="651cda91-e465-4685-b697-67aa07181279" TYPE="ext4" PARTUUID="eeaf5908-01"
/dev/xvdf: LABEL="cloudimg-rootfs" UUID="370f8787-c234-487b-aea1-b4e9e794721f" TYPE="ext4"

“Desmonte” os discos
umount /target
umount /source

Agora volte para o console da AWS pare a instância e remova todos os volumes. Adicione o volume redimensionado na instância com o seguinte /dev/sda1. Inicie a instância e ele deverá “bootar”

comments powered by Disqus