Amazon EC2-устройство хранения корневых экземпляров подкачки с устройством EBS
У меня есть экземпляр EC2 с устройством "instance store" в качестве корневого устройства. Теперь я хотел бы прикрепить том EBS к тому же экземпляру, единственное, что я хочу!--1-->это корень устройства. Это возможно? Что происходит с устройством хранения экземпляров в таком случае?
спасибо заранее
6 ответов:
вы можете перенести свой запущенный экземпляр на поддерживаемый EBS AMI. Вот как я это сделал:
- загрузите обычный экземпляр с поддержкой S3 AMI (или, поскольку у вас уже есть экземпляр, которым вы довольны, используйте его)
- сделайте том EBS того же размера, что и ваш корневой раздел sda1 (в настоящее время значение по умолчанию-10G для m1.маленькие и, возможно, другие)
- прикрепите этот том EBS к свободному блочному устройству на экземпляре с помощью средств веб-консоли или командной строки (например, /dev/sdd)
- остановите службы на экземпляре (например, /etc / init.D / mysql stop etc.)
- скопируйте эфемерный корневой том в том EBS:
dd bs=65536 if=/dev / sda1 of=/dev / sdd
- Проверьте объем EBS на согласованность:
fsck / dev / sdd
- установите том EBS на экземпляр:
гора /dev / sdd / root / ebs-vol
- удалите запись /mnt из fstab на вашем EBS vol:
vim / root/ebs-vol/etc / fstab
- отключить громкость EBS:
umount/dev / sdd
- создайте снимок Тома EBS с помощью консоли управления AWS (или инструментов API командной строки)
- обратите внимание на идентификатор снимка
- Регистрация снимок изображения с AWS и обратите внимание на полученный идентификатор AMI, при регистрации не забудьте указать ядро и образ ramdisk (они должны быть такими же, как и те, которые используются в вашем текущем экземпляре):
ЕС2-зарегистрироваться -с кнопк-12345 -это для i386 -д "описание АМИ" -Н "имя-образ" -к аки-12345 -Р Ари-12345
- чтобы создать экземпляр с более чем 10G постоянного хранилища, вы должны использовать инструменты cli. например 20G
ec2-run-экземпляры ami-54321-t m1.малое-N 1 -г по умолчанию --в наличии-зоны=ЕС-Запад-1а -к ЕС2-ключ1 -Б на /dev/sda1, поскольку=оснастку 12345:20:ложь
- Если вы загружаете экземпляр на основе одного из этих AMI с > размером тома по умолчанию, после его запуска вы можете выполнить онлайн-изменение размера файловой системы:
resize2fs/dev / sda1
Это можно сделать без создания нового AMI и без запуска нового экземпляра. Когда это сделано, исходный корневой том остается прикрепленным к /dev / sda1 (или там, где он был первоначально установлен. /dev / sda1 является значением по умолчанию для многих масс). Исходный корневой том не будет подключен к файловой системе - вам нужно будет сделать это самостоятельно с помощью команды "mount".
метод требует последних ядер Ubuntu, те, которые работают в их выпусках 10.04 и 10.10. Проверять alestic.com для самых последних идентификаторов AMI для этих выпусков Ubuntu. Эти последние ядра настроены для загрузки с любого подключенного устройства, метка тома которого является "uec-rootfs". Если вы используете одно из этих ядер, все, что вам нужно сделать, это изменить метку тома текущего (instance-store) корневого Тома на что-то другое, изменить метку тома нового корня на uec-rootfs, а затем перезагрузить компьютер. Если вы не используете одно из этих ядер, вы не можете использовать это метод.
вот код. Поместите это в файл (reroot.sh) на примере:
#! /bin/bash device= # change the filesystem labels e2label /dev/sda1 old-uec-rootfs e2label $device uec-rootfs
сначала вы должны прикрепить том EBS, который вы хотите использовать в качестве нового корня, к одному из доступных устройств /dev/sdf../разработки/СДП. Это можно сделать либо с помощью прямых вызовов API EC2, либо с помощью инструменты API командной строки EC2 (ec2-attach-volume), или с библиотекой, такой как boto, или через интерфейс консоли управления AWS.
затем запустите reroot.sh сценарий как root и укажите устройство, на которое вы прикрепили новый корневой том, следующим образом:
sudo reroot.sh /dev/sdp
это будет делать грязную работу. Затем вы просто перезагрузитесь:
sudo shutdown -r now
Виола.
чтобы проверить это, вы должны создать том EBS, который, как вы знаете, будет загружаться правильно. Я хотел бы сделать это путем snapshotting корневой том EBS-backed AMIs из вышеупомянутых Ubuntu AMIs. На основе этого снимка можно создать новый загрузочный том EBS в любой зоне доступности. Убедитесь, что вы можете определить разницу между исходным корневым Томом запущенного экземпляра и новым корневым Томом EBS-перед запуском процедуры reroot выше вы можете поместить файл "маркер" на старый корневой том:
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
вы также можете попробовать следующий инструмент для преобразования экземпляра-store AMI в ebs-boot AMI: https://cloudyscripts.com/tool/show/2
AlexM
придумал хорошие шаги.вам также будет интересно проверить эту ссылку: http://coderslike.us/2009/12/07/amazon-ec2-boot-from-ebs-and-ami-conversion/
EDIT: еще одна ссылка: http://www.elastician.com/2009/12/creating-ebs-backed-ami-from-s3-backed.html
Я не уверен, насколько легко было бы конвертировать существующий экземпляр, но Amazon теперь предлагает возможность загрузки непосредственно с Тома EBS при создании нового экземпляра.
вместо другого длинного комментария здесь, я использовал следующую команду, чтобы сделать это:
ec2-register --snapshot snap-9eb4ecf6 --architecture i386 --name " Zenoss Enterprise 3.0 beta 2 on centOS "--description " это из установки zenoss core beta 1 и zenoss enterprise beta 2, обе версии 3.0 (или внутренне 2.5.70 217). Было подключено устройство блока ebs, и файловая система rsynced, затем ebs была привязана, и это основано на этом."--root-device-name /dev / sda1 --ядро aki-9b00e5f2