Статьи

Xen

  1. Матеріал з Xgu.ru Автор: Ігор Чубин Xen - це монітор віртуальних машин (VMM, Virtual Machine Monitor)...
  2. [ правити ] Приклади використання
  3. [ правити ] Порівняння з іншими віртуальними машинами
  4. [ правити ] Віртуалізація та паравіртуалізація
  5. [ правити ] Продуктивність
  6. [ правити ] Додаткова інформація
  7. [ правити ] Головні дати
  8. [ правити ] Можливості Xen
  9. [ правити ] Можливості Xen 4
  10. [ правити ] Можливості Xen 3
  11. [ правити ] Обладнання
  12. [ правити ] Обмеження Xen 2
  13. [ правити ] Апаратні вимоги
  14. [ правити ] Підтримка Xen різнімі операційнімі системами
  15. [ правити ] Запуск коду без операційної системи безпосередньо в домені Xen
  16. [ правити ] Як почати?
  17. [ правити ] Хост-система - Інсталяція Xen в домен 0
  18. [ правити ] Гостьова система
  19. [ правити ] Використання Xen
  20. [ правити ] Засоби управління і моніторингу віртуальних машин
  21. [ правити ] Комерційні системи віртуалізації, засновані на Xen
  22. [ правити ] Комерційна підтримка та хостинг на Xen
  23. [ правити ] Хостинг на Xen
  24. [ правити ] Інформаційні ресурси
  25. [ правити ] Інші інтернет-ресурси
  26. [ правити ] Списки розсилки
  27. [ правити ] Книги

Матеріал з Xgu.ru Автор: Ігор Чубин

Xen - це монітор віртуальних машин (VMM, Virtual Machine Monitor) або гипервизор (hypervisor) з підтримкою паравіртуалізаціі (para-virtualization) для процесорів x86 архітектури, поширюється з відкритим вихідним кодом (opensource). Xen може організувати спільне безпечне виконання декількох віртуальних машин на одній фізичній системі з продуктивністю близькою до безпосередньої (native).

Xen володіє функціональністю ПО корпоративного рівня; в ньому, зокрема, забезпечується:

  • Продуктивність віртуальних машин близька до продуктивності при безпосередньому виконанні на залозі;
  • Можливість динамічної міграції працюють віртуальних машин між хостами;
  • Підтримка до 32 віртуальних процесорів на одну гостьову машину з можливістю гарячого додавання (hotplug) процесорів;
  • Підтримка платформ x86 / 32, x86 / 32 з PAE, x86 / 64, IA64, а також часткова підтримка платформ ARM і PPC;
  • Підтримка апаратної віртуалізації для запуску немодифікованих операційних систем (включаючи Microsoft Windows);
  • Відмінна підтримка обладнання (підтримуються практично всі драйвери пристроїв Linux).

[ правити ] Що може віртуалізація

  1. Запуск безлічі операційних систем одночасно
  2. Гарантована ізоляція ОС один від одного
  3. Можливість гнучкого поділу ресурсів між машинами

[ правити ] Навіщо це треба

Основна стаття: переваги віртуалізації

[ правити ] Приклади використання

Список прикладів не повний.

Консолідація серверів хостинг-провайдерів:

  • Одна віртуальна машина на користувача;
  • Динамічне створення віртуальних машин;
  • Міграція VM в межах кластера;
  • Плавний апгрейд критичних серверів.

Розробка

  • Налагодження коду ядра операційної системи, коду завантажувача і коду BIOS (див., Наприклад, gdbserver-xen );

Освіта

експерименти

обмежене виконання

[ правити ] Порівняння з іншими віртуальними машинами

Порівняння віртуальних машин, середовищ обмеженого виконання і емуляторів проводиться на сторінці Порівняння віртуальних машин .


Xen часто порівнюють з різноманітними моніторами віртуальних машин, засобами віртуалізації операційної системи, емуляторами і навіть шарами сумісності.

Принципи дії віртуальних машин / емуляторів / середовищ обмеженого виконання:

  • інтерпретація і динамічна рекомпіляції - Bochs - PearPC - QEMU - MS VirtualPC for MAC;
  • паравіртуалізація і портирование - Xen - UML - lguest - Hyper-V - KVM (*);
  • віртуалізація на рівні ОС - Jail - Linux-VServer - OpenVZ - Virtuozzo - Zones;
  • віртуалізація - VMware - MS VirtualPC - MS Virtual Server - Hyper-V - QEMU з модулем kqemu - KVM ;
  • шар сумісності - Cygwin - Wine .

(*) - KVM може виконувати паравіртуальние домени Xen за допомогою Xenner .

[ правити ] Віртуалізація та паравіртуалізація

Ідеальна віртуальне середовище абсолютно прозора для гостьових систем. Ключові особливості віртуалізації:

  • Загальні принципи побудови мейнфреймів
  • Практично неможливо для процесорів сімейства i386
  • Запуск немодифікованих ОС виконується складно
    • Перехоплення привілейованих викликів
    • Динамічна зміна коду
  • В результаті в деяких випадках продуктивність страждає.

