ESXi 5.0 не работает автозапуск виртуальных машин - костыль
Решил я поиграться с виртуализацией, с рассмотрением вопроса о дальнейшем внедрении. Из программного обеспечения выбор пал на ESXi. Сервачок свежий был в наличии, мозгов в нем менее 32 гигов, а точнее 8, соответсвенно для такого случая VMWare предоставляет свой продукт бесплатно. Использовал я версию ESXI 5 Update 1.
В общем все развернулось прекрасно, создал виртуальную машинку с 2008-м, все работает отлично. Но в связи с тем, что питание у нас в офисе нестабильно, возник вопрос с автоматическим стартом виртуалок, после перезагрузки железного сервака, т.к. при моем отсутсутствии включать их будет просто некому.
Судя по документации для этого достаточно в настройках хоста (не виртуальной машины) выбрать один из трех типов запуска Configuration - Software - Virtual Machine Startup/Shutdown
- Автоматический запуск (Automatic Startup).
- Режим запуска по любому приказу (Any Order).
- Ручной запуск (Manual Startup).
Выставил нужный режим, перезапускаюсь и .... машина автоматом не стартовала.
Заглянув в хрустальный шар, увидел, что в бесплатной версии с первым апдейтом, автостарт виртуальных машин не работает, вроде как баг и во втором апдейте должны исправить, но как говорится обещанного долго ждут.
Там же я увидел замечательный костыль, который исправляет данную ситуацию. Итак, нам для этого потребуется доступ по SSH, если кто не знает, включается из консоли =)
Итак, логинимся и выполняем команду, которая покажет нам список виртуальных машин с их номерами:
~ # vim-cmd vmsvc/getallvms Vmid Name File Guest OS Version Annotation 1 Exchange [datastore1] Exchange/Exchange.vmx windows7Server64Guest vmx-08
Т.к. виртуальная машина у нас пока одна, то список не длинный. Отсюда нам потребуется только номер виртуалки, у нас соотвественно номер 1
Теперь идем в наше хранилище виртуальных машин (datastore), это /vmfs/volumes/datastore1/ и создаем скрипт с именем autostart.sh, следущего содержания:
vim-cmd vmsvc/power.on 1
где 1 - это номер нашей виртуальной машины. Если надо запускать несколько машин, то ставим между ними паузу, хотя бы в 30 сек -
vim-cmd vmsvc/power.on 1 sleep 30s vim-cmd vmsvc/power.on 3
Далее задаем права на скрипт
chmod 777 /vmfs/volumes/datastore1/autostart.sh
И в конец файла /etc/rc.local дописываем:
/vmfs/volumes/datastore1/autostart.sh
Перезагружаемся, смотрим, автостарт прошел успешно, что и требовалось сделать.
Выражаю благодарность хрустальному шару и communities.vmware.com, за помощь в оперативном решении вопроса =)