вторник, 4 ноября 2014 г.

Zookeeper

Запуск ZK в режиме кластера

Такой режим в отличии от ZK работающего с одного, единственного сервера, обеспечивает некоторую отказоустойчивость. Сервис работоспособен пока функционирует больше половины ZK нод кластера, поэтому желательно иметь нечетное кол-во нод в кластере.
Для примера, кластер из трех нод переживает падение одной ноды. Кластер из четырех нод не переживает падение двух нод, но кластер из пяти нод уже переживает падение двух нод.

apt-get install zookeeper zookeeperd

Настраиваем размер "кучи" (heap) в java.
В файле /etc/zookeeper/conf/environment прописываем максимальный размер кучи в JAVA_OPTS. Например ключом -Xmx в 800Мб:

JAVA_OPTS="-Xmx800m"

Zookeeper'у категорически противопоказан своп данных на диск (в противном случае про адекватную производительность можно забыть), следовательно на машинах все ресурсы которых предназначены для ZK, например можно смело выставить максимальный размер heap в 3Гб для машины с 4Гб памяти.

Настраиваем основной конфиг /etc/zookeeper/conf/zoo.cfg


# Миллисекунд в каждом tick (Tick внутренняя единица измерения в ZK, используется для задания таймаутов и т.д.)
tickTime=2000

# Время в tick, разрешенное клиентам для подключения и синхронизации с мастер нодой. Увеличение этого значение как правило необходимо при большом объеме данных управляемых ZK.
initLimit=10

# Время в tick между отправкой запроса и получением подтверждения
syncLimit=5

# Директория для хранения снапшотов
dataDir=/var/lib/zookeeper

# Включение данной опции указывает альтернативную директорию для хранения файлов журнала транзакций (вместо пути заданном опцией dataDir). Улучшает производительность при выносе хранения журналов транзакций на отдельный физический диск от диска со снапшотами
# dataLogDir=/disk2/zookeeper

# Порт для клиентских подключений
clientPort=2181

#Список всех ZK нод
#Первый порт используется для подключения к мастер ноде
#Второй для выбора/перевыбора мастер ноды
#server.1=zookeeper1:2888:3888
#server.2=zookeeper2:2888:3888
#server.3=zookeeper3:2888:3888

#Количество зарезервированного дискового пространства под файл журнала транзакций. По #умолчанию 64Мб.
#preAllocSize=65536

#В случае когда рейт клиентских запросов превышает скорость их обработки ZK, все #избыточные запросы становятся в очередь. Максимальный размер очереди регулируется с #помощью опции GlobalOutstandingLimit (по умолчанию равное 1000). ZK логирует #транзакции в файл журнала транзакций. По достижению значения опции snapCount, лог файл #ротируется. SnapCount по умолчанию равен 10000.
#snapCount=1000

#Если опция задана, то запросы будут логироваться в файл трассировки с именем #traceFile.year.month.day.
#traceFile=

# Мастер сервер принимает клиентские запросы и координирует обновления. По умолчанию #"yes". Для увеличения производительности на запись, за счет небольших потерь на операциях #чтения, есть возможность настройки сервера в режим с отключением приема клиентских #запросов, тем самым освобождая ресурсы под координацию.
#leaderServes=yes

/etc/zookeeper/conf/myid


В файл /etc/zookeeper/conf/myid прописываем уникальный id для каждого ZK инстанса

Пример лога запуска мастера:

