Ir para o conteúdo
TURNKEYGNU / LINUX
AplicativosDocumentaçãoBlogCapturas de telaGitHubTurnKey Hub
文Português
EnglishEspañol中文日本語PortuguêsDeutsch
Principal/Amazon EC2: Como expandir o tamanho de um volume de raiz existente

Documentação

Amazon EC2: Como expandir o tamanho de um volume de raiz existente

Notas:

  • A partir de 2019, este é o caminho recomendado se você deseja aumentar o tamanho do seu volume de raiz. A melhor prática é parar o servidor para o instantâneo inicial, mas, estritamente falando, não é necessário.
  • Em alternativa, consulte o documentação legendária sobre a migração de dados para uma nova instância (com um volume maior). Ela ainda deve ser relevante.
  • Esta página é relevante apenas para EBS EC2 suportadas instâncias. Se a sua instância tem "armazenamento de instance"*, sugere-se que você considere mover os arquivos para o armazenamento da sua instância.

* - "Storage Instance" só está disponível em tamanhos de instância AWS mais antigos. Ou seja, versões mais antigas de TurnKey e/ou tamanhos de instâncias AWS mais antigos. Se você tiver um servidor v14.2+ TurnKey, ele quase certamente será EBS suportado. Versões tão longe quanto v13.0 provavelmente será EBS suportado também, mas verifique duas vezes dentro do AWS Console para ter certeza, ou por favor postar para o fóruns que indica a versão TurnKey e o tamanho/tipo da instância AWS.

O problema: o sistema de arquivos raiz está ficando sem espaço

Aqui está um exemplo para ilustrar o problema. O Alon lança um servidor Micro através do TurnKey Hub. Depois de alguns meses, Alon percebe que o espaço em seu sistema de arquivos raiz 10GB quase acabou.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            486M     0  486M   0% /dev
tmpfs           100M  4.1M   96M   5% /run
/dev/xvda2       9.8G  9.8G   19M   100% /
tmpfs           498M     0  498M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           498M     0  498M   0% /sys/fs/cgroup

O problema é que há apenas 10GB no sistema de arquivos raiz do servidor.

Então, como é que o Alon aumenta o tamanho do armazenamento?

Aumentar o tamanho do volume da raiz usando o AWS Console

Tempo esperado para completar: 40 minutos a uma hora.

Estas instruções assumem que o seu servidor está a correr a partir do TurnKey Hub, mas também exigem o uso do Consola AWSSe você não estiver usando o Hub (ou TurnKey para esse assunto) eles ainda devem ser geralmente relevantes, embora você pode desejar consultar o Documentos AWS para mais detalhes estritamente relacionados com o AWS Console.

Desde que você possa pagar uma pequena quantidade de tempo de inatividade do servidor, então, provavelmente, a melhor maneira de resolver isso, é aumentar o volume da raiz através do console AWS. Se não puderes pagar o tempo de inatividade, isto pode ser feito ao vivo, mas eu diria que os poucos minutos de inatividade valem a pena.

A preparar-se

A primeira coisa a fazer é criar um backup. Você pode usar TKLBAM para esse fim, embora neste caso, eu recomendaria tomar um "snapshot" (assim como?). Se você tem um espaço extremamente curto, TKLBAM pode não ser uma opção. Um instantâneo permitirá que você volte exatamente onde está agora mais rápido e com menos problemas (não precisa iniciar um novo servidor, etc).

Embora você possa tirar instantâneos de servidores em execução, para fins de backup, a Amazon recomenda que você tire instantâneos de servidores parados. Isto porque existe uma (muito pequena) chance de corrupção de dados ao tirar uma foto instantânea de um servidor em execução. Assim, a menos que alguns minutos de paralisação seja um problema (e mesmo assim), parece que não há cérebro para seguir esse conselho.

Se você está parando o servidor, do Hub's Página de servidores, selecione o servidor para que a informação completa seja baixada e clique em Parar.

