Час Xen: віртуалізує Linux

Через постійного потоку оновлень і усунень помилок в існуючому програмному забезпеченні світ 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





yum update
yum install xen kernel-xen0 kernel-xenU

Потім створіть фіктивну файлову систему, з якою будете працювати.


Лістинг 2. Форматування та налаштування файлових систем Xen-сервера





mkdir -p /xen/base
dd if=/dev/zero of=/root/base.img bs=1M count=1 seek=1024
mkfs.ext3 /root/base.img
mount -o loop /root/base.img /xen/base

Після форматування і монтування файлових систем сервера Xen наступний крок – це інсталяція пакетів, необхідних для запуску чого б то не було на них. Для запуску Web-сервера на ваших Xen серверах вам необхідно інсталювати набір пакетів Web-сервера. (Попередження: це може зайняти деякий час. Запустіть yum і вирушайте погуляти.)


Лістинг 3. Інсталяція пакетів Xen-сервера





yum –installroot=/xen/base -y groupinstall web-server
–enablerepo=base –disablerepo=development

(В цей час варто прогулятися.)


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


Лістинг 4. Файл fstab сервера Xen





/dev/sda1 / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0

Збережіть цей файл як / xen / base / etc / fstab. Без нормальної інсталяції Fedora файл fstab не створиться. Швидше за все, в майбутні версії Fedora буде включений інструмент для вирішення цієї проблеми.


Нарешті, вам необхідно виконати рутинні дії для коректного запуску системи. На даний момент Xen має деякі розбіжності з initrd, Тому, якщо ви хочете, щоб система завантажилася, вам необхідно самостійно створити кілька пристроїв. Потім, щоб усе спрацювало гладко, буде корисно перемістити бібліотеки TLS; в даний момент вони погано взаємодіють з Xen. Виконавши це, ви можете отмонтировать файлову систему.


Лістинг 5. Остання доробка перед запуском





for i in console null zero; do MAKEDEV-d / xen / base / dev-x $ i; done
mv /lib/tls /lib/tls.disabled
mv /xen/base/lib/tls /xeb/base/lib/tls.disabled
umount /xen/base/

Запуск Xen


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


Xen вимагає конфігураційних файлів для кожного запускається сервера. Хоча ви можете створити один динамічний конфігураційний файл для всіх ваших серверів, я рекомендую створити два статичних конфігураційних файлу, по одному на кожен сервер. Як ви можете бачити, мітка диска вказує серверів, що ваш образ – це пристрій sda1.


Лістинг 6. Конфігураційні файли сервера Xen





/etc/xen/base
kernel =”/boot/vmlinuz-2.6.10-1.1141_FC4xenU”
memory = 64
name = “BaseServer”
nics = 1
disk = [“file:/root/base.img,sda1,w”]
root = “/dev/sda1 ro”

/etc/xen/test
kernel =”/boot/vmlinuz-2.6.10-1.1141_FC4xenU”
memory = 64
name = “TestServer”
nics = 1
disk = [“file:/root/test.img,sda1,w”]
root = “/dev/sda1 ro”


Для запуску серверів за допомогою команди 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.


Гипервизор Xen автоматично надає вам для роботи віртуальне мережний пристрій. Якщо ви можете запустити dhcp на цьому пристрої, просто запустіть dhclient eth0, Після чого ви отримаєте IP адреса для вашого BaseServer.


Налаштування 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 сайт.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*