2014-09-25 01:19:23,734 - INFO  [WorkerReceiver Thread:FastLeaderElection@496] - Notification: 2 (n.leader), 0 (n.zxid), 2 (n.round), LOOKING (n.state), 1 (n.sid), LOOKING (my state)
2014-09-25 01:19:23,935 - INFO  [QuorumPeer:/0:0:0:0:0:0:0:0:2181:QuorumPeer@655] - LEADING
2014-09-25 01:19:23,935 - INFO  [QuorumPeer:/0:0:0:0:0:0:0:0:2181:ZooKeeperServer@154] - Created server with tickTime 2000 minSessionTimeout 4000 maxSessionTimeout 40000 datadir /var/lib/zookeeper/version-2 snapdir /var/lib/zookeeper/version-2
2014-09-25 01:19:23,936 - INFO  [QuorumPeer:/0:0:0:0:0:0:0:0:2181:FileSnap@82] - Reading snapshot /var/lib/zookeeper/version-2/snapshot.0
2014-09-25 01:19:23,937 - INFO  [QuorumPeer:/0:0:0:0:0:0:0:0:2181:FileTxnSnapLog@254]  Snapshotting: 0
2014-09-25 01:19:23,944 - INFO  [LearnerHandler-/192.168.1.153:35897:LearnerHandler@249] - Follower sid: 1 : info : org.apache.zookeeper.server.quorum.QuorumPeer$QuorumServer@7c316b47
2014-09-25 01:19:23,944 - INFO  [LearnerHandler-/192.168.1.153:35897:LearnerHandler@273] - Synchronizing with Follower sid: 1 maxCommittedLog =0 minCommittedLog = 0 peerLastZxid = 0
2014-09-25 01:19:23,945 - INFO  [LearnerHandler-/192.168.1.153:35897:LearnerHandler@357] - Sending snapshot last zxid of peer is 0x0  zxid of leader is 0x100000000sent zxid of db as 0x0
2014-09-25 01:19:23,949 - WARN  [LearnerHandler-/192.168.1.153:35897:Leader@492] - Commiting zxid 0x100000000 from /192.168.1.154:2888 not first!
2014-09-25 01:19:23,950 - WARN  [LearnerHandler-/192.168.1.153:35897:Leader@494] - First is 0
2014-09-25 01:19:23,950 - INFO  [LearnerHandler-/192.168.1.153:35897:Leader@518] - Have quorum of supporters; starting up and setting last processed zxid: 4294967296

лог запуска слейва:

2014-09-25 01:19:23,961 - INFO  [WorkerReceiver Thread:FastLeaderElection@496] - Notification: 2 (n.leader), 0 (n.zxid), 2 (n.round), LOOKING (n.state), 1 (n.sid), LOOKING (my state)
2014-09-25 01:19:24,162 - INFO  [QuorumPeer:/0:0:0:0:0:0:0:0:2181:QuorumPeer@643] - FOLLOWING
2014-09-25 01:19:24,162 - INFO  [QuorumPeer:/0:0:0:0:0:0:0:0:2181:ZooKeeperServer@154] - Created server with tickTime 2000 minSessionTimeout 4000 maxSessionTimeout 40000 datadir /var/lib/zookeeper/version-2 snapdir /var/lib/zookeeper/version-2
2014-09-25 01:19:24,172 - INFO  [QuorumPeer:/0:0:0:0:0:0:0:0:2181:Learner@294] - Getting a snapshot from leader
2014-09-25 01:19:24,174 - INFO  [QuorumPeer:/0:0:0:0:0:0:0:0:2181:Learner@326] - Setting leader epoch 1
2014-09-25 01:19:24,175 - INFO  [QuorumPeer:/0:0:0:0:0:0:0:0:2181:FileTxnSnapLog@254] - Snapshotting: 0

Типичные операции


Коннектимся к ZK:

/usr/share/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181

Создание ноды:

[zk: 127.0.0.1:2181(CONNECTED) 14] create /test 1
Created /test

Просмотр списка нод в директории

[zk: 127.0.0.1:2181(CONNECTED) 3] ls /
[test, zookeeper]
[zk: 127.0.0.1:2181(CONNECTED) 6] ls /zookeeper
[quota]

Получение метаданных ноды:

[zk: 127.0.0.1:2181(CONNECTED) 9] get /zookeeper/quota

cZxid = 0x0
ctime = Thu Jan 01 03:00:00 MSK 1970
mZxid = 0x0
mtime = Thu Jan 01 03:00:00 MSK 1970
pZxid = 0x0
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 0

Изменение данных ноды (переписываем 1 на 2):