Uma vez que você está pronto para tirar um instantâneo, ainda na página Hub Server, procure o link de texto que diz "x instantâneos" (onde 'x' é o número de instantâneos que você já tirou - será '0' se você não tiver tomado nenhum antes). Clique em que e na página que abre, clique no botão "Criar instantâneo". Inicialmente, ele irá exibir "0%" e vai levar um minuto ou 2. Se você não vê nenhum progresso, tente refrescar a página. Uma vez que está completa, você deve ver um círculo verde.

Encontrar o seu servidor TurnKey no Console AWS

Voltar na página Servidores Hub (role as informações do servidor novamente se necessário), procure onde diz Região e observe isso. Agora, em uma nova guia do navegador / janela abrir o seu Amazon Console para o EC2 - Página das instâncias. No Console AWS, na barra superior, em direção ao canto superior direito (entre onde ele mostra seu nome de usuário e "Suporte") clique na lista e garanta que a região corresponde à que seu servidor Hub está dentro (se já estiver, pule esse passo).

Se você tiver apenas um servidor/instância parado (ou tiver certeza de qual servidor você precisa trabalhar), então você pode pular este próximo passo. Embora, se você tiver 2 ou mais instâncias, para ter certeza de que você está trabalhando no certo, eu recomendo fazer uma "pesquisa".

Para isso, volte para a página de servidores do Hub e copie o EC2 instance ID (no meu caso é "i-0c04e369a3d987199"). Colar isso na barra de pesquisa para o topo da aba AWS Console / página (por padrão, a barra de pesquisa conterá o texto "Filtro por tags e atributos ou pesquisa por palavra-chave"). Colar o seu servidor / ID de instalação lá e clique em enter.

Aumentar o tamanho do volume

Apenas uma instância deve permanecer mostrando no seu Console AWS. Se você não obtiver nenhum resultado, verifique novamente se você selecionou a região correta e que você está conectado à conta AWS correta (se você usar várias contas). Mais informações sobre o seu servidor devem agora ser viáveis no painel inferior. Role através disso até que você veja "Device Root", provavelmente será "/dev/xvda".

Clique no dispositivo (por exemplo, /dev/xvda no meu caso) e pequeno pop-over preto deve aparecer com alguma informação sobre o volume EBS. Clique no EBS ID (no meu caso "vol-02110c92a873ad915") e você deve ser redirecionado para a página AWS Console - Volumes, com apenas o volume desejado mostrando.

Clique com o botão direito no seu volume e selecione "Modificar Volume". Um pop over deve abrir. Procure onde está escrito "Tamanho". O meu é atualmente "10" (GB). Aumente esse número para o tamanho de volume desejado (em GB). Vou fazer o meu 20GB. Depois clique no botão "Modificar". Na próxima tela clique em "Sim". Você deve ser saudado com uma mensagem verde: "Modificar Volume Solicitar sucesso". Isso deve acontecer quase instantaneamente, mas você pode precisar atualizar o console AWS para ver o seu display de volume com o tamanho desejado (por exemplo, 20 GiB no meu caso). Se não, tente refrescar-se novamente.

Voltar para o Hub: reinicie o servidor (se parado) e confirme o volume maior

É tudo o que precisamos da Consola AWS para, então agora você pode sair e fechar isso. Se você parou o seu servidor, retorne à página Servidores Hub. No seu servidor, clique em "Iniciar" para trazê-lo de volta à vida. Como de costume, vai demorar um pouco para ficar disponível. Para a maioria dos servidores, isso deve levar apenas alguns minutos (5 no máximo).

Uma vez que o seu servidor estiver em execução (ou imediatamente se não foi parado), faça login via SSH. Se você executar o comando df novamente, você perceberá que nada mudou. Isso porque nós só aumentamos o tamanho do volume. Se você quiser, você pode verificar que o volume é realmente maior, com gdisk:

# gdisk -l /dev/xvda
GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/xvda: 41943040 sectors, 20.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 8A333A04-DB02-4249-870C-EC5665D405BF
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 20971486
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048            6143   2.0 MiB     EF02  grub
   2            6144        20969471   10.0 GiB    8300  rootfs

Note os "setores Disk /dev/xvda: 41943040, 20.0 GiB".

Corrigir a tabela de partição e redimensionar a partição

