ЗЫ. Вот и подобрались к тому, что пора писать напоминалку для народа — как 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.
Источник http://how-it.skylab-it.ru/public/root/457-%D0%A3stanovka_xen_4_2_na_debian_squeeze.html