Через постійного потоку оновлень і усунень помилок в існуючому програмному забезпеченні світ open source знаходиться в постійному русі. Спроби залишатися в курсі всіх оновлень програмного забезпечення можуть забрати весь робочий час. Один з тонких моментів при оновленні вашого програмного забезпечення - це те, що ви ніколи не знаєте, чи будуть працювати ваші програми після завершення оновлення. Більшість систем управління пакетами пропонують можливість повернення до попереднього стану, але цього часто недостатньо; в ідеалі, ви хочете пограти з новими оновленнями в тестовому режимі і випробувати їх в такому оточенні, де вони не зможуть нічого пошкодити.
Подібно дитині на дитячому майданчику, вам хочеться мати власну пісочницю для ігор, де ви могли б навести безлад і не турбуватися про прибирання.
Віртуалізація часто використовується для ізоляції додатків і систем від всього іншого на одному і тому ж апаратному обладнанні (те саме що гра в "пісочниці"). Linux підтримує багато різних форм віртуалізації, починаючи від емуляторів обладнання до повної віртуалізації апаратного забезпечення. Одне з останніх досягнень в списку технологій віртуалізації - це Xen, розроблений в Кембріджському університеті (University of Cambridge). Xen заслуговує на увагу завдяки своїй безпрецедентної продуктивності і безпеки.
Що таке Xen
Розроблений в Кембріджському університеті як дослідницький проект, Xen знайшов великий відгук в співтоваристві open source. Xen - це паравіртуалізірующій монітор віртуальної машини (paravirtualizing VMM), тобто операційна система змінюється в певних областях для виконання запитів до Гіпервізор, тоді як додатки, що запускаються під керуванням цієї операційної системи залишаються незмінні. Для порівняння, інші системи віртуалізації, подібні VMWare, пропонують повну віртуалізацію (що означає, що їм не потрібна модифікація запускається операційної системи), але при цьому їм необхідно виконувати перетворення машинного коду в режимі реального часу, що не може не вплинути на продуктивність.
Так як Xen вимагає перетворення операційної системи, то ви не можете просто взяти ядро Linux і запустити його під гіпервізором Xen, поки ядро НЕ портировано для архітектури Xen. Однак, якщо система може використовувати нове ядро Linux, яке перенесено для архітектури Xen, то ви можете запустити існуючу систему без змін.
Малюнок 1. Проста ілюстрація архітектури Xen
У пошуках Xen
Вихідний код Xen доступний на сторінці проекту (шукайте посилання в розділі Ресурси), а якщо у вас вже встановлений дистрибутив Linux, то можливо, ви зможете встановити Xen за допомогою установки / оновлення пакетів. Ось основні дистрибутиви, в комплект яких входить Xen:
Перевірте ваш дистрибутив - якщо його немає в цьому списку, вам, можливо, доведеться скористатися вихідним кодом. За винятком залежних від дистрибутива відмінностей в процедурах інсталяції, Xen працює однаково незалежно від використовуваного дистрибутива.
Використання Fedora Core
У мене є працююча інсталяція Fedora Core 3. щоб не роздувати статтю, я розповім, як запустити систему на Fedora Core.
Fedora вже привернула увагу великої спільноти користувачів Xen, хоча пакети тільки недавно були розміщені на каналах розробки. Оскільки багато хто відчуває Xen на Fedora, ви, швидше за все, мати успіх в пошуку інтерактивної підтримки.
інсталяція Xen
Для того щоб допомогти вам швидко і успішно почати працювати з Xen, основна увага в цьому розділі приділено важливим моментам керівництва Quick Start Guide з розділу Ресурси. Так як поновлення Xen інтегровані в Fedora, то в Quick Start Guide швидше за все, з часом будуть внесені зміни і, будемо сподіватися, ці зміни знайдуть своє відображення в Вікіпедії.
Почніть з установки мінімального набору серверних функцій для базової системи. Базова система - це ваш гипервизор і він не буде запускати жодного серверного додатка. Ви зможете встановити необхідні вам пакети на серверах Xen, що працюють під керуванням цієї системи, тобто, немає необхідності відразу інсталювати додатки, які ви хочете запустити.
Як тільки у вас буде запущена система, вам буде необхідно її оновити до останньої версії Fedora, званої rawhide. Ви можете це зробити, задавши для всіх елементів каталогу /etc/yum.repos.d/ enabled = 0. крім fedora-devel.repo, для якого має бути enabled = 1.
Тепер, після настройки вашого сховища yum вам необхідно провести оновлення системи до rawhide, після чого ви можете запустити останній реліз Xen.
Лістинг 1. Оновлення FC3 для rawhide і інсталяція пакетів Xen
Потім створіть фіктивну файлову систему, з якої будете працювати.
Лістинг 2. Форматування та налаштування файлових систем Xen-сервера
Після форматування і монтування файлових систем сервера Xen наступний крок - це інсталяція пакетів, необхідних для запуску чого б то не було на них. Для запуску Web-сервера на ваших Xen серверах вам необхідно інсталювати набір пакетів Web-сервера. (Пам'ятайте: це може зайняти деякий час. Запустіть yum і вирушайте погуляти.)
Лістинг 3. Інсталяція пакетів Xen-сервера
(В цей час варто прогулятися.)
Ви інсталювали всі необхідні пакети, і тепер вам потрібно додати простий файл fstab, який вкаже серверів Xen, що в якості кореневого вони будуть використовувати пристрій sda1. Цей кореневий пристрій насправді є віртуальним (надаються гіпервізором) пристроєм, але навряд чи ваші сервери про це дізнаються.
Лістинг 4. Файл fstab сервера Xen
Збережіть цей файл як / xen / base / etc / fstab. Без нормальної інсталяції Fedora файл fstab не створить. Швидше за все, в майбутні версії Fedora буде включений інструмент для вирішення цієї проблеми.
Нарешті, вам необхідно виконати рутинні дії для коректного запуску системи. На даний момент Xen має деякі розбіжності з initrd. тому, якщо ви хочете, щоб система завантажилася, вам необхідно самостійно створити кілька пристроїв. Потім, щоб все спрацювало гладко, буде корисно перемістити бібліотеки TLS; в даний момент вони погано взаємодіють з Xen. Виконавши це, ви можете отмонтировать файлову систему.
Лістинг 5. Остання доопрацювання перед запуском
запуск Xen
Тепер, коли ви насилу вручну налаштували ваші гостьові системи, ви можете перевантажити машину і стартувати, використовуючи ядро Xen. Ви, ймовірно, побачите набагато більше інформації ніж зазвичай виводиться на екран, а також отримаєте жахливе повідомлення про бібліотеку TLS (яку ви, згідно з попереднім параграфом, перемістили в недоступне місце).
Xen вимагає конфігураційних файлів для кожного запускається сервера. Хоча ви можете створити один динамічний конфігураційний файл для всіх ваших серверів, я рекомендую створити два статичних конфігураційних файлу, по одному на кожен сервер. Як ви можете бачити, мітка диска вказує серверів, що ваш образ - це пристрій sda1.
Лістинг 6. Файли сервера Xen
Для запуску серверів за допомогою команди xend start запустіть службу Xen і потім, за допомогою команди xm create base створіть ваш BaseServer з конфігураційного файлу base. Після цих дій ви потрапите в гостьову консоль Xen і зможете відстежити процес завантаження. Якщо в якийсь момент ви захочете вийти з гостьової консолі і повернутися назад в консоль гипервизора, натисніть Ctrl-].
Використання Xen
Ви витратили деякий час на зміну конфігурацій і настройку вашої системи для запуску пари Xen серверів. І що ж ви маєте після всієї цієї важкої роботи?
Тепер у вас є дві копії системи з однаковими ядрами, віртуалізовані на одній машині. Якщо ваш BaseServer вдає із себе стійке оточення, в якому ви будете запускати вашу Web службу в штатному режимі, то TestSever може забезпечувати останні оновлення, які пропонуються Fedora rawhide. Ви можете за бажанням оновлювати вашу систему TestSever, пробуючи все нові версії оновлень програмного забезпечення - і потім, коли ви відчуєте, що все досить стабільно, ви можете запустити TestSever як BaseServer.
Налаштування BaseServer
Робота BaseServer - це відповідний момент змінити конфігурацію служби apache httpd, яку ви будете запускати. Ви, можливо, захочете відключити ssl, видаливши файл ssl.conf з папки /etc/httpd/conf.d/; в іншому випадку, вам доведеться генерувати сертифікати для серверів. Також вам може знадобитися додати в систему користувача apache.
Налаштування TestServer
Після того як ви сконфигурировали BaseServer, вимкніть його, запустивши poweroff з консолі BaseServer. Якщо ви вже вийшли з консолі BaseServer, відновіть доступ до неї, використовуючи xm console BaseServer.
Тепер скопіюйте базовий файл образу, використовуючи cp /root/base.img /root/test.img. тим самим ви отримаєте дублікат копії файлової системи. Команда xm create -c test запустить такий же сервер, як і BaseServer, але під назвою TestServer. Увійдіть в TestServer і активуйте підтримку rawhide так, як ви робили в розділі Installing Xen. потім запустіть yum update.
Ваш TestServer налаштований так само як і ваш BaseServer, але ви його оновили останніми пакетами, пропонованими Fedora rawhide. Саме час розважитися тим, що подивитися, чи працює ще ваш Web сайт.
Інші можливості Xen
Я сподіваюся, ці короткі інструкції і простий приклад допоможуть вам запустити Xen і поекспериментувати з ним. Для того щоб ви подружилися з Xen якомога швидше, я не став розповідати про те, як користуватися такими речами, як LVM і снепшот, або як реалізувати міграцію Xen-сервера по мережі від однієї машини до іншої. А тепер, коли ви дізналися про деякі переваги, що надаються Xen, досліджуйте розділ Ресурси. щоб навчитися іншим чудовим трюкам, які ви можете провернути з його допомогою.