АЛЕКСЕЙ БЕРЕЖНОЙ, системный администратор. Главные направления деятельности: виртуализация и гетерогенные сети. Еще одно увлечение помимо написания статей – популяризация бесплатного ПО
Sun VirtualBox
Как персональная система виртуализации
Виртуальная машина на компьютере системного администратора – давно не экзотика. А новый VirtualBox от компании SUN – отличный выбор для создания собственной системы виртуальных машин.
Современные решения по виртуализации, несмотря на свое недавнее появление, уже довольно часто используются при решении многих задач. Промышленные системы виртуализации, такие как VMware ESX/ESXi, Citrix XenServer/Essentials, установленные на мощных серверах, способны заменить целый парк серверного оборудования для крупной компании. Подобные системы относятся к типу bare-metal solutions, то есть устанавливаются как, говорится, «на голое железо» и обеспечивают хорошее быстродействие.
В то же время довольно часто необходима доступная система виртуализации под рукой, без приобретения дополнительного оборудования. Например, на ноутбуке системного администратора или на домашнем компьютере. Думаю, не стоит лишний раз рассказывать о преимуществах виртуализации в работе современных ИТ-специалистов. Протестировать то или иное решение, познакомиться с новым программным продуктом, сделать работу над ошибками, чтобы понять причину проблемы и найти способ ее устранения – все это также нашло свое применение в виртуальной среде. Данную систему виртуальных машин в дальнейшем будем называть «персональной системой виртуализации».
Критерии выбора персональной системы виртуализации
Систем виртуализации персонального уровня существует довольно много. Поклонники UNIX-систем, в частности Linux, вспомнят о Xen и OpenVZ, любителям продукции Microsoft придет на память MS Virtual PC, также довольно давно существуют платный продукт VMware Workstation, и бесплатный – VMware Server. Более-менее подробный список систем виртуализации можно найти на Wikipedia (http://ru.wikipedia.org/wiki), набрав в строке поиска: «сравнение_виртуальных_машин».
В то же время персональная система виртуализации должна отвечать определенным критериям, таким как:
- Кроссплатформенность. У системы должны быть модификации для наиболее популярных платформ: Windows, Linux, MacOS и Solaris (Open Solaris). Виртуальная машина, созданная в host-системе на одной платформе, должна легко переноситься на host-систему, использующую другую платформу. Сам я использую Linux и иногда Windows XP, поэтому для меня в первую очередь актуальна поддержка именно этих платформ.
- Поддержка разнообразных гостевых операционных систем. В отличие от промышленных систем виртуализации, на которых зачастую устанавливается ограниченный перечень операционных систем (например, только MS Windows 2003 и RedHat Enterprise), тестовые системы виртуальных машин нередко используются для ознакомления специалистов с другими платформами.
- Возможность переноса гостевых машин с одной host-системы на другую. Должна присутствовать либо возможность прямого переноса файлов виртуальных машин, например, как у VMware Server, либо внятная система экспорта/импорта виртуальных машин, позволяющая переносить виртуальные машины между разными host-системами и, при необходимости, на другую платформу виртуализации.
- Простота установки и управления. В данном случае система виртуализации должна требовать минимум усилий для ее изучения. Основные силы и время необходимо отдать задачам, ради которых эта система и устанавливалась: тестированию решений, знакомству с другими платформами, но никак не изучению сложных нюансов самой системы виртуализации.
- Поддержка различных методов управления системой виртуализации. Кому-то удобней использовать графический интерфейс, кому-то – интерфейс командной строки. В хорошей системе виртуализации должны быть представлены оба метода. Часто это требование диктуется внешними факторами, например, особенностями организации удаленного доступа: подключение по протоколу RDP в графическом режиме или по telnet/SSH из командной строки.
- Наличие хорошей документации. Требование очевидно само по себе.
- Быстрота выполнения гостевых операционных систем. Если гостевые операционные системы, развернутые на данной системе, будут безбожно «тормозить», смысл всех вышеперечисленных факторов теряется.
- Данная система должна быть бесплатной. Дело даже не в том, что придется заплатить некую сумму денег за программный продукт, пусть даже очень хороший, но который нужен исключительно «по работе». Системные администраторы – люди зачастую весьма занятые. Поэтому лучше потратить время на тестирование новой системы, чем на поиск способа перевести требуемую сумму через какую-либо систему платежа. Например, посредством WebMoney или ехать в банк, чтобы оформлять перевод, а потом еще ждать некоторое количество времени, пока деньги поступят на счет компании-дистрибьютора и в ответ придет лицензионный ключ или коробка с дистрибутивом.
Преимущества VirtualBox перед другими системами
В свое время для экспериментов я использовал VMware Server версии 1.x. Данный продукт устраивал практически по всем вышеперечисленным параметрам. Наличие версии для Windows XP и Linux CentOS в качестве host-систем, простота установки, удобная консоль управления, не очень широкий, но вполне приемлемый перечень поддерживаемых гостевых операционных систем: большинство версий Windows, популярные Linux-дистрибутивы, FreeBSD и DOS. Минусом использования данной версии было присутствие в системе дополнительных процессов, необходимых для работы самой VMware. Для серверного решения это как раз то, что нужно, но для персональной системы виртуализации, когда виртуальная машина запускается время от времени, постоянное наличие дополнительных «пожирателей ресурсов» совсем ни к чему.
Что касается дальнейшего развития продукта, то с выходом версии VMware Server 2.x ситуация изменилась далеко не в лучшую сторону. Во-первых, исчезла поддержка host-систем на базе Windows XP (Только Windows 2003 Server). Во-вторых, удобная быстрая консоль была заменена на довольно неповоротливый веб-интерфейс. Словом, VMware Server 2.x является именно серверной системой виртуализации со всеми вытекающими особенностями. Можно, конечно, продолжать использовать VMware Server версии 1.x. Но все-таки хочется идти в ногу с прогрессом и использовать современные решения по виртуализации.
Во время очередного интернет-серфинга на тему виртуализации мне попалось на глаза упоминание о системе VirtualBox (http://www.virtualbox.org) производства компании Sun Microsystems. Продукция компании Sun всегда отличалась хорошим качеством и продуманностью решений. Именно так обстоит дело с VirtualBox.
Host-системы, поддерживаемые VirtualBox
VirtualBox может быть установлен на большое число операционных систем. Ниже представлен список поддерживаемых ОС в качестве host-системы:
- MS Windows:
- Windows Server 2003 (32 бит);
- Windows XP все сервис-паки (32 бит);
- Windows Vista (32 бит и 64 бит);
- Windows Server 2008 (32 бит и 64 бит);
- Windows 7 beta (32 бит и 64 бит).
- Apple Mac OS X hosts:
- все версии MacOS X на Intel-платформе.
- Linux (32-bit и 64-bit):
- Debian GNU/Linux 3.1 («Sarge»), 4.0 («Etch») и 5.0 («Lenny»);
- Fedora Core 4 to 11;
- Gentoo Linux;
- Redhat Enterprise Linux 4 и 5;
- SUSE Linux 9 и 10, OpenSUSE 10.3, 11.0 и 11.1;
- Ubuntu 6.06 («Dapper Drake»), 6.10 («Edgy Eft»), 7.04 («Feisty Fawn»), 7.10 («Gutsy Gibbon»), 8.04 («Hardy Heron»), 8.10 («Intrepid Ibex»), 9.04 («Jaunty Jackalope»);
- Mandriva 2007.1, 2008.0 и 2009.1.
- Solaris hosts (32 бит и 64 бит):
- OpenSolaris (2008.05 и выше, «Nevada» релиз 86 и выше);
- Solaris 10 (u5 и выше).
Гостевые операционные системы (Guest Systems)
Что касается списка гостевых операционных систем, поддерживаемых VirtualBox, то он поистине впечатляет:
- MS Windows:
- Windows 95/98/ME (нет поддержки Guest Additions);
- Windows NT 4.0 (все версии и все сервис-паки, рекомендуется устанавливать service pack 6a);
- Windows 2000/XP/Server 2003/Vista/Server 2008 все версии и сервис-паки, включая 64-битные версии;
- Windows 7 beta;
- DOS и Windows 3.x.
- Linux. Поддерживаемые версии ядра:
- Linux 2.4;
- Linux 2.6 (настоятельно рекомендуется использовать ядро версии 2.6.13 и выше для лучшей производительности).
Из популярных Linux-дистрибутивов поддерживаются: Arch Linux, Debian, OpenSUSE, Fedora, Gentoo, Mandriva, Red Hat, Turbolinux, Ubuntu, Xandros.
- Sun Solaris:
- Solaris 10, OpenSolaris (32 бит и 64 бит).
- BSD-системы:
- FreeBSD;
- OpenBSD версия 3.7 и позднее;
- NetBSD.
- OS/2:
- OS/2 Warp от 3.0 и выше;
- eComStation.
Дополнительно поддерживаются:
- Novell Netware;
- L4;
- QNX;
- и чудесный пункт Other/Unkhow, куда, видимо, должны входить все остальные операционные системы, когда-либо порожденные человечеством.
Как видим, диапазон поддерживаемых систем довольно широк (как минимум, число названия гостевых систем гораздо больше, чем у VMware Server 1.x).
Быстродействие виртуальных машин и всей системы виртуализации
Что касается быстродействия систем, то в Sun Microsystems также постарались на славу.
В последней VirtualBox версии 3.0.2 имеются следующие механизмы улучшения быстродействия:
- Поддержка технологии Hardware Virtualization VT-x для компьютеров на базе процессоров Intel и AMD-V для компьютеров на базе AMD.
- Поддержка функции 3D acceleration.
- Дополнения гостевой операционной системы (Guest Additions) – набор драйверов для виртуальной машины, позволяющий улучшить производительность работы и функции «захвата» мыши и клавиатуры, когда курсор находится в окне виртуальной машины. Данные дополнения доступны для систем:
- Microsoft Windows NT 4.0;
- Microsoft Windows 2000;
- Microsoft Windows XP;
- Microsoft Windows Server 2003 (все сервис-паки);
- Microsoft Windows Vista (все редакции);
- Microsoft Windows 7 Beta;
- Fedora Core 4, 5, 6, 7, 8, 9 and 11;
- Redhat Enterprise Linux 3, 4 and 5;
- SUSE and OpenSUSE Linux 9, 10.0, 10.1, 10.2, 10.3, 11.0 and 11.1;
- Ubuntu 5.10, 6.06, 7.04, 7.10, 8.04, 8.10 and 9.04;
- OpenSolaris Nevada (Build 82 и выше; включая OpenSolaris 2008.05, 2008.11 и 2009.06);
- OpenSolaris Indiana (Developer Preview 2 и выше);
- Solaris 10 (u5 и выше).
Общее впечатление от быстродействия гостевых систем и всей системы в целом осталось положительным. Старенький компьютер с Pentium IV 2 Ггц, 1,5 Гб RAM и одним жестким диском SATA (не SATA II) весьма шустро поддерживал виртуальную машину Microsoft Windows Server 2003 R2 32 бит с виртуальным объемом RAM 512 Мб, одновременно с открытым текстовым процессором OpenOffice Writer из пакета OpenOffice 3.1 (в котором писалась эта статья), графическим редактором Paint, интернет-браузером FireFox 3.5.2. Замедления были заметны в момент высокой дисковой нагрузки, например, когда загружалась виртуальная машина.
Совет – по возможности используйте различные физические жесткие диски для размещения виртуальных машин и приложений гостевой OS.
Управление VirtualBox
VirtualBox, как и положено грамотно спроектированной системе виртуализации, управляется двумя способами: через консоль управления, вызываемую путем запуска программы VirtualBox или из командной строки посредством программы VBoxManage.
Например, запустить виртуальную машину в host-системе на Linux OpenSUSE с установленным оконным менеджером KDE 4.x можно из окна программы в графическом режиме (GUI). Необходимо перейти в меню «Приложение -> Система» и вызвать приложение Virtual Machine. Далее в этом приложении выбрать нужную виртуальную машину (в данном случае это test_xp) и нажать экранную кнопочку Start (см. рис. 1).
Рисунок 1. Главное окно программы VirtualBox
А можно воспользоваться интерфейсом командной строки (GLI) и просто выполнить команду:
/usr/bin/VBoxManage startvm "test_xp"
При удачном запуске в ответ система выдаст сообщение:
VirtualBox Command Line Management Interface Version 3.0.4
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.
Waiting for the remote session to open...
Remote session has been successfully opened. |
Аналогичный дуализм присутствует в host-системах на Windows-платформе.
Чтобы запустить виртуальную машину под названием test_convert32 из командной строки, необходимо перейти в каталог C:\Program Files\Sun\xVM VirtualBox:
cd "c:\Program Files\Sun\xVM VirtualBox"
и выполнить команду:
VBoxManage.exe startvm "test_convert32"
Или можно вызвать графическое окно программы из меню Programs -> Sun xVM VirtualBox и запустить виртуальную машину из него.
И тот и другой методы отлично документированы как в User Manual, так и во встроенной справке, вызываемой по нажатию клавиши <F1>.
Возможность переноса виртуальных машин на другую host-систему
Данный аспект также неплохо проработан разработчиками VirtualBox. Во-первых, есть процедура экспорта-импорта, вызываемая из главного окна VirtualBox «Файл -> Импорт конфигурации» или «Файл -> Экспорт конфигурации». При этом для данных операций используется Open Virtualization Format (ovf), позволяющий переносить диски на другую платформу виртуализации. Во-вторых, можно без труда переписать соответствующий файл виртуального диска *.vmi на другую host-систему и на его основе поднять аналогичную виртуальную машину.
Возможность переноса виртуальных машин на другую систему виртуализации
Как я уже говорил ранее, существует возможность экспорта-импорта с использованием Open Virtualization Format.
Кроме того, VirtualBox поддерживает виртуальные диски формата *.vhd и *.vmdk, созданные в виртуальных средах Microsoft Virtual PC и VMware Server, VMware Workstation соответственно. Также файлы формата *.vhd используются в Citrix XenServer в качестве посредника при переносе или конвертации виртуальных машин. Эта поистине удивительная всеядность позволяет перейти на VirtualBox с других программных продуктов для виртуализации (см. рис. 2).
Рисунок 2. Окно менеджера виртуальных носителей
При этом использование виртуальных жестких дисков других платформ виртуализации не требует конвертации из одного формата в другой. Вы просто можете подключить, к примеру, файл *.vmdk, работавший ранее под управлением VMware Server, к host-системе с VirtualBox. Поработав с ним какое-то время, можно точно так же вернуть его обратно на VMware Server. В некоторых случаях вам придется настроить драйвера системы. Словом, все как если бы вы переносили один физический винчестер между разными компьютерами.
Лицензирование VirtualBox
Sun Microsystems распространяет свой продукт под двумя лицензиями. Откомпилированные, готовые к работе бинарники, например, инсталляционный файл для Windows – VirtualBox-3.x.x-xxxxx-Win.exe, распространяются под лицензией Personal Use and Evaluation License (PUEL). В рамках данной лицензии вы можете устанавливать этот продукт на свой домашний компьютер без каких-либо ограничений. Вы также можете установить этот продукт VirtualBox на свой рабочий компьютер и использовать его как персональную систему виртуализации.
Вот что говорится по этому поводу в Licensing FAQ (http://www.virtualbox.org/wiki/Licensing_FAQ):
«Also, if you install it on your work PC at some large company, this is still personal use» (кроме того, если вы устанавливаете это на своем рабочем компьютере в некоторой крупной компании, это все еще личное использование).
В то же время для случаев промышленного развертывания системы (например, предоставления большого числа виртуальных машин в коммерческое использование) компания Sun Microsystems настоятельно рекомендует приобрести коммерческую лицензию с поддержкой.
Есть еще VVirtualBox Open Source Edition (OSE) – это исходные тексты программы, распространяемые под лицензией GPL2. Соответственно, в рамках этой лицензии вы можете распространять и изменять исходный код, соблюдая условия GPL2. Правда, такую свободу вы получаете не без потерь. В VirtualBox Open Source Edition отсутствуют некоторые интересные, а подчас и очень важные функции виртуальной host-системы, которые есть в закрытой системе под лицензией PUEL. В частности это:
- Remote Display Protocol (RDP) Server – предоставляет возможность соединяться с виртуальной машиной по RDP при помощи стандартного клиента, например, Remote Desktop Connections в MS Windows или rdesktop в UNIX-системах. При этом на самой виртуальной машине не требуется иметь службы сервера RDP.
- USB support – поддержка USB-носителей в виртуальных машинах.
- USB over RDP – позволяет осуществлять доступ к USB-носителям на виртуальных машинах посредством RDP-протокола.
- Serial ATA controller – поддержка виртуальных SATA-дисков. Как и в реальной жизни, виртуальные SATA работают быстрее, и на виртуальной машине их можно иметь больше трех штук.
Регистрация программы
После инсталляции программы предлагается зарегистрировать копию VirtualBox. Это необходимо в первую очередь компании-разработчику VirtualBox для сбора статистики о популярности продукта. Имеет смысл поддержать компанию Sun Microsystems в ее желании знать о том, насколько ее детище пользуется спросом.
Особенности установки VirtualBox
Рассмотрим установку VirtualBox в некоторых операционных системах.
Установка в Linux OpenSUSE 11.1
Для установки VirtualBox в Linux необходимо, чтобы в системе были установлены следующие пакеты.
- Qt 4.3.0 или выше;
- SDL 1.2.7 или выше (эту графическую библиотеку часто называют libsdl или similar).
К этому времени у меня уже были установлены соответствующие пакеты. Поэтому скачаваем по ссылке http://download.virtualbox.org/virtualbox/3.0.4/VirtualBox-3.0.4_50677_openSUSE111-1.i586.rpm необходимый для установки пакет (я использую 32-битную версию OpenSUSE).
Далее регистрируемся в системе как root, переходим в каталог с сохраненным RPM-пакетом и выполняем команду:
rpm -Uvh VirtualBox-3.0.4_50677_openSUSE111-1.i586.rpm
После этого у меня в меню появился пункт Virtual Machine с комментарием Sun VirtualBox.
Нажав на данный пункт меню, можно запустить главное окно программы (см. рис. 1).
Установка в Windows XP
Установка в Windows проходит обычным образом. Скачиваем и запускаем файл инсталляционный *.ехе-файл. Сейчас доступна версия VirtualBox 3.1.0 (http://download.virtualbox.org/virtualbox/3.1.0/VirtualBox-3.1.0-55467-Win.exe).
Установка программы проходит самым обычным способом. Вслед за окном приветствия (Welcome to the Sun xVM VirtualBox Setup Wizard) после нажатия кнопки Next появляется окно выбора пользовательских установок (Custom Setup). В этом окне будет предложено выбрать устанавливаемые компоненты программы, включая поддержку USB (VirtualBox USB support), поддержку сети (VirtualBox Networking) и поддержку расширений на языке Python (VirtualBox Python Support). Как обычно, предоставляется возможность указать местоположение файлов программы (Location) с ручным указанием пути по кнопке Browse. Дополнительно по кнопке Disk Usage можно получить информацию о наличии дискового пространства (cм. рис. 3).
Рисунок 3. Окно выбора пользовательских установок (Custom Setup) при инсталляции VirtualBox в Windows
В следующем окне в лучших традициях MS Windows будет задан вопрос, создавать ли ярлыки на рабочем столе (Create a shortcut on the Desktop) и в панели быстрого запуска (Create a shortcut in the Quick Launch Bar). После нажатия кнопки Next появляется окно с предупреждением о временном сбросе установленных сетевых соединений и временном отключении сети в связи с инсталляцией VirtualBox Networking (Warning: Network Interfaces. Installing the Sun xVM VirtualBox Networking feature will reset your network connection and temporary disconnect you from the network) (см. рис. 4).
Рисунок 4. Окно с предупреждением о сбросе сетевых подключений во время установки VirtualBox
Все, подготовка к инсталляции закончена, о чем становится понятно из появившегося окна. (Ready to install). После нажатия соответствующей клавиши начнется процедура установки программы. Во время инсталляции в системе будет создано несколько новых устройств для поддержки виртуальных режимов, таких как VirtualBox Networking, и система выдаст соответствующее окно с запросом о разрешении или отклонении данного действия (см. рис. 5).
Рисунок 5. Окно запроса разрешения установки дополнительных виртуальных устройств при инсталляции VirtualBox в Windows
По завершении процесса появится окно, сообщающее о завершении процесса инсталляции (Sun xVM VirtualBox installation complete), c предложением сразу же запустить окно управления VirtualBox (Start Sun xVM VirtualBox after installation).
Все, система виртуальных машин установлена, можно приступать к работе.
***
Мы рассмотрели основные вопросы использования VirtualBox в качестве системы персональной виртуализации. В следующей статье будут рассмотрены вопросы создания и сетевого подключения виртуальных машин, а также улучшения производительности, технологии миграции с других платформ.
- Домашняя страничка проекта – http://www.virtualbox.org.
- Информация о проекте на официальном сайте компании Sun Microsystems – http://www.sun.com/software/products/virtualbox.
- Страничка GNU General Public License, version 2 – http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.