[zk: 127.0.0.1:2181(CONNECTED) 20] get /test
1
cZxid = 0x1400000006
ctime = Tue Nov 04 22:07:45 MSK 2014
mZxid = 0x1400000006
mtime = Tue Nov 04 22:07:45 MSK 2014
pZxid = 0x1400000006
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 1
numChildren = 0
[zk: 127.0.0.1:2181(CONNECTED) 22] set /test 2
cZxid = 0x1400000006
ctime = Tue Nov 04 22:07:45 MSK 2014
mZxid = 0x1400000007
mtime = Tue Nov 04 22:09:39 MSK 2014
pZxid = 0x1400000006
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 1
numChildren = 0
[zk: 127.0.0.1:2181(CONNECTED) 23] get /test
2
cZxid = 0x1400000006
ctime = Tue Nov 04 22:07:45 MSK 2014
mZxid = 0x1400000007
mtime = Tue Nov 04 22:09:39 MSK 2014
pZxid = 0x1400000006
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 1
numChildren = 0

Удаление ноды:

[zk: 127.0.0.1:2181(CONNECTED) 24] delete /test
[zk: 127.0.0.1:2181(CONNECTED) 25] ls /
[zookeeper]

среда, 27 августа 2014 г.

Libvirt - пулы, тома

Пулы и тома стораджей не требуются для нормальной работы ВМ, но желательны, так как дают важные преимущества. За счет возможности удаленного сетевого доступа к libvirt появляется возможность удаленного управления всеми аспектами жизненного цикла ВМ в пределах функциональности libvirt API.
Использование libvirt стораджей например избавляет от нужды по настройке монтирования NFS шар и необходимости в ручной правке fstab файла и т.д. Например если определенный пул настроен на автозапуск, то libvirt автоматически замонтирует необходимый ему раздел.

Пулы бывают следующих типов:

Directory - данный тип пула предназначен для работы с файлами образов в форматах raw, qcow2, qcow, cow, vmdk, bochs, cloop, dmg, iso, qed, vpc, ... (т.е. всех форматах поддерживаемых утилитой qemu-img) при размещении в директории. Если каталог отсутствует в момент запуска пула, то с помощью операции "build" утилиты virsh его можно создать

Local filesystem - разновидность предыдущего типа пула, но вместо создания каталога на уже существующей примонтированной файловой системе, используется блочное устройство. Устройство будет примонтировано при работе с ним. По умолчанию хост-система автоматически определяет тип ФС на устройстве, но при желании его можно указать вручную
Поддерживаемые ФС:
auto (автоматическое определение формата), ext2, ext3, ext4, ufs, iso9660, udf, gfs, gfs2, vfat, hfs+, xfs, ocfs2

NFS - тоже самое что и local filesystem, только вместо обращения к локальному блочному устройству, необходимо указать хост и название экспортируемого каталога. Libvirt примонтирует сетевую ФС в указанном каталоге при работе с ней. По умолчанию в качестве протокола передачи данных используется NFS, так же поддерживается glusterfs, cifs

Logical - пул на базе LVM volume group. Для уже созданных LVM групп достаточно указать имя группы, но для создания новой группы требуется передать список устройств источников, которые будут выступать в качестве LVM PV

Disk - тип пула на основе физического диска. Тома создаются путем добавления разделов на диск. Пулы имеют ограничения по размеру и по размещению томов. Данный тип пула поддерживает следующие форматы таблиц разделов: dos, dvh, gpt, mac, bsd, pc98, sun, lvm2

iSCSI - пул на базе iSCSI устройства. Том должен быть предварительно создан на iSCSI сервере и не может быть создан через Libvirt API. Из-за того что /dev/xxx имена могут меняться, рекомендуется настраивать том на использование таких путей как /dev/disk/by-path или /dev/disk/by-id. Они обеспечивают постоянное, стабильное именование логических устройств.

SCSI - пул на базе SCSI. Том должен быть предварительно создан на iSCSI сервере и не может быть создан через Libvirt API. Из-за того что /dev/xxx имена могут меняться, рекомендуется настраивать том на использование таких путей как /dev/disk/by-path или /dev/disk/by-id. Они обеспечивают постоянное, стабильное именование логических устройств.

