xm пользовательский интерфейс для управления Xen
xm <subcommand> [args]
Программа xm это главный интерфейс по управлению гостевыми доменами Xen. С её помощью можно создавать, приостанавливать и останавливать домены, а также просматривать список доменов, управлять количеством и привязкой виртуальных процессоров, подключать и отключать виртуальные устройства.
Базовая структура любой xm-команды всегда одинаковая:
xm <subcommand> <domain-id> [OPTIONS]
Все операции xm выполняются с помощью управляющего демона Xen, известного как xend. Поэтому обычно xend запускают как службу во время загрузки машины.
Большинству xm-команд нужны привилегии суперпользователя, для того чтобы пользоваться каналами связи с гипервизором. Выполнение не от root'а обычно приводит к ошибке.
Большинство xm-команд acинхронны, то есть, тот факт что команда завершилась вовсе не означает, что действие выполнено. Это важно, поскольку многие операции, такие как создание и завершение, могут занимать большое время (до 30 секунд и больше). Если нужно знать, завершилось такое действие или нет, нужно опрашивать список xm list.
Следующие подкоманды команды xm манипулируют доменами напрямую. В качестве первого аргумента передаётся имя или идентификатор домена.
console domain-id
Здесь используется служба xenconsole, которая пока что работает только для паравиртуальных доменов.
Консоль. подключённая с помощью xm console ведётся себя как обычная последовательная консоль, поэтому не рекомендуется запускать поверх этой консоли curses-интерфейсы. Например, vi ведёт себя на ней весьма странно.
create [-c] configfile [name=value]..
Name=Value
Имя конфигурационного файла может быть или абсолютным или относительным к каталогу
/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
(этот пример взят из пакета xm-test)
destroy domain-id
domid domain-name
domname domain-id
help [--long]
Опция
--long
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
Состояния:
В поле State указывается одно из 6 состояний Xen то, в котором сейчас находится домен.
xmdomain.cfg
ПОДРОБНЫЙ ВЫВОД
--long
ВЫВОД МЕТОК
--label
--long
--label
Подробности в разделе Подкоманды управления доступом.
{{caution|text= Колонка Time является обманчивой. Виртуальный ввод/вывод (блочные и сетевые устройства), используемый доменами, требует координации со стороны домена 0, что означает, что домен 0 потребляет в том числе то время, которое ему нужно на организацию этого ввода/вывода. Показатель Time является более ошибочным при более интенсивном вводе/выводе и менее ошибочным, когда основная нагрузка в гостевом домене приходится на процессор. }}
mem-max domain-id mem
Реальное количество памяти используемое доменом может быть ниже этого числа, поскольку оно может быть сокращено с помощью baloon-драйвера.
mem-set domain-id mem
{{caution|text= В некоторых случаях команда mem-set делает работу домена нестабильной и приводит к краху. Будьте осторожны с этой командой. }}
migrate domain-id host [options]
Процесс миграции достаточно непрост, и у него есть много ограничений с точки зрения безопасности. Рекомендуется ознакомиться с Руководством пользователя Xen ( http://xgu.ru/xen/manual/ ), чтобы перед тем как переходить к полноценному использованию миграци понять, что можно требовать от неё, а чего нет.
Опции:
-l, --live
-r, --resource Mbs
pause domain-id
reboot [options] domain-id
Поведение домена при перезагрузке определяется параметром
on_reboot
конфигурационного
xmdomain.cfg
Опции:
-a, --all
-w, --wait
restore state-file
save domain-id state-file
Действие команды xm save на виртуальную систему чем-то похоже на операцию hybernate, выполняющуюся на обычном компьютере. В частности, могут пострадать открытые сетевые соединения, возникнуть TCP-таймауты.
shutdown [options] domain-id
-w
Поведение домена при перезагрузке определяется параметром
on_shutdown
xmdomain.cfg
Опции:
-a
-w
sysrq domain-id letter
sysrq.txt
в исходниках ядра Linux.
unpause domain-id
vcpu-set domain-id vcpu-count
Если число vcpu-count меньше текущего количества активных VCPU, VCPU с наибольшими номерами будут удалены горячим способом (hotplug removed). Это важно при привязке доменов к процессорам (pinning).
Если попытаться установить VCPU больше чем было задано при загрузке домена, возникнет ошибка. Если попытаться установить vcpu-count < 1, команда будет проигнорирована, и сообщений об ошибке не будет.
vcpu-list [domain-id]
vcpu-pin domain-id vcpu cpus
По умолчанию виртуальные процессоры могут переходить (float) между свободными процессорами, в зависимости от того в каком состоянии они находятся. Привязка (pinning) используется для того чтобы ограничить эту возможность, и убедиться что конкретные VCPU будут исполняться на конкретных физических процессорах.
dmesg [-c]
Опции:
-c, --clear
Вывести информацию о хосте в формате имя : значение. Если вы сообщаете об ошибке в 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 массив, показывающий, какие возможности есть у процессора. Это эквивалентная (но другая) форма записи
флагов, указанных в .RS
/proc/cpuinfo
Вывести журнал работы xend. Журнал находится в
/var/log/xend.log
Запускает команду xentop, которая выполняет мониторинг доменов в реальном времени. У Xentop простой и понятный интерфейс, основанный на curses.
Большинство виртуальных устройств можно подключать и отключать без остановки гостевой системы, прямо во время её работы. С точки зрения операционной системы, работающей в гостевом домене, это выглядит как горячее подключение (hotplug event).
block-attach domain-id be-dev fe-dev mode [bedomain-id]
Опции:
rw
ro
Пример:
Подключить ISO-диск внутрь домена:
xm block-attach guestdomain file://path/to/dsl-2.0RC2.iso /dev/hdc ro
block-detach domain-id devid
block-list [-l|--long] domain-id
--long
network-attach domain-id [script=scriptname] [ip=ipaddr] [mac=macaddr] [bridge=bridge-name] [backend=bedomain-id]
--long
vtpm-list [-l|--long] domain-id
--long
Управление доступом в 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, как описано ниже. Ниже также приводятся примеры использования подкоманд.
/etc/xen/acm-security/policies
example.chwall_ste.client_v1
example/chwall_ste/client_v1-security_policy.xml
/boot
/bbot/grub/menu.lst
В конфигурационном файле
xen_source_dir/Config.mk
нужно смотреть на параметры:
ACM_SECURITY ?= y
ACM_DEFAULT_SECURITY_POLICY ?= \
ACM_CHINESE_WALL_AND_SIMPLE_TYPE_ENFORCEMENT_POLICY
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
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
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']
Команда addlabel может также использоваться для добавления метки безопасности к ресурсу. Похоже на то как было сделано в примере вверху, можно добавить метку к ресурсу (разделу или файлу), для того чтобы он был доступен банковскому (banking) домену. В примере политики есть метка res_LogicalDiskPartition1(hda1), которая совместима с меткой HomeBanking.
xm addlabel "res_LogicalDiskPartition1(hda1)" res phy:hda6
disk = [ 'phy:hda6,sda2,w' ]
xm block-attach homebanking phy:hda6 sda2 w
%# 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>
* Игорь Чубин <igor ar chub.in>
virsh(1)
* Игорь Чубин <igor ar chub.in>
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |