И было следующее...
обычный вечер пятницы и желание сделать снапшот виртуальной машины... Была нажата соответствующая кнопочка, и через минуту виртуалка перестала отвечать...
Введение:
Виртуальная машина выключена. не запускается - говорит нет жёского диска. Свойства виртуальной машины говорят что жёский диск равен 0.
Задача:
Починить и запустить машину
Подготовка:
1) делаем копию файлов машины - в процессе починки она мне пригодалась 2 раза, прежде чем всё получилось. Тут либо копируем через оснастки, либо шелом. Мне проще (см. пункт 2) сделать шелом - входим на сервер и
Код: Выделить всё
cd /vmfs/volumes/51474e08-38bf700a-109e-002618db1edc
tar -cf srv-zabbix.tar srv-zabbix
2) практически невозможно работать со всем этим из MAC OS X - связь рвётся, архивы не распаковываются. А вот через винду архив 200 мегабайт копируется долго, но нормально.
3) Может быть стечение обстоятельств, может быть что-то ещё, но только через виндовый клиент сферы мне удалось запустить машину - через вебинтерфейс она пускать не хотела никак.
Решение задачи:
Делать будем на резервном сервере, ибо боевые сервера не место для эксперементов. Ни при каких обстоятельствах.Да.
Итак, у меня есть распакованный архив виртуальной машины на переносном диске. Подключаю его к ближайшему UNIX серверу (что бы быстрей) и копирую файлы на тестовый ESXi
Код: Выделить всё
roman$ scp /Volumes/ExtHDD/srv-zabbix/srv-zabbix/srv-zabbix.vmxf root@192.168.10.2:/vmfs/volumes/hdd4/srv-zabbix
Password:
srv-zabbix.vmxf 100% 265 0.3KB/s 00:00
roman$ scp /Volumes/ExtHDD/srv-zabbix/srv-zabbix/srv-zabbix.vmx root@192.168.10.2:/vmfs/volumes/hdd4/srv-zabbix
Password:
srv-zabbix.vmx 100% 3291 1.6KB/s 00:02
roman$ scp /Volumes/ExtHDD/srv-zabbix/srv-zabbix/srv-zabbix.vmsd root@192.168.10.2:/vmfs/volumes/hdd4/srv-zabbix
Password:
srv-zabbix.vmsd 100% 0 0.0KB/s 00:00
roman$ scp /Volumes/ExtHDD/srv-zabbix/srv-zabbix/srv-zabbix-flat.vmdk root@192.168.10.2:/vmfs/volumes/hdd4/srv-zabbix
Password:
srv-zabbix-flat.vmdk 100% 200GB 17.8MB/s 3:11:49
Код: Выделить всё
# cd /vmfs/volumes/51474e08-38bf700a-109e-002618db1edc
# ls -l
drwxr-xr-x 1 root root 420 Apr 4 04:29 srv-zabbix
Код: Выделить всё
# cd srv-zabbix/
# ls -l
total 34799624
-rwxr-xr-x 1 root root 214748364800 Apr 4 07:38 srv-zabbix-flat.vmdk
-rwxr-xr-x 1 root root 0 Apr 4 07:06 srv-zabbix.vmsd
-rwxr-xr-x 1 root root 3291 Apr 4 07:06 srv-zabbix.vmx
-rwxr-xr-x 1 root root 265 Apr 4 07:05 srv-zabbix.vmxf
По сути мы уже получили размер файла, но на всякий случай выделим его, что бы был перед глазами
Код: Выделить всё
# ls -ltr *.vmdk
-rwxr-xr-x 1 root root 214748364800 Apr 4 10:18 srv-zabbix-flat.vmdk
Код: Выделить всё
# less *.vmx | grep -i virtualdev
ethernet0.virtualDev = "e1000"
pciBridge4.virtualDev = "pcieRootPort"
pciBridge5.virtualDev = "pcieRootPort"
pciBridge6.virtualDev = "pcieRootPort"
pciBridge7.virtualDev = "pcieRootPort"
Код: Выделить всё
# vi srv-zabbix.vmx
scsi0.virtualDev = "lsilogic"
Код: Выделить всё
# less *.vmx | grep -i virtualdev
ethernet0.virtualDev = "e1000"
pciBridge4.virtualDev = "pcieRootPort"
pciBridge5.virtualDev = "pcieRootPort"
pciBridge6.virtualDev = "pcieRootPort"
pciBridge7.virtualDev = "pcieRootPort"
scsi0.virtualDev = "lsilogic"
/vmfs/volumes/51474e08-38bf700a-109e-002618db1edc/srv-zabbix # ls -l *-flat.vmdk
-rwxr-xr-x 1 root root 214748364800 Apr 4 10:18 srv-zabbix-flat.vmdk
/vmfs/volumes/51474e08-38bf700a-109e-002618db1edc/srv-zabbix # vmkfstools -c 214748364800 -a lsilogic -d thin temp.vmdk
Create: 100% done.
/vmfs/volumes/51474e08-38bf700a-109e-002618db1edc/srv-zabbix # ls -ltr *.vmdk
-rwxr-xr-x 1 root root 214748364800 Apr 4 10:18 srv-zabbix-flat.vmdk
-rw------- 1 root root 494 Apr 4 11:04 temp.vmdk
-rw------- 1 root root 214748364800 Apr 4 11:04 temp-flat.vmdk
/vmfs/volumes/51474e08-38bf700a-109e-002618db1edc/srv-zabbix # rm temp-flat.vmdk
/vmfs/volumes/51474e08-38bf700a-109e-002618db1edc/srv-zabbix # mv temp.vmdk srv-zabbix.vmdk
Код: Выделить всё
# vi srv-zabbix.vmdk
1) правим название файла снапшота
2) правим версию виртуальной машины
Код: Выделить всё
# Extent description
RW 419430400 VMFS "srv-zabbix-flat.vmdk"
ddb.virtualHWVersion = "8"
Код: Выделить всё
ddb.thinProvisioned = "1"
Краткая справка по работе в vi (ну нет там другого интерпретатора)
Запуск - vi Имя.Файла
Переход в режим редактирования - i
Выход из режима редактирования - esc
Удаление текушей строки - dd
Запись изменений - :w
Выход из программы - :q
Вывод:
1) не делайте снапшот, когда машина нагружена какими-то процессами
2) следите за действиями коллег, а не пропускайте мимо ушей
3) если что-то не получилось сделать через web-интерфейс - попробуйте сделать это другим способом (виндовая оснастка, консоль)
Литература:
http://kb.vmware.com/selfservice/micros ... Id=1002511
http://eddnet.org/?p=1349