Журнал LinuxFormat - перейти на главную

LXF77:Xen

Материал из Linuxformat
Перейти к: навигация, поиск

Содержание

Xen: виртуальный роман

виртуализуйте оборудование и удивите друзей своим мастерством. Пол Хадсон покажет, как справиться с установкой Xen.

Пускай у вас мощнейший компьютер – этакий Athlon FX-60, 4 ГБ ОЗУ, 1000 ГБ жесткого диска и Linux-система, и все таки единственная ошибка при обновлении операционной системы может вывести его из строя. Произошло повреждение файла настроек, обнаружились ошибки в Glibc или пропажа модуля ядра – и ваша ОС рухнула придется восстанавливать систему используя резервную копию.

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

Это только один из способов применения виртуализации, на самом деле их гораздо больше. виртуализация произвела революцию на рынке серверов, так как позволяет снизить объем неиспользованных ресурсов. к примеру, два сервера, допустим, с Apache и MySQL, загруженных на 25%, можно разместить на одном физическом сервере, организовав на нем две виртуальные машины – затраты на оборудование и обслуживание уменьшатся вдвое. Другой популярный пример использования виртуализации в бизнесе –создание кластеров и их использование для обеспечения дополнительной надежности, а также для отработки сложных сценариев на простых Пк.

Энтузиасты заинтересуются и просто шансом поиграть с новой технологией. владельцам домашних компьютеров виртуализация предоставляет возможность одновременно запустить несколько ОС, например, Fedora Core 4 и Fedora Core 5 Test 2, а также SUSe 10.0, NetBSD и в некоторых случаях Windows. Круто!

С чего начать

Самое свежее решение по виртуализации – программа Xen – явилось из мира Open Source. Мы рассказывали о Xen в LXF 67 и предположили, что за ней будущее виртуализации. так вот, это будущее настало!

Что особенного в данной технологии? Подход Xen сильно отличается от так называемой аппаратной виртуализации, применяемой в VMware и других укоренившихся продуктах. В VMware гостевая ОС остается в неведении о своем виртуальном статусе, а в Xen исходный код гостевой ОС должен быть немного подправлен, чтобы она понимала: ее место – под Xen. Это похоже на отношение симбиоза в природе: гостевая ОС знает о существовании Xen и реагирует на команды, а базовая ОС знает о своих гостях и получает от них информацию.

Новый подход окрестили «паравиртуализацией». На практике, паравиртуализация означает, что работа виртуальной машины (Virtual Machine, VM) не требует трудоемких операций, так как она осознает свой виртуальный статус и поэтому разделяет доступ ко всем ресурсам с остальными машинами без вмешательства Xen.

В результате скорость работы Xen VM всего лишь на 3–8% меньше, чем запуск системы на настоящем оборудовании, поэтому «почувствовать разницу» не удастся.

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

С тех пор, как мы рассказывали о Xen с десяток выпусков назад, она вошла в состав многих популярных дистрибутивов. SUSE, Fedora, Ubuntu, Gentoo и другие включили поддержку Xen, хотя качество поддержки зависит от дистрибутива. Xen негласно является одной из архитектур, под которые создается ядро Linux, наряду с x86, x86-64 и PowerPC.


Формально, когда вы устанавливаете Xen на компьютер, она становится главной операционной системой. Загрузка компьютера сопровождается загрузкой Xen OS, которая создает первоначальную виртуальную машину (известную как домен 0 или просто dom0), т.е. вашу базовую ОС. Все выглядит так, словно вы загружаете тот же Linux и затем X, как и до этого, но на самом деле вы используете виртуальную машину. Гостевая ОС dom0 является самой привилегированной, и поэтому имеет более высокий приоритет при доступе к оборудованию и вычислениях, чем другие гости. Этим гостям – обычно их называют непривилегированными доменами (domU) – требуется собственная порция оперативной памяти, а также постоянное место на диске для хранения своих данных.

Установка ядра

Хотя большинство дистрибутивов имеют поддержку Xen, мы потренируемся в сборке из исходных текстов, для гарантии, что вы сможете повторить процедуру установки с любым дистрибутивом. В данном руководстве мы будем использовать дистрибутив Fedora Core 4.

Прежде, чем мы начнем, необходимо сделать замечание: Xen должна работать с реальным оборудованием. Вы не сможете установить ее внутри Vmware или с использованием других средств виртуализации.

Как установить XEN

Хватит болтать – установим-ка Xen и запустим нашу основную ОС как виртуальную машину.

1. Устранение зависимостей

У Xen достаточно много зависимостей, и если вы хотите насладиться виртуализацией по максимуму, то их необходимо устранить. Вам потребуются полный набор для компиляции программ (GCC, make и др.), VNC (серверная и клиентская части), libvncserver, библиотека python-twisted, а также программа brctl, Curl (включая библиотеки разработки) и SDL (также включая библиотеки разработки).

