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

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

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

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

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

Откройте интерфейс клиента 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_x000D_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 .

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

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

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

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

partedUtil showGuids

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

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

  • 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 образы и файлы виртуальных машин.

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

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

admin

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 недели ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 недели ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 недели ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 недели ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 недели ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 недели ago