Archive:Установка Xen на SuSE Linux 10.0

(перенаправлено с «Installing Xen3»)
Перейти к: навигация, поиск
Icon-obsolete.png Эта статья актуальна для версии '10.0', которая теперь является устаревшей!
Пожалуйста, обратитесь к странице обсуждения этой статьи для получения подробной информации.

Инструкции по установке Xen потерпели значительные изменения с момента написания этой статьи. Последнии указания по установке и использовании Xen до сих пор находятся в разработке, однако вы можете просмотреть следующие статьи:

Прежде всего необходимо загрузить новейшие версии пакетов Xen3, поскольку Xen до сих пор находится в стадии активной разработки. Последние сборки для SLES 10 могут быть теперь найдены на xen technical preview. Дополнительная информация и инструкция по установке также доступны там.

После загрузки вы можете установить все пакеты:

rpm -Uvh *.rpm

Или только установить пакеты, содержащие документацию:

rpm -Uvh xen-doc*

поскольку вам необходимо прочесть её перед установкой виртуальной машины. Вы можете также распечатать её и сверяться с нею во время установки. ( Документация по Xen3 находится в /usr/share/doc/packages/xen/ )

После прочтения документации можно продолжить установку.


Xen некоторым образом конфликтует со службой powersave. Так что лучше деактивировать её:

/etc/init.d/powersaved stop
insserv -r powersaved

Далее нужно создать правильную конфигурацию grub. Для этого необходимо отредактировать /boot/grub/menu.lst в соответствии со следующим примером:

(Убедитесь, что строка "kernel" не является символической ссылкой на символическую ссылку!)

color white/blue black/light-gray
default 0
timeout 4

title Xen Master
   root (hd0,1)
   kernel /boot/xen-3.0.gz dom0_mem=256M
   module /boot/vmlinuz-xen root=/dev/sda2
   module /boot/initrd-xen

title SUSE Linux 10.0
   root (hd0,1)
   kernel /boot/vmlinuz root=/dev/sda2 resume=/dev/sda1
   initrd /boot/initrd

Далее вы можете активировать службу Xen:

/etc/init.d/xend start
insserv –d xend

И в завершение перезагружаем систему:

reboot

После перезагрузки необходимо создать файловую систему, которая будет root filesystem для вашего domU. Если у вас установлен пакет lvm и создана группа томов вы можете создать файловую систему по следующему примеру:

Этот пример создаст том, названный root с размером 8 GB в группе томов xenvg:

lvcreate -L 8g -n root xenvg

Теперь вы можете создать файловую систему reiser на этом томе и смонтировать его:

mkfs -t reiserfs /dev/xenvg/root
mkdir /var/tmp/dirinstall
mount -t reiserfs /dev/xenvg/root /var/tmp/dirinstall

Теперь вы можете заполнить эту файловую систему с

yast dirinstall

или с

yast2 dirinstall

Это запустит модуль YAST названный "dirinstall". Выберите все пакеты которые вы желаете установить. Как альтернативу, вы можете выбрать другую целевую директорию, например

/mnt если вы смонтировали там вашу файловую систему.

Нажмите "Next",и все выбранные пакеты будут установлены. В завершение выйдете из YAST .

Теперь вы должны создать несколько дополнительных элементов:

cd /var/tmp/dirinstall
cp /boot/*xen* ./boot
cp -ax /lib/modules/`uname -r` /var/tmp/dirinstall/lib/modules/
echo "/dev/hda1 / reiserfs defaults 1 1" > ./etc/fstab
rm -f ./etc/mtab
sed -ie "s/^[2-6]:/#\\0/" ./etc/inittab
cp /etc/passwd /etc/shadow ./etc ###optional
cp /etc/ssh/sshd_config ./etc/ssh/sshd_config ###optional
cp /var/adm/YaST/ProdDB/prod_* ./var/adm/YaST/ProdDB
cd /
umount /var/tmp/dirinstall

Ваш domU теперь создан. Теперь необходимо создать конфигурацию domU. Следующий пример представляет конфигурационный файл /etc/xen/inhouse для domU "inhouse":

#  -*- mode: python; -*-

# configuration name:
name     = "inhouse"

# usable ram:
memory   = 2048

# kernel und initrd:
kernel   = "/boot/vmlinuz-xen"
ramdisk  = "/boot/initrd-xen"

# boot device:
root     = "/dev/hda1"

# boot to run level:
extra    = "3"

# network interface:
vif      = [ 'mac=aa:cc:00:00:00:01, bridge=xenbr0' ]
dhcp     = "dhcp"
hostname = name

# storage devices:
disk     = [ 'phy:xenvg/root,hda1,w' ]

В opensuse вы должны дать mac адрес для вашего domU интерфейса(сов). Если вы этого не сделаете, ваш сетевой интерфейс для domU будет изменятся при каждой загрузке domU. Это происходит под влиянием системы udev.

Теперь вы можете загрузить этот domU:

xm create -c /etc/xen/inhouse

Больше информации об управлении domUs можно получить командой:

xm help --long

Выявление неисправностей сети

Совет Kurt Garloff из команды SuSE:
Для создания сети для Dom0 работающей в SuSE вы должны поднять вашу сеть по следующему примеру:

  1. выбрать 'классический' путь настройки сетевых подключений (без 'NetworkManager', как предписывается Yast)
  2. поставить STARTMODE of ifplugd на 'onboot' (по умолчанию 'on connect')
  3. выключить или правильно сконфигурировать SuSEfirewall2
  4. включить ip_forward (используя Yast или sysctl.conf)"

После перезагрузки, brctl должен показать что-то вроде следующего:

xenmaster:~ # brctl show
bridge name     bridge id               STP enabled     interfaces
xenbr0          8000.feffffffffff       no              vif0.0
                                                        peth0

Если xenbr0 не показывает подключенных интерфейсов, сетевое подключение вашего DomU не удалось. Большое спасибо Kurt Garloff за его усилия в представлении Xen RPM's!

Как настроить SuSEfirewall2 на разрешение xenbr0 траффика

(основано на SuSE 10.1)

Симптомы: У нас есть загруженный Xen-kernel и нет исходящего траффика dom0. Это происходит вследствие блокировки пакетов файерволом.

Решение: Включить xenbr0 forwarding:

  1. открыть файл /etc/sysconfig/SuSEfirewall2 в вашем любимом текстовом редакторе.
  2. в строке 33 изменить FW_FORWARD_ALWAYS_INOUT_DEV="" на FW_FORWARD_ALWAYS_INOUT_DEV="xenbr0".
  3. перезагрузить файервол: /etc/init.d/SuSEfirewall2_setup restart.


Теперь вы должны быть способны пропинговать любой сетевой адрес.