Не запустился Instance на Amazon EC2. Что делать?
29 августа 2012 г.

К сожалению на днях столкнулся с не удачным обновлением ядра на одном из своих Amazon instance. Прописав новое ядро в загрузчик Grub, instance не загрузился. Как быть в этом случае? Как вернуть данные? А еще лучше, как восстановить не запустившийся сервер на Amazon EC2?

Итак, физического доступа к серверу у нас нет. Связатся с тех. поддержкой не просто и стоит денег. Мне пришла в голову идея, как можно восстановить не запустившийся сервер на Amazon EC2. Нужно выполнить следующую последователность действий, но только при условии если вы используете EBS хранилище:

  1. Переходим в раздел "Instances". Останавливаем instance
  2. Смотрим на какой жесткий диск установлена система. Должна быть запись следующего типа: Root Device: sda1. Жмем на него и видим EBS ID: vol-db1с5ab7
  3. Создаем клон текущего instance. Правый клик по instance и выбираем "Launch More Like This". Убедитесь, что при создании нового instance выбирается та же зона датацентра, в которой находится не работабщий instance
  4. Переходим в раздел "Volumes". Находим EBS хранилище не работающего instance (vol-db1с5ab7) и отсоединяем его, нажав "Detach Volume"
  5. Теперь выбираем "Attach Volume" и выбираем недавно запущенный instance. Поле "Device" оставляем как есть (/dev/sdf) и запоминаем его. Этим мы подключим EBS хранилище к другому, работающему серверу
  6. Подклчюаемся к новому instance по ssh. И примонтируем EBS с неработающего instance:
mkdir /mnt/myvolume
mount /dev/xvdf /mnt/myvolume

Хоть хранилище и должно было именоватся как /dev/sdf, но к примеру в Gentoo он именовался, как /dev/xvdf. Именование может зависеть от используемого дистрибутива

  1. Теперь нам доступен весь жесткий диск с неработающего instance в /mnt/myvolume. Читаем логи, делаем бэкапы, достаем нужную информацию и правим неудачные конфиги. После этого останавливаем недавно созданный instance
  2. После остановки instance отключаем EBS хранилище vol-db1с5ab7 выбрав "Detach Volume", а потом "Attach Volume" выбрав не работающий ранее instance, вписав в поле Device не предложенный вариант по умолчанию, а тот который использовался ранее этим instance. Это ВАЖНО. Используйте поле с раздела Root Device, то есть /dev/sda1
  3. Запускаем instance и радуемся! Если нет... то внимательно смотрим всё заново с пункта 1
Последнее обновление 9 мая 2021 г.
Development amazon administration