Восстановление удаленного VMFS хранилища в VMware ESXi/vSphere

Рассмотрим гипотетическую проблему потери или повреждения VMFS хранилища, подключенное к ESXi хосту/vSphere. Например, из-за человеческой ошибки, когда администратор VMware случайно удалил VMFS хранилище, или когда диск/LUN с VMFS был отключен/потерян из-за ошибок на устройстве хранения/резервного копирования. В этой статье мы покажем, как вручную восстановить таблицу разделов на диске, где находилось VMFS хранилище.

Допустим администратор VMware, случайно выбрал Delete вместо Unmount и удалил VMFS хранилище.

Нельзя удалить VMFS хранилище, которое используется, и если на нем есть зарегистрированные ВМ, или ВМ со статусом invalid (unknown).

удалить vmfs datastore в vmware esxi

В первую очередь, не паникуйте. Не надо пересоздавать VMFS датастору из интерфейса vSphere, и не делайте других действий, которые перезапишут данные старого vmfs разделе на диске (LUN).

Откройте интерфейс клиента vCenter, перейдите в раздел Storage -> Devices и найдите в списке диск (LUN) с ранее подключенным vmfs datastore. Нужно получить полный путь к диску (с идентификатором naa). На моем скриншоте это:

/vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565
В этом примере я использую в качестве VMFS хранилища iSCSI диск, опубликованный на Windows Server.

получить ID удаленного диска/lun

Включите SSH доступ на хосте ESXi, с которого доступен удаленный LUN и подключитесь к нему с помощью ssh клиента (я использую встроенный ssh клиент Windows)

Проверьте осталась ли таблица разделов на этом устройстве:

partedUtil getptbl /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565 Команда вернула, что на указанном диске/LUN есть таблица разделов GPT

gpt
1305 255 63 20971520

partedUtil getptbl - проверить таблицы разделов на диске

Теперь нужно получить начальный и конечный блок раздела удаленного 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

скрипт сканирования разделов в esxi cli

В данном примере вывела информацию о нашем удаленном разделе (testVMFS) и мы получили номер начального блока 2048 этого раздела.

Теперь нужно получить конечный блок VMFS раздела на диске:

partedUtil getUsableSectors /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565

partedUtil getUsableSectors размер vmfs раздела

В нашем примере это 20971486.

Если эта команда вернет ошибку “Unknown partition table on disk”, нужно руками прописать метку GPT раздела:

partedUtil mklabel /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565 gpt

Теперь нужно узнать GUID таблицы разделов для VMFS. Это всегда AA31E02A400F11DB9590000C2911D1B8.

Вы можете вывести все возможные GUID таблиц разделов с помощью команды:

partedUtil showGuids

GPT GUID для VMFS раздела AA31E02A400F11DB9590000C2911D1B8

Т.е. для vSAN хранилища нужно использовать другой GUID gpt.

Итак, мы получили следующие данные:

  • LUN IDnaa.60003ff44dc75adc87daa4e08f467565
  • Start Block2048
  • End Block2097148
  • GPT GUIDAA31E02A400F11DB9590000C2911D1B8

Теперь создайте таблицу разделов на вашем диске используя полученные вами данные:

partedUtil setptbl /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565 gpt "1 2048 20971486 AA31E02A400F11DB9590000C2911D1B8 0"

создать таблицу разделов vmfs: partedUtil setptbl

Еще раз проверим разделы на диске, и убедимся, что теперь на нем виден VMFS раздел:

partedUtil getptbl /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565

проверить partedUtil getptbl

Теперь нужно смонтировать данное VMFS хранилище:

vmkfstools -V
esxcli storage core adapter rescan --all

пересканирование адаптеров esxcli storage core adapter rescan

Откройте клиент vSphere, убедитесь что удаленное VMFS хранилище появилось. Смонтируйте его.

смонтировать vmfs хранилище в vmware esxi

На VMFS хранилище сохранились все файлы, в том числе iso образы и файлы виртуальных машин.

файлы на удаленном vmfs datastore

Ранее мы показывали, как использовать partedUtil, чтобы создать VMFS хранилище на USB диске и расширить размер VMFS хранилища из командной строки. Более подробная справка по использованию утилиты partedUtil для управления таблицами разделов в ESXi доступна здесь https://kb.vmware.com/s/article/1036609.

Инструкция актуальна для VMware ESXi/vSphere версий 6.0, 6.5 и 7.0.


Предыдущая статья Следующая статья


Комментариев: 8 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)