Posted on: July 17, 2020 12:15 AM
Posted by: Renato
Views: 8387
Como aumentar o tamanho do disco rígido no Amazon AWS EC2 (sem reinicializar)
Vamos ver como aumentar o tamanho de um disco rígido sem precisar reiniciar o computador em uma instância do Amazon AWS EC2. Recentemente, tive a necessidade de expandir o tamanho de uma instância do EC2 e procurar no Google as únicas opções que existiam: o tipo: desligar o computador, desvincular o disco rígido, criar um instantâneo, criar outro drive EBS, etc ... achei que teria que há algo mais recente e que permitiria um redimensionamento sem reiniciar o computador, algo mais simples! Então, aqui estão os passos que você deve seguir:
-
Aumentar o tamanho da unidade EBS no console da Amazon
-
Congure o sistema operacional para aplicar o novo tamanho da unidade Para este exemplo, criei uma instância do EC2 t2.micro com 8 GB de espaço com o sistema operacional Ubuntu Server 16.04 LTS (HVM), SSD Volume Type. O objetivo é expandi-lo para 32 GB.
Aumentar o tamanho da unidade EBS no console da Amazon
A primeira é do próprio painel da AWS até a seção "ELASTIC BLOCK STORE" e clique em "Volumes". Lá teremos as unidades EBS que temos. Caso você tenha vários, certique-se de selecionar a unidade EBS associada à instância do EC2. Clique com o botão direito do mouse na unidade EBS e clique na opção "Modify Volume".

Clicar em abrirá uma janela modal onde você poderá inserir o novo tamanho
desejado, no nosso caso, foi 8 e colocamos 32 para obter os 32GB desejados:

Após a introdução do novo tamanho, clique em "Modificar" para aplicar as
alterações. Mas primeiro obteremos a seguinte janela de confirmação:

Isso nos alerta que pode levar algum tempo para fazer essa alteração,
lembre-se de que, se você já possui um disco rígido com muitas coisas ou um
projeto em produção, essa pode não ser a melhor maneira de fazer a
alteração.
Clique em Sim e ele nos noti cará que o processo foi iniciado. Isso pode
demorar um pouco, dependendo do tamanho inicial e desejado. No nosso
caso, demos o ícone para atualizar o estado e já o vemos indicado com o novo
tamanho:

Com isso, nalizamos a primeira parte, que é aumentar o tamanho da
unidade EBS.
Configure o sistema operacional para aplicar o novo
tamanho da unidade
Nesta etapa, temos que con gurar o sistema operacional, neste caso o
Ubuntu, para que ele detecte o novo tamanho, executaremos os seguintes
comandos.
Primeiro, conectamos por ssh à instância do EC2:
`sh -i clave.pem ubuntu@ip-servidor-ec2-amazon`
Uma vez conectado, podemos executar o comando lsblk para ver o status do
espaçamento da unidade, no nosso caso, temos algo parecido com isto:
ubuntu@ip-172-31-45-171:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 32G 0 disk └─xvda1 202:1 0 8G 0 part /Podemos ver que o xvda tem 32 GB, mas no xvda1 estamos usando apenas o
8G que originalmente possuímos. Se rodarmos df -h para ver o espaço atual:
ubuntu@ip-172-31-45-171:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 488M 0 488M 0% /dev tmpfs 100M 3.1M 97M 4% /run /dev/xvda1 7.7G 846M 6.9G 11% / tmpfs 496M 0 496M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 496M 0 496M 0% /sys/fs/cgroup tmpfs 100M 0 100M 0% /run/user/1000Agora, executaremos o seguinte comando para estender a unidade, neste
caso xvda1, ao máximo possível (atenção ao espaço em branco entre xvda e
1):
`sudo growpart /dev/xvda 1`
Teremos algo como isto:
ubuntu@ip-172-31-45-171:~$ sudo growpart /dev/xvda 1 CHANGED: partition=1 start=2048 old: size=16775135 end=16E, nalmente, executamos o seguinte comando para instruir o sistema de arquivos a usar esse novo espaço disponível:
`sudo resize2fs /dev/xvda1`
Receberemos uma mensagem como esta:
ubuntu@ip-172-31-45-171:~$ sudo resize2fs /dev/xvda1 resize2fs 1.42.13 (17-May-2019) Filesystem at /dev/xvda1 is mounted on /; on-line resizin old_desc_blocks = 1, new_desc_blocks = 2 The filesystem on /dev/xvda1 is now 8388347 (4k) blocks lIsso é tudo! Para vericar se tudo funcionou corretamente, podemos executar novamente o comando lsblk:
ubuntu@ip-172-31-45-171:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 32G 0 disk └─xvda1 202:1 0 32G 0 part /E o comando df -h:
ubuntu@ip-172-31-45-171:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 488M 0 488M 0% /dev tmpfs 100M 3.1M 97M 4% /run /dev/xvda1 31G 848M 31G 3% / tmpfs 496M 0 496M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 496M 0 496M 0% /sys/fs/cgroup tmpfs 100M 0 100M 0% /run/user/1000Referências utilizadas: 1. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recognizeexpanded-volume-linux.html
Donate to Site
Renato
Developer
-
Rlucena - há 5 meses
## 🚀 Passos para Expandir o Disco Baseado no seu `lsblk`, o disco é `/dev/nvme0n1` e a partição que você quer expandir é a **primeira partição**, `/dev/nvme0n1p1`. ### 1\. Aumentar a Partição (growpart) Execute o comando `growpart` fornecendo o nome do disco e, em seguida, o **número da partição** (que é **1**): ```bash root@ip-172-31-20-76:/home/admin# growpart /dev/nvme0n1 1 ``` * **Explicação:** O `growpart` irá redimensionar a partição `/dev/nvme0n1p1` para que ela ocupe todo o espaço livre restante no dispositivo principal `/dev/nvme0n1` (que agora tem **1T**). * **Observação:** O comando que você tentou antes (`growpart /dev/nvme0n1p1`) falhou porque o `growpart` espera o dispositivo (o disco **inteiro**) e o número da partição (o **1**) como argumentos separados. ### 2\. Aumentar o Sistema de Arquivos (resize2fs) Após expandir a partição, você precisa expandir o **sistema de arquivos** (que é do tipo `ext4` na maioria das AMIs da AWS) para preencher a partição recém-expandida. ```bash root@ip-172-31-20-76:/home/admin# resize2fs /dev/nvme0n1p1 ``` * **Explicação:** O `resize2fs` irá redimensionar o sistema de arquivos (que está montado em `/`) para preencher todo o novo espaço da partição `/dev/nvme0n1p1`. ### 3\. Verificar o Resultado (df -h) Verifique se o sistema de arquivos agora mostra o novo tamanho, que deve ser em torno de **1T** (subtraindo o espaço usado pela partição `/boot/efi`): ```bash root@ip-172-31-20-76:/home/admin# df -h ``` O valor na coluna **Size** para `/dev/nvme0n1p1` deve ter aumentado para próximo de **1000G** (ou **1T**).