Em seguida, precisamos corrigir a tabela de partição (GPT), então podemos estender a partição para usar o novo espaço livre. Para estender o sistema de arquivos (e corrigir o GPT), usaremos o separado (deve ser instalado por padrão em todos os servidores v15.x). Inicie-o com o comando 'partido'.

# parted
GNU Parted 3.2
Using /dev/xvda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

Primeiro, verifique novamente a informação existente usando o comando 'print'. Deve trazer um aviso de que nem todo o espaço está sendo usado, com uma opção para corrigi-lo..

(parted) print
Warning: Not all of the space available to /dev/xvda appears to be used, you can fix the GPT to use all of the
    space (an extra 20971520 blocks) or continue with the current setting?
Fix/Ignore?

Permite- lhe fazer a correção (por digitar 'f' seguido de enter). Agora deve mostrar informações semelhantes à verificação df que corremos antes. Embora note que isso exibe GigaBytes (1Byte x 1000 x 1000) em oposição ao GigiBytes (1Byte x 1024 x 1024), então não se assuste se os números não corresponderem. No meu caso, ele está exibindo 21,5GB (que é 20GiB).

Fix/Ignore? f
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name    Flags
 1      1049kB  3146kB  2097kB               grub    bios_grub
 2      3146kB  10.7GB  10.7GB  ext4         rootfs

(parted)

Para redimensionar a partição, use o comando 'resizepart'. Em uma configuração padrão, você vai querer redimensionar a partição 2, mas verifique novamente sua saída (de 'print') para garantir que a sua seja compatível. Note que ignorei o aviso sobre a modificação de uma partição em uso. Observe também que eu usei todo o espaço livre (ou seja, fui para o tamanho final do disco: 21.5GB)

(parted) resizepart
Partition number? 2
Warning: Partition /dev/xvda2 is being used. Are you sure you want to continue?
Yes/No? y
End?  [10.7GB]? 21.5GB
(parted)

Verifique se tudo funcionou como esperado com a 'impressão'. Se algo não estiver certo, você pode repetir o comando 'resizepart' novamente. Mas o meu parece bem.

(parted) print
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name    Flags
 1      1049kB  3146kB  2097kB               grub    bios_grub
 2      3146kB  21.5GB  21.5GB  ext4         rootfs

(parted)

Quase pronto; estenda o sistema de arquivos e termine

Mesmo agora, se você fosse sair separado e verificar novamente a saída do df, você ainda não poderia ver o novo espaço adicional. Isso porque o passo final é estender o sistema de arquivos para preencher a partição. Algumas versões do Partido também podem fazer isso (IIRC o comando é 'resizefs'), mas o que eu não tenho parece não ter essa habilidade, então saia do Partido ('quit'). Você pode ignorar com segurança as informações sobre /etc/fstab

(parted) quit
Information: You may need to update /etc/fstab.

Em seguida, execute 'resize2fs' na partição:

# resize2fs  /dev/xvda2

Se verificarmos o df agora, veremos que o espaço livre está agora disponível.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            486M     0  486M   0% /dev
tmpfs           100M  4.1M   96M   5% /run
/dev/xvda2       20G  9.8G   10.2G   48% /
tmpfs           498M     0  498M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           498M     0  498M   0% /sys/fs/cgroup

YAY, tudo pronto!

Limpeza final

Pessoalmente, eu gosto de dar-lhe alguns dias para se instalar antes de remover o instantâneo. Isso é apenas no caso de algo não está certo, mas não aparece imediatamente. Dito isto, nunca precisei dele antes. Ainda assim, eu prefiro dar ao AWS alguns centavos a mais para o pedaço de mente. Uma vez que você se sinta confiante, você pode excluir o instantâneo, se desejar. Faça isso encontrando os instantâneos como na primeira parte e desta vez em vez de criar, excluir.

TURNKEYGNU / LINUX

Controle sua infraestrutura sem começar do zero.

Explorar o TurnKey
SobreDocumentaçãoPerguntas frequentesBlogGitHub
Livre e de código abertoSeguro por padrãoPronto para implantar