Установка Xen · 6 min read · Oct 08, 2025
Установка Xen на сервере Ubuntu 8.04 (Hardy Heron) из репозиториев Ubuntu
Установка Xen на сервере Ubuntu 8.04 (Hardy Heron) из репозиториев Ubuntu
Версия 1.0
Автор: Фалко Тимме
Этот учебник предоставляет пошаговые инструкции по установке Xen на серверной системе Ubuntu Hardy Heron (Ubuntu 8.04) (i386). Все программное обеспечение, используемое здесь, можно найти в репозиториях Ubuntu, поэтому не требуются внешние файлы (за исключением фиксированного ядра Ubuntu Xen для включения сетевого взаимодействия для виртуальных машин) или компиляция.
Xen позволяет создавать гостевые операционные системы (nix операционные системы, такие как Linux и FreeBSD), так называемые “виртуальные машины” или domU, под хост-операционной системой (dom0). Используя Xen, вы можете разделить свои приложения на разные виртуальные машины, которые полностью независимы друг от друга (например, виртуальная машина для почтового сервера, виртуальная машина для веб-сайта с высоким трафиком, другая виртуальная машина, которая обслуживает веб-сайты ваших клиентов, виртуальная машина для DNS и т.д.), но при этом использовать одно и то же оборудование. Это экономит деньги, и что еще более важно, это более безопасно. Если виртуальная машина вашего DNS-сервера будет взломана, это не повлияет на ваши другие виртуальные машины. Плюс, вы можете перемещать виртуальные машины с одного сервера Xen на другой.
Я буду использовать Ubuntu Hardy Heron (i386) в качестве хост-ОС (dom0) и Ubuntu Hardy Heron и Ubuntu Gutsy Gibbon (7.10) в качестве гостевых операционных систем (domU). Другие дистрибутивы на базе Debian, которые можно установить с помощью xen-tools, это Debian Etch, Debian Lenny, Debian Sid и Debian Sarge, а также Ubuntu Dapper Drake, Ubuntu Edgy Eft и Ubuntu Feisty Fawn.
Этот howto предназначен как практическое руководство; он не охватывает теоретические основы. Они рассматриваются во многих других документах в сети.
Этот документ предоставляется без каких-либо гарантий! Я хочу сказать, что это не единственный способ настройки такой системы. Существует много способов достижения этой цели, но это тот путь, который я выбираю. Я не даю никаких гарантий, что это сработает для вас!
1 Установите хост-систему Ubuntu Hardy Heron (dom0)
Вы можете установить хост-систему (dom0), как показано в главах с первой по десятую этого учебника: https://www.howtoforge.com/perfect-server-ubuntu8.04-lts (конечно, вам не нужно это делать, если у вас уже есть хост-система Ubuntu 8.04, которую вы хотите использовать).
Убедитесь, что вы вошли как root (введите
sudo suчтобы стать root), потому что мы должны выполнять все шаги из этого учебника от имени пользователя root. Также, если вы хотите использовать vi в качестве текстового редактора (как предложено в этом учебнике), вам следует выполнить
apt-get install vim-fullПакет vim-full гарантирует, что текстовый редактор vi будет вести себя как ожидается (без vim-full вы можете столкнуться с некоторыми странными поведениями в текстовом редакторе vi).
Хорошая идея - отключить AppArmor:
/etc/init.d/apparmor stop
update-rc.d -f apparmor removedom0 ‘s FQDN в этом примере будет server1.example.com. IP-адрес server1.example.com будет 192.168.0.100 в этом учебнике, а шлюз, который я использую, - 192.168.0.1, поэтому виртуальные машины также должны использовать его.
2 Установите Xen
Чтобы установить Xen и все необходимые зависимости, все, что нам нужно сделать, это выполнить следующую команду:
apt-get install ubuntu-xen-serverЭто также установит пакет xen-tools, который мы используем позже для создания виртуальных машин.
Пакет ubuntu-xen-server устанавливает ядро Ubuntu 2.6.24-16-xen; к сожалению, в этом ядре есть неприятная ошибка, из-за которой сетевое взаимодействие не работает для виртуальных машин (см. https://bugs.launchpad.net/ubuntu/+source/xen-3.2/+bug/204010 и https://bugs.launchpad.net/ubuntu/+source/linux/+bug/218126). К счастью, Хирано Такахито исправил это ядро и сделал исправленные версии (для i386 и amd64) доступными на http://www.il.is.s.u-tokyo.ac.jp/~hiranotaka/ (я создал зеркало этих пакетов на http://downloads.howtoforge.com/ubuntu_8.04_server_xen_from_repositories/ на случай, если оригинальная ссылка однажды перестанет работать). Скачайте правильный пакет linux-image для вашей архитектуры (i386 или amd64), например:
wget http://www.il.is.s.u-tokyo.ac.jp/~hiranotaka/linux-image-2.6.24-16-xen_2.6.24-16.30zng1_i386.debЗатем замените ядро Ubuntu 2.6.24-16-xen на него следующим образом:
dpkg -i linux-image-2.6.24-16-xen_2.6.24-16.30zng1_i386.debЗатем сделайте это:
mv /lib/tls /lib/tls.disabledНам также нужно добавить модуль loop в ядро каждый раз, когда мы загружаем нашу систему, поэтому мы редактируем /etc/modules. Если у вас уже есть строка loop, сделайте ее выглядеть так, иначе добавьте ее:
vi /etc/modules| [...] loop max_loop=64 [...] |
Теперь посмотрите на каталог /boot, чтобы увидеть, какие ядра и ramdisk установлены:
ls -l /boot/root@server1:~# ls -l /boot/
total 34380
-rw-r--r-- 1 root root 426444 2008-04-10 18:55 abi-2.6.24-16-server
-rw-r--r-- 1 root root 80203 2008-04-10 18:55 config-2.6.24-16-server
-rw-r--r-- 1 root root 85149 2008-04-19 23:17 config-2.6.24-16-xen
drwxr-xr-x 2 root root 4096 2008-05-06 15:19 grub
-rw-r--r-- 1 root root 7323503 2008-04-24 11:47 initrd.img-2.6.24-16-server
-rw-r--r-- 1 root root 7047843 2008-04-24 11:45 initrd.img-2.6.24-16-server.bak
-rw-r--r-- 1 root root 7056979 2008-05-06 15:19 initrd.img-2.6.24-16-xen
-rw-r--r-- 1 root root 7062168 2008-05-06 15:09 initrd.img-2.6.24-16-xen.bak
-rw-r--r-- 1 root root 103204 2007-09-28 12:06 memtest86+.bin
-rw-r--r-- 1 root root 933296 2008-04-10 18:55 System.map-2.6.24-16-server
-rw-r--r-- 1 root root 883544 2008-04-19 23:17 System.map-2.6.24-16-xen
-rw-r--r-- 1 root root 1987288 2008-04-10 18:55 vmlinuz-2.6.24-16-server
-rw-r--r-- 1 root root 1730344 2008-04-19 23:17 vmlinuz-2.6.24-16-xen
-rw-r--r-- 1 root root 370610 2008-04-11 03:16 xen-3.2.gz
root@server1:~#Ядро /boot/vmlinuz-2.6.24-16-xen - это новое, исправленное ядро Xen, а /boot/initrd.img-2.6.24-16-xen - это его ramdisk. Нам скоро понадобятся эти файлы.
Теперь вы также можете взглянуть на каталог /usr/lib/xen-tools, потому что он показывает, какие дистрибутивы можно установить в виртуальной машине с помощью xen-tools:
ls -l /usr/lib/xen-toolsroot@server1:~# ls -l /usr/lib/xen-tools
total 36
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 centos-4.d
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 centos-5.d
-rwxr-xr-x 1 root root 4409 2008-04-06 03:12 common.sh
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 dapper.d
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 debian.d
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 edgy.d
lrwxrwxrwx 1 root root 8 2008-05-06 15:08 etch.d -> debian.d
lrwxrwxrwx 1 root root 15 2008-05-06 15:08 fedora-core-4.d -> fedora-core-6.d
lrwxrwxrwx 1 root root 15 2008-05-06 15:08 fedora-core-5.d -> fedora-core-6.d
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 fedora-core-6.d
lrwxrwxrwx 1 root root 15 2008-05-06 15:08 fedora-core-7.d -> fedora-core-6.d
lrwxrwxrwx 1 root root 6 2008-05-06 15:08 feisty.d -> edgy.d
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 gentoo.d
lrwxrwxrwx 1 root root 6 2008-05-06 15:08 gutsy.d -> edgy.d
lrwxrwxrwx 1 root root 6 2008-05-06 15:08 hardy.d -> edgy.d
lrwxrwxrwx 1 root root 8 2008-05-06 15:08 lenny.d -> debian.d
lrwxrwxrwx 1 root root 8 2008-05-06 15:08 sarge.d -> debian.d
lrwxrwxrwx 1 root root 8 2008-05-06 15:08 sid.d -> debian.d
root@server1:~#Как вы видите, мы можем установить следующие дистрибутивы:
- Debian: Etch, Lenny (testing), Sid (unstable), Sarge
- Ubuntu: Dapper Drake, Edgy Eft, Feisty Fawn, Gutsy Gibbon, Hardy Heron
- CentOS 4, CentOS 5
- Fedora Core 4, 5, 6, Fedora 7
- Gentoo
(Я еще не пробовал установить CentOS, Fedora и Gentoo с помощью xen-tools, поэтому не могу сказать, насколько хорошо это работает.)
Я хочу хранить свои виртуальные машины в каталоге /home/xen, поэтому я создаю его сейчас:
mkdir /home/xenМы будем использовать xen-tools для создания виртуальных машин. xen-tools упрощает создание виртуальных машин - пожалуйста, прочитайте этот учебник, чтобы узнать больше: https://www.howtoforge.com/xen_tools_xen_shell_argo. Как уже упоминалось, пакет xen-tools был установлен вместе с пакетом ubuntu-xen-server.
Теперь мы редактируем /etc/xen-tools/xen-tools.conf. Этот файл содержит значения по умолчанию, которые используются скриптом xen-create-image, если вы не укажете другие значения в командной строке. Я изменил следующие значения и оставил остальные без изменений:
vi /etc/xen-tools/xen-tools.conf| [...] dir = /home/xen [...] dist = hardy # Дистрибутив по умолчанию для установки. [...] gateway = 192.168.0.1 netmask = 255.255.255.0 broadcast = 192.168.0.255 [...] passwd = 1 [...] mirror = http://archive.ubuntu.com/ubuntu/ [...] |
Строка dist содержит дистрибутив по умолчанию, который вы хотите установить в виртуальной машине. Содержимое каталога /usr/lib/xen-tools показывает, какие дистрибутивы доступны (см. выше).
Строка kernel должна содержать наше ядро Xen, а строка initrd - его ramdisk. Значения по умолчанию в файле /etc/xen-tools/xen-tools.conf имеют значения kernel = /boot/vmlinuz-uname -r и initrd = /boot/initrd.img-uname -r, которые автоматически переводятся в правильное ядро и ramdisk, поэтому нам не нужно изменять эти строки.
Строка passwd = 1 позволяет вам указать пароль root при создании нового гостевого домена. В строке mirror укажите зеркало Ubuntu, близкое к вам.
Убедитесь, что вы указали шлюз и маску подсети. Если вы этого не сделаете и не укажете шлюз и маску подсети в командной строке при использовании xen-create-image, ваши гостевые домены не будут иметь сетевого взаимодействия, даже если вы указали IP-адрес!
Теперь перезагрузите систему:
rebootЕсли ваша система перезагрузится без проблем, значит, все в порядке!
Запустите
uname -rи ваше новое ядро Xen должно появиться:
root@server1:~# uname -r
2.6.24-16-xen
root@server1:~#Get new posts in your inbox
No spam. Unsubscribe anytime.