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

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

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

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


[в чем подвох?]

Конечно, не обошлось и без подводных камней (вспоминается известная аксиома: "За все нужно платить"). Перечислю несколько ограничений, которые Xen накладывает на пользователя:

1. Для работы операционной системы в виртуальной машине Xen необходимо выполнить одно из следующих условий: наложить на ядро ОС специальный патч, который адаптирует ее к виртуальной машине (на данный момент патчи доступны для Linux, NetBSD и FreeBSD), либо купить процессор, поддерживающий технологию виртуализации (VT от Intel или Pacifica от AMD), тогда внутри виртуальной машины можно будет запустить хоть Windows XP.

2. Все ОС, запускаемые внутри виртуальной машины, не могут иметь общих разделов (во избежание порчи файловой системы) и должны использовать заранее выделенный для них участок оперативной памяти (всю имеющуюся оперативку нужно разделить на количество работающих ОС). Также понадобится отдельный своп для каждой гостевой ОС.

3. Xen не умеет разделять видеокарту между виртуальными машинами (я плохо представляю себе, как это вообще можно реализовать), поэтому придется поднимать на гостевой ОС VNC или использовать сетевой доступ к X-Window.

4. Драйвера nvidia отказываются работать в Xen.

[разводим питомник]

Как плацдарм для наших экспериментов будем использовать Linux. В таких дистрибутивах, как Fedora Core, Debian или SuSe, установить Xen можно, как обычный софт, используя стандартные средства (rpm, apt-get) - мы не будем рассматривать этот способ. А лучше скачаем и скомпилируем его своими руками (пользователям Slackware - привет). Сливаем тарболл отсюда: www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads/xen-3.0-testing-src.tgz, распаковываем в каталог /usr/src (рекомендую все делать в этом каталоге) и переходим в новообразованный каталог /usr/src/xen-3.0-testing. Для каждого ядра доступны патчи "ls patches". Мне достался Xen с патчами для версии 2.6.12. Берем тарболл linux-2.6.12.tar.bz2 и помещаем в корень текущего каталога (если ты собрался выкачивать ядро из инета, то не торопись - установщик сделает это сам). Теперь выполняем следующую последовательность действий:

# make

# make install

Так мы соберем два ядра для Xen с дефолтными конфигами и разместим их в каталоге /boot. Образ ядра с окончанием "-xen0" - супервизор, стандартное ядро с активированной поддержкой Xen и стандартным набором драйверов. Это ядро мы будем использовать вместо ядра, установленного в твоем дистрибутиве в данный момент. Второй образ, имеющий окончание "-xenU" - ядро, которое следует использовать в гостевых ОС (точнее дистрибутивах Linux), а драйвера, непосредственно работающие с железом, в нем заменены прослойкой эмуляции.

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