Открытая платформа виртуализации VirtualBox


Технологии виртуализации в последнее время вызывают большой интерес не только у крупных компаний, использующих их для повышения эффективности информационной инфраструктуры в составе комплексных решений. Конечные пользователи также увидели преимущества применения настольных платформ виртуализации как на работе, в повседневной деятельности, так и дома. Множество вариантов использования виртуальных машин, широко рекламируемые вендорами платформ виртуализации, с повышением мощностей пользовательских аппаратных платформ постепенно начинают серьезно рассматриваться пользователями как надежные инструменты повышения эффективности работы с различным программным обеспечением и операционными системами. Технологии виртуализации позволяют на одном физическом компьютере (хосте) запускать одновременно несколько виртуальных машин со операционными системами (гостевыми ОС).

При этом, если платформа виртуализации применяется в рамках рабочей деятельности предприятия, требования, предъявляемые к ней, несомненно, выше требований к «домашним» виртуальным машинам. Если в корпоративной среде самыми важными являются надежность, функциональность, гибкость и возможность интеграции с существующей инфраструктурой, то дома — это, прежде всего, бесплатность самой платформы, удобство использования и производительность. Дома виртуальные машины могут использоваться для различных целей, основными из которых являются:

  • Создание «переносных» изолированных пользовательских сред с установленным в них программным обеспечением, направленных на решение определенного круга задач. Например, незачем перегружать операционную систему домашнего компьютера установкой различных специфических программ, которые не используются другими пользователями. Можно создать виртуальную машину с установленным в ней необходимым ПО (например, дизайнерским) и запускать ее только по мере надобности. При этом ее можно легко перенести на другую рабочую станцию и быть уверенным, что реестр, системные файлы и настройки хостовой системы останутся нетронутыми.
  • Создание защищенных сред для выхода в Интернет. Если троянская программа или вирус причинят вред внутри виртуальной машины, то можно удалить эту виртуальную машину и создать новую, при этом все данные хостовой системы будут надежно защищены.
  • Эксперименты с различным программным обеспечением и операционными системами. Возможность одновременного запуска нескольких операционных систем в виртуальных машинах позволяет использовать различные программы в необходимых вам ОС и обеспечивать передачу данных между ними. Безусловно, виртуальные машины открывают широкие просторы для обучения, как новым операционным системам, так и настройке различных сетевых служб и протоколов взаимодействия между различными ОС.

Конечно, на этом варианты использования виртуальных машин дома не заканчиваются. Пользователи придумывают все новые и новые способы применения виртуальных машин, а также используют различные средства управления и утилиты для повышения удобства работы с виртуальными машинами. При этом производители платформ виртуализации рассматривают домашних пользователей как достаточно перспективный сегмент рынка и стараются сделать развертывание и применение виртуальных машин максимально простым.

Обзор существующих настольных платформ виртуализации

Так сложилось, что в индустрии платформ виртуализации пользователи привыкли к традиционным продуктам, которые развиваются на протяжении нескольких лет и предоставляют необходимый уровень функциональности. Однако лидер в области производства ПО для виртуализации, компания VMware, ориентируется в основном на коммерческое использование своих платформ, и хотя ее мощная платформа виртуализации VMware Workstation 6 является по множеству параметров лучшей на данный момент, у нее есть один неоспоримый минус — она не бесплатна. Пользователи могут также загрузить с сайта бесплатный продукт VMware Player, предназначенный для «проигрывания» виртуальных машин, однако создавать их в нем нельзя. Продукт VMware Server направлен на использование в корпоративной среде для виртуализации серверов малых предприятий и тоже не подходит для домашних пользователей.

Компания Microsoft предлагает пользователям бесплатный продукт Virtual PC, который, однако, не обладает необходимым функционалом, удовлетворяющим требованиям всех категорий пользователей. Нужно также отметить, что Virtual PC доступен только для рабочих станций с операционными системами семейства Windows, что также отсекает определенный сегмент пользователей.

Компания Parallels также предлагает настольные платформы виртуализации Parallels Workstation для Windows и Linux хостов, а также Parallels Desktop для Mac OS X, которые тоже не являются бесплатными. К тому же, в связи с успешными продажами продукта Parallels Desktop, компания Parallels, кстати, принадлежащая российской компании SWsoft, несколько приостановила развитие продукта Parallels Workstation и довольно давно не выпускала его новых версий.

