Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #89, МАЙ 2006 г.

Искусство виртуализации

Евгений Зобнин aka j1m

Хакер, номер #089, стр. 089-094-3


Для сборки собственного ядра для Xen необходимо выполнить ряд операций. В первую очередь запускаем конфигуратор ядра-супервизора:

# cd linux-2.6.12-xen0

# make ARCH=xen menuconfig

Конфигурируем в соответствии со своими потребностями, не забыв включить опции:

XEN -> Privileged Guest (domain 0)

XEN -> Block-device backend driver

XEN -> Network-device backend driver

XEN -> Block-device frontend driver

XEN -> Network-device frontend driver

XEN -> Scrub memory before freeing it to Xen

Теперь запускаем конфигуратор ядра гостевой ОС:

# cd ../linux-2.6.12-xenU

# make ARCH=xen menuconfig

Делаем то же самое, за одним исключением: опции "XEN -> Privileged Guest (domain 0)" и "XEN -> Physical device access" в этом ядре совершенно бесполезны. И, наконец, собираем и устанавливаем ядра:

# cd ..

# make

# make install

Этап установки пройден, приступаем к конфигурированию. Для начала необходимо скопировать модули ядра xenU в корневую файловую систему гостевой ОС (допустим, она расположена на hda2):

# mkdir /mnt/guest

# mount /dev/hda2 /mnt/guest

# cp -a /lib/modules/2.6.12.6-xenU /mnt/guest/lib/modules

Осталось настроить grub (Lilo не поддерживается) для загрузки самого Xen и ядра-супервизора. Открываем /boot/grub/menu.lst и добавляем в него следующую запись:

# vi /boot/grub/menu.lst

title XenLinux

# раздел, на котором расположен каталог /boot

root (hd0,0)

# грузим Xen

kernel /boot/xen-3.0.gz dom0_mem=131072

# и ядро-супервизор

module /boot/vmlinuz-2.6.12-xen0 root=/dev/hda1 ro console=tty0

Здесь я предположил, что корень файловой системы твоего текущего Линукса находится на hda1. Аргумент dom0_mem указывает на количество памяти (в килобайтах), доступной ОС, работающей в качестве супервизора. Сколько отводить памяти, решай сам. Я обычно указываю половину от ее физического объема - остальное достанется гостевым ОС. Все, закончили. Теперь отправляй машину в перезагрузку, выбирай пункт XenLinux в меню grub и приготовься читать дальше :).

[пингвин внутри пингвина]

Парадоксально, но Xen, при всей своей сложности, на удивление легок в администрировании. Чтобы обучиться основам работы с Xen, можно вообще не читать документации.

Рассмотрим пример запуска дистрибутива Ubuntu Linux внутри виртуальной машины Xen. Для осуществления задуманного нам нужен сам дистрибутив Ubuntu, установленный на жесткий диск (в данном случае на раздел /dev/hda2), конфигурационный файл и немного знаний о Linux. В качестве примера для конфига возьмем файл /etc/xen/xmexample1, скопируем его в /etc/xen/ubuntu и немного подправим:

# vi /etc/xen/ubuntu

# наше ядро для гостевой ОС

kernel = "/boot/vmlinuz-2.6.12-xenU"

Назад на стр. 089-094-2  Содержание  Вперед на стр. 089-094-4