Конфигурационный файл Xen

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.


Автор: Игорь Чубин
Короткий 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'

[править] Дополнительная информация

Xen
Xen

Виртуализация и паравиртуализация
Эмуляция | Виртуализация | Паравиртуализация | Рекурсивная виртуализация
Паравиртуальные драйверы | Виртуализация ввода/вывода

Общие вопросы по Xen
Аппаратные требования Xen | Поддержка Xen операционными системами | Поддерживаемые аппаратные архитектуры |
Примеры использования Xen | Сравнение виртуальных машин |
Хостинг на Xen
Альтернативы Xen

свободные: KVM | LXC | OpenVZ | VServer | QEMU | VirtualBox
проприетарные: Hyper-V | VMware ESX Server

Технические вопросы
Инсталляция Xen | Конфигурационный файл домена
ОС в Xen: Linux small icon.png Linux | Solaris small icon.png OpenSolaris | Freebsd small icon.png FreeBSD | Openbsd small icon.png OpenBSD | Netbsd small icon.png NetBSD | Windows xp small icon.png Windows XP | Windows vista small icon.png Windows Vista
Устройства: Блочные | USB | SCSI | Сеть | PV-драйверы для Linux | PV-драйверы для Windows | Консоль

Распределение ресурсов между доменами | Перенос системы внутрь Xen | HVM -> PV

Управление и кластеризация | Enomalism | Xen+DRBD | Ganeti | Convirt 2.0 | SkyCover Infrastructure