Redimensionando disco EBS num ec2 na AWS
To fazendo esse post para registrar a facilidade que tive ao redimensionar um disco EBS de 20 GB para 30 GB que esta attachado em uma máquina ec2 na cloud da AWS. Eu fiquei surpreso pois na Google Cloud quando eu fui tentar fazer isso o Terraform me informou que precisaria destruir e recriar a máquina inteira e isso não foi necessário na AWS.
Como eu gerencio as máquinas pelo terraform, eu apenas editei o tamanho do disco no arquivo do terraform que está no Gitlab e mandei aplicar a alteração, via Terraform Cloud. Nesse momento já tive a primeira surpresa que foi o fato de o disco ter sido redimensionado sem precisar reiniciar a máquina.
Com o disco redimensionado o processo para usar o novo espaço é bem simples de ser feito, no caso de um disco que utilize o sistema de arquivos Ext4.
1) Deve ser executado o comando abaixo:
1 2 3 4 5 6 |
[ec2-user ~]$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme1n1 259:0 0 30G 0 disk /data nvme0n1 259:1 0 16G 0 disk └─nvme0n1p1 259:2 0 8G 0 part / └─nvme0n1p128 259:3 0 1M 0 part |
com ese comando vai ser possível confirmar que o disco está com o novo tamanho.
2) Após vai ser usado o comando growpart para redimensionar a primeira partição do disco
1 |
[ec2-user ~]$ sudo growpart /dev/nvme0n1 1 |
3) Com a partição já com mais espaço disponível agora é preciso extender o sistema de arquivos para utilizar o resto do espaço disponível.
1 |
[ec2-user ~]$ sudo resize2fs /dev/nvme0n1p1 |
Com isso voce já tem o disco redimensionado e sem precisar para servidor ou os serviços que ele está executando.
Esse processo de redimensionamento do disco está documentado aqui nesse site da AWS: Extend a Linux file system after resizing a volume
Vale lembrar que mesmo sendo um processo simples e com pouca chance de dar errado é bom ter um backup da máquina ou dos dados que ela possui, caso alguma coisa não saia como o esperado.