Установка 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 remove

dom0 ‘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-tools
root@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:~#
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.