LINUX.ORG.RU
ФорумAdmin

Graceful virtualbox guest shutdown (ubuntu 14)

 , ,


0

1

Добрый день!

Озадачился темой обеспечить корректный shutdown (а именно, savestate) гостевых ОС под Virtualbox 5.1. Host-система - ubuntu 14.04

Немного плаваю в upstart vs sysv. В частности в том, как они между собой взаимодействуют - как взаимосвязаны скрипты из /etc/init.d/ и настройки из /etc/init/ Предполагаю, что нужно увеличить дефолтовый kill delay до максимальных 300 секунд, как это сделано для, например, mysql. Но не уверен...

Что есть по теме в init.d:

1. vboxdrv Шатдаунит все vm-ки, ничего не форкает, работает в одном потоке, завершая работу всех гостей, после чего сам завершается. Представлен в rc0 под номером K80 Главная цель скрипта - завершить работу vboxdrv, шатдаун vm-ок тут постольку-поскольку...

2. vboxautostart-service Специальная фича, запилена именно под автостарт/автостоп тех или иных vm-ок (настраивается индивидуально, более гибко). представлен в rc0 под номером K65 Запускает свой бинарник специальный и сразу закрывается... Бинарник дальше уже делает с vm-ками что-то, согласно настроек... Существуют фишка с задержкой автострата, видимо из-за этого выполнено в таком вот виде - скрипт запускающей демон...

У меня одна из вм-ок очень большая (одной памяти только выделено 32Гб), соответственно savestate занимает времени пару минут...

И как бы ясно, что можно руками сначала проконтролировать все savestate во всех местах (в том числе в нужном мне apcupsd, из-за чего всё и началось), и потом уже тушить машину... Но хочется, чтобы само! ))

Ну например, sudo /etc/init.d/vboxdrv stop чудесным образом стопит все виртуалки, занимает это 2-3 минуты... но не то ведь ))

Позитивное, блин, из советского инженерного наследия во мне заставляет разобраться в вопросе, а не просто получить результат...

Поэтому вопрос:

1. Как между собой взаимодействуют настройки из /etc/init и скрипты из /etc/init.d ? Допустим, на примере mysql. В /etc/init.d/mysql там специально написано, что 10 секунд мало, нам надо максимально возможные 300 сек. При этом в /etc/init/mysql.conf эти самый 300 сек упоминаются. Но как связать это всё в кучу?

2. В случае с virtualbox сама vm-ка крутится как процесс /usr/lib/virtualbox/VBoxHeadless, а init.d скрипты запускают либо VBoxManage controlvm - который завершает выполнение когда всё готово, либо vboxautostart-deamon - который вообще живёт своей жизнью... ))) Каким образом лучше всего при переходе на 0/6 уровень - дать корректно сохраниться виртуалкам, используя штатные скрипты? Просто дать им возможность выполнить свою работу, ничего боле...



Последнее исправление: dtgeorge (всего исправлений: 1)

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.