Não é possível redimensionar o volume da raiz do ec2 ebs

4

Eu segui muitos dos tutoriais que praticamente todos dizem a mesma coisa que é basicamente:

  1. Pare a instância
  2. Desanexar o volume
  3. Crie um instantâneo do volume
  4. Crie um volume maior a partir do instantâneo
  5. Anexar o novo volume à instância
  6. Iniciar o backup da instância
  7. Executar resize2fs /dev/xxx

No entanto, o passo 7 é onde os problemas começam a acontecer. Em qualquer caso, executando resize2fs sempre me diz que já é xxxxx blocos grandes e não faz nada, mesmo com -f passado. Então eu começo a continuar com tutoriais que basicamente dizem a mesma coisa e isso é:

  1. Excluir todas as partições
  2. Recrie-as para o que eram, exceto com tamanhos maiores
  3. Reinicialize a instância e execute resize2fs

(Eu tentei estas etapas tanto da instância ao vivo quanto anexando o volume a outra instância e executando os comandos lá). O problema principal é que a instância não inicia o backup novamente e o log de erro do sistema é fornecido no O console da AWS não fornece erros. (no entanto, para no bootloader grub que para mim indica que ele não gosta das partições (sim, o sinalizador de inicialização foi alternado na partição sem nenhum efeito)) A outra coisa que acontece independentemente das mudanças que eu faço para o partições é que a instância à qual o volume está anexado diz que a partição tem um número mágico inválido e o super-bloco está corrompido. No entanto, se eu não fizer alterações e reconectar o volume, a instância será executada sem problemas.

Alguém pode lançar alguma luz sobre o que eu poderia estar fazendo errado?

Editar

No meu novo volume de 20 GB com a imagem de 6 GB, df -h diz:

Filesystem            Size  Used Avail Use% Mounted on
/dev/xvde1            5.8G  877M  4.7G  16% /
tmpfs                 836M     0  836M   0% /dev/shm 

E fdisk -l /dev/xvde diz:

Disk /dev/xvde: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x7d833f39

    Device Boot      Start         End      Blocks   Id  System
/dev/xvde1               1         766     6144000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/xvde2             766         784      146432   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.

Além disso, sudo resize2fs /dev/xvde1 diz:

resize2fs 1.41.12 (17-May-2010)
The filesystem is already 1536000 blocks long.  Nothing to do!
    
por nathanjosiah 30.09.2012 / 06:56

3 respostas

0

Eu tomaria a rota mais segura. E parece que você já está fazendo coisas tão complicadas. Anexe o volume antigo a uma instância iniciada com o Amazon Linux ou Ubuntu ou o que você desejar. Monte-o somente leitura. Em seguida, crie um novo volume do tamanho maior de que você precisa. Anexe-o à mesma instância em outra letra do dispositivo. Formate-o usando o mesmo rótulo (ou o mesmo UUID se o seu fstab for montado pelo UUID ... não há necessidade real disso na AWS, mas isso não é garantia de que não está sendo feito). Monte-o ler-escrever. Copie a árvore de arquivos do volume antigo para o novo volume. Você pode usar cp ou rsync para isso.

Você pode precisar tomar outras medidas para torná-lo inicializável se você não estiver usando "kernels do carregador de inicialização" PVGRUB para carregar seu kernel real do volume.

Certifique-se de fazer um instantâneo do volume antigo antes disso e um instantâneo do novo volume depois disso.

    
por 26.10.2012 / 05:24
1

Basicamente, o problema aqui é que você está tentando aumentar o tamanho do sistema de arquivos para preencher a partição, mas a partição não aumentou de tamanho.

O truque aqui será montar um instantâneo do volume em uma instância diferente como, digamos, / dev / xdf. Em seguida, use parted ou fdisk para remover a partição swap em / dev / xdf2.

parted /dev/xdf
rm 2

Então você pode redimensionar a outra partição para preencher o disco

parted /dev/xdf
resize 1

Em seguida, use o padrão para iniciar a partição e um número apropriado para a posição final. Em seguida, recrie a partição de troca. Então, se você executar resize2fs / dev / sdf, deverá aumentar o tamanho da partição. Em seguida, desmonte esse disco e use-o como o volume raiz de uma nova instância.

    
por 09.10.2012 / 15:04
0

Bem, o problema é que você está usando uma AMI ruim que configura uma partição swap. As máquinas virtuais da Amazon não precisam de partições de troca e os tutoriais que você está seguindo presumem que o volume do EBS não está particionado. Eu recomendo começar com um AMI Ubuntu do Alestic.com ou usando um Amazon Linux AMI .

Se você precisar continuar a usar a AMI que está usando, o que você precisa fazer é excluir a partição de troca e redimensionar a partição ext4 com fdisk e, em seguida, redimensionar o sistema de arquivos. Fazer isso é bastante longo e complicado e assustador e eu nunca fiz isso, então não vou explicar como fazer isso. Você pode encontrar instruções via Google se tiver coragem.

    
por 26.10.2012 / 04:19