Xgu.ru теперь в Контакте  — приходите и подключайтесь.
Пока мы работаем над следующими видео, вы можете подключиться в Контакте. Познакомимся и обсудим новые страницы и ролики.

Vk-big.pngYoutube-big.jpeg

man:xm

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

Перейти к: навигация, поиск

Перевод: Игорь Чубин
Оригинал: http://linux.die.net/man/1/xm


Содержание

[править] Имя

xm — пользовательский интерфейс для управления Xen

[править] Синтаксис

xm <subcommand> [args]

[править] Описание

Программа 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/. Завершается, после того как домен будет создан.

Можно создавать домен и без конфигурационного файла:

   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, виртуальная сеть отключена.

(этот пример взят из пакета 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, ...]

Выводит информацию об одном или более домене. Если имена доменов не указаны, выводится информация обо всех доменах.

Пример списка:

   Name                         ID Mem(MiB) VCPUs State  Time(s)
   Domain-0                      0       98     1 r-----  5068.6
   Fedora3                     164      128     1 r-----     7.6
   Fedora4                     165      128     1 ------     0.6
   Mandrake2006                166      128     1 -b----     3.6
   Mandrake10.2                167      128     1 ------     2.5
   Suse9.2                     168      100     1 ------     1.8
  • Name — имя домена.
  • ID — численный идентификатор домена.
  • Mem — объём памяти, выделенный домену.
  • VCPUS — количество виртуальных процессоров, выделенных домену.
  • State — состояние домена (см. ниже).
  • Time — время, которое домен потратил на исполнение.

Состояния:

В поле State указывается одно из 6 состояний Xen — то, в котором сейчас находится домен.

r - running
Домен в настоящий момент исполняется
b - blocked
Домен заблокирован, он не может выполняться. Это возможно из-за того что домен ждёт завершения операции ввода/вывода или находится в спящем состоянии, потому что у него нет никакой другой работы.
p - paused
Домен остановлен. Как правило, это происходит по вызову xm pause. В остановленном (paused) состоянии домен потребляет память и другие ресурсы, но процессор ему не выделяется.
s - shutdown
Гостевой системе был отправлен запрос на завершение, перезагрузку или остановку и домен выполняет соответствующий процесс.
c - crashed
Домен некорректно завершил работу (crashed). Это состояние может возникнуть только в случае, если не включен автоматический перезапуск домена при падении (crash). Подробности в xmdomain.cfg
d - dying
Домен в процессе завершения (dying), но ещё не завершился. Возможно как корректное, так и не корректное завершение (shutdown или crash).
   ПОДРОБНЫЙ ВЫВОД 

Если указана опция --long, вывод xm list будет не как таблица, показанная выше, а как S-выражение (S-Expression). Такой формат, главным образом, интересен внешним программам, которые выполняют разбор данных.

Note-icon.gif

Нет гарантий что данные будут иметь всегда такой формат. Так что используйте на свой страх и риск.

   ВЫВОД МЕТОК

Если указан ключ --label, в выводе xm list присутствуют метки безопасности, и вывод отсортирован по этим меткам (без учёта регистра). При использовании опции --long, метки выводятся и без того, и эту опцию нельзя использовать совместно с --label. Подробности в разделе Подкоманды управления доступом.

Icon-caution.gif

Колонка Time является обманчивой. Виртуальный ввод/вывод (блочные и сетевые устройства), используемый доменами, требует координации со стороны домена 0, что означает, что домен 0 потребляет в том числе то время, которое ему нужно на организацию этого ввода/вывода. Показатель Time является более ошибочным при более интенсивном вводе/выводе и менее ошибочным, когда основная нагрузка в гостевом домене приходится на процессор.

[править] mem-max

  mem-max domain-id mem

Указывает максимальный объём памяти, который может использовать домен. Объём памяти указывается в мегабайтах.

Реальное количество памяти используемое доменом может быть ниже этого числа, поскольку оно может быть сокращено с помощью baloon-драйвера.

[править] mem-set

  mem-set domain-id mem

Задаёт объём оперативной памяти, используемой доменом. Нужна поддержка со стороны операционной системы домена, поэтому гарантии, что команда будет успешной, нет.

Icon-caution.gif

В некоторых случаях команда 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 выглядит так (строки для удобства чтения отформатированы вручную):

   host                   : talon
   release                : 2.6.12.6-xen0
   version                : #1 Mon Nov 14 14:26:26 EST 2005
   machine                : i686
   nr_cpus                : 2
   nr_nodes               : 1
   sockets_per_node       : 2
   cores_per_socket       : 1
   threads_per_core       : 1
   cpu_mhz                : 696
   hw_caps                : 0383fbff:00000000:00000000:00000040
   total_memory           : 767
   free_memory            : 37
   xen_major              : 3
   xen_minor              : 0
   xen_extra              : -devel
   xen_caps               : xen-3.0-x86_32
   xen_pagesize           : 4096
   platform_params        : virt_start=0xfc000000
   xen_changeset          : Mon Nov 14 18:13:38 2005 +0100
                            7793:090e44133d40
   cc_compiler            : gcc version 3.4.3 (Mandrakelinux
                            10.2 3.4.3-7mdk)
   cc_compile_by          : sdague
   cc_compile_domain      : (none)
   cc_compile_date        : Mon Nov 14 14:16:48 EST 2005
   xend_config_format     : 2

