Por algum motivo, voce precisa expandir seu servidor EC2 Linux sem reiniciar e com seguranca. Neste post, voce aprendera como expandir seu disco EC2 Linux na AWS.

Neste exemplo, voce vera a expansao do tamanho do disco de 80GiB para 120GiB.

Passo 1: Modificar o Volume


Faca login no seu Console AWS e encontre o volume (disco) da sua EC2. Aqui esta a dica; no painel esquerdo, ha Elastic Block Store > Volumes. Clique com o botao direito no seu volume e selecione a opcao "Modify Volume". Parece com a imagem abaixo. Escolha o tamanho certo e clique no botao Modify.


Passo 2: Verificar o tamanho do disco

Primeiro, voce deve ser root ou sudo no servidor antes de executar os comandos. A primeira coisa, vamos verificar o tamanho do disco, deve mostrar o tamanho antes de modificar o volume. Entao, neste exemplo, deve ser 80 GiB.

[root@server ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        7.8G     0  7.8G   0% /dev
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           7.8G  416K  7.8G   1% /run
tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/nvme0n1p1   80G   51G   30G  64% /
tmpfs           1.6G     0  1.6G   0% /run/user/0

Sim, diz que o tamanho total do disco e 80 GiB, e verdade. Agora vamos verificar a lista de dispositivos de bloco. A saida do comando deve mostrar o novo tamanho do disco no dispositivo /dev/nvme0n1.

[root@server ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
nvme0n1       259:0    0  120G  0 disk
├─nvme0n1p1   259:1    0   80G  0 part /
└─nvme0n1p128 259:2    0    1M  0 part

Sim! Diz que nvme0n1p1 tem 80GiB mas nvme0n1 tem 120GiB. Isso significa que podemos expandir nossa particao nvme0n1p1 de 80GiB para 120GiB.

Passo 3: Vamos Expandir

Aqui esta a magica;

[root@server ~]# growpart /dev/nvme0n1 1
CHANGED: partition=1 start=4096 old: size=167768031 end=167772127 new: size=251654111 end=251658207

O comando growpart apenas expandiu nossa particao de disco, ainda nao salvou e agora ainda nao temos um disco de 120GiB. Devemos salvar a modificacao no sistema de arquivos agora.

[root@server ~]# xfs_growfs /
meta-data=/dev/nvme0n1p1         isize=512    agcount=41, agsize=524159 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1 spinodes=0
data     =                       bsize=4096   blocks=20971003, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 20971003 to 31456763

Passo 4: Verificar o tamanho do disco novamente

Hora de ter certeza sobre o novo tamanho do disco. Aqui estao os comandos novamente para confirmar.

[root@server ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        7.8G     0  7.8G   0% /dev
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           7.8G  412K  7.8G   1% /run
tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/nvme0n1p1  120G   51G   70G  42% /
tmpfs           1.6G     0  1.6G   0% /run/user/0

[root@server ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:0 0 120G 0 disk ├─nvme0n1p1 259:1 0 120G 0 part / └─nvme0n1p128 259:2 0 1M 0 part

Parabens! Voce expandiu com sucesso seu servidor AWS EC2 Linux sem reiniciar e/ou perder dados no EBS (Elastic Block Storage).