Давненько не писал я о всяких софтверных заморочках и проблемах, все фотге да машинки. Нужно исправляться… Посему этим постом начинаю цикл писанины на тему “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
Если команда выдаст только общие характеристики диска, но не покажет ни одного раздела, значит таблица разделов действительно умерла и ее нужно восстанавливать. Переходим к процедуре восстановления:
-
Выполняем команду fdisk <device>
-
Жмем n и нажимаем Enter – начинаем создание нового раздела.
-
Жмем p и нажимаем Enter – объявляем раздел primary partition.
-
Жмем 1 и нажимаем Enter – создаваемый раздел будет первым разделом на диске.
-
Два раза жмем Enter, чтобы задать значения первого и последнего блока по умолчанию.
-
Жмем t и нажимаем Enter – нам нужно задать файловую систему.
-
Жмем 1 и нажимаем Enter, потом вводим fb и нажимаем Enter – мы задали файловую систему VMware VMFS (ее код – fb).
-
Жмем w и нажимаем Enter – нужно записать изменения и вернуться в консоль.
Если fdisk потребует перезагрузить сервер, нужно это сделать. Для этого есть команда reboot. Если перезагрузка не потребовалась, то можно рассказать ESX о том, что у него появился новый диск введя команду vmkfstools –V.
Описанный способ рассчитан на то, что на диске был один раздел, занимавший весь диск. В случае, если разделов было несколько, процедура ковыряния с fdisk несколько усложняется, т.к. вам придется вспомнить (или восстановить из записей) номера начальных и конечных блоков каждого раздела. В целом, учитывая проблемность ESX 4.0 при работе с дисками, непосредственно подключенными к серверу, будет полезно выполнить команду fdisk –l (и сохранить ее результат) после того, как вы разметите и отформатируете все диски в ходе установки и настройки ESX.