Поля:

(описаны не все поля, а только те, назначение которых наименее очевидно)

  • hw_caps — массив, показывающий, какие возможности есть у процессора. Это эквивалентная (но другая) форма записи флагов, указанных в /proc/cpuinfo.
  • free_memory — доступная оперативная память (в MB); память, не выделенная Xen и доменам.
  • xen_caps — версия и архитектура Xen. Архитектура указывается в форме: x86_32, x86_32p (если включено PAE), x86_64, ia64.
  • xen_changeset — xen mercurial changeset id. Очень полезно чтобы точно знать какой код используется.

[править] log

Вывести журнал работы xend. Журнал находится в /var/log/xend.log.

[править] top

Запускает команду xentop, которая выполняет мониторинг доменов в реальном времени. У Xentop простой и понятный интерфейс, основанный на curses.

[править] Подкоманды управления устройствами

Большинство виртуальных устройств можно подключать и отключать без остановки гостевой системы, прямо во время её работы. С точки зрения операционной системы, работающей в гостевом домене, это выглядит как горячее подключение (hotplug event).

[править] Блочные устройства

[править] block-attach

  block-attach domain-id be-dev fe-dev mode [bedomain-id]

Создать новое виртуальное блочное устройство. Вызвать hotplug-событие в гостевой системе.

Опции:

