Эмуляционные домены Xen
Материал из Xgu.ru
- Короткий URL: xen/stubdom
В Xen 3.3 появилась новая сущность --- эмуляционные домены (emulation domains, stub domains). Эмуляционный домен -- это специальный PV-домен, использующийся в паре с HVM-доменом для организации его ввода/вывода. Внутри эмуляционного домена работает легковесная операционная система, Mini-OS.
Ранее ввод/вывод осуществлялся через процессы эмулятора (qemu-dm), которые работали непосредственно в домене 0. При использовании эмуляционного домена HVM-домен осуществляет ввод/вывод не через эмуляционные процессы, исполняющиеся в домене 0, а через этот домен.
Использование эмуляционных доменов позволяет повысить уровень изоляции доменов, производительности ввода/вывода для HVM-доменов, а также даёт возможность её более гибкого регулирования.
Содержание |
[править] Настройка
Из-за гонок, возникающих при создании эмуляционного домена и выделением видеопамяти HVM-домену, нужно избегать использования balloon-драйвера. Для этого необходимо использовать при загрузке гипервизора параметр dom0_mem= .
Примеры настройки есть в файлах xmexample.hvm-stubdom и xmexample.hvm-dm в дистрибутиве Xen. |
В конфигурационном файле HVM-домена /etc/xen/hvmconfig-stubdom:
- В качестве скрипта device-model нужно указать stubdom-dm (или с полным путём /usr/lib/xen/bin/stubdom-dm; путь уточняется для дистрибутива).
device_model = '/usr/lib/xen/bin/stubdom-dm'
- Нужно закомментировтаь запись disk:
#disk = [ 'file:/tmp/install.iso,hdc:cdrom,r', 'phy:/dev/sda6,hda,w', 'file:/tmp/test,hdb,r' ]
- Нужно отключить все записи, относящиеся к домену 0, например, такие как pty=serial.
После этого необходимо создать конфигурационный файл для
эмуляционного домена
/etc/xen/hvmconfig-dm
Здесь hvmconfig -- имя HVM-домена.
В файле должно быть такое (или подобное) содержимое:
kernel = "/usr/lib/xen/boot/ioemu-stubdom.gz" vif = [ '', 'ip=10.0.1.1,mac=aa:00:00:12:23:34'] disk = [ 'file:/tmp/install.iso,hdc:cdrom,r', 'phy:/dev/sda6,hda,w', 'file:/tmp/test,hdb,r' ]
Здесь:
- первый сетевой интерфейс (vif ) зарезервирован для VNC; ниже подробности.
- строка 'ip=10.0.1.1,mac= etc...' --- обозначает то же самое, что и в обычном конфигурационном файле HVM-домена;
- disk --- параметр диск точно такой же, каким он указывается в HVM-домене.
[править] Настройка экрана
Есть три варианта.
Использовать SDL.
В hvmconfig нужно выключить vnc и sdl:
vnc = 0 sdl = 0
В файле hvmconfig-dm установить:
vfb = [ 'type=sdl' ]
Использовать VNC-сервер в эмуляционном домене.
В hvmconfig нужно установить параметр vnclisten равным IP-адресу, на котором будет доступен VNC-сервер. Нельзя использовать доменные имена (только IP-адреса), поскольку у MiniOS нет своего резолвера (клиента DNS). Нельзя использовать 127.0.0.1, потому что тогда не получится подключиться к этому интерфейсу извне.
vnc = 1 vnclisten = "172.30.206.1"
В файле hvmconfig-dm указать в зарезервированном интерфейсе тот же самый IP-адрес, например:
vif = [ 'ip=172.30.206.1', 'ip=10.0.1.1,mac=aa:00:00:12:23:34']
Использовать VNC-сервер в домене 0.
В hvmconfig-stubdom нужно выключить vnc и sdl:
vnc = 0 sdl = 0
В файле hvmconfig-dm установить:
vfb = [ 'type=vnc' ]
(и другие параметры, если они нужны).
[править] Запуск
mkdir -p /exports/usr/share/xen/qemu ln -s /usr/share/xen/qemu/keymaps /exports/usr/share/xen/qemu mkdir -p /exports/var/lib ln -s /var/lib/xen /exports/var/lib /usr/sbin/fs-backend & xm create hvmconfig
[править] Дополнительная информация
|
---|