Конфигурационный файл Xen
Материал из Xgu.ru
- Автор: Игорь Чубин
- Короткий URL: xen/config
Содержание |
[править] Каталог с конфигурационным файлом
Конфигурационный файл домена Xen это скрипт на языке python. Он обрабатывается при создании домена; в результате обработки скрипт должен вернуть несколько переменных.
В файле /usr/lib/python/xen/xm/create.py есть строка
fn=set_value, default='.:/etc/xen',
Если заменить её на строку
fn=set_value, default='.:/etc/xen:/foo
конфигурационные файлы будут искаться в
- текущем каталоге
- каталоге /etc/xen
- каталоге /foo
[править] Расширенные возможности конфигурационных файлов доменов Xen
Конфигурационный файл xen — это питоновский скрипт. В нём могут применяться любые конструкции языка Python. Это делает конфигурирование доменов Xen очень гибким и эффективным.
Например, можно объединить конфигурационные файлы нескольких машин в один и для запуска любой из них использовать этот файл, с параметром, указывающим домен какой машины должен стартовать.
Если машины каким-то образом связаны между собой, необходимо где-то хранить информацию о конфигурации этих связей.
В частности:
- топологию сети,
- начальную привязку виртуальных машин к реальным,
- привязку drbd устройств к машинам
и т.д.
Можно прописать всё это в одном конфигурационном файле с параметрами.
И всё в одном файле + параметры передающиеся в командной строке
[править] Без конфигурационного файла
Домен можно стартовать и без конфигурационного файла (точнее, с пустым файлом). В этом случае нужно передавать все параметры как аргументы командной строки.
xm create /dev/null ramdisk=initrd.img \ kernel=/boot/vmlinuz-2.6.12.6-xenU \ name=ramdisk nics=0 vcpus=1 \ memory=64 root=/dev/ram0
Домен создаётся без использования конфигурационного файла (если быть более точным, то с использованием файла /dev/null в качестве пустого конфигурационного файла), используется указанное ядро и виртуальный диск, имя домена устанавливается равным ramdisk, виртуальная сеть отключена.
Если нужно передавать параметры disk и vif, то используется такой синтаксис:
disk=file:/imagex/disk1.img,hda2,r disk=file:/imagex/disk1.img,hda2,r
То есть, для каждого элемента списка создаётся отдельный аргумент.
[править] Типы виртуальных дисков
Источник: [1].
* make the xenstore reader in qemu-dm's startup determine which of qemu's block drivers to use according to the xenstore backend `type' field. This `type' field typically comes from the front of the drive mapping string in ioemu. The supported cases are: xm config file string `type' image format qemu driver phy:[/dev/]<device> phy raw image bdrv_raw file:<filename> file raw image bdrv_raw tap:aio:<filename> tap raw image bdrv_raw tap:qcow:<image> tap not raw autoprobe tap:<cow-fmt>:<image> tap named format bdrv_<cow-fmt> It is still necessary to autoprobe when the image is specified as `tap:qcow:<image>', because qemu distinguishes `qcow' and `qcow2' whereas blktap doesn't; `qcow' in xenstore typically means what qemu calls qcow2. This is OK because qemu can safely distinguish the different cow formats provided we know it's not a raw image.
О небольшой смене синтаксиса: [2] (необходимость использования ioemu: в HVM-доменах пропала).
[править] Примеры конфигурационных файлов
[править] Конфигурационный файл паравиртуального домена
# cat /etc/xen/debian-vm0 kernel = "/boot/vmlinuz-2.6.18-4-xen-686" ramdisk = "/boot/initrd.img-2.6.18-4-xen-686" memory = 256 name = "test" vif = [ 'bridge=dummy0br' ] disk = [ 'phy:/dev/PLAIN2/test,hda1,w' ] root = "/dev/hda1 ro" extra = "2"
[править] Конфигурационный файл HVM-домена
# cat /etc/xen/winxp kernel = "hvmloader" builder='hvm' memory = 512 name = "winxp" vcpus=1 pae=0 acpi=0 apic=0 cpus = "" vif = [ 'bridge=xenbr0' ] disk = [ 'file:/root/xenimages/winXP128.img,hda,w', 'file:/root/xenimages/en_winxp_pro_with_sp2.iso,hdc:cdrom,r' ] on_poweroff = 'destroy' on_reboot = 'destroy' on_crash = 'destroy' device_model = 'qemu-dm' boot='d' sdl=0 vnc=1 vncconsole=0 stdvga=0 serial='pty'
[править] Дополнительная информация
- xmdomain.cfg(5) — man-страница
- XenConfigurationDetails (англ.) — более подробно и более полно, чем в man'е
|
---|