четверг, 16 апреля 2009 г.

Траблшутинг ESXi

Из переписки.


Предыстория:

после отключения питания перестал загружаться ESXi 3.5 U2 сервер, ошибка:
Missing Operating System Boot Failure
(Сразу оговорюсь, железо на котором разворачивался ESXi, не входи в HCL). В качестве хранилища ВМ использовались локальные диски. На сервере крутились тестовые ВМ, но, не смотря на это, их потеря была крайне нежелательной. Поэтому первоочередным был вопрос восстановления ВМ.

Первое что вспомнилось – это возможность создания загрузочной флешки с ESXi, загрузившись с которой на упавшем сервере, можно было бы получить доступ к тому VMFS, и тем самым восстановить ВМ. Именно этот вариант и был реализован:

1. Создал загрузочную флешку с ESXi (http://www.vm4.ru/2008/01/esx-3i.html) , кстати, наткнулся на следующие грабли WinImage требует админских прав, иначе все работает нормально, но при выполнении Disk->Restore Virtual Hard Disk image on physical drive… недоступны съемные носители.

2. Загрузился с этой флешки на сервере, на котором упал ESXi. Для загрузки с флешки в BIOS произвел настройку USB, чтобы USB носитель воспринимался как жесткий диск, а не дискета (по умолчанию стоял второй вариант). После загрузки изменил сетевые настройки ESXi сервера, чтобы организовать доступ по сети.

3. Подключился к серверу с помощью VI Client и дальше я ожидал, что Хранилище подцепится автоматически, но этого не произошло. Хотя, как я понимал, VMFS тома автоматически подцепляются к ESXу. В разделе Storage Adapters были видны локальные диски, и в разделе Storage мне были доступны эти диски для создания VMFS тома. Здесь мне помог Михаил Михеев, большое спасибо, он посоветовал мне изменить параметр Advanced Settings -> LVM.EnableResignature в значение не по умолчанию. И…

4. УРА!!! Доступ к хранилищу получен, все ВМ спасены.

thx Айдар Фатыхов

6 комментариев:

  1. Также, после нештатного отключения, перестал загружаться ESX3.5iU2.
    Под ESX крутилось несколько Windows и FreeBSD серверов. Вот один из FreeBSD серверов и надо было спасти.
    Методом, который описан выше, восстановить работу ESX не удалось.
    Проверка VMFS утилитой fvmfs.jar (http://code.google.com/p/vmfs/)
    показала, что VMFS поврежден.
    После недели экспериментов все-же удалось вытащить требуемый образ
    FreeBSD сервера, путем поиска в VMFS сигнатуры MBR и попытки
    стартовать с этого адреса в виртуальной машине.

    ОтветитьУдалить
  2. круто.
    а как делается "утем поиска в VMFS сигнатуры MBR и попытки
    стартовать с этого адреса в виртуальной машине."?

    ОтветитьУдалить
  3. в двух словах так :
    Сделал Live Ubuntu 8.10 USB Persistent 4 Gb флэшку (http://www.pendrivelinux.com/).
    Предварительно скопировал раздел (~ 500 Gb) с VMFS на тестовый сервер, так же как раздел.
    Загрузился в Ubuntu на тестовом сервере (в принципе это может быть и любой другой компьютер или даже упавший сервер, главное что бы из Ubuntu была возможность читать том/раздел/диск/файл с VMFS).
    В Ubuntu установил Qemu. После чего смонтировал раздел с VMFS и искал первые шестнадцать байт (я выбрал столько) Master Boot Record. Вначале я искал вручную c помощью hex редактора, потом надоело )) и я написал поиск на С. При нахождении заданной последовательности, начиная с первого байта, монтировал через losetup. После чего этот loop подсовывал Qemu, как образ VM и запускал ее. После нескольких неудачных попыток, нужный образ сервера был найден. Так же хочу особо отметить что на моем ESX сервере, VM создавались последовательно и оставалось свободное пространство на VMFS, т.е. образ VM располагался линейно.

    ОтветитьУдалить
  4. как бы связаться с г-ном jbod?
    диск с datastore физически навернулся (побился 0 сектор и много бэдов). отнес в фирму - сделали копию на другой, но в процессе экспериментов потер первые 128 байт командой dd. сделал с физической копии образ. сижу в hex смотрю.. но мало что вижу. какая последовательность отражает начало виртуальной машины?

    ОтветитьУдалить