суббота, 2 апреля 2011 г.

VMFS recovery


Задумал я благое дело, а оказалось что играю в капитана очевидность.
Из переписки:
Михаил, добрый день!

Извините, что отвлекаю, но можно один вопрос  по виртуализации vmware esxi.

Имеется host под vmware esxi 4.1, к нему посредством FC подключена SAN.

На SAN'е создан раздел 5Тб и ранее подключен к хосту как datastore “SAN”, но с размером 2Тб vmfs (тоесть не полный размер LUN'а).

По великой случайности его удалили с хоста из Datastore…

Существует ли какая либо возможность его восстановить (подмонтировать, подключить)?

Так как при стандартных средствах ESXi считает что данный раздел is blank и предлагает его форматировать…, а там же данные.
Спустя какое-то время:
...некие манипуляции
На хосте из под vsphere client “Rescan storage”  и, о чудо J, раздел SAN как и был ранее уже отобразился без  запуска мастера создания datastore.

Всё, делаем browse datastore, видим свой vmdk файлик, грузим виртуалку с подмапленным datastore, проверяем данные, все на месте.

Думаю, нам просто с этим очень сильно повезло. Повезло, что на самом сторадже был всего один LUN, был всего один раздел, раздел был создан на максимум 2Тб и начинался с начала стораджа.

Не повезло только, что пароль root'а знали все админы, и которым знать его не нужно J
В общем, хотел поделиться рецептом восстановления, но оказалось что уже есть соответствующая статья базы знаний: http://kb.vmware.com/kb/1002281.

Так что тут просто перевод, но эти действия я у себя опробовал, и успешно.

Допустим, у нас есть VMFS-хранилище, на котором расположены файлы ВМ (рис.1):

Рис.1. Пока все хорошо
Допустим, случилось страшное - кто-то хотел сделать это хранилище недоступным для одного из серверов ESX(i), но вместо настройки презентования\маскировки на системе хранения этот кто-то нажал кнопку Delete. Раздел VMFS оказался удален.

Что делать? Как восстановить удаленный VMFS, и вернуть расположенные на нем виртуальные машины?

Начать стоит со сбора информации о LUN, с которого был удален раздел VMFS:
Рис.2. Командная строка

Рис.3. Графический интерфейс

Нам нужно узнать идентификатор диска\LUN, с которого был удален раздел VMFS. Обычно идентификаторы начинаются с naa.xxxxxxxxx, у меня же идентификатор eui.951237a2c49752c9.

Теперь запускаем fdisk, примерно вот так:
fdisk -l /vmfs/devices/disks/eui.951237a2c49752c9

затем
fdisk /vmfs/devices/disks/eui.951237a2c49752c9

Теперь аккуратно проходим последовательность шагов:

  • n -> Enter
    для создания раздела
  • p -> Enter
    для указания что раздел primary
  • 1 -> Enter
    для указания номера раздела
  • Enter
    первый цилиндр по умолчанию
  • Enter
    последний цилиндр по умолчанию
  • t -> Enter
    для указания идентификатора раздела
  • fb -> Enter
    эти две буквы - идентификатор раздела VMFS
Теперь надо указать выравнивание раздела. Если ранее раздел был создан из графического интерфейса, то он был выровнен по границе 128. Так необходимо сделать и сейчас:
  • x -> Enter
    для перехода в режим эксперта
  • b -> Enter
    для начала выравнивания раздела
  • 1 -> Enter
    укажем что нас интересует раздел 1
  • 128 -> Enter
    укажем смещение
  • w -> Enter
    зафиксируем изменения
Теперь, вроде бы, надо выполнить
vmkfstools -V 

и запустить Rescan datastores на сервере ESX(i).

У меня ранее удаленный раздел VMFS нашелся в целости и невредимости.

thx Алексею.

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

  1. Действительно, работает)) В мемориз

    ОтветитьУдалить
  2. Михаил, спасибо Вам огромное! Только что восстановил отвалившийся (по невыясненной причине) iSCSI на StarWind.

    ОтветитьУдалить
  3. HDD плавно умирал и не выключалась машина. Скопировал полностью винт на другой (не прочитался один сектор). Восстановил VMFS как описано (ESXi хотя даже сам предлагал это сделать, когда подключал диск к нему). Ничего не помогло. Виртуальный диск был не правильного размера (показывал размер правильный но _flat был маленький.
    В итоге, помог Rstudio. Прогнал его по умирающему винту, он вытащил полностью все базы данных которые на нём были, и всё даже подцепилось Exchange.

    А за более подробное разжевывание той ссылки, на которую все ссылаются - больше спасибо, а то там совсем не понятно, что команда, что комментарии...

    ОтветитьУдалить
  4. Спасибо Вам огромное!
    Работник убил RAID.
    На основе вашей статьи и pdf c vmware.com родилось такое решение:
    http://www.lbtb.ru/blog/blog-2/5-vosstanovlenie-vmfs

    ОтветитьУдалить
  5. Отличная статья, спасла от увольнения!

    ОтветитьУдалить
    Ответы
    1. Человеческий фактор в пятницу вечером ни кто не отменял! Усталость сказалась! Но статья реально спасла от увольнения! Спасибо!

      Удалить
  6. А для разделов, размер которых выше 2 Тб, эта статья сработает?

    ОтветитьУдалить
  7. А если раздел gpt? Можно что то сделать?

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