Не запустился Instance на Amazon EC2. Что делать?
29 августа 2012 г.
•
4 минуты чтения
К сожалению на днях столкнулся с не удачным обновлением ядра на одном из своих Amazon instance. Прописав новое ядро в загрузчик Grub, instance не загрузился. Как быть в этом случае? Как вернуть данные? А еще лучше, как восстановить не запустившийся сервер на Amazon EC2?
Итак, физического доступа к серверу у нас нет. Связатся с тех. поддержкой не просто и стоит денег. Мне пришла в голову идея, как можно восстановить не запустившийся сервер на Amazon EC2. Нужно выполнить следующую последователность действий, но только при условии если вы используете EBS хранилище:
- Переходим в раздел "Instances". Останавливаем instance
- Смотрим на какой жесткий диск установлена система. Должна быть запись следующего типа: Root Device: sda1. Жмем на него и видим EBS ID: vol-db1с5ab7
- Создаем клон текущего instance. Правый клик по instance и выбираем "Launch More Like This". Убедитесь, что при создании нового instance выбирается та же зона датацентра, в которой находится не работабщий instance
- Переходим в раздел "Volumes". Находим EBS хранилище не работающего instance (vol-db1с5ab7) и отсоединяем его, нажав "Detach Volume"
- Теперь выбираем "Attach Volume" и выбираем недавно запущенный instance. Поле "Device" оставляем как есть (/dev/sdf) и запоминаем его. Этим мы подключим EBS хранилище к другому, работающему серверу
- Подклчюаемся к новому instance по ssh. И примонтируем EBS с неработающего instance:
mkdir /mnt/myvolume
mount /dev/xvdf /mnt/myvolume
Хоть хранилище и должно было именоватся как /dev/sdf, но к примеру в Gentoo он именовался, как /dev/xvdf. Именование может зависеть от используемого дистрибутива
- Теперь нам доступен весь жесткий диск с неработающего instance в /mnt/myvolume. Читаем логи, делаем бэкапы, достаем нужную информацию и правим неудачные конфиги. После этого останавливаем недавно созданный instance
- После остановки instance отключаем EBS хранилище vol-db1с5ab7 выбрав "Detach Volume", а потом "Attach Volume" выбрав не работающий ранее instance, вписав в поле Device не предложенный вариант по умолчанию, а тот который использовался ранее этим instance. Это ВАЖНО. Используйте поле с раздела Root Device, то есть /dev/sda1
- Запускаем instance и радуемся! Если нет... то внимательно смотрим всё заново с пункта 1
Последнее обновление 9 мая 2021 г.