Если вы устанавливаете Fedora Core 4, выберите Custom Setup. Отключите брандмауэр и SELinux (они могут вызывать проблемы), затем выберите следующие пакеты из предложенного списка:

  • Из категории X Window System выберите xorg-x11-Xnest.
  • Пометьте Development Tools (список выбранных пакетов по умолчанию нас устраивает)
  • Из категории System Tools выберите VNC.
  • Из Network Servers выберите vncserver.

Когда установка закончится, проведите первоначальную настройку системы. зайдите в систему и загрузите Gnome. Если вы используете не FC4, менеджер пакетов вашего дистрибутива наверняка может предложить эквиваленты вышеназванных программ. Установка Xnest необязательна, но без остальных пакетов не обойтись.

Теперь нам необходимо получить libvncserver, следовательно нам на сайт http://libvncserver.sourceforge.net. На момент написания статьи там была доступна для скачивания «предварительная версия» в виде файла LibVNCServer-0.8pre.tar.gz. Откройте терминал, перейдите в директорию, в которую скопировали его, и наберите

tar xpvfz LibVNCServer-0.8pre.tar.gz
cd LibVNCServer-0.8pre
./configure
Make
su -
make install

Если у вас Fedora Core, то остальные пакеты устанавливаются командой

yum install python-twisted bridge-utils curl  SDL-devel

При использовании другого дистрибутива, менеджер пакетов может предложить их аналоги. Если вы не можете найти пакет bridge-utils, то поищите тот, который предоставляет команду brctl.

Теперь пора установить Xen. С сайта http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads скачайте файл xen-3.0.0-src.tgz. Если доступна более новая версия, можете попробовать ее, но тогда мы не гарантируем, что дальнейшие инструкции будут работать. Наша версия находится на диске к журналу в директории Magazine/Xen.

2. Сборка ядра Xen

Получив файл с Xen, отправляйтесь обратно в терминал и выполните следующие команды:

tar xvpfz xen-3.0.0-src.tgz
cd xen-unstable

На диске в директории Magazine/Xen вы найдете специальную версию ядра Linux. Если вы скопируете ядро в свежесозданную директорию xen-unstable, Xen использует его для сборки своего образа. Если вы не скопируете наше ядро, то Xen скачает его из сети, да и вы сами можете поступить так же! Итак, ядро скопировано; перейдите в директорию xen-unstable и запустите

make world

Вне зависимости от способа установки ядра Linux, ядро будет извлечено, модифицировано для работы с Xen, а затем собрано дважды: сначала как xen0 (для dom0), а затем как xenU (для domU). Компиляция – процесс долгий, поэтому у вас будет достаточно времени на какие-нибудь другие дела.

После завершения компиляции можно двигаться дальше:

su
make install

Новые ядра Xen скопируются в директорию /boot, а файлы конфигурации – в вашу систему. Чтобы компьютер загружался с нашим ядром, необходимо создать образ начального RAM-диска, используя следующую команду

mkinitrd      /boot/initrd-2.6.12-xen0.img  2.6.12.6-xen0

Первый параметр – путь, куда надо сохранить образ диска, а второй – имя директории с модулями в /lib/modules.

3. Конфигурация загрузчика

Чтобы добавить ядро xen0 в загрузчик Grub, откройте в текстовом редакторе файл /boot/grub/menu.lst. По умолчанию в Fedora он выглядит следующим образом:

default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu

title Fedora Core (2.6.11-1.1369_FC4)
root (hd0,0)
kernel /vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.11-1.1369_FC4.img

Необходимо привести его к следующему виду

default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu

title Xen 3.0/XenLinux 2.6
root (hd0,0)
kernel /xen-3.0.0.gz dom0_mem=131072
module /vmlinuz-2.6.12.6-xen0 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.12-xen0.img
title Fedora Core (2.6.11-1.1369_FC4)
root (hd0,0)
kernel /vmlinuz-2.6.11-1.1369_FC4 ro root=/
dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.11-1.1369_FC4.img

Заметим, что теперь мы загружаем ядро Xen, а не Linux. Мы передаем имя Linux- ядра в Xen, и она запускает его в качестве гостевой ОС виртуальной машины dom0. Параметр dom0_mem определяет, сколько ОЗУ мы хотим выделить dom0. В нашем случае это 128 MБ. Можно указать любое другое значение, но не забудьте умножить количество мегабайт, которое вы хотите выделить виртуальной машине, на 1024.

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

Теперь войдите в систему, запустите консоль и наберите uname -a. 'xen0' в строке вывода результата команды сигнализирует о том, что вы теперь в домене 0. Переключитесь в режим root с помощью команды su - и запустите xend start, а потом xm list. Последняя команда выводит список всех работающих в данный момент виртуальных машин. В этом списке вы видите dom0, которой выделено 128 MБ ОзУ. Поздравляем! Ваша система заработала в Xen!

Персональные инструменты
купить
подписаться
Яндекс.Метрика