Давненько не писал я о всяких софтверных заморочках и проблемах, все фотге да машинки. Нужно исправляться… Посему этим постом начинаю цикл писанины на тему “VMware ESX для домохозяек” :)

Итак, имеем сервачок под VMware ESX 4.x (в составе инфраструктуры или отдельностоящий значения не имеет). Все работает замечательно, но в один прекрасный день сервер заявляет вам, что запустить ни одну машинку он не может, ибо datastore, на котором лежат файлы машинок более недоступен. Как такое может произойти с хранилищем, организованном на дисках, установленных в самом сервере (на сетевых хранилищах я таких косяков не наблюдал)? Умер диск? Но у вас же RAID-5… Умерло 2 диска? Крайне маловероятно… И действительно, проблема совсем не в этом. По каким-то непонятным причинам ESX 4.0 может самостоятельно похерить потерять таблицу разделов на диске. Данные при этом остаются в целости и сохранности, достаточно всего лишь восстановить таблицу разделов.

Как же это сделать? Для начала нужно попасть в консоль ESX (на ESXi этот процесс несколько сложнее, т.к. по умолчанию в нем консоль отключена, но о том, как бороться с этим, мы поговорим в другой раз). В консоли выполняем команду:

esxcfg-scsidevs -c
Device UID            Device Type        Console Device   Size      Plugin  Display Name
mpx.vmhba0:C0:T0:L0   Direct-Access      /dev/cciss/c0d0  34699MB   NMP     Local VMware Disk (mpx.vmhba0:C0:T0:L0)
mpx.vmhba0:C0:T1:L0   Direct-Access      /dev/cciss/c0d1  559929MB  NMP     Local VMware Disk (mpx.vmhba0:C0:T1:L0)
mpx.vmhba3:C0:T0:L0   Direct-Access      /dev/cciss/c1d0  839893MB  NMP     Local VMware Disk (mpx.vmhba3:C0:T0:L0)
mpx.vmhba4:C0:T0:L0   CD-ROM             /dev/sr0         0MB       NMP     Local TEAC CD-ROM (mpx.vmhba4:C0:T0:L0)
naa.500110a00123c62e  Sequential-Access  /dev/st0         0MB       NMP     Local HP Tape (naa.500110a00123c62e)

Команда выведет список всех подключенных устройств. Нужно найти проблемный диск и запомнить/записать путь к нему из колонки Console Device (он выглядит как /dev/xxxxxxxxxx). Дальше выполняем команду:

fdisk -l <device>

Disk /dev/cciss/c1d0: 880.6 GB, 880692322304 bytes
255 heads, 63 sectors/track, 107071 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

           Device  Boot      Start        End      Blocks   Id  System
/dev/cciss/c1d0p1                1     107071   860047743+  fb  VMware VMFS

Если команда выдаст только общие характеристики диска, но не покажет ни одного раздела, значит таблица разделов действительно умерла и ее нужно восстанавливать. Переходим к процедуре восстановления:

  1. Выполняем команду fdisk <device>
  2. Жмем n и нажимаем Enter – начинаем создание нового раздела.
  3. Жмем p и нажимаем Enter – объявляем раздел primary partition.
  4. Жмем 1 и нажимаем Enter – создаваемый раздел будет первым разделом на диске.
  5. Два раза жмем Enter, чтобы задать значения первого и последнего блока по умолчанию.
  6. Жмем t и нажимаем Enter – нам нужно задать файловую систему.
  7. Жмем 1 и нажимаем Enter, потом вводим fb и нажимаем Enter – мы задали файловую систему VMware VMFS (ее код – fb).
  8. Жмем w и нажимаем Enter – нужно записать изменения и вернуться в консоль.

Если fdisk потребует перезагрузить сервер, нужно это сделать. Для этого есть команда reboot. Если перезагрузка не потребовалась, то можно рассказать ESX о том, что у него появился новый диск введя команду vmkfstools –V.

Описанный способ рассчитан на то, что на диске был один раздел, занимавший весь диск. В случае, если разделов было несколько, процедура ковыряния с fdisk несколько усложняется, т.к. вам придется вспомнить (или восстановить из записей) номера начальных и конечных блоков каждого раздела. В целом, учитывая проблемность ESX 4.0 при работе с дисками, непосредственно подключенными к серверу, будет полезно выполнить команду fdisk –l (и сохранить ее результат) после того, как вы разметите и отформатируете все диски в ходе установки и настройки ESX.

Вставить свои пять копеек

Чтобы оставить комментарий, Вам нужно идентифицировать себя.