ЗЫ. Вот и подобрались к тому, что пора писать напоминалку для народа - как Xen 4.2 ставить на любимый Debian.
Сегодня наша задача - установить Xen 4.2 (в нашем случае - 4.2.1) на Linux Debian Squeeze. Встроенной поддержки нового Xen у Squeeze нет - последняя официальная версия - 4.0.1-4 (на момент написания данной заметки), поэтому придется все делать из исходников.
1) Логинимся на хостовую машину и скачиваем Xen 4.2.
$ wget http://bits.xensource.com/oss-xen/release/4.2.1/xen-4.2.1.tar.gz
Распаковываем:
$ tar -xzf xen-4.2.1.tar.gz
После чего у нас появляется директория xen-4.2.1, в которой лежат исходники гипервизора.
2) Устанавливаем зависимости.
Это делаем перед компиляцией и сборкой гипервизора, т.к. иначе ничего не получится.
$ sudo apt-get build-dep xen
$ sudo apt-get install libx11-dev libssl-dev python2.6-dev
$ sudo apt-get install bridge-utils
$ sudo apt-get install bcc bin86 gawk bridge-utils iproute libcurl3 libcurl4-openssl-dev \
bzip2 module-init-tools transfig tgif texinfo texlive-latex-base \
texlive-latex-recommended texlive-fonts-extra texlive-fonts-recommended \
pciutils-dev mercurial make gcc libc6-dev zlib1g-dev python python-dev \
python-twisted libncurses5-dev patch libvncserver-dev libsdl-dev libjpeg62-dev \
iasl libbz2-dev e2fslibs-dev git-core uuid-dev ocaml ocaml-findlib libx11-dev \
bison flex xz-utils libyajl-dev gettext pkg-config
3) Собираем и устанавливаем Xen 4.2
$ cd xen-4.2.1
$ ./configure
$ sudo make dist
$ sudo make install PYTHON_PREFIX_ARG=
4) Прописываем автозагрузку Xen-демонов
$ sudo update-rc.d xencommons defaults
$ sudo update-rc.d xendomains defaults
Заметим, что демон xend сейчас считается устаревшим и его запуск производители Xen осуществлять не рекомендуют. Вместо него они предлагают (начиная с 4.1 тестово, а сейчас - уже и для боевой конфигурации) использовать XL.
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.2.1, например, переместив его куда-нибудь:
$ cd /boot
$ sudo mkdir xsyms
$ sudo mv xen-syms-4.2.1 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 и правим. Для начальной работы я рекомендую раскомментировать строчку с включением с доступом по VNC к консолям виртуальных машин:
(vnc-listen '0.0.0.0')
(кстати, по-умолчанию стоит 127.0.0.1, что совершенно бесполезно - не имея X-Window на борту гипервизора - потому что нафик он там не нужен - подцепиться с 127.0.0.1 к VNC консоли просто нечем, поэтому ставим значение 0.0.0.0, разрешая подцепляться откуда угодно).
10) Конфигурируем сеть.
Начиная с Xen 4.1 (и продолжая в Xen 4.2) встроенное средство network-bridge использовать возможно только для конфигурирования одной сетевой карты. Более того, сами производители усиленно рекомендуют мосты давать средствами, собственно, самой ОС гипервизора - в нашем случае, силами Linux Debian. Давайте так и сделаем.
Мост делается самыми стандартными методами - как любой другой на Debian. Вот пример конфига.
/etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
auto xeth0
iface xeth0 inet static
bridge_ports eth0
address 10.0.34.200
netmask 255.255.255.0
network 10.0.34.0
broadcast 10.0.34.255
gateway 10.0.34.250
auto xeth1
iface xeth1 inet static
bridge_ports eth1
address 10.3.34.200
netmask 255.255.255.0
# The primary network interface
#allow-hotplug eth0
#iface eth0 inet static
# address 10.0.34.200
# netmask 255.255.255.0
# network 10.0.34.0
# broadcast 10.0.34.255
# gateway 10.0.34.250
# # dns-* options are implemented by the resolvconf package, if installed
# dns-nameservers 10.0.1.10
Этот простенький файл показывает поднятие двух мостов xeth0 и xeth1 (которые в дальнейшем могут быть использованы для виртуальных машин). Мостам присваиваются IP адреса - заметьте, что не самим интерфейсам eth0 и eth1, а именно мостам xeth0 и xeth1.
11) Перезагружаемся.
Для проверки, что все "крутится и вертится" - просим Xen показать список текущих машин:
$ sudo xl list
Name ID Mem VCPUs State Time(s)
Domain-0 0 32320 8 r----- 782440.2
Кстати, еще заметьте - уже не xm я использую для управления машинами, а xl.
Комментарии
Оставить комментарий
Операционная система LINUX
Термины: Операционная система LINUX