Таким образом, рассматривая рынок популярных настольных систем виртуализации, можно сказать, что присутствуют либо неплохие, но платные платформы, либо бесплатные, но недостаточно функциональные продукты, не отвечающие всем требованиям пользователей, а именно:

  • кроссплатформенность
  • поддержка большинства хостовых и гостевых операционных систем
  • возможность использования удобных средств управления виртуальными машинами

Стоит отметить, что сторонники решений Open Source хотели бы использовать свободную платформу виртуализации с открытым исходным кодом, какой является, например, платформа Xen.

Долгое время рынок платформ виртуализации находился в подвешенном состоянии касательно сегмента домашних пользователей: с одной стороны, производители систем виртуализации наращивали функционал и предлагали все новые средства управления, с другой конечные пользователи не хотели платить за них. В связи с этим, некоторым компаниям пришлось предоставить бесплатные системы виртуализации (например, VMware Server и Microsoft Virtual Server), которые в основном покрывали потребности корпоративных пользователей. Но вопрос об использовании виртуальных машин дома, по-прежнему, оставался открытым.

В 2006 году на рынке настольных платформ виртуализации появился новый игрок. Немецкая компания InnoTek представила продукт VirtualBox для виртуализации десктопов с открытым исходным кодом, в разработке которого (за исключением некоторых компонентов) может принять участие любой желающий. VirtualBox является достойным кандидатом на то, чтобы заполнить пустующую нишу среди настольных платформ виртуализации.

О платформе VirtualBox

VirtualBox
VirtualBox

Платформа VirtualBox представляет собой настольную систему виртуализации для Windows, Linux и Mac OS хостов, поддерживающую операционные системы Windows, Linux, OS/2 Warp, OpenBSD и FreeBSD в качестве гостевых. После нескольких лет разработки, компанией InnoTek была выпущена ограниченная версия продукта с открытым исходным кодом под лицензией GNU General Public License (GPL) в январе 2007 года. Полная версия продукта с закрытым исходным кодом также доступна для бесплатного персонального использования. Если продукт будет использоваться в производственной среде необходимо приобретение лицензий, условия которых можно узнать у компании InnoTek. Кстати говоря, в данный момент компания InnoTek, помимо платформы VirtualBox, занимается разработкой новой платформы виртуализации на основе гипервизора, тесно связанной с операционной системой Windows, в сотрудничестве с компанией Microsoft. На данный момент VirtualBox включает в себя следующие возможности:

  • нативная x86-виртуализация, не требующая наличия поддержки аппаратных техник Intel VT или AMD-V (которая, однако, может быть включена в настройках)
  • дружественный пользовательский интерфейс (построенный с помощью Qt3)
  • поддержка Windows, Linux и Mac OS хостовых систем (версия для Mac OS в данный момент находится в стадии беты)
  • наличие Guest VM Additions для упрощения взаимодействия с хостовыми ОС и оптимизации их быстродействия
  • поддержка многопроцессорных и многоядерных систем (только в качестве гостевых, поддержка виртуального SMP для представления многопроцессорности в гостевых системах отсутствует)
  • стабильность (в сравнении с другими Open Source решениями)
  • поддержка виртуализации аудиоустройств
  • высокая производительность (по отзывам множества экспертов выше, чем у продуктов VMware)
  • поддержка различных видов сетевого взаимодействия (NAT, Host Networking via Bridged, Internal)
  • поддержка дерева сохраненных состояний виртуальной машины (snapshots), к которым может быть произведен откат из любого состояния гостевой системы
  • описание настроек виртуальной машины в XML-формате
  • поддержка Shared Folders для простого обмена файлами между хостовой и гостевой системами

Эмулируемое аппаратное окружение

Продукт VirtualBox эмулирует следующие компоненты аппаратного обеспечения в виртуальной машине:

  • жесткие диски эмулируются в специальном формате контейнеров VDI (Virtual Disk Images), который в данный момент не совместим с форматами виртуальных дисков других производителей
  • видеоадаптер эмулируется как стандартный VESA с 8 Мб видеопамяти, при этом установка Guest VM Additions (только для Windows и Linux хостов) позволяет увеличить производительность виртуального видеоадаптера и динамически менять размер окна виртуальной машины
  • аудиоконтроллер на базе Intel ICH AC'97
  • сетевой адаптер эмулируется как интерфейс AMD PCNet
  • в издании с закрытым исходным кодом эмулируются также контроллеры USB, при этом USB-устройства, вставленные в разъемы хоста, автоматически подхватываются в гостевой системе. Также если виртуальная машина действует как RDP (Remote Desktop Protocol) сервер, то в клиенте также будут видны USB-устройства

