Назад | Перейти на главную страницу

Уменьшение размера корневого диска AMI «EBS Boot» на EC2

Итак, я следил за замечательной статьей Эрика здесь: http://alestic.com/2009/12/ec2-ebs-boot-resize

В основном это был код, который мне помог увеличение размер AMI по умолчанию:

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

После запуска Ubuntu 11.10 мне даже не пришлось изменять размер диска, это сразу же стал диском на 250 ГБ.

Как мне уменьшить размер AMI по умолчанию ???

Я попытался:

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

Очевидно ... но мне сказали:

Client.InvalidBlockDeviceMapping: том размером 100 ГБ меньше снимка ####### <250>

Я использую следующий подход к уменьшению корневого тома EBS:

Остановите (не завершайте) целевой экземпляр и отсоедините корневой том EBS. Кроме того, вы можете сделать снимок корневого тома (или использовать существующий снимок) и создать на его основе новый том EBS. (например, / dev / xvda1)

Примечание: объем, который вы используете на шаге выше, будет изменен, поэтому вы можете сделать снимок, если вы этого еще не сделали.

  1. Создайте новый том EBS желаемого размера (например, / dev / xvdg)
  2. Запустите экземпляр и присоедините к нему оба тома EBS.

  3. Проверьте файловую систему (исходного корневого тома): (например,) e2fsck -f /dev/xvda1

  4. Максимально уменьшить исходный корневой том: (например, ext2 / 3/4) resize2fs -M -p /dev/xvda1

  5. Скопируйте данные с помощью dd:

    1. Выберите размер блока (мне нравится 16 МБ)
    2. Вычислите количество блоков (используя количество блоков из вывода resize2fs): blocks*4/(chunk_size_in_mb*1024) - round up a bit for safety

    3. Скопируйте данные: (например,) dd if=/dev/xvda1 ibs=16M of=/dev/xvdg obs=16M count=80

  6. Измените размер файловой системы на новом (меньшем) томе EBS: (например,) resize2fs -p /dev/xvdg

  7. Проверьте файловую систему (исходного корневого тома): (например,) e2fsck -f /dev/xvdg

  8. Отсоедините новый корневой том EBS и присоедините его к исходному экземпляру.

Лучший способ уменьшить размер - создать новый пустой (маленький) том и скопировать файловую систему со старого (большого) тома.

AMI загрузки EBS основаны на снимках состояния. Если у вас есть AMI, вы можете создать том из моментального снимка, чтобы скопировать его. Присоедините оба тома к работающему экземпляру копии.

Мои любимые варианты rsync в Ubuntu:

rsync -PaSHAX /bigvol/ /smallvol/

Эти параметры сохраняют такие вещи, как право собственности, разрешения, ссылки и многое другое.

Отсоедините тома и создайте снимок нового, меньшего размера.

Зарегистрируйте новый (небольшой) снимок как AMI, указав ту же архитектуру и AKI (ядро), что и исходный AMI.