Восстанавливаем разрушенный vmdk

Выполняя созидательные действия в рамках проекта связанного с виртуальной инфраструктурой от VMware, я запустил вполне обычную процедуру миграции виртуальных серверов с одного хоста на другой. Замечу, что мигрировали сервера довольно часто и я совершенно был уверен в успехе мероприятия. Однако, в этот раз, что то пошло не так. Из пяти переезжавших серверов, последний сообщил о том, что необходимый файл vmdk отсутствует и машинка не запустилась. Четыре успешно переехавших сервера как бы намекали, что всё не так уж и плохо и могло быть хуже, но тот один отличившийся положил большую часть «прикладухи» организации. Очертив вокруг себя мелом круг я начал читать о спасении:
howto-recreate-vmdk-files

Добавлю свои комментарии:

1. Determine the hard disk sizes of your original VM (I call this VM from now on: VM A)


2.Create a new VM (I call this VM from now on: VM B) with VirtualCenter with the same number of hard disks as your old VM, and the exact same sizes. So: if your original VM contained 2 harddisks from 8,00GB and 12,00GB, recreate these harddisks exactly the same in your new VM.

Точный размер дисков сломанной машинки можно определить по размерам файлов vmdk на datastore. Следует обратить внимание на то, что «стандартный» Browser Datastore не отображает всё необходимые файлы, так как показывает server_name-flat.vmdk и server_name.vmdk как единый файл жёсткого диска VMDK. Немного о файлах:

server_name-flat.vmdk — бинарный файл данных. Размер равен размеру HDD;
server_name.vmdk — файл конфигурации жёсткого диска;
server_name.vmx — Файл конфигурации машины.

Утрата файла server_name.vmdk и являлась в моём случае причиной проблемы. Гугл рассказал, что нередки ситуации, когда администраторы VMware vSphere теряют этот самый файл VMDK «по некоторым причинам, иногда необъяснимым», и остается только диск с данными server_name-flat.vmdk.

Согласно второму пункту требуется создать машинку с аналогичными жёсткими дисками (по размеру).

3. After your VM B has been created, use Putty (or a similar tool) to navigate to your ESX server. Then navigate to the location / directory where your VM B is stored.

На этом этапе у многих возникают трудности из-за того, что «стандартный» Browser Datastore, как я говорил выше, не совсем удобен для этой операции. Подойдёт, например, WinSCP. Конечно, если подобного инструмента нет под рукой, то можно выкачать всё фалы машины, сделать дело и закачать назад.

4. Copy all VMDK’s (not the flat ones, but only the metadata files) to your VM A directory. The filesize of your META-data files should be a few KB.


5. Navigate to your VM A directory. You just copied the *.VMDK files to this directory. Edit the VMDK’s with a text editor: You should replace the old filenames with the correct file names -> They refer to the new VM B, but they should refer to your old (original) VM A


6. Save the files.


7. Load the VM in your VirtualCenter. You should now be able to add th flat.vmdk to your VM.

Копируем файлы конфигурации с новой машины в сломанную и открываем их в текстовом редакторе и исправляем имя виртуальной машины на правильное (на имя сломанной машины). Я ещё и сами файлы переименовал. После этого запускаем виртуальную машинку средствами VirtualCenter.

Leave a Reply

*