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:
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
:
Depois que o snapshot for criado, vamos no menu do snapshot e vamos acessar a opção Criar nova instância
:
Depois disso vamos apenas dar um nome qualquer e escolher o novo plano que desejamos para essa instância.
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:
Escolha a opção Desanexar
:
Agora anexe a nova instância a esse endereço estático:
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:
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
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.
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.
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.
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
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).
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
Agora vamos reiniciar o servidor e verificar o que aconteceu:
sudo reboot
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.
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
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!
😉
Top comments (0)