Платформа VirtualBox исполняет код гостевой системы нативно (прямой передачей инструкций процессору хоста). Этот подход работает хорошо для кода, исполняющегося в кольце третьей гостевой системы, для кода гостевой системы, исполняющегося в нулевом кольце, требующего привилегированных инструкций, необходим его перехват платформой виртуализации. Для этой цели VirtualBox использует оригинальный подход: код, исполняющийся в нулевом кольце гостевой системы, исполняется в первом кольце хостовой системы, которое не используется в архитектуре Intel.

Уникальные функции VirtualBox

Помимо стандартных функций, присущих большинству настольных систем виртуализации, платформа VirtualBox обладает также набором уникальных возможностей, присущих только ей:

  • Ярко выраженная модульность системы
    Платформа VirtualBox имеет модульную архитектуру с хорошо описанными компонентами и предоставляет удобные интерфейсы доступа к виртуальным машинам, которые позволяют контролировать гостевые системы как через GUI, так и через командную строку и удаленно. К тому же, компания InnoTek предоставляет отличный Software Development Kit, и поскольку код платформы открыт, не требуется дополнительных усилий, чтобы написать расширение к системе. В данный момент ведется большая работа по портированию продукта на различные хостовые платформы и разработчикам предоставляются все необходимые инструменты и интерфейсы для доработки VirtualBox.
  • Виртуальная машина может действовать как RDP-сервер
    В отличие от других платформ виртуализации, VirtualBox может действовать как RDP-сервер и управляться любым клиентом, поддерживающим протокол RDP. Также поддерживается функция USB over RDP. Стоит отметить, что компания VMware в вышедшей недавно платформе VMware Workstation 6 также предоставляет функцию Act as RDP Server, поэтому эту функцию VirtualBox на данный момент нельзя назвать такой уникальной.
  • iSCSI initiator
    Компонент iSCSI initiator является одной из закрытых частей платформы VirtualBox. Он позволяет использовать внешние устройства по протоколу iSCSI в качестве виртуальных дисков в гостевой системе без дополнительной поддержки со стороны гостевой ОС.

Поддерживаемые гостевые и хостовые системы

Компания InnoTek и независимые разработчики, принимающие участие в доработке платформы VirtualBox, постоянно расширяют список поддерживаемых гостевых и хостовых систем. На данный момент продуктом поддерживаются следующие хостовые ОС:

  • Операционные системы семейства Windows (2000/XP/2003/Vista)
  • Linux-платформы, включая:
    • Ubuntu 7.04 («Feisty Fawn»)
    • Ubuntu 6.10 («Edgy Eft»)
    • Ubuntu 6.06 LTS («Dapper Drake»)
    • Debian 3.1 («Sarge»)
    • Debian 4.0 («Etch»)
    • openSUSE 10.2
    • Mandriva Linux 2007.1
    • Red Hat Enterprise Linux 4
    • Univention Corporate Server 1.3-2
  • Mac OS X (в данный момент в стадии бета-тестирования)
  • OS/2 Warp (экспериментально)

Нужно отметить, что в данный момент портирование VirtualBox на платформу OS/2 еще не закончено, и на сайте разработчика присутствуют лишь общие инструкции по сборке системы. При использовании VirtualBox на этой платформе возникают многочисленные проблемы, которые предстоит решить разработчикам.

Список гостевых систем, поддерживаемых VirtualBox, весьма обширен и вполне может соперничать с коммерческими платформами виртуализации. На данный момент поддерживаются следующие гостевые ОС:

Гостевая ОССтатус в данный моментПримечание
Семейство ОС Windows
Windows VistaРаботает, Guest VM Additions доступныНеобходимо установить драйвер сетевой карты вручную (описано в пользовательской документации)
Windows 2000Работает, Guest VM Additions доступны 
Windows XPРаботает, Guest VM Additions доступны 
Windows Server 2003Работает, Guest VM Additions доступны 
Windows NTРаботает, Guest VM Additions доступныНекоторые проблемы на старых пакетах обновления, рекомендуется наличие пакета обновления версии не менее 6а
Windows 98Работает, но не доступны Guest VM Additions 
Семйство ОС Linux
Ubuntu 5.10/6.06 Desktop/7.04 herd 5Работает, Guest VM Additions доступны 
Ubuntu 6.06 Server/6.10Работает, Guest VM Additions доступныМогут быть проблемы с загрузкой ОС
Debian 3.1Работает, Guest VM Additions доступны 
SUSE 9/10.0/10.2Работает, Guest VM Additions доступны 
Mandrake 10.1Работает, Guest VM Additions доступны 
Fedora Core 1/4/5/6Работает, Guest VM Additions доступны 
Red Hat Enterprise Linux 3 and 4Работает, Guest VM Additions доступны 
Red Hat Linux 9Работает, Guest VM Additions доступны 
Red Hat Linux 7Не работает 
Linspire 4.5Работает, Guest VM Additions доступны 
Slackware 10.1Работает, Guest VM Additions доступны 
Conectiva 10Работает, Guest VM Additions доступны 
Xandros 3Не работает 
Семейство ОС BSD
FreeBSDРаботает частичноИзвестны проблемы с версией для FreeBSD 6.2
PC-BSD 1.3Не работает 
OpenBSDРаботает, но не доступны Guest VM Additions 
Другие ОС
DOSРаботаетОграниченно тестировалось
OS/2Работает частичноНеобходимо наличие поддержки Intel VT
Novell Netware 6.5Не работает 
BeOS 5Не работает 
SyllableНе работает 
VisopsysНе работает 
ReactOSНе работает 
Solaris 10Работает частичноНе на всех версиях работает стабильно, проблемы с сетью

Компания InnoTek заявляет также, что практически все операционные Linux-системы с версией ядер 2.4 и 2.6 должны работать в качестве гостевых. Для достижения лучшей производительности рекомендуется версия ядра 2.6.13.

Как видно из приведенного выше списка, поддерживается множество Linux-платформ, что предоставляет широкие возможности по обучению работы с ними в виртуальных машинах на базе VirtualBox.

Принцип работы VirtualBox

Графический интерфейс VirtualBox имеет два основных окна: главное и консоль виртуальной машины.

Главное окно управления VirtualBox
Главное окно управления VirtualBox

 

Консоль виртуальной машины
Консоль виртуальной машины

При старте виртуальной машины VirtualBox обычно запускается три процесса, которые можно наблюдать в диспетчере задач в Windows-системах или системном мониторе Linux:

  1. Графический интерфейс окна управления.
  2. Еще один похожий процесс, запущенный с параметром startvm, который означает, что GUI будет работать в качестве оболочки для виртуальной машины.
  3. Автоматически создаваемый сервисный процесс VBoxSVC, необходимый для того, чтобы отслеживать количество и статусы запущенных виртуальных машин (поскольку они могут быть запущены различными способами).

Виртуальная машина с запущенной в ней гостевой системой инкапсулирует в себе необходимые детали реализации гостевой ОС и ведет себя по отношению к хостовой системе как обычное приложение.

В гостевой системе реализация виртуальной машины VirtualBox представляется пользователю двумя способами:

  • Стандартная клиент-серверная архитектура, позволяющая контролировать поведение виртуальных машин различными способами, используя COM/XPCOM API. Например, гостевая система может быть запущена через GUI, а остановлена с помощью утилиты командной строки VboxManage. Эта утилита может также выполнять некоторые функции, которые не доступны из графического интерфейса пользователя.
  • Архитектура frontend/backend, представляющая собой инкапсуляцию x86-виртуализации в библиотеках VBoxVMM.dll на Windows платформе и VBoxVMM.so на Linux (backend) и реализацию управления виртуальными машинами несколькими способами (frontend):
    • Пользовательский GUI на основе Qt
    • Утилита VboxManage
    • GUI, основанный на SDL, обладающий более широкими возможностями, чем GUI на Qt и направленный на использование виртуальных машин в производственной среде
    • Возможность управления виртуальными машинами с помощью встроенного RDP-сервера в виртуальной машине

Процесс установки гостевой системы на платформе VirtualBox весьма прост и не требует от пользователя дополнительных усилий. При создании виртуальной машины необходимо выбрать тип устанавливаемой гостевой системы, определить количество выделяемой ей оперативной памяти и создать виртуальный диск фиксированного размера или динамически расширяющийся по мере его заполнения в гостевой системе. Дальнейший процесс установки происходит так же, как и в других платформах виртуализации. После того, как гостевая ОС будет установлена, необходимо также установить Guest VM Additions в целях оптимизации гостевой системы и улучшения ее взаимодействия с хостовой ОС.