Miltipath - 

RADOS block device -

Sheepdog - 

Больше информации здесь: http://libvirt.org/storage.html http://libvirt.org/formatstorage.html

Cоздание пула директорий на локальной хост-системе


Синтаксис команды для создания нового пула:

virsh pool-create-as name --print-xml type [source-host] [source-path] [source-dev] [source-name] [<target>] [--source-format format]


mkdir -p /pools/directory_backend

генерируем конфиг для пула и складываем соответствующую пулу xml'ку в каталог с конфиг.файлами libvirtd

virsh pool-define-as directory_backend --print-xml dir - - - - /pools/directory_backend > /etc/libvirt/qemu/directory_backend.xml

содержимое xml:

<pool type='dir'>
  <name>directory_backend</name>
  <source>
    <host name='-'/>
    <dir path='-'/>
    <device path='-'/>
    <name>-</name>
  </source>
  <target>
    <path>/pools/directory_backend</path>
  </target>
</pool>

на основе конфига создаем пул

virsh pool-define /etc/libvirt/qemu/directory_backend.xml

и запускаем его

virsh pool-start directory_backend

выводим информацию о новом пуле

virsh pool-list --details --all
Name               State    Autostart  Persistent  Capacity  Allocation  Available
----------------------------------------------------------------------------------
directory_backend  running  no         yes         92.98 GB    13.15 GB   79.82 GB

После того как заведен пул, появляется возможность создания томов для него

синтаксис команды создания томов

virsh vol-create-as pool-or-uuid name capacity [--allocation size] [--format string] [--backing-vol vol-name-or-key-or-path] [--backing-vol-format string]

pool-or-uuid - имя пула или uuid
name - название тома
capacity - размер тома
--allocation - предположительно, размер одномоментно аллоцированного под том, дискового пространства на хост-системе
--format - значение используемое с файлоориентированными пулами для определения используемого формата файлов raw, bochs, qcow, qcow2, vmdk
--backing-vol - том который будет использован при снятии snapshot'а с существующего тома
--backing-vol-format - формат backing тома, raw, bochs, qcow, qcow2, vmdk, host_device

Для возможности снятия snapshot'ов с будущего создаваемого тома, вначале создадим том для использования опций "--backing-vol" и "--backing-vol-format"

virsh vol-create-as directory_backend backing_vol 10G

теперь создадим непосредственно сам рабочий том

virsh vol-create-as directory_backend new_vol 40G --allocation 10G --format raw --backing-vol backing_vol --backing-vol-format raw

смотрим информацию о пулах

virsh vol-list directory_backend --details


Name         Path                                  Type  Capacity  Allocation
-----------------------------------------------------------------------------
backing_vol  /pools/directory_backend/backing_vol  file  10.00 GB    10.00 GB
new_vol      /pools/directory_backend/new_vol      file  40.00 GB    40.00 GB

на диске это все выглядит примерно так

[root@laborant directory_backend]# ls -lh /pools/directory_backend/
total 21G
-rw------- 1 libvirt-qemu kvm 10G Jul 30 11:23 backing_vol
-rw------- 1 libvirt-qemu kvm 40G Jul 30 12:48 new_vol


создание ВМ с томом new_vol:

virt-install --name nfs1.local.lan --arch x86_64 --ram 1024 --disk vol=directory_backend/new_vol --cdrom /images/ubuntu-12.04.2-server-amd64.iso --graphics vnc,listen=0.0.0.0,port=5901,password=secret --network bridge=br0 --virt-type kvm --cpu Nehalem --description "test machine"

...

Libvirt - Virt-install


Базовые опции:


-n NAME имя

-r MEMORY кол-во оперативной памяти в мегабайтах

--arch=ARCH архитектура ВМ, если не указано, то будет использоваться архитектура хост-систем. x86_64 для 64-разрядных систем и i686 для 32-разрядных

--machine=MACHINE тип эмулируемой машины для Xen/KVM машин необязательный параметр. Как правило используется при работе с малораспространенными архитектурами

