Espaço insuficiente em disco '/' na instância do AWS

28

Estou executando a instância do Ubuntu 11.04 para o meu servidor Web na nuvem AWS, agora estou chegando, não há espaço em disco na partição / do meu servidor. df -ah diz isso

Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            7.9G  7.8G   97M  99% /
proc                     0     0     0   -  /proc
none                     0     0     0   -  /sys
fusectl                  0     0     0   -  /sys/fs/fuse/connections
none                     0     0     0   -  /sys/kernel/debug
none                     0     0     0   -  /sys/kernel/security
none                  3.7G  112K  3.7G   1% /dev
none                     0     0     0   -  /dev/pts
none                  3.7G     0  3.7G   0% /dev/shm
none                  3.7G   80K  3.7G   1% /var/run
none                  3.7G     0  3.7G   0% /var/lock
/dev/xvdb             414G   16G  377G   4% /mnt

Agora eu tentei essas coisas para obter algum espaço extra na / partição

  • Limpar todos os arquivos de log do Apache.
  • Removeu todos os arquivos desnecessários do servidor.
  • Limpeza do diretório inicial.

Mas ainda não estou conseguindo espaço suficiente. Este tipo de instância é m1.large com 8GB EBS. Agora estou recebendo eu tenho espaço em disco suficiente em / dev / xvdb .

Existe uma maneira que eu posso alocar algum espaço em disco para / de / dev / xvdb ou quaisquer outras formas. Por favor, sugira-me a solução possível para isso. É possível usar a mesma partição / dev / xvdb com outra instância.

    
por Sumant 02.04.2012 / 07:47

2 respostas

26

A resposta é dupla.

Solução alternativa: use / dev / xvdb (/ mnt) para dados temporários

Este é o chamado armazenamento efêmero da sua instância Amazon EC2 e suas características são muito diferentes das do persistente < href="http://aws.amazon.com/ebs/"> armazenamento do Amazon EBS em uso em outros lugares. Em particular, este armazenamento efêmero será perdido nos ciclos de parada / início e geralmente pode desaparecer , então você definitivamente não quer colocar nada de valor duradouro lá, ou seja, coloque apenas os dados temporários que você pode perder ou reconstruir facilmente , como um arquivo de troca ou dados estritamente temporários em uso durante cálculos. É claro que você pode armazenar índices enormes lá por exemplo, mas deve estar preparado para reconstruí-los depois que o armazenamento tiver sido limpo por qualquer motivo (reinicialização de instância, falha de hardware, ...).

Solução: redimensione / dev / xvda1 (/) para obter o armazenamento desejado

Este é o chamado armazenamento de dispositivos raiz do seu Instância EC2 apoiada pelo EBS da Amazon , que facilita Amazon EBS para flexibilidade e durabilidade em particular, ou seja, dados colocados lá são razoavelmente seguros e sobrevivem a falhas de instâncias; você pode aumentar ainda mais a flexibilidade e a durabilidade tirando instantâneos regulares do seu volume do EBS, que são armazenados no Amazon S3 , exibindo o poço conhecida 99,999999999% de durabilidade.

Esses recursos de instantâneo permitem que você resolva seu problema, na medida em que você pode substituir o armazenamento raiz de 8GB do EBS atual (/ dev / xvda1) por um mais ou menos tão grande quanto desejar. O processo é descrito no excelente artigo de Eric Hammond Redimensionando o disco raiz em uma instância do EC2 de inicialização do EBS em execução :

  

Contanto que você esteja bem com um pouco de tempo na instância do EC2 (alguns   minutos), é possível alterar o volume do EBS da raiz com um   cópia maior, sem precisar iniciar uma nova instância.

Se você preparar adequadamente as etapas descritas por ele (eu recomendo testá-las primeiro com uma instância de descarte EC2 para familiarizar-se com o procedimento ou automatizá-lo por meio de um script personalizado), você deve poder concluir o processo com alguns minutos de inatividade só de fato.

A maioria das etapas descritas também pode ser realizada por meio do AWS Management Console , o que evita lidar com Ferramentas da API do Amazon EC2 ; isso se resume a:

  • pare (não termine!) a instância do EC2
  • separe o volume do EBS da instância interrompida
  • crie um instantâneo do volume do EBS desanexado
  • crie um novo volume (maior) do EBS a partir do instantâneo criado
  • anexe o novo volume do EBS à instância do EC2 ( Importante ! Se este for o seu dispositivo root, certifique-se de nomeá-lo exatamente como o dispositivo raiz da instância como foi mencionado, por exemplo (/ dev / sda1) ou (/ dev / xdva1) caso contrário, ele será anexado como um dispositivo de bloco e não como um dispositivo raiz, e você não poderá iniciar a instância, pois não haverá um dispositivo raiz listado para a instância.)
  • SSH na instância em execução e confirme se tudo está em ordem por meio de df -ah
    • Se o seu sistema não tiver redimensionado automaticamente o sistema de arquivos, você precisará fazer isso manualmente, conforme explicado no artigo de Eric

Boa sorte!

Alternativa

Devido à versatilidade e facilidade de uso desses volumes do EBS, uma opção adicional seria anexar mais volumes do EBS à sua instância e mover áreas de interesse claramente separáveis por lá.

Por exemplo, estamos usando alguns aplicativos Java muito pesados, cada um consumindo armazenamento de 1-2 GB por versão; para facilitar a atualização de versões e geralmente ser capaz de mover esses aplicativos para instâncias diferentes a meu critério, coloquei-os em volumes dedicados do EBS, monte-os em uma instância e vincule-os ao local desejado, por exemplo, geralmente /var/lib/<app>/<version> e /usr/local/<app>/<version> .

Com esse método, estamos atualmente executando instâncias do EC2 com o armazenamento do dispositivo raiz ainda no tamanho padrão de 8 GB (assim como o seu), mas às vezes até 8 volumes do EBS com tamanhos variados (1-15 GB) também conectados.

No entanto, você precisa estar ciente dos possíveis problemas de desempenho da rede, pois todos esses volumes do EBS estão usando a mesma LAN para suas E / S, o que pode gerar ganhos de desempenho mesmo ou saturar sua rede em casos extremos. Isso depende do caso de uso e da carga de trabalho.

    
por Steffen Opel 02.04.2012 / 12:52
1

Sim, é fácil fstab-lo e montá-lo para dizer / var / www / html / files2 /

então mkdir / var / www / html / files2 / website então ln -s -d / var / www / html / site / var / www / html / files2 / website

    
por Daniel Chay 23.11.2015 / 23:22