Xen не приховує себе від гостьових ОС. Навпаки, вони повинні бути підготовлені до роботи з цією системою. Для цього виконується:

  • Портування операційної системи для роботи з Xen
  • Гостьовим операційним системам дається можливість використання драйверів хост-системи, але тільки під її наглядом.

На даний момент модифікований код гостьових ОС доступний для Linux і NetBSD. Ведеться робота по портированию FreeBSD, OpenSolaris і Plan9.

Xen повністю інтегрований з Linux:

  • Існує окрема архітектура ядра (ARCH = xen)
  • Xen працює як гипервизор
  • Ядро звертається до Гіпервізор для отримання ресурсів
  • Гипервизор використовує драйвери Linux.

[ правити ] Продуктивність

Головна сторінка: продуктивність Xen

Портування ОС на Xen дозволяє домогтися більшої ефективності в порівнянні з виртуализацией, заснованої на перехопленні спрацювали інструкцій, або тим більше використанні інтерпретатора або JIT-компілятора коду гостьової ОС. Мінусом цього підходу є необхідність в портировании ОС, але досвід показав, що це можна зробити досить швидко.

Операційні системи, що працюють в Xen, виконуються з рівнем привілеїв 1 замість 0, який зарезервований для Xen. В результаті гостьові ОС не можуть використовувати привілейовані інструкції для заборони / дозволу переривань, зміни таблиць адрес і т.д. Замість цього вони повинні виконувати відповідне звернення (hypercall) до Гіпервізор Xen з проханням виконати необхідну операцію. При правильній розробці інтерфейсу між віртуальними машинами і гіпервізором, накладні витрати на виконання операцій малі.

Замість того щоб намагатися емулювати існуюче апаратне забезпечення, Xen надає спеціально підготовлені блокові пристрої і мережеві інтерфейси гостьовим операційним системам, і вимагає відповідний драйвер. Перевага такого підходу полягає в тому, що продуктивність гостьовий ОС практично не страждає: наприклад, швидкість передачі даних по Gigabit Ethernet каналу з машини, що працює під Xen, така ж як і у рідній операційної системи.

Група розробників Xen провела дослідження продуктивності цієї системи. Для цього система з ядром Linux 2.4.22 була запущена в різних режимах і в ній виконувався ряд тестів. Проводилось порівняння системи працюючої на реальній машині, з роботою в віртуальних машинах з такими системами віртуалізації:

  • VMware workstation 3.2;
  • User Mode Linux (UML).

