В нашей лаборатории есть сервер под управлением Ubuntu Linux 8.04.4 x64 с VMware Server 2.1, на котором размещены 4 виртуальные машины.
У меня серьезная озабоченность по поводу выключения хост-сервера. В основном, как обеспечить безопасное завершение работы гостевых виртуальных машин?
В консоли веб-интерфейса VMware я включил:
На всех виртуальных машинах установлены и правильно работают инструменты VMware. Все виртуальные машины перемещаются вверх в раздел «Указанный порядок» в «Порядке запуска», поэтому при повторном включении сервера все эти виртуальные машины должны снова запуститься в указанном порядке.
Когда я хотел выключить сервер, я использовал shutdown -h now
команда. Основываясь на настройках, которые я ввел выше, я ожидал выключения через 4 минуты, так как есть возможность отложить выключение каждой виртуальной машины на 60 секунд. Однако это не что произошло. Вместо этого сервер отключится менее чем за минуту.
Когда я снова включил сервер, правильно загрузились только 2 виртуальные машины. Остальные 2 показали следующую ошибку:
Не удалось выполнить «Включение виртуальной машины»
Если эти проблемы не исчезнут, обратитесь к системному администратору.
Подробности: не удается открыть диск «[расположение в .vmdk]» или один из дисков моментальных снимков, от которых он зависит. Причина: не удалось заблокировать файл.
Очевидно, если эта ошибка произошла, то мне ясно, что виртуальные машины были не правильное выключение, или сервер отключился до того, как виртуальные машины были полностью выключены. Я исправил указанную выше ошибку, удалив файлы .lck в соответствующих каталогах виртуальных машин.
Как я узнаю, правильно ли были выключены виртуальные машины? Я проверил журналы VMware-server, но они, похоже, отображают только журналы, когда служба vmware-mgmt запущена в текущем сеансе. Я в основном использую виртуальные машины Linux, поэтому есть ли простой способ узнать, правильно ли был выключен сервер в Linux?
Спасибо всем за помощь!
Если вы сейчас используете shutdown -h, он немедленно отключится, независимо от «настроек по умолчанию», поскольку вы переопределите их с помощью параметра.
При этом, в прошлый раз, когда мы завершили работу нашей среды, мы сделали каждую виртуальную машину отдельно, подождали, пока все они не отобразятся как выключенные, а затем выключили хост (в данном случае ESXi). Это позволяет вам проверять наличие ошибок во время выключения виртуальных машин и, в нашем случае, выключать веб-серверы, а ЗАТЕМ серверы баз данных конкретного приложения, чтобы избежать ошибок.
То же самое делаем при запуске и еще раз убеждаемся в отсутствии ошибок.
Я думаю, что важно определить правильную процедуру выключения и запуска в случае производственных сред.
При этом, я думаю, вам нужно будет предоставить больше информации о том, что это за виртуальные машины. Я думаю, что VMware Server не сможет отличить выключение с ошибкой от выключения без.
P.S. почему бы не использовать ESXi для начала?
SSH в каждую виртуальную машину и выпуск shutdown -h now
. Это правильный способ выключить Linux-машину, виртуальную или нет.