Программа xm это главный интерфейс по управлению гостевыми доменами Xen.
С её помощью можно создавать, приостанавливать и останавливать домены, а также
просматривать список доменов, управлять количеством и привязкой виртуальных процессоров,
подключать и отключать виртуальные устройства.
Базовая структура любой xm-команды всегда одинаковая:
xm <subcommand> <domain-id> [OPTIONS]
где subcommand одна из перечисленных ниже подкоманд, domain-id численный идентификатор или имя домена
(которое может иметь внутреннюю привязку к идентификатору), а OPTIONS это опции, специфичные для подкоманды.
Есть несколько исключений, когда xm действует на все домены, хост-систему или гипервизор Xen. Эти исключения
подробно описаны ниже.
Замечания
Все операции xm выполняются с помощью управляющего демона Xen,
известного как xend.
Поэтому обычно xend запускают как службу во время загрузки машины.
Большинству xm-команд нужны привилегии суперпользователя,
для того чтобы пользоваться каналами связи с гипервизором.
Выполнение не от root'а обычно приводит к ошибке.
Большинство xm-команд acинхронны,
то есть, тот факт что команда завершилась вовсе не означает,
что действие выполнено. Это важно, поскольку многие операции, такие как
создание и завершение, могут занимать большое время (до 30 секунд и больше).
Если нужно знать, завершилось такое действие или нет, нужно опрашивать список xm list.
Подкоманды управления доменами
Следующие подкоманды команды xm
манипулируют доменами напрямую. В качестве первого аргумента
передаётся имя или идентификатор домена.
console
console domain-id
Подключиться к консоли домена domain-id.
Если в домене есть консоль для подключения,
она будет доступна по этой команде как обычно.
Здесь используется служба xenconsole, которая пока что работает только для паравиртуальных доменов.
Консоль. подключённая с помощью xm console ведётся себя
как обычная последовательная консоль, поэтому не рекомендуется
запускать поверх этой консоли curses-интерфейсы.
Например, vi ведёт себя на ней весьма странно.
create
create [-c] configfile [name=value]..
Подкоманда create должна вызываться с именем конфигурационного файла домена. Ей опционально могут передаваться
пары значений, перекрывающих настройки конфигурационного файла. Подробности и возможные параметры
Name=Value
смотрите в файле xmdomain.cfg.
Имя конфигурационного файла может быть или абсолютным
или относительным к каталогу
/etc/xen
Команда завершается сразу же как домен запущен.
Это не имеет отношения к тому, загрузится ли
операционная система в домене, или что она уже доступна для ввода.
Опции:
-c
Как только домен запустится, подключить к нему консоль.
Может быть полезно при поиске причины, по которой падает
домен (если так происходит).
Примеры.
Создание домена с конфигурационным файлом:
xm create Fedora4
Создаёт домен по конфигурационному файлу
/etc/xen/Fedora4/
Завершается, после того как домен будет создан.
Можно создавать домен и без конфигурационного файла:
Домен создаётся без использования
конфигурационного файла (если быть более точным,
то с использованием файла /dev/null
в качестве пустого конфигурационного файла),
используется указанное ядро и виртуальный диск,
имя домена устанавливается равным ramdisk,
виртуальная сеть отключена.
(этот пример взят из пакета xm-test)
destroy
destroy domain-id
Мгновенно завершить домен domain-id.
У домена нет возможности как-то среагировать, т.е. результат
такой же, как выключение питания (если бы машина была не виртуальная,
а реальная).
В большинстве случаев нужно использовать не эту команду,
а shutdown.
domid
domid domain-name
Преобразует доменное имя в идентификатор домена.
domname
domname domain-id
Преобразует идентификатор домена в доменное имя.
help
help [--long]
Выводит короткое справочное сообщение (распростренённые команды).
Опция
--long
выводит полный список сгруппированных по функциям подкоманд xm.
list
list [--long | --label] [domain-id, ...]
Выводит информацию об одном или более домене.
Если имена доменов не указаны, выводится информация обо всех доменах.
* VCPUS количество виртуальных процессоров, выделенных домену.
* State состояние домена (см. ниже).
* Time время, которое домен потратил на исполнение.
Состояния:
В поле State указывается одно из 6 состояний Xen то, в котором сейчас находится домен.
r - running
Домен в настоящий момент исполняется
b - blocked
Домен заблокирован, он не может выполняться. Это возможно из-за того что домен ждёт завершения операции ввода/вывода
или находится в спящем состоянии, потому что у него нет никакой другой работы. .TP
p - paused
Домена остановелн. Как правило, это происходит по вызову xm pause. В остановленном (paused) состоянии домен потребляет
память и другие ресурсы, но процессор ему не выделяется. .TP
s - shutdown
Гостевой системе был отправлен запрос на завершение, перезагрузку или остановку и домен выполняет соответствующий процесс.
c - crashed
Домен некорректно завершил работу (crashed). Это состояние может возникнуть только в случае, если не включен автоматический
перезапуск домена при падении (crash). Подробности в .RS
xmdomain.cfg
d - dying
Домен в процессе завершения (dying), но ещё не завершился. Возможно как корректное, так и не корректное завершение (shutdown
или crash).
ПОДРОБНЫЙ ВЫВОД
Если указана опция
--long
, вывод xm list будет не как таблица, показанная выше, а как S-выражение (S-Expression). Такой формат, главным образом,
интересен внешним программа, которые выполняют разбор данных.
{{note|text=
Нет гарантий что данные будут иметь всегда такой формат.
Так что иcпользуйте на свой страх и риск.
}}
ВЫВОД МЕТОК
Если указан ключ
--label
, в выводе xm list присутствуют метки безопасности,
и вывод отсортирован по этим меткам (без учёта регистра). При использовании опции
--long
,
метки выводятся и без того, и эту опцию нельзя использовать совместно с
--label
Подробности в разделе Подкоманды управления доступом.
{{caution|text=
Колонка Time является обманчивой. Виртуальный ввод/вывод (блочные и сетевые устройства),
используемый доменами, требует координации со стороны домена 0, что означает, что домен 0
потребляет в том числе то время, которое ему нужно на организацию этого ввода/вывода.
Показатель Time является более ошибочным при более интенсивном вводе/выводе и менее ошибочным,
когда основная нагрузка в гостевом домене приходится на процессор.
}}
mem-max
mem-max domain-id mem
Указывает максимальный объём памяти,
который может использовать домен.
Объём памяти указывается в мегабайтах.
Реальное количество памяти
используемое доменом может быть ниже этого числа,
поскольку оно может быть сокращено с помощью baloon-драйвера.
mem-set
mem-set domain-id mem
Задаёт объём оперативной памяти, используемой доменом.
Нужна поддержка со стороны операционной системы домена,
поэтому гарантии, что команда будет успешной, нет.
{{caution|text=
В некоторых случаях команда mem-set делает работу домена
нестабильной и приводит к краху.
Будьте осторожны с этой командой.
}}
migrate
migrate domain-id host [options]
Мигрировать домен на другую хост-систему.
На той системе должен быть запущен xend, у него должна быть такая же
версия, у него должен быть открыт специальный порт для миграции,
а также на этой системе должны быть все необходимые для работы
нового домена ресурсы (память, диск и т.д.).
Процесс миграции достаточно непрост, и у него есть много ограничений
с точки зрения безопасности. Рекомендуется ознакомиться с Руководством
пользователя Xen ( http://xgu.ru/xen/manual/ ),
чтобы перед тем как переходить к полноценному использованию миграци
понять, что можно требовать от неё, а чего нет.
Опции:
-l, --live
Использовать live-миграцию (живую миграцию).
Домены мигрируют без выключения.
Подробности в руководстве пользователя Xen ( http://xgu.ru/xen/manual/ ).
-r, --resource Mbs
Максимальная полоса, используемая при миграции домена.
Это нужно для того чтобы сеть не забивалась полностью
трафиком Xen в ходе миграции.
pause
pause domain-id
Приостановить (pause) домен.
Приостановленный домен потребляет ресурсы системы, такие как память,
однако он не использует процессор.
reboot
reboot [options] domain-id
Перезагрузить домен.
Команда работает так, как будто бы перезагрузку домена просто вызвали из консоли.
Программа xm не ждёт пока домен перезагрузится,
а сразу же завершается. Фактическая перезагрузка домена
может закончится намного позже.
Поведение домена при перезагрузке
определяется параметром
on_reboot
конфигурационного
xmdomain.cfg
,
использовавшимся при запуске домена.
Опции:
-a, --all
Перезагрузить все домены.
-w, --wait
Подождать пока операционная система внутри домена перезагрузилась.
Это может занять много времени, потому что нужно чтобы все
процессы внутри домена завершились корректно.
restore
restore state-file
Восстановить домен из файла, созданного ранее с помощью xm save.
Подробнее в описании команды save.
save
save domain-id state-file
Сохраняет работающий домен в файл
Он может быть восстановлен позже.
При сохранении работа домена приостанавливается,
а память, занятая им, возвращается в систему.
Восстанавливается домен, и его работа возобновляется по команде xm restore.
Действие команды xm save на виртуальную систему чем-то похоже
на операцию hybernate, выполняющуюся на обычном компьютере.
В частности, могут пострадать открытые сетевые соединения, возникнуть TCP-таймауты.
shutdown
shutdown [options] domain-id
Правильно останавливает домен.
Операционная система корректно останавливается, и неизвестно
закончится ли он успешно, и если закончится, сколько это потребует времени.
Команда завершается сразу же, а не тогда когда домен завершится (если не используется ключ
-w
).
Поведение домена при перезагрузке определяется параметром
on_shutdown
конфигурационного
xmdomain.cfg
, использовавшимся при запуске домена.
Опции:
-a
Завершить все домены. Обычно вызывается при завершении работы
хост-системы Xen.
-w
Прежде чем завершить команду xm, ждать пока домен окончит процесс завершения (shutdown).
sysrq
sysrq domain-id letter
Отправляет волшебный сигнал System Request (SysRq) домену.
Подробности об этом сигнале в файле
sysrq.txt
в исходниках ядра Linux.
unpause
unpause domain-id
Выводит домен из сохранённого состояния.
Гипервизор опять начинает выдавать вычислительный
ресурс остановленному ранее домену.
vcpu-set
vcpu-set domain-id vcpu-count
Выделяет виртуальному домену domain-id указанное количество
виртуальных процессоров vcpu-count.
Как и mem-set эта команда может выделять виртуальных процессоров
не больше чем было задано при загрузке домена.
Если число vcpu-count меньше текущего количества активных VCPU,
VCPU с наибольшими номерами будут удалены горячим способом (hotplug removed).
Это важно при привязке доменов к процессорам (pinning).
Если попытаться установить VCPU больше чем было задано при загрузке
домена, возникнет ошибка.
Если попытаться установить vcpu-count < 1, команда будет проигнорирована,
и сообщений об ошибке не будет.
vcpu-list
vcpu-list [domain-id]
Показать информацию о VCPU для заданного домена;
если домен не указан, показывается информация о VCPU
для всех доменов.
vcpu-pin
vcpu-pin domain-id vcpu cpus
Привязать (pin) виртуальные процессоры vpcu к заданным физическим процессорам cpus.
В качестве vcpu можно использовать ключевое слово all,
которое привязывает все виртуальные процессоры домена
к заданным физическим процессорам.
По умолчанию виртуальные процессоры могут переходить (float)
между свободными процессорами, в зависимости от того в каком состоянии
они находятся.
Привязка (pinning) используется для того чтобы ограничить эту возможность,
и убедиться что конкретные VCPU будут исполняться на конкретных физических процессорах.
Подкоманды Xen-хоста
dmesg
dmesg [-c]
Показать буфер сообщений Xen, аналогично буферу сообщений Linux-системы.
Буфер содержит информационные сообщения, предупреждения, сообщения об ошибках,
возникших в ходе процесса зарузки. Если у вас возникли проблемы с Xen, это первое место, куда нужно начинаться смотреть.
Опции:
-c, --clear
Очищает буфер сообщений Xen.
info
Вывести информацию о хосте в формате имя : значение.
Если вы сообщаете об ошибке в Xen,
пожалуйста, добавляйте эту информацию в
отчёт.
Пример вывода информации xm info выглядит так (строки для удобства чтения отформатированы вручную):
(описаны не все поля, а только те, назначение которых наименее очевидно)
* hw_caps массив, показывающий, какие возможности есть у процессора. Это эквивалентная (но другая) форма записи
флагов, указанных в .RS
/proc/cpuinfo
* free_memory доступная оперативная память (в MB); память, не выделенная Xen и доменам.
* xen_caps версия и архитектура Xen. Архитектура указывается в форме: x86_32, x86_32p (если включено PAE), x86_64,
ia64. .br
* xen_changeset xen mercurial changeset id. Очень полезно чтобы точно знать какой код используется.
log
Вывести журнал работы xend.
Журнал находится в
/var/log/xend.log
top
Запускает команду xentop, которая выполняет
мониторинг доменов в реальном времени.
У Xentop простой и понятный интерфейс, основанный на curses.
Подкоманды управления устройствами
Большинство виртуальных устройств
можно подключать и отключать
без остановки гостевой системы,
прямо во время её работы.
С точки зрения операционной системы,
работающей в гостевом домене, это выглядит как
горячее подключение (hotplug event).
Создать новое виртуальное блочное устройство.
Вызвать hotplug-событие в гостевой системе.
Опции:
domain-id
Идентификатор домена, к которому будет подключено устройство.
be-dev
Устройство в backend-домене (обычно в домене 0), которое должно быть экспортировано. Устройство может быть как физическим
разделом (phy:sda7), так и обычным файлом подключаемым через loopback-устройство (file://path/to/loop.iso). .TP
fe-dev
Как устройство должно быть видно в гостевом домене. Может быть указано или в форме символического имени (/dev/hdc) или
в форме шестнадцатеричного идентификатора 0x1400 (идентификатор для устройства /dev/hdc). .TP
mode
Режим доступа к устройству из гостевого домена. Поддерживаются режимы
rw
(read-write) и
ro
(read-only).
bedomain-id
Backend-домен, которое обеспечивает работу (hosting) устройства. По умолчанию это домен 0.
Команда подключит ISO-образ dsl как устройство /dev/hdc (только для чтения) в гостевом домене. Возможно, в гостевом
домене устройство и не определится как CDROM, но ручное монтирование сработает.
block-detach
block-detach domain-id devid
Удалить виртуальное блочное устройство домена.
Параметр devid должен быть
идентификатором, который присвоен устройству в домене 0.
Его можно определить с помощью команды xm block-list.
block-list
block-list [-l|--long] domain-id
Показать список виртуальных блочных устройств домена.
Вывод отформатирован или как список или как S-выражение, если использовался ключ
Создать новое сетевое устройство для домена, указанного с помощью domain-id.
Можно использовать дополнительные опции.
script=scriptname
Использовать при создании интерфейса указанный скрипт. По умолчанию используется тот, который указан в файле xend-config.sxp
в параметре vif-script. .TP
ip=ipaddr
При создании передаёт указанный IP-адрес адаптеру.
mac=macaddr
Использовать для сетевого устройства заданный MAC-адрес. Если MAC-адрес не задать, он генерируется автоматически,
с префиксом 00:16:3e. .TP
bridge=bridge-name
Если мостов больше одного, имя моста, к которому должен подключаться виртуальный интерфейс.
backend=bedomain-id
Идентификатор backend-домена. По умолчанию равен 0.
network-detach domain-id devid
Удаляет сетевое устройство из домена domain-id. Номер devid это номер устройства (devicee number) виртуального
интерфейса в домене (например, 3 это vif22.3). .TP
network-list [-l|--long] domain-id
Показать список сетевых устройств домена. Вывод отформатирован или как список или как S-выражение, если использовался
ключ .RS
--long
Виртуальные TPM устройства
vtpm-list [-l|--long] domain-id
Показать информацию о виртуальном TPM устройстве для домена.
Вывод отформатирован как список или, если задана опция
--long
,
как S-выражение.
Подкоманды управления доступом
Управление доступом в Xen базируется на двух компонентах:
# Политика управления доступом (Access Control Policy, ACP) определяет метки безопасности и правила доступа с
использованием этих меток. # Модуль управления доступом (Access Control Module, ACM) принимает решения по ограничению или предоставлению
доступа, когда домены пытаются работать с ресурсами. Управление доступом Xen обладает достаточными механизмами чтобы ограничить даже злонамеренный
пользовательский домен (mandatory access control).
Права доступа в Xen определяется метками безопасности и не связаны с именами или идентификаторами домена. Политика ACP определяет метки, которые потом можно назначать доменам и ресурсам.
Каждому домену можно назначить ровно одну метку безопасности,
иначе решения по предоставлению доступа будут неоднозначными.
Политики (ACP) определяются по имени, которое передаётся как параметр,
в большинстве описанных ниже подкоманд.
В настоящий момент есть два способа интерпретации меток:
(1) Simple Type Enforcement (STE): Интерпретация меток определяет, какие домены могут обращаться к каким виртуальным
и физическим ресурсам. Связь между доменами и доступ к ресурсам по умолчанию запрещены, и могут выполняться только в том
случае, если они разрешены явным образом с помощью политики безопасности. Правильное назначение меток домена позволяет
определить совместный доступ к информации (напрямую или через ресурсы). Интерпретация меток определяет явные каналы
между доменами Xen.
(2) Chinese Wall: Интерпретация меток определяет, какие домены могут сосуществовать (одновременно исполняться) на
одной системе. Это позволяет избежать скрытых канал (covert channels) и снизить риск связанный с тем, что изоляция доменов
не совершенна (выигрывая в безопасности проигрываем в других возможностях и наоборот). Небольшое введение в вопрос скрытых
каналов можно найти здесь: http://www.multicians.org/timing-chn.html (англ.).
Управление политиками безопасности и назначение меток безопасности доменам в Xen
выполняется с помощью перечисленных ниже подкоманд.
Для того чтобы включить управление безопасностью в Xen,
он должен быть откомпилирован с поддержкой ACM, как описано ниже.
Ниже также приводятся примеры использования подкоманд.
makepolicy policy
Компилирует XML-представление политики. В результате создаются файлы с отображением (
) политики. Откомпилированную политику можно загрузить с помощью подкоманды loadpolicy или с помощью подкоманды
cfgbootpolicy можно сделать, чтобы политика загружалась автоматически. Параметр policy представляет
собой список разделённых точками имён файлов. Последняя часть это префикс в имени XML-файла с политикой. Оставшиеся
части преобразуются в путь к каталогу, начиная с корневого каталога политик ( .RS
/etc/xen/acm-security/policies
). Например, имя
example.chwall_ste.client_v1
обозначает файл
example/chwall_ste/client_v1-security_policy.xml
по отношению к корневому каталогу политик.
loadpolicy policy
Загрузить двоичное представление политики. Двоичное представление создаётся командой makepolicy. .TP
cfgbootpolicy policy [kernelversion]
Настраивает политику как загрузочную. Для этого двоичное представление политики копируется в каталог .RS
/boot
и в файл
/bbot/grub/menu.lst
добавляется соответствующая строчка загрузки модуля. Если в настройке загрузчика есть несколько заголовков с вариантами
загрузки, надо использовать параметр kernelversion, для того чтобы строчка добавилась в нужный вариант. .TP
dumppolicy
Показать информацию о состоянии политики безопасности Xen.
labels [policy] [type=dom|res|any]
Показать все метки заданных типов (доменов, ресурсов или обоих), определённые в политике. Если не указана политика, используется
текущая. По умолчанию используется тип dom. Метки сортируются в алфавитном порядке. .TP
addlabel label dom configfile [policy]
addlabel label res resource [policy]
Добавляет метку безопасности для данного ресурса (res) в файл домена configfile (dom) или глобальный файл меток
ресурсов (global resource label file). Если политика не указана, используется текущая. Эта подкоманда также проверяет
что политика поддерживает заданную метку. .TP
rmlabel dom configfile
rmlabel res resource
Работает также как и addlabel, только она не добавляет, а удаляет метку из конфигурационного файла домена (dom)
или глобального файла ресурсов (res). .TP
getlabel dom configfile
getlabel res resource
Показать метку для данном файла configfile или ресурса resource
resources
Показать список всех ресурсов из глобального файла меток ресурсов (the global resource label file). Для каждого ресурса
выводится связанная метка и имя политики. .TP
dry-run configfile
Проверяет, описывает ли файл configfile необходимую конфигурацию безопасности. Тест показывает какие решения принимаются
для меток ресурсов и меток доменов, а также общие решения.
Настройка безопасности
В конфигурационном файле
xen_source_dir/Config.mk
нужно смотреть на параметры:
ACM_SECURITY ?= y
ACM_DEFAULT_SECURITY_POLICY ?= \
ACM_CHINESE_WALL_AND_SIMPLE_TYPE_ENFORCEMENT_POLICY
Когда параметры установлены, нужно пересобрать инструменты безопасности
(security tools), проинсталлировать их, а потом перезагрузиться:
cd xen_source_dir/xen; make clean; make; cp xen.gz /boot;
cd xen_source_dir/tools/security; make install;
reboot into xen
Компиляция политики безопасности
В результате выполнения этого шага будут созданы файлы
client_v1.map
и
client_v1.bin
в каталоге
/etc/xen/acm-security/policies/example/chwall_ste
xm makepolicy example.chwall_ste.client_v1
Загрузка политики безопасности
Этот шаг активирует
client_v1.bin
как новую политику безопасности в Xen.
Увидеть, что поменялось в политиках Xen, можно
с помощью подкоманды dumppolicy, если вызвать её
до и после изменения.
xm loadpolicy example.chwall_ste.client_v1
Настройка политики безопасности при загрузке
Команда заставляет загрузчик загружать
client_v1.bin
при старте.
При старте системы ACM настраивает Xen на использование этой политки
и потом приводит её в исполнение.
xm cfgbootpolicy example.chwall_ste.client_v1
Просмотр список меток безопасности
Показать список предопределённых меток, которые могут присоединяться
к доменам.
Команда addlabel
присоединяет метку безопасности к конфигурационном файлу домена,
в примере метку HomeBanking.
В примере домен не сможет выполнять совместный доступ к информации ни с какими другими доменами, за исключением тех, которые
относятся к homebanking (например: dom_Fun, dom_Boinc), и он не будет одновременно исполняться с доменом
dom_Fun.
Предполагается, что указанный конфигурационный файл myconfig.xm
запускает домен, в котором работают нагрузки (workloads)
имеющие отношение к home-banking, например, среда для online-banking.
xm addlabel dom_HomeBanking dom myconfig.xm
Запись access_control в конце файла
состоит из имени метки и политики, определяющей имя метки:
Метки безопасности должны обязательно назначаться доменам.
Они нужны для принятия решения о разрешении или запрещении доступа
на этапе настройки только что созданного домена.
Гипервизор с поддержкой безопасности
сможет запускать только те домены, у которых метка безопасности есть,
и она подходит текущей политике.
В противном случае, запуск домена не удастся,
и будет сообщение об ошибке "operation not permitted".
Присоединение метки безопасности к ресурсу
Команда addlabel может также использоваться для добавления
метки безопасности к ресурсу.
Похоже на то как было сделано в примере вверху,
можно добавить метку к ресурсу (разделу или файлу), для того чтобы он
был доступен банковскому (banking) домену.
В примере политики есть метка res_LogicalDiskPartition1(hda1),
которая совместима с меткой HomeBanking.
xm addlabel "res_LogicalDiskPartition1(hda1)" res phy:hda6
После того как диск помечен, его можно подключить к домену
путём добавления строчки в конфигурационный файл этого домена.
Пример строки, выполняющей подключение диска:
disk = [ 'phy:hda6,sda2,w' ]
Как вариант, ресурс можно подключить после загрузки с помощью подкоманды
block-attach:
xm block-attach homebanking phy:hda6 sda2 w
{{caution|text=
Помеченные ресурсы нельзя использовать когда безопасность выключена.
Любые попытки использовать ресурс в этом случае
будут приводить к сообщению об ошибке.
Нужно или включить поддержку безопасности,
или если она больше не нужна, удалить метку с помощью подкоманды rmlabel.
}}
Запуск и просмотр списка доменов с метками
%# xm create myconfig.xm
%# xm list --label
Name ID ... Time(s) Label
homebanking 23 ... 4.4 dom_HomeBanking
Domain-0 0 ... 2658.8 dom_SystemManagement
Есть три различных представления политики доступа Xen:
* исходная XML-версия;
* её двоичный вариант;
* отображение (mapping representation), которое позволяет преобразовывать имена меток из XML-политик в идентификаторы
меток из бинарных политик и наоборот. Все три версии должны соответствовать друг другу.
XML-версию создаёт и редактирует пользователь; или вручную, или при помощи генератора политик Xen (xensec_gen). После того как XML-файл меняется, нужно запускать makepolicy, для того чтобы изменения отразились в других версиях. Можно использовать подкоманду cfgbootpolicy, которая активирует изменения
при следующей перезагрузке.
Двоичное представление политики получается на основе XML-политики.
Оно используется только внутри Xen.
Двоичное представление создаётся при помощи подкоманды makepolicy.
Это представление намного более компактное чем XML-версия
и его легче использовать Xen в своей работе.
Отображение (3) создаётся в момент преобразования XML-политики в двоичную
форму (makepolicy). Оно используется инструментами управления Xen для преобразования
меток имён, которые являются входными данными для этих инструментов,
и их двоичных идентификаторов (ssidrefs) внутри Xen.