Установка Xen 4.1 на Debian Squeeze

Материал из support.qbpro.ru

Сегодня наша задача - установить Xen 4.1 (в нашем случае - 4.1.3) на Linux Debian Squeeze. Встроенной поддержки нового Xen у Squeeze нет - последняя официальная версия - 4.0.1-4 (на момент написания данной заметки), поэтому придется все делать из исходников.


1) Логинимся на хостовую машину и скачиваем Xen 4.1.

$ wget http://bits.xensource.com/oss-xen/release/4.1.3/xen-4.1.3.tar.gz

Распаковываем: $ tar -xzf xen-4.1.3.tar.gz

После чего у нас появляется директория xen-4.1.3, в которой лежат исходники гипервизора.


2) Устанавливаем зависимости.

Это делаем перед компиляцией и сборкой гипервизора, т.к. иначе ничего не получится. $ sudo apt-get build-dep xen $ sudo apt-get install libx11-dev libssl-dev python2.6-dev $ sudo apt-get install bridge-utils


3) Собираем и устанавливаем Xen 4.1

$ cd xen-4.1.2 $ sudo make xen $ sudo make tools $ sudo make stubdom $ sudo make install-xen $ sudo make install-tools PYTHON_PREFIX_ARG= $ sudo make install-stubdom


4) Прописываем автозагрузку Xen-демонов

$ sudo update-rc.d xencommons defaults $ sudo update-rc.d xend defaults $ sudo update-rc.d xendomains defaults


5) Добавляем загрузку необходимых модулей. Для этого открываем файл

/etc/modules

И добавляем следующие строчки: loop max_loop=64 blktap xen-evtchn

Параметр max_loop определяет - сколько максимально может быть создано Loop-устройств - таких, как виртуальный жесткий диск, виртуальная сетевая карта и т.д. Считается он в сумме всех машин, т.ч. мало ставить не следует - если только не пара-тройка машин предполагается к работе. 64 в моем личном опыте пока мало не было нигде.


6) Устанавливаем необходимое ядро для работы с Xen. Нам подойдет ядро, идущее "из коробки" - 2.6.32-5.

$ sudo apt-get install linux-image-2.6.32-5-xen-amd64 linux-headers-2.6.32-5-xen-amd64

Как видно, этот пример для 64-битных ОС (amd64). Если у Вас 32-битная - ставьте соответствующее ядро.


7) Теперь нам нужно сделать так, чтобы Xen запускался первым и вообще запускался. Для начала идем в /boot и избавляемся от файла xen-syms-4.1.2, например, переместив его куда-нибудь:

$ cd /boot $ sudo mkdir xsyms $ sudo mv xen-syms-4.1.2 xsyms

Теперь топаем в конфигурацию Grub (/etc/grub.d). Дело в том, что по-умолчанию Xen ставится в меню загрузки после обычных ядер, что означает, что при перезагрузке вариант с Xen нужно выбирать вручную. Этот бред придется лечить ручками:

$ cd /etc/grub.d $ sudo mv 20_linux_xen 09_linux_xen

Тут мы переместили загрузку Xen на первое место (индекс сортировки = 09). Теперь при перезагрузке будет автоматически загружен гипервизор с доменом-0.

Но нужно еще пересобрать конфигурацию Grub:

$ sudo update-grub


9) Конфигурируем Xen.

Для этого открываем файл /etc/xen/xend-config.sxp и правим. Для начальной работы я рекомендую раскомментировать строчку с включением bridge на сетевую карту и открыть доступ по VNC к консолям виртуальных машин:

  1. Это раскомментировать:

(network-script network-bridge)

  1. Это сделать вот так:

(vnc-listen '0.0.0.0')


10) Перезагружаемся.

Для проверки, что все "крутится и вертится" - просим Xen показать список текущих машин: $ sudo xm list Name ID Mem VCPUs State Time(s) Domain-0 0 32320 8 r----- 782440.2

Кстати, в новом Xen ввели и новую утилиту: XL. Она, поидее, должна заменить XM (правда, пока еще глючит - при низком остатке памяти в домене-0 - например, 256Мб, эта утилита просто не способна запустить никакой домен, в том время, как XM исправно это делает).


PS. В отличие от Xen 4.0.x и ниже - в 4.1 изменена работа с несколькими сетевыми картами. статья