- Огляд існуючих настільних платформ віртуалізації
- Про платформі VirtualBox
- Емульованого апаратне оточення
- Унікальні функції VirtualBox
- Підтримувані гостьові і хостової системи
- Принцип роботи VirtualBox
- Зв'язок емулятора віртуальних машин QEMU і VirtualBox
- Можливості відкритої розробки VirtualBox
- Переваги та недоліки 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 являє собою настільну систему віртуалізації для 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 працює, Gu est 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 зазвичай запускається три процесу, які можна спостерігати в диспетчері завдань в Windows-системах або системному моніторі Linux:
- Графічний інтерфейс вікна управління.
- Ще один схожий процес, запущений з параметром startvm, який означає, що GUI буде працювати в якості оболонки для віртуальної машини.
- Автоматично створюваний сервісний процес 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, і, можливо, ця платформа займе гідне місце серед необхідного програмного забезпечення на вашому робочому столі.