Установка и настройка Xen 4.0 на CentOS 5
Установка Xen 4.0 на CentOS проходит немного сложнее чем обычно из-за этого появилась здесь необходимость замены базового, и проверенного в работе ядра 2.6.18 на более свежее ядро 2.6.32 и с поддержкой paravirt_ops. Это неплохой старт для трудоемкого обновления могут послужить новые возможности в Xen 4.0, которые так же будут доступные и для установки на CentOS через репозиторий еще вероятно года через 2.
Установка: [-hide-]1. Сборка ядра pvops 2.6.32.x Устанавливаем репозиторий RPMforge, этот репозиторий просто необходим для установки пакетов git, mercurial, flex, bison. [root@localhost tmp]# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm [root@localhost tmp]# rpm -i rpmforge-release-0.5.1-1.el5.rf.i386.rpm Устанавливаем необходимые для сборки пакеты yum install mercurial git make gcc ncurses-devel Подгружаем последний релиз ядра, эта процедура потянет за собой около 350 МБ исходников [root@localhost tmp]# git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen [root@localhost tmp]# cd linux-2.6-xen [root@localhost linux-2.6-xen]# git checkout -b xen/stable-2.6.32.x origin/xen/stable-2.6.32.x Переходим к настройке конфигурации ядра. Проверяем текущую версию и копируем файлик конфигурации ядра в каталог сборки. [root@localhost linux-2.6-xen]# uname -r 2.6.18-194.17.1.el5 [root@localhost linux-2.6-xen]# ll /boot/config* -rw-r--r-- 1 root root 69598 Sep 29 21:21 /boot/config-2.6.18-194.17.1.el5 -rw-r--r-- 1 root root 69593 Apr 2 2010 /boot/config-2.6.18-194.el5 [root@localhost linux-2.6-xen]# cp /boot/config-2.6.18-194.17.1.el5 .config Настраивавам ядро, более подробно конфигурирование и сборка ядра описаны в очень информационной статье сборка ядра 2.6.32.x pvops [root@localhost linux-2.6-xen] make menuconfig ВАЖНО: Ядро pv_ops при сборке для i386 поддерживает только режим PAE. После выполнения настройки проверяем наличие следующих параМБ в файлике .config, если их нет возвращается обратно в menuconfig и добавляем. CONFIG_SYSFS_DEPRECATED=y CONFIG_SYSFS_DEPRECATED_V2=y CONFIG_ACPI_PROCFS=y CONFIG_XEN=y CONFIG_XEN_MAX_DOMAIN_MEMORY=32 CONFIG_XEN_SAVE_RESTORE=y CONFIG_XEN_PRIVILEGED_GUEST=y CONFIG_XEN_PCI=y CONFIG_PCI_XEN=y CONFIG_XEN_BLKDEV_FRONTEND=m CONFIG_NETXEN_NIC=m CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_KBDDEV_FRONTEND=m CONFIG_HVC_XEN=y CONFIG_XEN_FBDEV_FRONTEND=m CONFIG_XEN_BALLOON=y CONFIG_XEN_SCRUB_PAGES=y CONFIG_XEN_DEV_EVTCHN=y CONFIG_XEN_BACKEND=y CONFIG_XEN_BLKDEV_BACKEND=y CONFIG_XEN_NETDEV_BACKEND=y CONFIG_XENFS=y CONFIG_XEN_COMPAT_XENFS=y CONFIG_XEN_XENBUS_FRONTEND=m CONFIG_XEN_PCIDEV_FRONTEND=y Собираем ядро [root@localhost linux-2.6-xen]# make -j4 [root@localhost linux-2.6-xen]# make modules_install [root@localhost linux-2.6-xen]# make headers_install [root@localhost linux-2.6-xen]# make install 2. Сборка Xen 4.0 Подгружаем последнюю версию xen 4.0 [root@localhost tmp]# hg clone http://xenbits.xen.org/xen-4.0-testing.hg [root@localhost tmp]# cd xen-4.0-testing.hg Устанавливаем необходимые для сборки пакеты [root@localhost]# yum install zlib-devel which openssl-devel gettext dev86 python-devel flex bison patch texinfo bzip2 bridge-utils Собираем Intel ACPI ASL Compiler (iasl), он понадобится нам для сборки xen-tools. Для этого скачиваем UNIX Format Source Code and Build Environment с сайта http://acpica.org/downloads/, собираем компилятор и копируем в директорию /bin. [root@localhost tmp]# wget http://acpica.org/download/acpica-unix-20100915.tar.gz [root@localhost tmp]# tar -zxvf acpica-unix-20100915.tar.gz [root@localhost tmp]# cd acpica-unix-20100915/compiler/ [root@localhost compiler]# make [root@localhost compiler]# cp iasl /bin Переходим к сборке Xen-4.0, если правильно установлены все вышеперечисленные пакеты, то сборка пройдет как по маслу. [root@localhost xen-4.0-testing.hg]# make xen [root@localhost xen-4.0-testing.hg]# make tools [root@localhost xen-4.0-testing.hg]# make stubdom [root@localhost xen-4.0-testing.hg]# make install-xen [root@localhost xen-4.0-testing.hg]# make install-tools [root@localhost xen-4.0-testing.hg]# make install-stubdom 3. Настройка Xen 4.0 Настраиваем систему на загрузку с ядром pv_ops, для этого открываем для редактирования /boot/grub/grub.conf и добавляем туда следующие строчки. На момент написания статьи актуальная версия ядра 2.6.32.24. title CentOS (2.6.32.24) root (hd0,0) kernel /xen-4.0.gz dom0_mem=512M loglvl=all guest_loglvl=all module /vmlinuz-2.6.32.24 ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.32.24.img Перезапускаем систему с новым ядром и переходим к настройке Xend, исправляем в /etc/xen/xend-config.sxp закоментированные строчки на (xend-http-server yes) (xend-unix-server yes) (xend-port 8000) Добавляем сервисы в автозапуск и запускаем [root@localhost ~]# chkconfig --add xend [root@localhost ~]# chkconfig --add xendomains [root@localhost ~]# chkconfig xend on [root@localhost ~]# chkconfig xendomains on [root@localhost ~]# service xend start [root@localhost ~]# service xendomains start Устанавливаем Virt-Install [root@localhost xen]# yum install virt-manager После запуска VirtInstall появляется ошибка, может конечно в новых версиях ее пропачат, но я потерял на этом без малого 4 дня. ERROR POST operation failed: xend_post: error from xen daemon: (xend.err Device 0 (vif) could not be connected. Hotplug scripts not working.') Решения есть 2: 1. Можно отключить модуль xt_physdev 2. Можно /etc/xen/scripts/vif-common.sh в функции frob_iptable() закомментировать строчки # iptables "$c" FORWARD -m physdev --physdev-in "$vif" "$@" -j ACCEPT \ # 2>/dev/null && # iptables "$c" FORWARD -m state --state RELATED,ESTABLISHED -m physdev \ # --physdev-out "$vif" -j ACCEPT 2>/dev/null Если кто-то знает еще какие-то решения решения этой проблемы – пишите буду рад.[-hide-] |