Тести, на яких проводилося порівняння:

  • Набір тестів SPEC CPU2000 Integer;
  • Повна збірка Linux 2.4.22 в конфігурації за замовчуванням на локальному диску;
  • PostgreSQL виконує тест OSDB Information Retrieval (IR);
  • PostgreSQL виконує тест OSDB On-Line Transaction Processing (OLTP);
  • Однокористувацький тест файлової системи dbench 2.0;
  • Тест SPWCWeb99 для Web-сервера Apache 1.3.27 з модулем `mod_specweb99 'для динамічного створення контенту.

На малюнку зображені рівні продуктивності для Linux (L), Xen / Linux (X), VMware Workstation 3.2 (V) і User Mode Linux (U).

Тест SPEC INT2000 найбільш вимогливий до процесора CPU, але практично не виконує введення / виведення і вимагає мінімум роботи від самої операційної системи, і внаслідок цього всі три техніки віртуалізації показали практично однакові хороші результати.

В інших тестах, навпаки, потрібна більша участь ОС, більше перемикань контексту і більше операцій по створенню процесів. Продуктивність Linux всередині Xen практично не відрізняється від продуктивності Linux, що працює безпосередньо на залозі. У найгіршому випадку, при виконанні тесту OSDB-IR, відставання склало 8%. При використанні інших технік віртуалізації, результати не були настільки хорошими. У деяких випадках уповільнення склало до 88%. В роботі [4] наведені додаткові результати, зокрема що стосуються одночасного запуску великої кількості віртуальних машин.

Представлені вище результати були перевірені і підтверджені незалежною групою Кларксоновского Університету (Clarkson University). З результатами дослідження, проведеного цією групою, можна ознайомитися в роботі "Xen and the Art of Repeated Research", яка також включає результати порівняння продуктивності Xen і машини IBM zServer.

[ правити ] Додаткова інформація

  • Xen Performance - стаття групи розробників Xen, що порівнює продуктивність Linux, Xen, UML, VMWare
  • Xen and the Art of Virtualization - стаття групи розробників Xen, в якій описується архітектура Xen
  • Xen and the Art of Repeated Research - результати дослідження продуктивності, виконаного незалежною групою Кларксоновского Університету

У 1998 Ян Пратт ( Ian Pratt ), Майбутній натхненник і керівник проекту Xenoserver і ідеолог гипервизора Xen, прийшов на факультет комп'ютерних наук (Computer Science Department) Кембриджського Університету. Через деякий час він виступив з ідеєю створення розподіленої обчислювальної платформи для глобальних обчислювальних мереж, Xenoserver.

Ідея була досить простою, але в той же час надзвичайно сміливою і амбітної - запустити сотні мільйонів віртуальних машин на мільйонах серверів, з'єднаних за допомогою мережі Інтернет, і надавати обчислювальні ресурси людям там, де їм це буде потрібно. Одним з найважливіших компонентів в проекті Xenoserver був монітор віртуальних машин і гипервизор Xen, за допомогою якого безліч операційних систем могло спільно використовувати апаратне забезпеченням одного фізичного сервера.

Іншими компонентами були платформа Xenoserver Open Platform, яка дозволила єдиними уніфікованими способом з'єднати віртуальні машини і розподілені системи зберігання даних і мережі, а також Xenoboot, яка відповідала за вилучену завантаження і управління серверами і віртуальними машинами, що виконуються на них, через Інтернет.

Робота над Xen почалася в 1999, коли Ян Пратт з колегами по лабораторії і студентами почав експериментувати над створенням кошти ізоляції операційних систем і їх одночасного спільного виконання на 32-бітних серверах x86-архітектури. Код гипервизора писався на Сі, а керуючі механізми - на Python.

У вересні 2003 вийшла перша версія Xen, Xen 1.0. За словами Яна Пратта були зареєстровані десятки тисяч завантажень. Велика кількість opensource-розробників і ентузіастів почали експериментувати з кодом, і забезпечили гарний зворотний зв'язок для проекту.

У 2004 році відбувся реліз Xen версії 2.0, в якому з'явилася можливість динамічної міграції віртуальних машин - дуже важлива функція системи, що дозволяє здійснювати перенесення віртуальної машини з одного фізичного сервера на інший без її зупинки і абсолютно непомітно для користувачів, що працюють з цією віртуальною машиною.

Наступне серйозне оновлення Xen було доступно до кінця 2005 року у вигляді версії Xen 3.0. Одним з найважливіших нововведень, яке відразу сильно підвищило популярність Xen і привернуло до нього велику увагу, була можливість виконання немодифікованих систем за умови підтримки віртуалізації з боку апаратної платформи. Зокрема, це дало можливість виконувати звичайні (немодифіковані) операційні системи сімейства Windows та інші системи не портований на Xen. Іншими важливими можливостями нової версії стали: підтримка режиму адресації PAE, що дало можливість вийти за межі 4G оперативної пам'яті в 32-бітних системах; підтримка 64-бітових систем; поліпшена підтримка ACPI і поява нових більш досконалих інструментів управління.

Поява цих можливостей зробило Xen дуже привабливим для використання в комерційних проектах. Можна сказати, що починаючи з версії 3, Xen перестав бути академічним проектом і почав широко розповсюджуватися в робочих системах.

Головна сторінка: Новини Xen

У травні 2007 виходить Xen 3.1.0, в якому є безліч удосконалень, особливо цікавих в виробничих системах. Жива міграція тепер стала можливою і для доменів, які працюють в режимі апаратної віртуалізації (Windows і ін.), До цього вона була можливо тільки для паравіртуальних доменів. З'являється підтримка XenAPI - програмного інтерфейсу для управління віртуальними машинами Xen.

Чергове серйозне оновлення Xen, версія 3.2.0, було зроблено в січні 2008 року. У ньому з'явилася можливість виконувати suspend-to-RAM хост-системи, підтримка модулів безпеки XSM (Xen Security Modules) і попередня підтримка апаратної віртуалізації введення / виведення Intel VT-d, що особливо важливо для настільних систем.

Вихід Xen 3.3.0 відбувся в серпні 2008 року. У цьому релізі введені, так звані емуляціонние домени, які призначені для ізоляції емуляціонних процесів для HVM-доменів; включена підтримка доступу до SCSI-пристроїв через паравіртуальний інтерфейс ; додалася підтримка IOMMU; підтримується TXT / TPM і зроблений ряд інших удосконалень з точки зору масштабованості, продуктивності і безпеки. Черговий bugfix-реліз 3.3.1 був зроблений 5 січня 2009 року.

[ правити ] Головні дати

  • 1998 - Ян Пратт приходить до Кембриджського Університет
  • 1999 - Розпочато роботу над проектом Xen
  • 22.09.2003 - Вийшов Xen 1.0
  • 05.11.2004 - Вийшов Xen 2.0. жива міграція
  • 05.12.2005 - Вийшов Xen 3.0. HVM-домени, PAE, 64-бітові системи
  • 18.05.2007 - Вийшов Xen 3.1.0 Жива міграція HVM-доменів
  • 16.01.2008 - Вийшов Xen 3.2.0 Intel VT-d, host suspend-to-RAM, XSM
  • 22.08.2008 - Вийшов Xen 3.3.0 емуляціонние домени, pvSCSI, IOMMU, TPM / TXT
  • 18.05.2009 - Вийшов Xen 3.4.0 XCI, RAS, управління живленням
  • 07.04.2010 - Вийшов Xen 4.0. Підтримка ядра pv_ops в домені 0 (майже готова); кидок відеокарти в HVM; підтримка спільного використання пам'яті між віртуальними машинами

[ правити ] Додаткова інформація

[ правити ] Можливості Xen

Головна сторінка: Новини Xen

Поточна версія: Xen 4.0, реліз зроблений в квітні 2010 року.

[ правити ] Можливості Xen 4

Одне з найважливіших новвоведение: підтримка інтерфейсу pv_ops для ядра, що працює в домені 0.

  1. Масштабованість: 128 vcpus на гостьову систему, 1 TB ОЗУ на хост-систему, 128 фізичних CPUs на хост-систему (це значення за замовчуванням, а при компіляції їх можна істотно збільшити).
  2. blktap2 для образів VHD, можливість створення високопродуктивних знімків і клонування (blktap2);
  3. Удосконалена підтримка проброскі пристроїв всередину гостьових доменів за допомогою технологій віртуалізації Intel VT-d і AMD IOMMU (XenPCIpassthrough і VTdHowTo);
  4. Проброска графічної карти всередину HVM-домену; гостьова система може безпосередньо використовувати графічний процесор карти (XenVGAPassthrough);
  5. TMEM дозволяє задіяти невикористану пам'ять гостьових систем PV. ( http://oss.oracle.com/projects/tmem/ )
  6. Спільне використання сторінок пам'яті (memory page sharing) для HVM-доменів: початкова підтримка совместноего використання ідентичних сторінок пам'яті (Copy-on-Write sharing).
  7. Нове ядро ​​Linux в домені 0, яке працює через pvops (ядро 2.6.31.x за замовчуванням, при бажанні 2.6.32.x). Старе ядро ​​2.6.18 як і раніше підтримується (XenDom0Kernels).
  8. Netchannel2 для кращої підтримки мережі, розумні мережеві карти (smart NICs), підтримка черг (multi-queue support) і функціональності SR-IOV;
  9. Зміна розміру дисків для гостьових систем без перезавантаження / виключення;
  10. http://xgu.ru/wiki/Remus - Remus Fault Tolerance - синхронізація стану віртуальних машин між серверами; дозволяє синхронно виконувати кілька гостьових систем на декількох хостах, і уникнути простоїв у разі виходу з ладу однієї з хост-систем;
  11. RAS: гаряче додавання фізичних процесорів і пам'яті;
  12. Libxenlight (libxl): нова бібліотека мови Сі, що надає високорівневі механізми для управління Xen; вона може використовуватися в різноманітних наборах інструментів управління;
  13. PV-USB: Високопродуктивний доступ до USB-пристроїв як для PV-доменів, так і для HVM, підтримка устрйоства USB 2.0 (XenUSBPassthrough);
  14. gdbsx: відладчик для гостьових систем ELF;
  15. Підтримка паравіртуальних драйверів для Windows від Citrix (Citrix WHQL-certified Windows PV drivers), що входять до складу XCP (Xen Cloud Platform). Xen Cloud Platform: http://www.xen.org/products/cloudxen.html
  16. Покращення Pygrub: підтримка PV-доменів за допомогою GRUB2, можливість розміщення каталогу / boot в гостьових системах на ext4 , Підтримка стиснення bzip2- і lzma- для ядер Linux.

Додаткова інформація:

[ правити ] Можливості Xen 3

Xen 3 значно відрізняється від свого попередника Xen 2. Підвищено стійкість до збоїв, безпеку, продуктивність. З'явився ряд принципово нових можливостей.

Найбільш значимі зміни:

  • Intel (Physical Addressing Extensions) PAE для підтримки 32бітних серверів з> 4G ОЗУ
  • Підтримка x86 / 64 (Intel EM64T, AMD Opteron)
  • Підтримка Intel VT-x для запуску немодифікованих гостьових ОС (Windows XP / 2003, не модифікований Linux)
  • Вдосконалені інструменти управління
  • Покращена підтримка ACPI
  • AGP / DRM графіка

Починаючи з версії 3.1 з'явилися наступні можливості:

  • Підтримка XenAPI 1.0
    • Файли віртуальних машин в XML;
    • Управління життєвим циклом віртуальних машин;
    • Безпечна прив'язка XML-RPC для багатьох мов
  • Попередня підтримка save / restore / migrate для HVM-доменів (зокрема, Windows);
  • Динамічне управління пам'яттю для HVM-доменів;
  • Підтримка 32-на-64 паравіртуальних гостьових систем (запуск паравіртуальних систем PAE на 64-бітному Xen);
  • Підтримка copy-on-write для дискових пристроїв blktap.

[ правити ] Обладнання

Процесори:

За замовчуванням підтримується до 64 логічних процесорів (ядер) в одній системі. При перекомпіляції Xen 3.3 може підтримувати до 126 процесорів.

пам'ять:

  • до 4GB без PAE в 32-бітної системі;
  • до 16GB з PAE в 32-бітної системі;
  • > 16GB в 64-бітної системі (гипервизор повинен бути 64-бітовим, а все інше не обов'язково).

Компанія IBM успішно провела тестування інсталяції Xen з 1TB ОЗУ. Однак, окремим доменах поки що не може виділяти більше 512 GB ОЗУ без застосування спеціальних патчів.

[ правити ] Обмеження Xen 2

У попередній версії Xen (Xen 2.0) найбільш сильно були помітні такі недоліки:

  • Чи не підтримувалася многопроцессорность в гостьових ОС
  • Підтримувалася тільки архітектура i386; x86_64 підтримує тільки в режимі i386

[ правити ] Апаратні вимоги

Головна сторінка: Вимоги до апаратного забезпечення Xen

На даний момент Xen працює на платформах Intel x86 і Intel x86_64 і IA64, частково підтримуються архітектури ARM і PPC ( Детальніше ).

При використанні модифікованих операційних систем (підготовлених до використання в паравіртуальной машині Xen) ніяких додаткових вимог до апаратного забезпечення комп'ютера, на якому будуть виконуватися віртуальні машини, не пред'являється.

------------------------ \ Dom 0 Dom U \ 32 | 64 ------------------------ 32 | + * 64 | - + ------------------------

32-бітна система може працювати поверх 64-бітної, але в більш старих версіях Xen з деякими обмеженнями: може не працювати збереження / відновлення домену та міграція [1] .

32-бітна система може працювати поверх 64-бітної, але в більш старих версіях Xen з деякими обмеженнями: може не працювати збереження / відновлення домену та міграція   [1]

Чистий 32-бітна система (з PAE) не може підтримувати більш 16GB ОЗУ. Для виходу за ці межі необхідно обов'язково використовувати 64-бітний гипервизор.

Використання операційних систем в незмінному вигляді можливо при використанні процесорів з підтримкою апаратних розширень віртуалізації (Intel VT-x, Intel VT-i і AMD SVM).

У версії 3.2 в Xen з'явилася початкова підтримка апаратної віртуалізації введення / виведення (Intel VT-d). У версії Xen 3.4 підтримка суттєво розширилася.

[ правити ] Підтримка Xen різнімі операційнімі системами

Головна сторінка: Підтримка Xen операційними системами

Для того щоб запускатися спільно з монітором віртуальних машин Xen, операційна система повинна бути особливим чином модифікована (перенесена на Xen). Це стосується як хост-систем, так і гостьових систем (за винятком HVM-доменів): і ті, і інші повинні бути перенести. Підготовка системи для роботи в домені 0 вимагає від розробників великих зусиль, тому систем, що працюють в домені 0, набагато менше.

Операційна система dom0 domU без PAE domU з PAE domU HVM Linux

да

да

да

да

FreeBSD

немає

да

да

да *

NetBSD

да

да

да

да

OpenBSD

немає

да

немає

да

OpenSolaris

да

да

да

да

Plan 9

немає

да

немає

да

GNU Hurd

немає

да

да

да

Minix

немає

да

немає

да

ReactOS

немає

да

немає

да

Windows

немає **

немає

немає

да

OS / 2 Wrap

немає

немає

немає

да

SCO OpenServer

немає

немає

немає

???, скоріше ні SCO Unixware

немає

немає

немає

???, скоріше ні Novell Netware (OES2)

немає

да

да

да

  • * - на процесорах Intel тільки починаючи з 3.2.1
  • ** - Hyper-V може виконувати паравіртуальние домени Xen

В домені 0 зараз може використовуватися ОС:

  • Linux,
  • NetBSD,
  • OpenSolaris (з деякими обмеженнями).

У паравіртуальном режимі в домені domU працюють:

  • Linux;
  • NetBSD;
  • OpenSolaris;
  • FreeBSD (починаючи з 7, без підтримки PAE і з великою кількістю обмежень);
  • OpenBSD (без PAE);
  • Plan9 (без PAE);

і ряд інших.

На даний момент Xen найчастіше використовують спільно з Linux. Починаючи з ядра 2.6.24 підтримка Xen в домені U включена в основне ядро. Що стосується підтримки в домені 0, то відповідний патч не включений в основне ядро ​​Linux (vanilla), і він доступний тільки в репозиторії Xen. Версія ядра Linux, яке може використовуватися в Xen в домені 0 - 2.6.18.

У деяких дистрибутивах Linux є ядро ​​більш нової версії, яку можна використовувати в домені 0 Xen, підготовлене силами творців самого дистрибутива (до таких дистрибутивам відноситься, зокрема, Fedora).

Maximilian Wilhelm wrote:> Hi! >> I'm wondering about the status of Xen support in the vanilla kernel. > I know that DomU support is inside the kernel an evolving, but I did> not find an up-to-date hint about the status of Dom0 support. >> A while ago I read that it should be included in 2.6.28, but I do not> find any current pointer about the status of this. > .28 was a bit optimistic; .29 seems reasonable. The current dom0 kernel patches can boot up to a fully functional dom0 usersmode, and you can start xend to see that domain 0 is running. I * think * in theory you can create a deviceless domain, but I have not tried it. I'm currently working on blktap support. I really need to put together a proper status update. Now that dom0 usermode is working, its a much better base for other people start contributing.

І ще: http://wiki.xensource.com/xenwiki/XenParavirtOps

З кожним новим ядром Linux різниця між ядром в репозиторії Xen і останнім ядром, що працює на голому залозі (bare metal), збільшується і збільшується, і шансів, що підтримка Xen буде інтегрована в основне ядро, стає все менше і менше. Можна сказати, що їх вже практично немає [5] . У дистрибутиві Fedora, зокрема, в зв'язку з цим було прийнято рішення перейти до нового способу підтримки Xen, через так званий механізм pv_ops. З одного боку це скоротить доступну зараз функціональність (Не буде підтримуватися PCI passthrough, що не буде підтримуватися CPU hotplugging і деякі інші речі [6] ), Але з іншого - дасть можливість синхронізувати версію чистих ядер і ядер, портірованних на Xen (докладніше [7] , [8] , [9] , [10] ).

У червні 2009 творці Xen вирішили таки навести порядок з численними PV-ядрами Linux і прийти до якогось більш-менш зрозумілого стану речей [11] . Що з цього вийде поки невідомо.

існує проект Xenner , Який дозволяє запускати паравіртуальние ядра Xen без використання гипервизора Xen, за допомогою KVM. В цьому випадку в хост-системі може використовуватися найбільш нове ядро.

Крім паравіртуального режиму роботи, про який йшла мова, існує так званий режим апаратної віртуалізації (hardware virtualization mode, HVM), в якому (принаймні теоретично) повинні працювати всі операційні системи, які взагалі можуть працювати на цій апаратній платформі.

У HVM домені Xen успішно запускаються і працюють:

  • Старі Linux і нові, не портований на Xen;
  • BSD-системи (за винятком FreeBSD до Xen 3.2.0 включно);
  • MS Windows 9x, NT 4.x, 2000, XP, Server 2003, Vista, Server 2008.

Зроблена вище поправка "принаймні теоретично" важлива: на практиці не все системи запускаються і працюють в HVM-домені Xen без проблем. Так, наприклад, до версії гипервизора 3.2.0 включно, FreeBSD не запускати в HVM домені Xen на процесорах Intel (проблема була пов'язана з так званим big real mode і ставилася навіть не до ядра операційної системи, а його завантажувачу). Зараз ця проблема усунена, FreeBSD запускається і працює в HVM-домені. Деякі складнощі є і з запуском ряду інших систем (особливо, старих), але в більшості, операційні системи запускаються і працюють в HVM-домені Xen без проблем.

Вважається, що режим апаратної віртуалізації не такий гарний як режим паравіртуального виконання:

  • по-перше, він вимагає підтримки з боку процесора (хоча, зараз це вже не дуже велика проблема - більшість сучасних процесорів підтримує апаратну віртуалізацію);
  • по-друге, введення / виведення (за винятком випадку, коли використовуються паравіртуальние драйвери ) Здійснюється через емульованого пристрої, що позначається на продуктивності.

Режим паравіртуального виконання є основним для Xen.

Окремо потрібно сказати кілька слів про операційні системи сімейства Windows. Системи цього сімейства не перенести на Xen. Вони можуть працювати тільки в HVM-доменах Xen. В домені 0 Windows працювати не може. Однак, в Windows Server 2008 з'явилася система віртуалізації Hyper-V (Правильніше сказати, з'явиться; реліз Windows Server 2008 вже був, а Hyper-V - Ще нема голосів), яка дозволяє виконувати в якості гостьових доменів в тому числі гостьові домени Xen. Таким чином, Windows може бути хост-системою для доменів Xen, але при цьому гипервизор Xen не використовується, і говорити про запуск в режимі домена 0 було б невірно.

[ правити ] Запуск коду без операційної системи безпосередньо в домені Xen

[ правити ] Установка, настройка і використання Xen

[ правити ] Як почати?

Для того щоб спробувати Xen в дії, не потрібно багато часу. За сприятливих обставин (ви ясно розумієте, впевнено почуваєте себе в командному рядку, у вас хороший канал в Інтернет, і ви використовуєте Linux - зазвичай ці якості зустрічаються разом) ви побачите запрошення гостьовий ОС менше ніж через десять хвилин, після того як почнете експериментувати.

Більшість сучасних дистрибутивів підтримують Xen з коробки, інсталяція і початкова настройка виконуються дуже швидко. А після того як хост-система (в термінології Xen) розгорнута, можна зайнятися інсталяцією гостьової системи з нуля або запустити існуючу систему як гостьовий домен Xen.

Якщо ваш дистрибутив не підтримує Xen, а ви не хочете зараз займатися складанням і інсталяцією Xen вручну, можна використовувати Live CD з Xen. Його образ можна отримати тут . Інший Live CD, на якому є Xen - VMKNOPPIX.

[ правити ] Хост-система - Інсталяція Xen в домен 0

Головна сторінка: інсталяція Xen

Xen інсталюється нема на чисту машину. Для того щоб розгорнути Xen, необхідна встановлена ​​і налаштована операційна система, одна з тих, яка може працювати в домені 0 (Linux, NetBSD, OpenSolaris).

Для перетворення інсталяції Linux в інсталяцію Xenolinux необхідно встановити кілька пакетів програмного забезпечення і змінити конфігурацію завантажувача. Отримана в результаті система буде доменом 0 Xen.

При бажанні Xen можна встановити з вихідних текстів . Однак для більшості випадків буде достатньо інсталяції з пакетів, що входять в дистрибутив операційної системи.

Необхідно встановити:

  • гипервизор;
  • Ядро, портоване на Xen, і здатне працювати в домені 0;
  • Утиліти Xen, необхідні для управління іншими доменами.

Після того як установка завершена, потрібно перезавантажити систему і завантажити її вже з гіпервізором. Закріпити можна командами:

% # Xm list% # xm info% # xm dmesg | head

[ правити ] Гостьова система

Головна сторінка: Створення гостьового домена Xen

Для того щоб в Xen запустити новий гостьовий домен, потрібно підготувати:

  1. Конфігураційний файл домену;
  2. Образ диска віртуальної машини.

Існує кілька способів підготовки образу гостьової системи.

  1. Інсталяція засобами базової операційної системи (системи домена 0);
  2. Використання інсталятора гостьовий ОС;
  3. Використання готового образу;
  4. Перетворення образу віртуальної машини з іншої системи віртуалізації;
  5. Використання диска реальної машини.

Якщо в гостьовому домені буде працювати Linux (а також OpenSolaris або NetBSD), можна скористатися її інсталятором в HVM-режимі, а потім перетворити домен в паравіртуальний .

Після того як всі пристрої (віртуальний диск і віртуальний міст) підготовлені, створений конфігураційний файл домену, його можна стартувати:

% # Xm create my-new-domain

(Або xm create -c, якщо необхідно відразу підключитися до консолі домену).

Домен повинен почати роботу. Подивитися, чи дійсно це так, можна командою:

% # Xm list

У списку доменів повинен з'явитися новий домен.

Якщо домен паравіртуальний (або, якщо у нього активована послідовна консоль), до нього можна підключитися командою:

% # Xm console my-new-domain

Якщо ж домен HVM, то до нього можна підключитися за допомогою VNC (Якщо використовується VNC):

% $ Vncviewer 127.0.0.1:0

Детальніше:

Перетворення з інших систем:

[ правити ] Використання Xen

Головна сторінка: Використання Xen

[ правити ] Засоби управління і моніторингу віртуальних машин

Основна стаття: Засоби управління Xen

Засоби управління доменами Xen можна розділити на кілька груп:

  • управління для однієї хост-системи; зазвичай консольні або з графічним інтерфейсом;
  • управління кластером відмовостійкості, що складається з двох половин, зазвичай працює на основі DRBD и Heartbeat ;
  • управління пулом вузлів, поверх яких працює безліч віртуальних систем; зазвичай з web-інтерфейсом.

Найбільш відомі засоби управління:

  • xm - вбудоване засіб, працює в консольному режимі. Спостереження виконуватися за допомогою xm top;
  • xen-shell - консольний інструмент для управління доменами Xen; дозволяє виконувати елементарні операції, такі як запуск / зупинка / перезапуск, а також Реініціалізація образу файлової системи домена Xen;
  • virt-manager - програма для управління і моніторингу Xen, графічний інтерфейс (GTK);
  • oVirt - управління пулом віртуальних машин, web-інтерфейс;
  • Enomalism - консоль управління і моніторингу Xen з Web-інтерфейсом;
  • ConVirt (Колишній XenMan) - програма для управління і моніторингу Xen c графічним інтерфейсом користувача.

Окремо варто відзначити бібліотеку libvirt, яка надає уніфіковані механізми управління не тільки для управління доменами Xen, але також машинами QEMU і OpenVZ. Програми virt-manager і oVirt побудовані на основі цієї бібліотеки.

Інші засоби управління віртуальними машинами:

[ правити ] Комерційні системи віртуалізації, засновані на Xen

На даний момент комерційні системи віртуалізації, що базуються на Xen, пропонують наступні виробники:

Як правило, ці системи відрізняються від вільних рішень тим що, мають:

  • більш розвинений інтерфейс інсталяції та управління віртуальними машинами
  • більш розвинену драйверного підтримку гостьових операційних систем, зокрема, як правило, у них є свої власні паравіртуальние драйвери (працюють тільки з конкретною модифікацією системи віртуалізації) для Windows, які дозволяють істотно прискорити операції введення / виводу всередині гостьових систем (зараз ведеться робота на вільними PV-драйверами Xen для Windows, докладніше: Паравіртуальние драйвери Xen для Windows ).

[ правити ] Комерційна підтримка та хостинг на Xen

[ правити ] Комерційна підтримка рішень на Xen

Головна сторінка: Комерційна підтримка Xen

[ правити ] Хостинг на Xen

Головна сторінка: Хостинг доменів Xen

Серед хостинг-провайдерів Xen менш популярний ніж системи віртуалізації, що працюють на рівні операційної системи, такі як, наприклад, OpenVZ. Це пов'язано з тим, що Xen, хоча і має більшу гнучкість і надає користувачеві гостьової системи більше можливостей, вимагає великих накладних витрат на запуск гостьових систем і, відповідно, забезпечує меншу щільність розміщення віртуальних машин.

У Росії і Україні послугу хостингу доменів Xen надає близько 10 компаній; в світі - близько 100. Вартість послуги варіюється від $ 20 за мінімально можливу систему до $ 100 за систему порівнянну по потужності з фізичним сервером початкового рівня.

Крім обсягу наданих ресурсів при виборі хостинг-провайдера для хостингу доменів Xen потрібно звертати увагу на:

  1. Можливість підтримки HVM;
  2. Специфічні вимоги до образу (PAE, немає PAE і т.д.);
  3. Можливість запуску власних ядер;
  4. Фізичне розташування хостинг-систем.

[ правити ] Інформаційні ресурси

[ правити ] Документація

російськомовна:

англомовна:

  • The Xen ™ virtual machine monitor (Англ.) - збірник документації на сайті Кембриджського університету
  • Xen users 'manual (Англ.) - для користувачів і адміністраторів
  • Xen Interface manual (Англ.) - для розробників
  • Xen Wiki (Англ.)
    • XenIntro (Англ.) - велика сторінка Xen Wiki, на якій порушені найбільш важливі технічні питання по Xen
    • XenFaq (Англ.)
    • XenBestPractices (Англ.) - кілька порад по оптимізації продуктивності

німецькомовна:

[ правити ] Інші інтернет-ресурси

  • Xen (Англ.) І Xen (Рос.) На wikipedia.org - статті про Xen на Wikipedia
  • Now and Xen (Англ.) - стаття Кейра Фразера про Xen, 2004
  • Xen 3.0.x limitations (Англ.) - стаття Яна Бленка про існуючі обмеження в Xen

[ правити ] Списки розсилки

Існують кілька списків розсилки для Xen. Найбільш важливі з них перераховані нижче. Офіційна сторінка списків розсилки і інформація про підписку на них знаходиться тут:

http://lists.xensource.com/

Пошук в архівах (і деякий статистичний аналіз) можна виконувати за допомогою MarkMail:

http://xen.markmail.org/

[email protected] Обговорення розробки і помилок. Підписка тут: http://lists.xensource.com/xen-devel [email protected] Обговорення інсталяції і використання. Підписка тут: http://lists.xensource.com/xen-users [email protected] Використовується тільки для анонсів. Підписка тут: http://lists.xensource.com/xen-announce [email protected] Стрічка Changelog для гілок unstable і 2.0 - орієнтований на розробників. Підписка тут: http://lists.xensource.com/xen-changelog

[ правити ] Книги

  • The Definitive Guide to the Xen Hypervisor (англ.) - найбільш серйозна книга про внутрішній устрій Xen
  • Virtualization with Xen: Including XenEnterprise, XenServer, and XenExpress , Syngress (англ.) - книжка слабенька, можна не читати
  • Professional Xen Virtualization, von Hagen (Англ.) - книга підійде системним адміністраторам, які хочуть розібратися з можливостями Xen, а також знайти відповіді на основні питання, пов'язані з його інсталяцією та використанням. (Детальний огляд [12] , Англ.)
  • Running Xen. A Hands-On Guide to the Art of Virtualization (Англ.) - про використання Xen, для адміністраторів
  1. Див., Наприклад: [1] . Взагалі, з ядром зібраним з початкових кодів зі сховищ Xen все повинно працювати, але треба перевірити. Ось тут докладніше: [2] и [3]
  2. Citrix XenServer (Рус.) - оглядова мікрозаметка про Citrix XenServer

Новости