Diminuindo o tamanho do disco raiz de uma AMI “EBS Boot” no EC2

4

Então eu segui o maravilhoso artigo de Eric aqui: link

Este foi basicamente o código que me ajudou a aumentar o tamanho padrão da AMI:

 ec2-run-sintances ami-ID -n 1 --key keypair.pem --block-device-mapping "/dev/sda1=:250"

Executando o Ubuntu 11.10 Eu nem precisei redimensionar o disco depois disso, foi imediatamente uma unidade de 250GB.

Como faço para diminuir o tamanho padrão da AMI ???

Eu tentei:

 ec2-run-sintances ami-ID -n 1 --key keypair.pem --block-device-mapping "/dev/sda1=:100"

Obviamente ... mas me disseram:

Client.InvalidBlockDeviceMapping: Volume of size 100GB is smaller than snapshot ####### <250>

    
por darkAsPitch 19.11.2011 / 07:54

2 respostas

6

A melhor maneira de reduzir o tamanho é criar um volume novo (pequeno) vazio e copiar o sistema de arquivos de um volume antigo (grande).

As AMIs de inicialização do EBS são baseadas em instantâneos. Se você possui o AMI, então você pode criar um volume a partir do instantâneo para copiá-lo. Anexe os dois volumes a uma instância em execução para a cópia.

As minhas opções de rsync favoritas no Ubuntu são:

rsync -PaSHAX /bigvol/ /smallvol/

Essas opções preservam coisas como propriedade, permissões, links e muito mais.

Separe os volumes e crie um instantâneo do novo menor.

Registre o novo (pequeno) instantâneo como uma AMI, certificando-se de especificar a mesma arquitetura e AKI (kernel) como a AMI original.

    
por 19.11.2011 / 11:43
12

A abordagem que tomo para diminuir um volume raiz do EBS é a seguinte:

Pare (não termine) a instância de destino e desanexe o volume do EBS raiz. Como alternativa, você pode tirar um instantâneo do volume raiz (ou usar um instantâneo existente) e criar um novo volume do EBS a partir dele. (por exemplo, / dev / xvda1)

Observação: o volume que você usa na etapa acima será alterado. Por isso, talvez você queira tirar uma foto, se ainda não o fez.

  1. Crie um novo volume do EBS com o tamanho desejado (por exemplo, / dev / xvdg)
  2. Inicie uma instância e anexe os dois volumes do EBS a ela

  3. Verifique o sistema de arquivos (do volume original da raiz): (por exemplo) e2fsck -f /dev/xvda1

  4. Reduza ao máximo o volume original da raiz: (por exemplo, ext2 / 3/4) resize2fs -M -p /dev/xvda1

  5. Copie os dados com dd:

    1. Escolha um tamanho de bloco (gosto de 16 MB)
    2. Calcule o número de blocos (usando o número de blocos da saída resize2fs): blocks*4/(chunk_size_in_mb*1024) - round up a bit for safety

    3. Copie os dados: (por exemplo) dd if=/dev/xvda1 ibs=16M of=/dev/xvdg obs=16M count=80

  6. Redimensione o sistema de arquivos no novo volume (menor) do EBS: (por exemplo) resize2fs -p /dev/xvdg

  7. Verifique o sistema de arquivos (do volume original da raiz): (por exemplo) e2fsck -f /dev/xvdg

  8. Separe o novo volume raiz do EBS e anexe-o à sua instância original

por 20.11.2011 / 07:02