Рассмотрим гипотетическую проблему потери или повреждения VMFS хранилища, подключенное к ESXi хосту/vSphere. Например, из-за человеческой ошибки, когда администратор VMware случайно удалил VMFS хранилище, или когда диск/LUN с VMFS был отключен/потерян из-за ошибок на устройстве хранения/резервного копирования. В этой статье мы покажем, как вручную восстановить таблицу разделов на диске, где находилось VMFS хранилище.
Допустим администратор VMware, случайно выбрал
Delete
вместо
Unmount
и удалил VMFS хранилище.
Откройте интерфейс клиента vCenter, перейдите в раздел Storage -> Devices и найдите в списке диск (LUN) с ранее подключенным vmfs datastore. Нужно получить полный путь к диску (с идентификатором naa). На моем скриншоте это:
/vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565
Включите SSH доступ на хосте ESXi, с которого доступен удаленный LUN и подключитесь к нему с помощью ssh клиента (я использую встроенный ssh клиент Windows)
Проверьте осталась ли таблица разделов на этом устройстве:
partedUtil getptbl /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565
Команда вернула, что на указанном диске/LUN есть таблица разделов GPT
gpt 1305 255 63 20971520
Теперь нужно получить начальный и конечный блок раздела удаленного VMFS на диске.
Чтобы вывести суммарную информацию о всех разделах, доступных с ESXi хоста, и найти начальный блок удаленного VMFS раздела, выполните такой скрипт:
offset="128 2048"; for dev in `esxcfg-scsidevs -l | grep "Console Device:" | awk {'print $3'}`; do disk=$dev; echo $disk; partedUtil getptbl $disk; { for i in `echo $offset`; do echo "Checking offset found at $i:"; hexdump -n4 -s $((0x100000+(512*$i))) $disk; hexdump -n4 -s $((0x1300000+(512*$i))) $disk; hexdump -C -n 128 -s $((0x130001d + (512*$i))) $disk; done; } | grep -B 1 -A 5 d00d; echo "---------------------"; done
В данном примере вывела информацию о нашем удаленном разделе (testVMFS) и мы получили номер начального блока 2048 этого раздела.
Теперь нужно получить конечный блок VMFS раздела на диске:
partedUtil getUsableSectors /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565
В нашем примере это 20971486.
partedUtil mklabel /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565 gpt
Теперь нужно узнать GUID таблицы разделов для VMFS. Это всегда AA31E02A400F11DB9590000C2911D1B8.
Вы можете вывести все возможные GUID таблиц разделов с помощью команды:
partedUtil showGuids
Итак, мы получили следующие данные:
- LUN ID —
naa.60003ff44dc75adc87daa4e08f467565
- Start Block –
2048
- End Block –
2097148
- GPT GUID –
AA31E02A400F11DB9590000C2911D1B8
Теперь создайте таблицу разделов на вашем диске используя полученные вами данные:
partedUtil setptbl /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565 gpt "1 2048 20971486 AA31E02A400F11DB9590000C2911D1B8 0"
Еще раз проверим разделы на диске, и убедимся, что теперь на нем виден VMFS раздел:
partedUtil getptbl /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565
Теперь нужно смонтировать данное VMFS хранилище:
vmkfstools -V
esxcli storage core adapter rescan --all
Откройте клиент vSphere, убедитесь что удаленное VMFS хранилище появилось. Смонтируйте его.
На VMFS хранилище сохранились все файлы, в том числе iso образы и файлы виртуальных машин.
Инструкция актуальна для VMware ESXi/vSphere версий 6.0, 6.5 и 7.0.
Спасибо! надеюсь не понадобится)
Увы. Datastore не появилась. Всё делал по написанному. Вывод был корректен. В девайсах устройство есть, в datastores нет ((
VMFS раздел на устройстве определяется? Какая версия VMFS?
Что изначально произошло до того, как вы потеряли датастору?
Аналогичная история,
partedUtil getptbl /vmfs/devices/disks/naa.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
видит все 8 разделов жесткого диска, выдает первый и последние сектора,
их типы и прочую служебную информацию в том числе VMFS, но в datastores не появляется (
Такая же история, отвалились датастор похоже после песка на адаптеров, девайсы видны запущеные виртуалки работают, хост не перегрудал потому как потом виртуалки уже не запустишь если датастор не появится, кто то справился с проблемой?
У кого не виден диск в датастор — скорее всего у вас диск встал в режим снапшота.
чекнуть : esxcli storage vmfs snapshot list
если он там есть : esxcli storage vmfs snapshot mount -l «Volume Name»
у меня такое случилось после апдейта драйвера raid контроллера.
куда присылать пиво?
куда и сколько?
Донаты принимаются тут https://winitpro.ru/index.php/donate/
Ну и lessons learned хотелось бы 🙂 в чем причина проблемы с датасторой?