-u UUID, --uuid=UUID возможность вручную указать UUID для ВМ, по умолчанию генерируется случайное значение

--numatune=NODESET,[mode=MODE]
настройка NUMA

--vcpus=VCPUS[,maxvcpus=MAX][,sockets=#][,cores=#][,threads=#]
кол-во виртуальных процессоров, сокетов, ядер и потоков доступных ВМ, если maxvcpus задан, то ВМ в процессе работы будет иметь возможность на лету подключить указанное в maxvcpus кол-во процессоров, но изначально ВМ стартует с кол-вом процессоров указанных в vcpus.
Отсутствующие значения будут подобраны автоматически.

--cpuset=CPUSET указывается какими физическими процессорами хост-системы может пользоваться создаваемая ВМ. Примеры:

0,2,3,5     : использовать процессоры 0,2,3 and 5
1-5,^3,8    : использовать процессоры 1,2,4,5 and 8

Если выставлено значение auto, то virt-install попытается автоматически определить оптимальный процессор, используя NUMA данные, если они имеются

--cpu MODEL[,+feature][,-feature][,match=MATCH][,vendor=VENDOR]
модель процессора и его характеристики. Значение для MODEL можно взять из /usr/share/libvirt/cpu_map.xml файла libvirt'а:

<model name='486'>
<model name='pentium'>
<model name='486'/>
<model name='pentium2'>
<model name='pentium'/>
<model name='pentium3'>
<model name='pentium2'/>
<model name='pentiumpro'>
<model name='qemu32'>
<model name='pentiumpro'/>
<model name='coreduo'>
<model name='pentiumpro'/>
<model name='qemu64'>
<model name='pentiumpro'/>
<model name='core2duo'>
<model name='pentiumpro'/>
<model name='phenom'>
<model name='pentiumpro'/>
<model name='athlon'>
<model name='pentiumpro'/>
<model name='n270'>
<model name='pentiumpro'/>
<model name='Conroe'>
<model name='Penryn'>
<model name='Nehalem'>
<model name='Westmere'>
<model name='Nehalem'/>
<model name='Opteron_G1'>
<model name='Opteron_G2'>
<model name='Opteron_G3'>

Характеристики можно задать либо политиками libvirt, либо используя сокращения на подобии таких как '+feature' и '-feature' или же эквивалентное им force=feature' и 'disable=feature' соответственно. Примеры:

--cpu core2duo,+x2apic,disable=vmx
экспонировать core2duo с включенным x2apic, но выключенным vmx
--cpu host
экспонировать процессор хост-системы (при миграции ВМ могут быть проблемы, если процессоры хост-систем не идентичны)

--description комментарий к ВМ (хранится в xml конфиге машины для доступа других приложений)

--security type=TYPE[,label=LABEL][,relabel=yes|no]
настройка режима безопасности

Пример создания 64-разрядной Nehalem машины с оперативной памятью объемом 1Гб, блочным устройством /dev/vg_main/lv_dns_slave для хранения данных, виртуальным приводом с ISO образом /images/ubuntu-12.04.2-server-amd64.iso, доступом по VNC через порт 5901 с паролем secret, сетью настроенной на работу через мост, гипервизором KVM:

virt-install --name dns2.local.lan --arch x86_64 --ram 1024 --disk /dev/vg_main/lv_dns_slave --cdrom /images/ubuntu-12.04.2-server-amd64.iso --graphics vnc,listen=0.0.0.0,port=5901,password=secret --network bridge=br0 --virt-type kvm --cpu Nehalem --description "test machine"

Опции методов инсталляции:


-c CDROM, --cdrom=CDROM  файл или устройство используемое как виртуальный CD-ROM привод для ВМ. Это может быть как ISO образ, так и реальное CD-ROM устройство, так же может быть в виде URL указывающий на загрузочный ISO образ. Если привод указан с помощью опции "--disk", а не через "--cdrom", то он будет использовать в качестве установочного носителя.

-l LOCATION, --location=LOCATION Источник доступа к загрузочном ядру/initrd при инсталяции. С libvirt 0.9.4 или более поздних, сетевые URL работают для удаленных подключений. Virt-install скачивает загрузочное ядро/initrd на локальный хост и затем закачивает его в загрузочный носитель удаленного хоста. Для работы данной опции необходимо, чтобы URL была доступна как для локального хоста, так и для удаленного.
Может принимать одну из форм:

директория
путь к локальной директории содержащей инсталляционные образы

nfs:host:/path or nfs://host/path
путь к NFS серверу с инсталяционными образами

http://host/path
путь к HTTP сервер с инсталяционными образами

ftp://host/path
путь к FTP серверу с инсталяционными образами

Пару URL для примера:

Fedora/Red Hat Based
http://download.fedoraproject.org/pub/fedora/linux/releases/10/Fedora/i386/os/

Debian/Ubuntu
http://ftp.us.debian.org/debian/dists/etch/main/installer-amd64/

Suse
http://download.opensuse.org/distribution/11.0/repo/oss/

Mandriva
ftp://ftp.uwsg.indiana.edu/linux/mandrake/official/2009.0/i586/

Mageia
ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia/distrib/1

Пример создания машины с использованием "--location":

[root@laborant qemu]# virt-install --name dns2.local.lan --vcpus=2 --ram 1024 --disk /dev/vg_main/lv_dns_slave --graphics vnc,listen=0.0.0.0,port=5921,password=secret --network bridge=br0 --virt-type kvm --description="test machine" --cpu Nehalem --location http://mirror.yandex.ru/debian/dists/wheezy/main/installer-amd64/

Starting install...
Retrieving file MANIFEST...                                                                                       | 3.3 kB     00:00 ...
Retrieving file linux...                                                                                                    | 5.4 MB     00:01 ...
Retrieving file initrd.gz...                                                                                               |  20 MB     00:02 ...
Creating domain...                                                                                                       |    0 B     00:01

--pxe запуск машины с сетевой загрузкой по протоколу PXE

--import пропустить процесс инсталяции. Загрузка с носителей указаных в "--disk" или "--filesystem"

--init=INITPATH Path to a binary that the container guest will init. If a root "--filesystem" is has been specified, virt-install will default to /sbin/init, otherwise will default to /bin/sh.

--livecd включить загрузку с live CD на постоянной основе. Желательно использовать в комбинации с ключом "--nodisks"

-x EXTRA, --extra-args=EXTRA передача параметров ядру при установке машины с ключом "--location". Часто используется для указания Anaconda инсталятору kickstart файла для автоматической установки, например: --extra-args "ks=http://myserver/my.ks"

--initrd-inject=PATH добавление пути к корню initrd при установке через "--location". Может быть использовано для запуска автоматической установки без сетевого доступа к kickstart файлу, например: --initrd-inject=/path/to/my.ks --extra-args "ks=file:/my.ks"

--os-type=OS_TYPE оптимизация настроек ВМ под тип используемой ОС (linux, windows). Попытка подобрать наиболее подходящие настройки ACPI, APIC, оптимальный драйвер мыши, virtio и т.д. По умолчанию virt-install автоматически определяет это значение по установочному носителю (поддерживается только для URL).
Автоопределение может быть отключено установкой значения "none".

--os-variant=OS_VARIANT дальнейшая оптимизация под используемую ОС (например под fedora 8, windows xp). Параметр является необязательным и не требует указания "--os-type"
Точно так же как и для "--os-type" по умолчанию автоматически определяется virt-install'ом по установочному носителю (на данный момент поддерживается только для носителей доступных через URL).
Автоопределение может быть отключено установкой значения "none".
При передаче значения "list" virt-install выведет список всех возможных значений

win7                 : Microsoft Windows 7
vista                : Microsoft Windows Vista
winxp64              : Microsoft Windows XP (x86_64)
winxp                : Microsoft Windows XP
win2k                : Microsoft Windows 2000
win2k8               : Microsoft Windows Server 2008
win2k3               : Microsoft Windows Server 2003
openbsd4             : OpenBSD 4.x
freebsd8             : FreeBSD 8.x
freebsd7             : FreeBSD 7.x
freebsd6             : FreeBSD 6.x
solaris9             : Sun Solaris 9
solaris10            : Sun Solaris 10
opensolaris          : Sun OpenSolaris
netware6             : Novell Netware 6
netware5             : Novell Netware 5
netware4             : Novell Netware 4
msdos                : MS-DOS
generic              : Generic
debianwheezy         : Debian Wheezy
debiansqueeze        : Debian Squeeze
debianlenny          : Debian Lenny
debianetch           : Debian Etch
fedora16             : Fedora 16
fedora15             : Fedora 15
fedora14             : Fedora 14
fedora13             : Fedora 13
fedora12             : Fedora 12
fedora11             : Fedora 11
fedora10             : Fedora 10
fedora9              : Fedora 9
fedora8              : Fedora 8
fedora7              : Fedora 7
fedora6              : Fedora Core 6
fedora5              : Fedora Core 5
mageia1              : Mageia 1 and later
mes5.1               : Mandriva Enterprise Server 5.1 and later
mes5                 : Mandriva Enterprise Server 5.0
mandriva2010         : Mandriva Linux 2010 and later
mandriva2009         : Mandriva Linux 2009 and earlier
rhel6                : Red Hat Enterprise Linux 6
rhel5.4              : Red Hat Enterprise Linux 5.4 or later
rhel5                : Red Hat Enterprise Linux 5
rhel4                : Red Hat Enterprise Linux 4
rhel3                : Red Hat Enterprise Linux 3
rhel2.1              : Red Hat Enterprise Linux 2.1
sles11               : Suse Linux Enterprise Server 11
sles10               : Suse Linux Enterprise Server
opensuse12           : openSuse 12
opensuse11           : openSuse 11
ubuntuquantal        : Ubuntu 12.10 (Quantal Quetzal)
ubuntuprecise        : Ubuntu 12.04 LTS (Precise Pangolin)
ubuntuoneiric        : Ubuntu 11.10 (Oneiric Ocelot)
ubuntunatty          : Ubuntu 11.04 (Natty Narwhal)
ubuntumaverick       : Ubuntu 10.10 (Maverick Meerkat)
ubuntulucid          : Ubuntu 10.04 LTS (Lucid Lynx)
ubuntukarmic         : Ubuntu 9.10 (Karmic Koala)
ubuntujaunty         : Ubuntu 9.04 (Jaunty Jackalope)
ubuntuintrepid       : Ubuntu 8.10 (Intrepid Ibex)
ubuntuhardy          : Ubuntu 8.04 LTS (Hardy Heron)
virtio26             : Generic 2.6.25 or later kernel with virtio
generic26            : Generic 2.6.x kernel
generic24            : Generic 2.4.x kernel

--boot=BOOTOPTS возможность настроить послеустановочную загрузку машины, такие вещи как порядок загрузки с различных устройств, загрузку с постоянной передачей ядру определенных параметров и включение меню загрузки BIOS
Пример:

--boot cdrom,fd,hd,network,menu=on
установка приоритета устройств для загрузки - cdrom, floppy, hard disk, сетевая загрузка по pxe. Плюс включение меню загрузки BIOS

--boot kernel=KERNEL,initrd=INITRD,kernel_args="console=/dev/ttyS0"
загрузка с локального ядра/initrd с указанными параметрами ядра

Настройки стораджа

 

--disk=DISKOPTS указание стораджа используемого для хранения данных ВМ

path - путь к стораджу, уже созданному или нет. Стораджем может быть как файл, так и блочное устройство. При использовании стораджа размещенного на удаленном хосте, он должен быть доступен хост-системе как libvirt storage volume.
Указания несуществующего пути подразумевает попытку создания нового стораджа, поэтому потребуется указать параметр "size". Если пул расположен на локальном хосте, то новый сторадж будет создан как новый том. При расположении стораджа на удаленном хосте необходимо ссылаться на уже готовый пул.

pool - задать имя пула на котором будет создан новый том, так же необходимо задать размер будущего тома параметром "size"

vol - задать имя используемого тома. Задается как 'poolname/volname'

Другие доступные опции:

...