Amazon EC2 - замена устройства хранилища корневых экземпляров на устройство EBS - PullRequest
52 голосов
/ 18 января 2010

У меня есть экземпляр EC2 с устройством «хранилища экземпляров» в качестве корневого устройства. Теперь я хотел бы присоединить том EBS к тому же экземпляру, единственное, что я хочу , это будет корневое устройство. Это возможно? Что происходит с устройством хранилища экземпляров в таком случае?

Заранее спасибо

Ответы [ 6 ]

79 голосов
/ 19 января 2010

Вы можете перенести запущенный экземпляр в AMI с поддержкой EBS.Вот как я это сделал:

  • Загрузите обычный экземпляр с поддержкой S3 AMI (или, поскольку у вас уже есть экземпляр, которым вы довольны, используйте его)
  • СоздайтеТом EBS того же размера, что и корневой раздел sda1 (в настоящее время по умолчанию используется 10G для m1.small и, возможно, других)
  • Подключите этот том EBS к свободному блочному устройству на экземпляре с помощью веб-консоли или командыинструменты линии (например, / dev / sdd)
  • Остановка служб в экземпляре (например, /etc/init.d/mysql stop и т.:

dd bs = 65536, если = / dev / sda1 of = / dev / sdd

  • Проверьте том EBS на согласованность:

fsck / dev / sdd

  • Монтирование тома EBS на экземпляр:

mount / dev/ sdd / root / ebs-vol

  • Удалите запись / mnt из fstab на вашем EBS vol:

vim / root / ebs-vol / etc / fstab

  • Размонтируйте том EBS:

umount / dev / sdd

  • Создайте снимок тома EBS с помощьюконсоль управления AWS (или инструменты API командной строки)
  • Запишите идентификатор снимка
  • Зарегистрируйте снимок с помощью AWS и запомните полученный идентификатор AMI, при регистрации не забудьте указатьобраз ядра и виртуального диска (они должны совпадать с теми, которые используются в вашем текущем экземпляре):

регистр ec2 -s snap-12345 -a i386 -d "Описание AMI" -n "имя-изображения" -k aki-12345 -r ari-12345

  • Чтобы создать экземпляр с более чем 10 ГБ постоянной памяти, вы должны использовать инструменты cli.например, для 20G

ec2-run-instance ami-54321 -t m1.small -n 1 -g по умолчанию --availability-zone = eu-west-1a -k ec2-key1-b / dev / sda1 = snap-12345: 20: false

  • Если вы загружаете экземпляр на основе одного из этих AMI с> размером тома по умолчанию, после его запуска вы можете запуститьсделать онлайн изменение размера файловой системы:

resize2fs / dev / sda1

13 голосов
/ 31 марта 2011

Это можно сделать без создания нового AMI и без запуска нового экземпляра. Когда это сделано, исходный корневой том остается подключенным к / dev / sda1 (или там, где он был первоначально подключен. / Dev / sda1 является значением по умолчанию для многих AMI). Исходный корневой том не будет подключен к файловой системе - вам придется сделать это самостоятельно с помощью команды «mount».

Для этой технологии требуются последние версии ядер Ubuntu, которые работают в своих выпусках 10.04 и 10.10. Проверьте alestic.com для самых последних идентификаторов AMI для этих выпусков Ubuntu. Эти последние ядра настроены для загрузки с любого подключенного устройства с меткой тома «uec-rootfs». Если вы используете одно из этих ядер, все, что вам нужно сделать, это изменить метку тома текущего корневого тома (хранилища экземпляров) на что-то другое, изменить метку тома нового корня на uec-rootfs, а затем перезагрузиться. Если вы не используете одно из этих ядер, вы не можете использовать эту технику.

Вот код. Поместите это в файл (reroot.sh) в экземпляре:

#! /bin/bash
device=$1
# change the filesystem labels
e2label /dev/sda1 old-uec-rootfs
e2label $device uec-rootfs

Сначала вы должны подключить том EBS, который вы хотите использовать в качестве нового root, к одному из доступных устройств /dev/sdf../dev/sdp. Это можно сделать либо с помощью прямых вызовов API EC2, с помощью инструментов API командной строки EC2 (ec2-attach-volume), либо с помощью библиотеки, такой как boto , либо через AWS Интерфейс консоли управления.

Затем запустите сценарий reroot.sh от имени пользователя root и укажите устройство, к которому вы подключили новый корневой том, следующим образом:

sudo reroot.sh /dev/sdp

Это сделает грязную работу. Затем вы просто перезагружаетесь:

sudo shutdown -r now

Viola.

Чтобы проверить это, вы должны создать том EBS, который, как вы знаете, будет загружаться правильно. Мне нравится делать это, делая снимок корневого тома поддерживаемых EBS AMI из вышеупомянутых AMI Ubuntu. Из этого снимка вы можете создать новый загрузочный том EBS в любой зоне доступности. Убедитесь, что вы можете определить разницу между исходным корневым томом работающего экземпляра и новым корневым томом EBS. Перед запуском описанной выше процедуры перезагрузки вы можете поместить файл «маркера» на старый корневой том:

cd
touch this-is-the-original-root-volume

Затем, когда вы перезагружаетесь и перезагружаетесь, если этот файл существует в вашем домашнем каталоге, вы все еще используете исходный корневой том. Если его там нет, то перезагрузка и перезагрузка сработали.

Вот два примера использования этого метода с подробными объяснениями:

http://shlomoswidler.com/2011/02/play-chicken-with-spot-instances.html

http://shlomoswidler.com/2011/02/recapture-unused-ec2-minutes.html

6 голосов
/ 26 марта 2010

Вы также можете попробовать следующий инструмент для преобразования AMI хранилища экземпляров в AMI ebs-boot: https://cloudyscripts.com/tool/show/2

1 голос
/ 14 июля 2010

AlexM придумали хорошие шаги.

Вам также будет интересно проверить эту ссылку: http://coderslike.us/2009/12/07/amazon-ec2-boot-from-ebs-and-ami-conversion/

РЕДАКТИРОВАТЬ: Другая ссылка: http://www.elastician.com/2009/12/creating-ebs-backed-ami-from-s3-backed.html

0 голосов
/ 17 июня 2010

Вместо другого длинного комментария здесь я использовал следующую команду:

ec2-register --snapshot snap-9eb4ecf6 --архитектура i386 --name "Zenoss Enterprise 3.0 beta 2 на CentOSOS" - описание "Это из установки zenoss core beta 1 и zenoss enterprise beta 2 версия 3.0 (или внутренняя версия 2.5.70 217). Было подключено блочное устройство ebs, и файловая система перезапустилась, затем был сделан снимок ebs, и это основано на этом ». --root-имя-устройства / dev / sda1 --kernel aki-9b00e5f2

0 голосов
/ 18 января 2010

Я не уверен, насколько легко было бы преобразовать существующий экземпляр, но теперь Amazon предлагает возможность загрузки непосредственно с тома EBS при создании нового экземпляра.

...