Как установить Xen 3.0 из бинарников в Ubuntu 6.06 LTS (Dapper Drake)
Кратко: установите Ubuntu 6.06, скачайте и запустите инсталлятор Xen 3.0 из архива, создайте initrd и запись в GRUB, настройте запуск xend/xendomains и создайте образ(ы) гостевых доменов через debootstrap. В статье подробно описаны команды, типичные подводные камни и рекомендации по тестированию и откату.
Важно: инструкция рассчитана на Ubuntu 6.06 LTS (Dapper Drake) и Xen 3.0 — некоторые команды и пути могут отличаться в более новых выпусках.
Версия и автор
Версия 1.0
Автор: Ásgeir Bjarni Ingvarsson
Последнее редактирование: 13 июня 2006 г.
Содержание
- Шаг 1 — Подготовка базовой системы
- Шаг 2 — Установка и настройка Xen
- Шаг 3 — Подготовка гостевых образов и первичный запуск
- Шаг 4 — Создание первого гостевого домена
- Контрольные проверки, откат и рекомендации по безопасной эксплуатации
- Краткий чеклист и глоссарий
1 Установите чистую серверную систему
Установите Ubuntu как обычно. В примере автор использовал три раздела на /dev/hda, но вы можете использовать любую схему, просто учитывайте её при редактировании конфигурационных файлов.
- hda1 — swap
- hda2 — 2 ГБ, смонтировано как /
- hda3 — остальной диск, смонтировано как /xen-images
Важно: пути устройств (/dev/hdaX) и схема разделов зависят от вашего диска; в современных системах устройства могут называться /dev/sdaX.
2 Обновите систему и установите Xen
Откройте root-оболочку, чтобы не вводить sudo для каждой команды:
sudo -sОбновите систему и установите необходимые пакеты:
apt-get update
apt-get upgrade
apt-get install iproute python python-twisted bridge-utils debootstrap2.1 Установка Xen и его компонентов
Скачайте и распакуйте tarball Xen 3.0 (пример: xen-3.0.1-install-x86_32.tgz), затем запустите скрипт установки:
tar xvf xen-3.0.1-install-x86_32.tgz
cd xen-3.0.1-install
./install.shПроверьте вывод на ошибки — все шаги должны завершиться с OK.
Создайте модули и файлы зависимостей для нового ядра (подставьте корректную версию ядра из /lib/modules):
/sbin/depmod -a 2.6.16-xenДобавьте параметр loop в файл /etc/mkinitramfs/modules (если используете mkinitramfs):
loop max_loop=64Если позже закончились loop-устройства — увеличьте max_loop и пересоберите initrd.
Создайте initrd-образ (версия ядра должна совпадать):
cd /boot
mkinitramfs -o initrd.img-2.6.16-xen 2.6.16-xenОтредактируйте /boot/grub/menu.lst и вставьте следующие строки ДО секции Automagic (сохраните отступы):
title Xen 3.0 / XenLinux 2.6
kernel /boot/xen-3.gz
module /boot/vmlinuz-2.6-xen root=/dev/hda2 ro
module /boot/initrd.img-2.6.16-xenЧтобы Xen и выбранные гостевые домены автоматически запускались, установите соответствующие уровни запуска. xend должен запускаться раньше, xendomains позже при остановке:
update-rc.d xend start 30 2 3 4 5 . stop 31 0 1 6 .
update-rc.d xendomains start 31 2 3 4 5 . stop 30 0 1 6 .Отключите Thread-Local Storage (TLS). После обновлений проверяйте это снова:
mv /lib/tls /lib/tls.disabledImportant: изменение /lib/tls может повлиять на другие приложения — выполняйте только если указано в инструкции и вы понимаете последствия.
2.2 Временные обходы (может не понадобиться в будущих релизах)
Переименуйте правила udev, если необходимо:
mv /etc/udev/rules.d/xen-backend.rules /etc/udev/rules.d/92-xen-backend.rulesУбедитесь, что каталоги /var/run/xenstored и /var/run/xend существуют — отредактируйте /etc/init.d/xend и добавьте после проверки /proc/xen/capabilities:
if [ ! -d /var/run/xend ] ; then
mkdir -p /var/run/xend
fi
if [ ! -d /var/run/xenstored ] ; then
mkdir -p /var/run/xenstored
fiВ /etc/init.d/xendomains измените LOCKFILE на:
LOCKFILE=/var/lock/xendomains2.3 Перезагрузка и проверка
Перезагрузите систему. После загрузки проверьте список доменов:
xm listОжидаемый пример вывода:
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 463 1 r----- 42.3Если Domain-0 виден и xend запущен — переходите дальше.
3 Настройка гостевых доменов
3.1 Создание образов дисков и первичный bootstrap
Создайте точку монтирования для образов:
mkdir -p /xen-images/mntСоздайте образ 1 ГБ и swap 500 МБ (увеличьте при необходимости):
dd if=/dev/zero of=/xen-images/guest_base.img bs=1024k count=1000
dd if=/dev/zero of=/xen-images/guest_base-swap.img bs=1024k count=500Ограничьте права доступа на файлы образов:
chmod 640 /xen-images/guest_base*Отформатируйте образ как ext3 и swap. Если mkfs предупредит, что файл не блочное устройство, подтвердите — это нормально.
mkfs.ext3 /xen-images/guest_base.img
mkswap /xen-images/guest_base-swap.imgСмонтируйте образ и сделайте bootstrap Ubuntu (замените зеркало на ближайшее к вам):
mount -o loop /xen-images/guest_base.img /xen-images/mnt
debootstrap --arch i386 dapper /xen-images/mnt http://archive.ubuntu.com/ubuntu/Скопируйте /etc/apt/sources.list внутрь образа:
cp /etc/apt/sources.list /xen-images/mnt/etc/apt/Скопируйте модули ядра в образ:
cp -dpR /lib/modules/2.6.16-xen /xen-images/mnt/lib/modules/Отключите TLS внутри образа:
mv /xen-images/mnt/lib/tls /xen-images/mnt/lib/tls.disabledОтредактируйте сетевые настройки гостя в /xen-images/mnt/etc/network/interfaces (пример):
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
# Uncomment this and configure after the system has booted for the first time
#auto eth0
#iface eth0 inet static
# address 192.168.0.101
# netmask 255.255.255.0
# broadcast 192.168.0.255
# gateway 192.168.0.1
# dns-nameservers 192.168.0.1Создайте /xen-images/mnt/etc/hosts с минимальными записями:
127.0.0.1 localhost localhost.localdomain
127.0.0.1 guest
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhostsЗапишите имя хоста:
echo guest > /xen-images/mnt/etc/hostnameОтредактируйте /xen-images/mnt/etc/fstab (пример):
proc /proc proc defaults 0 0
/dev/hda1 / ext3 defaults,errors=remount-ro 0 1
/dev/hda2 none swap sw 0 0Отмонтируйте образ:
umount /xen-images/mntЕсли появится предупреждение «device is busy» — обычно это безопасно и можно продолжать.
3.2 Первичный запуск образа для финальной настройки
Создайте конфигурационный файл гостя /etc/xen/baseimage с содержимым:
# -*- mode: python; -*-
kernel = "/boot/vmlinuz-2.6.16-xen"
ramdisk = "/boot/initrd.img-2.6.16-xen"
memory = 128
name = "baseimage"
vif = ['bridge=xenbr0']
disk = ['file:/xen-images/guest_base.img,hda1,w','file:/xen-images/guest_base-swap.img,hda2,w']
ip = "192.168.0.101"
netmask = "255.255.255.0"
gateway = "192.168.0.1"
hostname = "baseimage"
root = "/dev/hda1 ro"
extra = "4"Запустите гостя в консольном режиме:
xm create baseimage -cВойдите как root и задайте пароль. Затем включите shadow-пароли:
shadowconfig onСделайте резервную копию сетевого файла:
cp /etc/network/interfaces /etc/network/interfaces.bakОтредактируйте /etc/network/interfaces внутри гостя, укажите корректные параметры сети и поднимите интерфейсы:
ifup -aУстановите базовые пакеты:
apt-get update
apt-get install ubuntu-base configure-debian openssh-serverОпять отключите TLS внутри гостя, если нужно:
mv /lib/tls /lib/tls.disabledВыполните рекомендуемые настройки системы, например:
configure-debianДобавьте созданного пользователя в /etc/sudoers через visudo.
После конфигурации остановите сеть и верните резервную копию interfaces:
ifdown -a
mv /etc/network/interfaces.bak /etc/network/interfacesВыключите гостя — базовый образ готов к клонированию.
4 Создание первого гостевого домена
Скопируйте базовые образы для нового гостя:
cp /xen-images/guest_base.img /xen-images/guestdom1.img
cp /xen-images/guest_base-swap.img /xen-images/guestdom1-swap.imgСкопируйте конфигурационный файл:
cp /etc/xen/baseimage /etc/xen/guestdom1Отредактируйте /etc/xen/guestdom1: смените name, disk и hostname:
name = "guestdom1"
disk = ['file:/xen-images/guestdom1.img,hda1,w','file:/xen-images/guestdom1-swap.img,hda2,w']
hostname = "guestdom1"Для каждого нового гостя надо корректировать как минимум файлы:
- /etc/hostname
- /etc/hosts
- /etc/network/interfaces
Чтобы гость автоматически запускался и Domain-0 ожидал его перед выключением, создайте символьную ссылку:
ln -s /etc/xen/guestdom1 /etc/xen/auto/Если хотите запускать вручную:
xm create guestdom1Для подробной информации смотрите документацию Xen.
Контрольные проверки, тесты и откат
Краткая методология тестирования перед вводом в продуктив:
- После установки Xen и перезагрузки выполните xm list и проверьте Domain-0.
- Создайте и запустите один тестовый гость с минимальными ресурсами (128 МБ).
- Проверьте сетевые соединения из гостя (ping, apt-get update).
- Проверьте монтирование образов и целостность файловой системы.
Критерии приёмки:
- Domain-0 стабильный и не падает под нагрузкой обычных сервисов.
- Гость загружается, получает сеть и может обновляться через apt.
- Нет ошибок в логах xend/xenstored при старте/остановке.
Откат/rollback (минимальный план):
- Держите резервную копию /boot/menu.lst и initrd.
- Если после установки Xen система не загружается — верните старую запись GRUB и initrd, загрузитесь в старом ядре.
- До внесения глобальных изменений делайте snapshot (если поддерживается) или копию образов.
Чеклист ролей (кто что делает)
- Администратор Domain-0: установка Xen, kernel/initrd, GRUB, управление xend/xenstored.
- Системный администратор гостя: настройка сети внутри гостя, обновления пакетов, управление пользователями.
- Сеть/Firewall: проверка мостов (bridge) и правил Shorewall/iptables.
Меры безопасности и советы
- Не давайте лишних прав к файлам образов — chmod 640 как минимум.
- Domain-0 — самый привилегированный узел: минимизируйте на нём сервисы.
- Проверяйте каждое обновление ядра: пересобирайте initrd и проверяйте совместимость модулей.
Частые проблемы и когда это не сработает
- Если ваше железо слишком новое, драйверы и схема устройства (sda вместо hda) могут отличаться — адаптируйте пути.
- В новых версиях Ubuntu/ Debian способы создания initrd и имена пакетов изменились — эта инструкция специфична для Dapper/2006 года.
- Thread-Local Storage («/lib/tls») может быть необходим приложениям — убедитесь, что отключение безопасно для вашего окружения.
Краткий глоссарий
- Domain-0 — привилегированный домен (хост), где запускается гипервизор и управляющие службы.
- xm — утилита управления Xen (создание/список/остановка доменов).
- xend/xenstored — демоны управления Xen.
- initrd — образ временной корневой FS при загрузке ядра.
Ресурсы и ссылки
Оригинальные и дополнительные ресурсы автора и сообщества:
- https://www.howtoforge.com/perfect_xen_setup_debian_ubuntu
- https://wiki.ubuntu.com/XenOnUbuntuBinaryInstall
- http://www.ubuntuforums.org/showthread.php?t=178027
Другие полезные материалы:
- https://wiki.ubuntu.com/XenVirtualMachine/XenOnUbuntuDapper
- http://www.shorewall.net/Xen.html
- http://www.shorewall.net/XenMyWay.html
Краткое резюме
- Установка Xen 3.0 из бинарника требует: распаковки install-скрипта, создания initrd, правок GRUB и настройки xend/xendomains.
- Гостевые образы удобнее готовить через debootstrap и loop-файлы.
- Тестируйте на одном госте и имейте план отката перед масштабированием.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента