При выборе системы виртуализации для меня одним из основных критериев была возможность автоматического запуска и останова виртуальных машин при старте и выключении основной системы. Из рассматриваемых кандидатов нативно это умеют делать только Hyper-V и VMWare Server.
Пока на домашней машине был Windows Server 2008 решение напрашивалось само собой - Hyper-V. Не без танцев с бубном, но всё же удалось установить FreeBSD amd64, на то время выполнявшей только роли почтового, jabber и веб-сервера. Но в отличии от 2003-го сервера, который весьма успешно можно использовать как рабочую станцию, 2008-й на каждом шагу пытался напомнить, что он является серверной операционной системой. Последней каплей стали частые проблемы со звуком - это и «обычные» для Windows Server 2008 заедания, и BSOD-ы в драйвере к моей Juli@.
С переходом на Windows 7 пришлось закрыть глаза на чудовищный интерфейс веб-морды у VMWare Server и поставить на неё FreeBSD x86 (64-разрядная система для моих задач всё же ни к чему). Также было принято решение не выставлять свою машину «голым задом» в интернет и добавить к виртуальному серверу роль маршрутизатора. Получилась вполне стабильная система, которая без проблем маршрутизировала канал в 100 Мбит. Даже IPSec туннель в мир наливал 10 МБ/с с 70-80% загрузкой виртуальной машины, работающей на одном ядре E6600. Всё бы хорошо, если бы не одно но - опять проблемы со звуком (предположительно от большой сетевой нагрузки, от которой VMWare Server начинал гадить в звуковой тракт).
Вот на этом этапе и возникло желание попробовать VirtualBox. Беглое тестирование проблем со звуком не выявило. А эмулирование сетевой карты Intel PRO/1000 внушало уверенность, что проблем с сетью быть не должно. Осталось только заставить VirtualBox работать как сервис для автоматического старта виртуальных машин.
И к этому времени уже появилось готовое решение -
VBoxVmService. Но вот почти 6 МБ в архиве, требование Visual C++ Runtime 2005 и .NET Framework 2.0 для такой простейшей программы отбило всякое желание ей пользоваться, не смотря на то, что эти библиотеки уже давно у всех стоят. Значит пишем своё.
За один день в перерывах между работой был написан сам сервис, и ещё такой же день ушел на выяснение некоторых особенностей в архитектуре VirtualBox. На выходе получаем программу в 13.5 КБ и маленький конфигурационный файл. Детальное описание, инструкция по конфигурации и сам сервис - на странице
VirtualBox Control Service.
Но по классике жанра должна быть какая-то ложка г. Так и есть - VirtualBox по IPSec туннелю смог налить мне максимум 8 МБ/с. Да и вообще сложилось впечатление, что в VMWare всё работало немного быстрее. Но нормальный звук важнее. Будет время - проведу более тщательное тестирование.