DEV Community

Filipe Nanclarez
Filipe Nanclarez

Posted on

Aumentando sua instância Ubuntu no Lightsail

Hoje precisei fazer um upgrade de um dos sites que tenho hospedado no LightSail. O processo inicial é documentado pela Amazon, mas na prática, a parte que eu mais precisava não estava na documentação. Então depois de pesquisar um pouco, resolvi compartilhar com a comunidade para facilitar.

Segundo a documentação nesse link o que precisamos fazer é criar um snapshot, e depois subir uma outra instância nova a partir desse snapshot.

Então a partir da página inicial do console do LightSail vamos escolher a instância que queremos aumentar e vamos acessar a opção Gerenciar do menu:

Image description

Na página da instância, vamos na aba snapshots e vamos usar a opção Criar snapshot. Vamos deixar o nome que ele mesmo sugeriu, e depois cliar em Criar:

Image description

Depois que o snapshot for criado, vamos no menu do snapshot e vamos acessar a opção Criar nova instância:

Image description

Image description

Depois disso vamos apenas dar um nome qualquer e escolher o novo plano que desejamos para essa instância.

Image description

Será preciso esperar após a criação. Ela vai aparecer no console como pendente. Após ela constar como em execução, vamos para a parte que não está na documentação.

Redirecionando o ip público

Se seu servidor está sendo usando em produção, então você tem um endereço de ip público associado a essa máquina. Então precisamos apontar esse endereço para a nova instância que criamos.

Para isso, acesse a aba Redes ( na tela inicial do console, não dentro da instâcia ) e no endereço de IP stático em questão, vá na opção Gerenciar do menu:

Image description

Escolha a opção Desanexar:

Image description

Agora anexe a nova instância a esse endereço estático:

Image description

Agora vamos para o próximo ajuste que não está na documentação:

Replicar as regras de firewall para a nova instância

Provavelmente você também tem regras de firewall no seu servidor. Só que quando você cria uma nova instância a partir do snapshot as regras de firewall não são replicadas!

Então acesse a instância antiga, e na aba Redes anote todas as regras que estão listadas para replicar depois. Para facilitar vomos abrir duas abas do navegador e com isso podemos só recriar uma por uma manualmente:

Image description

Agora vamos para a última parte

Aumentando o espaço de disco no Ubuntu

Com exceção de sistemas que precisam de ajustes específicos como o PostgreSQL, a memória e o processador já serão utilizados automaticamente pela nova instância. Mas isso não acontece com o espaço em disco. Embora o disco físico seja maior, o sistema operacional não entende que esse espaço está disponível para ser usado.

Então precisamos acessar essa instância e ajustar o tamanho da partição. Para isso vamos usar os utilitários fdisk e o resize2fs:

Primeiro vamos usar o fdisk para apagar a partição atual e criar uma nova com o mesmo setor de inicio.

Então primeiro vamos acessar o fdisk e depois vamos usar o comando p para listar as partições:

sudo fdisk /dev/xvda

Welcome to fdisk (util-linux 2.25.2).                                                                                                                                                           
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): p
Disk /dev/xvda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xd7f2e0e8

Device     Boot Start      End  Sectors Size Id Type
/dev/xvda1 *     4096 16773119 16769024   8G 83 Linux
Enter fullscreen mode Exit fullscreen mode

Repare no campo Start que está em 4096. Vamos criar a nova partição iniciando nesse mesmo ponto.

Ainda no modo interativo do fdisk, use a opção d para excluir a partição:

Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
Enter fullscreen mode Exit fullscreen mode

Agora vamos criar a nova partição usando o comando n. Vamos preencher o primeiro setor com o valor que anotamos:

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-41943039, default 2048): 4096
Last sector, +sectors or +size{K,M,G,T,P} (4096-41943039, default 41943039): 

Created a new partition 1 of type 'Linux' and of size 20 GiB.
Enter fullscreen mode Exit fullscreen mode

Depois disso vamos marcar ela como inicializável com o comando a:

Command (m for help): a
Selected partition 1
The bootable flag on partition 1 is enabled now.
Enter fullscreen mode Exit fullscreen mode

Agora vamos usar o comando p para verificar se está tudo ok:

Command (m for help): p
Disk /dev/xvda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xd7f2e0e8

Device     Boot Start      End  Sectors Size Id Type
/dev/xvda1 *     4096 41943039 41938944  20G 83 Linux
Enter fullscreen mode Exit fullscreen mode

Agora que o campo Size já aparece com o tamanho novo, iremos gravar as alterações com o comando w:

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
Enter fullscreen mode Exit fullscreen mode

Opa! Aqui temos um problema. O sistema não vai conseguir fazer a gravação porque essa unidade está montada. O que vamos precisar fazer é dizer para o sistema que queremos que ele aplique essas alterações na próxima vez que o sistema reiniciar. Isso é bem simples, basta criarmos um arquivo com o nome forcefsck na raiz do nosso disco para que o sistema faça exatamente o que precisamos:

sudo touch /forcefsck
Enter fullscreen mode Exit fullscreen mode

Agora vamos reiniciar o servidor e verificar o que aconteceu:

sudo reboot
Enter fullscreen mode Exit fullscreen mode

Ao reiniciar você provavalmente perceberá que o comando df -h continua mostrando o tamanho antigo. Isso acontece porque aumentamos a partição mas não aumentamos o tamanho registrado no sistema de arquivos.

Para corrigirmos isso, vamos utilizar o comando resize2fs que faz exatamente isso:

sudo resize2fs /dev/xvda1
resize2fs 1.42.13 (17-May-2015)
Filesystem at /dev/xvda1 is mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/xvda1 is now 10485504 (4k) blocks long.
Enter fullscreen mode Exit fullscreen mode

Agora ao executar o comando df-h temos o novo tamanho disponível para uso:

df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            488M     0  488M   0% /dev
tmpfs           100M  3.1M   97M   4% /run
/dev/xvda1       39G   16G   24G  40% /
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/1000
Enter fullscreen mode Exit fullscreen mode

Conclusão.

Como vimos hoje, não basta apenas migrar seu servidor para uma instância maior. É preciso concluir mais algumas etapas para completar essa migração e ter o servidor realmente funcionando em uma instância com mais recursos. Vimos como fazer isso em uma instância com sistema operacional Ubuntu hospedada no serviço LightSail da plataforma AWS da Amazon.

Nos vemos na próxima!

😉

Oldest comments (0)