Сетевое взаимодействие между виртуальными машинами в VirtualBox может быть трех типов:

  • NAT
    Виртуальная машина «прячется» за NAT-сервером хоста и может инициировать соединения во внешнюю по отношению к нему сеть, но из внешней сети инициировать соединение с такой виртуальной машиной нельзя.
  • Host Interface Networking
    В этом случае виртуальная машина разделяет ресурсы физического адаптера с хостовой операционной системой и доступна из внешней сети как независимый компьютер.
  • Internal Networking
    Тип сетевого взаимодействия для построения виртуальной сети в пределах хоста, когда не требуется выход из виртуальной машины во внешнюю сеть и доступ к ней извне.

Связь эмулятора виртуальных машин QEMU и VirtualBox

Компания InnoTek, на протяжении нескольких лет разрабатывавшая платформу VirtualBox, опиралась в своих разработках на один из старейших эмуляторов виртуальных машин QEMU. Проект VirtualBox связан с этой платформой в двух отношениях:

  • c одной стороны, при создании эмулируемых устройств компания InnoTek ориентировалась на представления виртуального оборудования в QEMU,
  • с другой стороны, InnoTek в сотрудничестве с создателями QEMU использовала механизм рекомпиляции в качестве обработчика исключительных ситуаций, когда монитор виртуальных машин (Virtual Machine Monitor) платформы VirtualBox не может корректно обработать исключительную ситуацию при выполнении кода гостевой системы в real mode.

По заявлениям разработчиков VirtualBox техники, заимствованные ими из QEMU, позволили им сэкономить значительное количество времени и повысить надежность платформы.

Возможности открытой разработки VirtualBox

Помимо полнофункциональных версий VirtualBox для свободного использования, компания InnoTek предлагает ограниченные версии платформы с открытым исходным кодом для различных хостовых систем. Исходный код VirtualBox хранится в системе управления версиями Subversion (svn) и может быть скачан с сайта компании InnoTek. Чтобы извлечь исходный код платформы из онлайнового сервера Subversion, в операционной системе Linux необходимо выполнить команду:

svn co http://virtualbox.org/svn/vbox/trunk vbox

Также последнюю версию исходных кодов системы VirtualBox единым архивом можно скачать со страницы загрузок по адресу: http://www.virtualbox.org/wiki/Downloads.

Принцип организации исходного кода можно узнать из Wiki на сайте InnoTek по адресу: http://www.virtualbox.org/wiki/Source_code_organization.

Также компания InnoTek на своем сайте ведет публичный багтрекер, в котором можно узнать обо всех присутствующих на данный момент проблемах и составить отчет об ошибке, внеся описание проблемы при работе с платформой в базу ошибок VirtualBox.

И, конечно, каждый может принять участие в разработке открытой версии платформы, войдя в состав сообщества Open Source на сайте virtualbox.org.

Преимущества и недостатки VirtualBox

Рассмотрев основные возможности VirtualBox, можно сказать, что у этой платформы виртуализации определенно есть будущее, поскольку она готова занять пустующую нишу в сфере настольных систем виртуализации как мощная, производительная, удобная и, главное, бесплатная платформа. Безусловным плюсом системы является ее кроссплатформенность и поддержка со стороны сообщества Open Source. Большой список поддерживаемых гостевых и хостовых операционных систем открывает широкие возможности по применению VirtualBox в контексте различных вариантов использования.

Среди бесплатных платформ VirtualBox, определенно, одна из лучших на данный момент. При этом компания InnoTek ориентируется не только на конечных пользователей. Наличие таких функций, как RDP сервер и iSCSI initiator, говорит, что в будущем платформа может серьезно использоваться в производственной среде. Дружественный интерфейс пользователя вкупе с высокой производительностью VirtualBox сейчас имеют множество приверженцев во всем мире.

Между тем, у VirtualBox есть и некоторые проблемы: прежде всего, это проблемы со стабильностью на многих хостовых платформах и отсутствие совместимости формата виртуальных дисков с другими системами виртуализации. Также, на данный момент функциональность системы уступает коммерческим платформам (в частности, VMware Workstation 6), однако темпы развития VirtualBox говорят, что в скором времени ее функциональность значительно увеличится. Попробуйте использовать виртуальные машины VirtualBox, и, возможно, эта платформа займет достойное место среди необходимого программного обеспечения на вашем десктопе.






Дополнительно

iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.