domain-id
Идентификатор домена, к которому будет подключено устройство.
be-dev
Устройство в backend-домене (обычно в домене 0), которое должно быть экспортировано. Устройство может быть как физическим разделом (phy:sda7), так и обычным файлом подключаемым через loopback-устройство (file://path/to/loop.iso).
fe-dev
Как устройство должно быть видно в гостевом домене. Может быть указано или в форме символического имени (/dev/hdc) или в форме шестнадцатеричного идентификатора 0x1400 (идентификатор для устройства /dev/hdc).
mode
Режим доступа к устройству из гостевого домена. Поддерживаются режимы rw (read-write) и ro (read-only).
bedomain-id
Backend-домен, которое обеспечивает работу (hosting) устройства. По умолчанию это домен 0.

Пример:

Подключить ISO-диск внутрь домена:

   xm block-attach guestdomain file://path/to/dsl-2.0RC2.iso /dev/hdc ro

Команда подключит 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-выражение, если использовался ключ --long.

[править] Сетевые устройства

[править] network-attach

  network-attach domain-id [script=scriptname] [ip=ipaddr] [mac=macaddr] [bridge=bridge-name] [backend=bedomain-id]

Создать новое сетевое устройство для домена, указанного с помощью domain-id. Можно использовать дополнительные опции.

script=scriptname
Использовать при создании интерфейса указанный скрипт. По умолчанию используется тот, который указан в файле xend-config.sxp в параметре vif-script.
ip=ipaddr
При создании передаёт указанный IP-адрес адаптеру.
mac=macaddr
Использовать для сетевого устройства заданный MAC-адрес. Если MAC-адрес не задать, он генерируется автоматически, с префиксом 00:16:3e.
bridge=bridge-name
Если мостов больше одного, имя моста, к которому должен подключаться виртуальный интерфейс.
backend=bedomain-id
Идентификатор backend-домена. По умолчанию равен 0.
network-detach domain-id devid
Удаляет сетевое устройство из домена domain-id. Номер devid это номер устройства (devicee number) виртуального интерфейса в домене (например, 3 это vif22.3).
network-list [-l|--long] domain-id
Показать список сетевых устройств домена. Вывод отформатирован или как список или как S-выражение, если использовался ключ --long.

[править] Виртуальные TPM устройства

  vtpm-list [-l|--long] domain-id

Показать информацию о виртуальном TPM устройстве для домена. Вывод отформатирован как список или, если задана опция --long, как S-выражение.

[править] Подкоманды управления доступом

Управление доступом в Xen базируется на двух компонентах:

  1. Политика управления доступом (Access Control Policy, ACP) определяет метки безопасности и правила доступа с использованием этих меток.
  2. Модуль управления доступом (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-представление политики. В результате создаются файлы с отображением (.map</tt)) и двоичным представлением (<tt>.bin) политики. Откомпилированную политику можно загрузить с помощью подкоманды loadpolicy или с помощью подкоманды cfgbootpolicy можно сделать, чтобы политика загружалась автоматически. Параметр policy представляет собой список разделённых точками имён файлов. Последняя часть это префикс в имени XML-файла с политикой. Оставшиеся части преобразуются в путь к каталогу, начиная с корневого каталога политик (/etc/xen/acm-security/policies). Например, имя example.chwall_ste.client_v1 обозначает файл example/chwall_ste/client_v1-security_policy.xml по отношению к корневому каталогу политик.
loadpolicy policy
Загрузить двоичное представление политики. Двоичное представление создаётся командой makepolicy.
cfgbootpolicy policy [kernelversion]
Настраивает политику как загрузочную. Для этого двоичное представление политики копируется в каталог /boot и в файл /bbot/grub/menu.lst добавляется соответствующая строчка загрузки модуля. Если в настройке загрузчика есть несколько заголовков с вариантами загрузки, надо использовать параметр kernelversion, для того чтобы строчка добавилась в нужный вариант.
dumppolicy
Показать информацию о состоянии политики безопасности Xen.
labels [policy] [type=dom|res|any]
Показать все метки заданных типов (доменов, ресурсов или обоих), определённые в политике. Если не указана политика, используется текущая. По умолчанию используется тип dom. Метки сортируются в алфавитном порядке.
addlabel label dom configfile [policy]
addlabel label res resource [policy]
Добавляет метку безопасности для данного ресурса (res) в файл домена configfile (dom) или глобальный файл меток ресурсов (global resource label file). Если политика не указана, используется текущая. Эта подкоманда также проверяет что политика поддерживает заданную метку.
rmlabel dom configfile
rmlabel res resource
Работает также как и addlabel, только она не добавляет, а удаляет метку из конфигурационного файла домена (dom) или глобального файла ресурсов (res).
getlabel dom configfile
getlabel res resource
Показать метку для данном файла configfile или ресурса resource
resources
Показать список всех ресурсов из глобального файла меток ресурсов (the global resource label file). Для каждого ресурса выводится связанная метка и имя политики.
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

[править] Просмотр список меток безопасности

Показать список предопределённых меток, которые могут присоединяться к доменам.

Команда

   xm labels example.chwall_ste.client_v1 type=dom

покажет для нашего примера:

   dom_BoincClient
   dom_Fun
   dom_HomeBanking
   dom_NetworkDomain
   dom_StorageDomain
   dom_SystemManagement

[править] Присоединение метки безопасности к домену

Команда 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 в конце файла состоит из имени метки и политики, определяющей имя метки:

   kernel = "/boot/vmlinuz-2.6.16-xen"
   ramdisk="/boot/U1_home_banking_ramdisk.img"
   memory = 164
   name = "homebanking"
   vif = [  ]
   dhcp = "dhcp"
   access_control = ['policy=example.chwall_ste.client_v1,
                      label=dom_HomeBanking']

Метки безопасности должны обязательно назначаться доменам. Они нужны для принятия решения о разрешении или запрещении доступа на этапе настройки только что созданного домена. Гипервизор с поддержкой безопасности сможет запускать только те домены, у которых метка безопасности есть, и она подходит текущей политике. В противном случае, запуск домена не удастся, и будет сообщение об ошибке "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

Icon-caution.gif

Помеченные ресурсы нельзя использовать когда безопасность выключена. Любые попытки использовать ресурс в этом случае будут приводить к сообщению об ошибке. Нужно или включить поддержку безопасности, или если она больше не нужна, удалить метку с помощью подкоманды 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

[править] Просмотр списка ресурсов с метками

 %# xm resources
 phy:hda6
     policy: example.chwall_ste.client_v1
     label:  res_LogicalDiskPartition1(hda1)
 file:/xen/disk_image/disk.img
     policy: example.chwall_ste.client_v1
     label:  res_LogicalDiskPartition2(hda2)

[править] Представление политики

Есть три различных представления политики доступа Xen:

  • исходная XML-версия;
  • её двоичный вариант;
  • отображение (mapping representation), которое позволяет преобразовывать имена меток из XML-политик в идентификаторы меток из бинарных политик и наоборот.

Все три версии должны соответствовать друг другу.

XML-версию создаёт и редактирует пользователь; или вручную, или при помощи генератора политик Xen (xensec_gen). После того как XML-файл меняется, нужно запускать makepolicy, для того чтобы изменения отразились в других версиях. Можно использовать подкоманду cfgbootpolicy, которая активирует изменения при следующей перезагрузке.

Двоичное представление политики получается на основе XML-политики. Оно используется только внутри Xen. Двоичное представление создаётся при помощи подкоманды makepolicy. Это представление намного более компактное чем XML-версия и его легче использовать Xen в своей работе.

Отображение (3) создаётся в момент преобразования XML-политики в двоичную форму (makepolicy). Оно используется инструментами управления Xen для преобразования меток имён, которые являются входными данными для этих инструментов, и их двоичных идентификаторов (ssidrefs) внутри Xen.

[править] Примеры

[править] См. также

xmdomain.cfg(5), xentop(1)

[править] Автор

  • Sean Dague <sean at dague dot net>
  • Daniel Stekloff <dsteklof at us dot ibm dot com>
  • Reiner Sailer <sailer at us dot ibm dot com>

[править] Перевод

[править] Ошибки

[править] Упоминание на страницах

virsh(1)

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
Источник — «http://xgu.ru/wiki/man:xm»