Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

Virtualization

Red Hat Enterprise Linux 5

A reference guide for virsch, xm, vmm and xend.

Редакция 2.0

Logo

Аннотация

Данное руководство содержит сведения о создании, настройке и контроле гостевых операционных систем в Red Hat Enterprise Linux 5 с помощью virsh, xm, vmm и xend.
Если вы обнаружите ошибку в Руководстве по виртуализации Red Hat Enterprise Linux, или у вас есть предложения по его усовершенствованию, мы бы хотели услышать об этом. Отправьте сообщение в систему регистрации ошибок Bugzilla (http://bugzilla.redhat.com/bugzilla/) относительно компонента Virtualization_Guide.

Глава 1. Архитектура систем виртуализации Red Hat

Системы с виртуализацией Red Hat обладают многослойной функциональностью, и их основой является привилегированный компонент виртуализации. Виртуализация Red Hat позволяет обеспечить работу нескольких гостевых операционных систем. Каждая система выполняется в собственном домене и отвечает за работу своих приложений, а виртуализация организует работу виртуальных процессоров так, чтобы обеспечить оптимальное использование ресурсов физических процессоров.
Виртуализация Red Hat может быть реализована либо в виде полной виртуализации, либо в виде паравиртуализации. Полная виртуализация системы позволяет полностью отделить виртуальную систему, в которой выполняется гостевая ОС, от физической. При этом нет необходимости в модификации гостевой ОС и приложений, которые не «знают» о том, что они выполняются в виртуализированном окружении. Паравиртуализация, в свою очередь, требует модификации гостевых операционных систем, которые «знают» о том, что они выполняются на виртуальной машине. Вы можете реализовать оба вида виртуализации в окружении одновременно.
Домен 0 (domain0, dom0) — первый домен, создаваемый автоматически при загрузке системы. Домен 0 является привилегированным гостем и обладает управляющими возможностями, в частности, может создавать новые домены и управлять их виртуальными устройствами. Этот домен также работает с физическим оборудованием, включая сетевые карты и контроллеры жестких дисков, может выполнять административные задачи (приостановку, возобновление работы, миграцию гостевых доменов на другие виртуальные машины).
The hypervisor (Red Hat's Virtual Machine Monitor) is a virtualization platform that allows multiple operating systems to run on a single host simultaneously within a full virtualization environment. A guest is an operating system (OS) that runs on a virtual machine in addition to the host or main OS.
With Red Hat Virtualization, each guests memory comes from a slice of the host's physical memory. For paravirtual guests, you can set both the initial memory and the maximum size of the virtual machine. You can add (or remove) physical memory to the virtual machine at runtime without exceeding the maximum size you specify. This process is called ballooning.
Гостевой системе может быть сопоставлено число виртуальных процессоров. Менеджер виртуальных машин выполняет распределение их ресурсов в соответствии с нагрузкой физических процессоров.
Гостевым системам также могут быть выделены виртуальные диски, которые они будут видеть как жесткие диски или (в случае полной виртуализации) как CD-ROM. Доступ к виртуальному диску предоставляется через блочное устройство или обычный файл, который содержит образ целого диска для гостя и обычно включает таблицы разделов, сами разделы и физические тома LVM.
Виртуальные сетевые интерфейсы выполняются в гостевой системе. Другие интерфейсы могут выполняться в качестве виртуальных карт VNIC (Virtual Ethernet Internet Cards), им сопоставляется постоянный виртуальный адрес MAC (Media Access Control). При выполнении стандартной установки гостевой системы будет установлена карта VNIC с MAC-адресом, выбранным случайным образом из диапазона, включающего более 16 миллионов адресов. Это значительно уменьшает вероятность получения двумя гостями одного MAC-адреса. В комплексных структурах с большим количеством гостевых систем MAC-адреса могут назначаться вручную.
Каждая гостевая система имеет доступ к текстовой консоли, куда могут быть перенаправлены регистрации входа в гостевую ОС и вывод консоли.
Кроме того, и для полностью виртуализированных, и для паравиртуализированных гостей можно выполнить настройку графической консоли, подобной обычной видео-консоли физического узла. Такая консоль обладает функциями, свойственными стандартным графическим адаптерам, в частности, доступны графическая загрузка, вывод сообщений загрузки, поддержка нескольких виртуальных терминалов и возможность запуска системы X Window. Также с помощью графической клавиатуры можно настроить виртуальную клавиатуру и мышь.
Guests can be identified in any of three identities: domain name (domain-name), identity (domain-id), or UUID. The domain-name is a text string that corresponds to a guest configuration file. The domain-name is used to launch the guests, and when the guest runs the same name is used to identify and control it. The domain-id is a unique, non-persistent number that gets assigned to an active domain and is used to identify and control it. The UUID is a persistent, unique identifier that is controlled from the guest's configuration file and ensures that the guest is identified over time by system management tools. It is visible to the guest when it runs. A new UUID is automatically assigned to each guest by the system tools when the guest first installs.

Глава 2. Поддержка операционными системами

Red Hat Virtualization's paravirtualization mode allows you to utilize high performance virtualization on architectures that are potentially difficult to virtualize such as x86 based systems. To deploy para-virtualization across your operating system(s), you need access to the paravirtual guest kernels that are available from a respective Red Hat distro (for example, RHEL 4.0, RHEL 5.0, etc.). Whilst your operating system kernels must support Red Hat Virtualization, it is not necessary to modify user applications or libraries.
Виртуализация Red Hat разрешает выполнение немодифицированных гостевых ядер при условии наличия процессора Intel VT и AMD SVM. В системах с Intel VT и AMD SVM нет необходимости в портировании операционной системы. Виртуализация Red Hat поддерживает:
  • Intel VT-x, AMD-V Pacifica и Vanderpool для пара- или полной виртуализации
  • Intel VT-i для ia64
  • Операционные системы Linux и UNIX (NetBSD, FreeBSD, Solaris включительно)
  • Microsoft Windows as an unmodified guest operating system with Intel Vanderpool or AMD's Pacifica technology.
Прежде чем начать выполнение полностью виртуализированных гостей в системах с виртуальной машиной HVM (Hardware-assisted Virtual Machine), Intel или AMD, убедитесь в том, что функциональность процессоров позволяет это сделать.
Чтобы проверить наличие поддержки Intel, выполните:
grep vmx /proc/cpuinfo
Вывод команды:
flags   :  fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall  nx lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
Если флаг vmx установлен, значит, поддержка Intel активна.
Чтобы проверить наличие поддержки AMD, выполните:
grep svm /proc/cpuinfo
cat /proc/cpuinfo | grep svm
Вывод команды:
flags   :  fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dt acpi mmx fxsr sse sse2 ss ht tm syscall nx mmtext fxsr_opt  rdtscp lm 3dnowext  pni  cx16  lahf_lm  cmp_legacy  svm  cr8_legacy
Если флаг svm установлен, значит, поддержка AMD активна.

Примечание

В дополнение к проверке флагов процессора рекомендуется включить полную виртуализацию системной BIOS.

Глава 3. Поддержка аппаратного обеспечения

На данном этапе виртуализация Red Hat поддерживает многопроцессорные системы и позволяет реализовать виртуализацию на архитектурах x86 с процессором P6 (или более ранним). Типы процессоров:
  • Celeron
  • Pentium II
  • Pentium III
  • Pentium IV
  • Xeon
  • AMD Athlon
  • AMD Duron
Виртуализация Red Hat делает возможным выполнение 32-битных паравиртуальных гостей только на 32-битных узлах, 64-битных паравиртуальных гостей только на 64-битных узлах. Завершенный 64-битный узел виртуализации разрешает выполнение гостевых систем 32-бит, 32-бит PAE (Phyisical Addressing Extensions), 64-бит. 32-битный узел виртуализации разрешает выполнение полностью виртуализированных гостей и PAE, и не-PAE.
Ядро виртуализации Red Hat Enterprise Linux не поддерживает более 32 Гб памяти для систем x86_64. Если вашей целью является загрузка ядра виртуализации в системе с объемом физической памяти, превышающим 32 Гб, добавьте команду mem=32G для передачи ядру в файле grub.conf. Пример:

title Red Hat Enterprise Linux Server  (2.6.18-4.elxen)
root  (hd0, 0)
kernel   /xen.gz-2.6.18-4-el5 mem=32G
module   /vmlinuz -2.6.18-4.el5xen ro root=LABEL=/
module   /initrd-2.6.18-4.el5xen.img

Технология расширения физических адресов (Physical Address Extension, PAE) позволяет увеличить объем физической или виртуальной памяти для приложений пользователя. Виртуализация Red Hat требует наличия в системах активного расширения PAE. 32-битная виртуализация Red Hat с PAE поддерживает до 16 Гб физической памяти. Минимальный объем оперативной памяти для каждой выполняющейся гостевой системы — 256 Мб. Виртуализация Red Hat позволяет архитектурам x86/64 адресовать до 64 Гб физической памяти. Однако ядра виртуализации Red Hat не будут выполняться в системе без PAE. Чтобы проверить, поддерживает ли система PAE, выполните:
grep pae /proc/cpuinfo
Вывод команды:
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 mmx fxsr sse syscall mmtext 3dnowext 3dnow up ts
Если ваш вывод аналогичен приведенному, это означает, что процессор вашей системы поддерживает PAE. Процессор не поддерживает PAE, если вывод команды пуст.

Глава 4. Системные требования для виртуализации Red Hat

Ниже перечислены необходимые для виртуализации Red Hat составляющие:
  • Работающий дистрибутив RHEL 5
  • Работающий загрузчик GRUB
  • Доступ root
  • Процессор P6 (или более ранний)
  • Пакет bridge-utils для Linux
  • Системы hotplug для Linux
  • Установка zlib
  • Окружение Python v2.2
  • initscripts
Зависимости пакетов разрешаются автоматически в процессе установки.

Примечание

If your system CPU architecture is ia64, you need to manually install the xen-ia64-guest-firmware package to run a fully virtualized guest. This package is provided in the Supplementary CD and is not installed by default.

Глава 5. Загрузка системы

После завершения установки компонентов виртуализации Red Hat необходимо перезагрузить систему и выполнить вход. Прежде чем запустить виртуализацию Red Hat, перейдите в режим пользователя root. К этому моменту демон xend уже должен быть инициирован. Чтобы запустить xend вручную, выполните:
service xend start
Для активации xend при загрузке также можно использовать chkconfig xend во время установки.
Управляющий демон xend выполняет функции управления виртуальными машинами, в частности, контролирует виртуализированные ресурсы. Активный xend необходим для взаимодействия с виртуальными машинами. Сначала следует определить параметры xend, отредактировав файл конфигурации xend-config.sxp в каталоге etc/xen, а затем уже запустить сам демон.

Глава 6. Конфигурация GRUB

GNU Grand Unified Boot Loader (or GRUB) is a program which enables the user to select which installed operating system or kernel to load at system boot time. It also allows the user to pass arguments to the kernel. The GRUB configuration file (located in /boot/grub/grub.conf) is used to create a list of operating systems to boot in GRUB's menu interface. When you install the kernel-xen RPM, a post script adds kernel-xen entries to the GRUB configuration file. You can edit the grub.conf file and enable the following GRUB parameter:
title Red Hat Enterprise Linux Server (2.6.18-3.el5xen)
root   (hd0; 0)
kernel  /xen.gz.-2.6.18-3.el5
module  /vmlinuz-2.6..18-3.el5xen ro root=/dev/VolGroup00/LogVol00  rhgb quiet
module  /initrd-2.6.18-3. el5xenxen.img

Если вы установите настройки GRUB подобным образом, будут загружены гипервизор, образ initrd и ядро Linux. Поскольку строка kernel находится в начале, ядро будет загружено в память первым. Загрузчик отправляет аргументы командной строки гипервизору и ядру Linux, а также их получает. Следующий пример демонстрирует, как можно ограничить объем памяти, выделяемый домену 0, до 800 Мб:

title Red Hat Enterprise Linux Server (2.6.18-3.el5xen)
root   (hd0; 0)
kernel  /xen.gz.-2.6.18-3.el5 dom0_mem=800M
module  /vmlinuz-2.6..18-3.el5xen ro root=/dev/VolGroup00/LogVol00  rhgb quiet
module  /initrd-2.6.18-3. el5xenxen.img

Параметры, которые можно использовать для настройки гипервизора виртуализации:
mem

Ограничивает объем памяти, выделяемый домену 0.

com1=115200, 8n1

Определяет использование первого последовательного порта в качестве последовательной консоли. В этом случае com2 назначается следующему порту и т.п.
 
dom0_mem
Ограничивает объем памяти, выделяемый домену 0.
dom0_max_vcpus
Ограничивает число видимых домену 0 процессоров.
acpi
Переключает гипервизор ACPI в гипервизор и домен 0. Может принимать значения:

/*   ****  Linux config options: propagated to domain0  ****/
/*   "acpi=off":      Disables both ACPI table parsing and interpreter.   */
/*   "acpi=force":    Overrides the disable blacklist.                    */
/*   "acpi=strict":   Disables out-of-spec workarounds.                   */
/*   "acpi=ht":       Limits ACPI from boot-time to enable HT.            */
/*   "acpi=noirq":    Disables ACPI interrupt routing.                    */


noacpi

Отключает ACPI для доставки прерываний.

Глава 7. Запуск гостевых доменов

Гостевой домен можно запустить с помощью приложений xm, virsh или менеджера виртуальных машин. Обязательным условием загрузки гостевого домена является наличие установленного гостевого узла. Следующий пример демонстрирует использование параметра "-c" (console):
# xm create -c guestdomain1
Здесь guestdomain1 — файл конфигурации загружаемого домена. Параметр -c обозначает, что после запуска домена будет подключена его консоль.

Глава 8. Запуск и остановка доменов в процессе загрузки

Домены могут быть запущены или остановлены в любое время. Прежде чем выполнить рестарт, домен 0 ожидает завершения работы всех выполняющихся доменов. Для того чтобы включить автоматическую остановку доменов, поместите их файлы конфигурации в каталог /etc/xen/. Создайте символические ссылки к /etc/xen/auto для всех доменов, которые должны запускаться автоматически во время загрузки.
chkconfig xendomains on
Эта команда не вызывает автоматический запуск доменов; они будут запущены при следующей загрузке.
chkconfig xendomains off
Завершает все выполняющиеся домены виртуализации Red Hat. chkconfig xendomains off выполнит отключение доменов при следующей загрузке.

Глава 9. Файлы конфигурации

Red Hat Virtualization configuration files contain the following standard variables. Configuration items within these files must be enclosed in quotes ("). These configuration files reside in the /etc/xen directory.

Таблица 9.1. Параметры конфигурации виртуализации Red Hat

Параметр Назначение
pae
Определяет данные настройки расширения физических адресов.
apic
Определяет данные настройки контроллера APIC.
memory
Определяет объем памяти в мегабайтах.
vcpus
Определяет число виртуальных процессоров.
console
Определяет номера портов, где будут доступны консоли домена.
nic
Определяет номер виртуального сетевого интерфейса.
vif
Lists the randomly-assigned MAC addresses and bridges assigned to use for the domain's network addresses.
disk
Отображает список блочных устройств для экспорта домену с доступом только для чтения.
dhcp
Активирует сетевое подключение с использованием DHCP.
netmask
Определяет маски сети.
gateway
Определяет IP-адреса шлюзов.
acpi
Определяет данные настройки ACPI.

Глава 10. Управление процессорами

Red Hat Virtualization allows a domain's virtual CPUs to associate with one or more host CPUs. This can be used to allocate real resources among one or more guests. This approach allows Red Hat Virtualization to make optimal use of processor resources when employing dual-core, hyperthreading, or other advanced CPU technologies. If you are running I/O intensive tasks, its typically better to dedicate either a hyperthread or entire core to run domain0. The Red Hat Virtualization credit scheduler automatically rebalances virtual cpus between physical ones, to maximize system use. The Red Hat Virtualization system allows the credit scheduler to move CPUs around as necessary, as long as the virtual CPU is pinned to a physical CPU.

Глава 11. Миграция домена

Под миграцией домена подразумевается процесс переноса выполняющегося виртуального домена с одного физического узла на другой. Виртуализация Red Hat поддерживает два варианта миграции — офлайн и онлайн. При офлайн-миграции перенос виртуальной машины с одного узла на другой осуществляется следующим образом: работа виртуальной машины приостанавливается, выполняется перенос содержимого ее памяти, затем ее работа возобновляется на новом узле. Во время же онлайн-миграции домен продолжает работу в обычном режиме, поэтому с точки зрения пользователя перенос незаметен. Для инициации онлайн или «живой» миграции необходимо, чтобы на обоих узлах выполнялись виртуализация Red Hat и демон xend. Целевой узел должен обладать достаточными для миграции и последующего функционирования домена ресурсами (как например, объем памяти). Обе машины должны принадлежать одной подсети L2, их архитектура и расширения виртуализации должны совпадать (i386-VT, x86-64-VT, x86-64-SVM и т.п.).
When a domain migrates its MAC and IP addresses move with it. Only virtual machines with the same layer-2 network and subnets will successfully migrate. If the destination node is on a different subnet, the administrator must manually configure a suitable EtherIP or IP tunnel in the remote node of domain0. The xend daemon stops the domain and copies the job over to the new node and restarts it. The Red Hat Virtualization RPM does not enable migration from any other host except the localhost (see the /etc/xend-config.sxp file for information). To allow the migration target to accept incoming migration requests from remote hosts, you must modify the target's xen-relocation-hosts-allow parameter. Be sure to carefully restrict which hosts are allowed to migrate, since there is no authentication.
Так как домен может содержать большое количество файлов, процесс переноса может занять некоторое время. При переносе домена с открытыми сетевыми соединениями они будут сохранены; SSH-соединения также должны сохранить функциональность. Стандартные правила iptables виртуализации Red Hat не разрешают входящие соединения миграции. Чтобы их разрешить, необходимо создать соответствующие правила iptables.
Миграция выполняется с помощью команды xm migrate:
xm migrate domain-id [destination domain]
Для выполнения живой миграции используйте команду
xm  migrate domain-id -l [destination domain]

You may need to reconnect to the domain's console on the new machine. You can use the xm console command to reconnect.

Глава 12. Конфигурация для использования по сети

Интеграция технологии виртуализации Red Hat в архитектуру сети является достаточно сложным процессом и может требовать комплексной конфигурации для реализации нескольких интерфейсов Ethernet и настройки моста в зависимости от инфраструктуры.
Each domain network interface is connected to a virtual network interface in dom0 by a point to point link. These devices are vif <domid> and <vifid>. vif1.0 for the first interface in domain 1; vif3.1 for the second interface in domain 3.
Трафик на этих виртуальных интерфейсах обрабатывается в домене 0 с помощью стандартных механизмов Linux для коммутации, маршрутизации, ограничения трафика и т.д. Демон Xend вызывает два сценария командного интерпретатора для настройки исходной конфигурации сети и новых виртуальных интерфейсов. Эти сценарии выполняют настройку одного моста для всех виртуальных интерфейсов. Дополнительная маршрутизация и коммутация могут быть настроены посредством модификации сценариев.
Red Hat Virtualization's virtual networking is controlled by the two shell scripts, network-bridge and vif-bridge. xend calls these scripts when certain events occur. Arguments can be passed to the scripts to provide additional contextual information. These scripts are located in the /etc/xen/scripts directory. You can change script properties by modifying the xend-config.sxp configuration file located in the /etc/xen directory.
network-bridge — этот сценарий инициализирует/ завершает работу виртуальной сети при запуске/ остановке xend. Сценарий начальной конфигурации создает мост xen—br0, а также переносит eth0 на этот мост, изменяя настройки маршрутизации соответствующим образом. После завершения xend сценарий удалит мост и eth0, восстановив тем самым исходную конфигурацию маршрутизации и IP.
vif-bridge — этот сценарий выполняется для каждого виртуального интерфейса домена. Он выполняет настройку правил межсетевого экрана и подключает vif к соответствующему мосту.
Существуют и другие сценарии, которые можно использовать при настройке виртуализации Red Hat в сети, такие как network-route, network-nat, vif-route, vif-nat. Эти сценарии также могут быть заменены другими предпочитаемыми вариантами.

Глава 13. Обеспечение безопасности домена 0

When deploying Red Hat Virtualization on your corporate infrastructure, you must ensure that domain0 cannot be compromised. Domain0 is the privileged domain that handles system management. If domain0 is insecure, all other domains in the system are vulnerable. There are several ways to implement security you should know about when integrating Red Hat Virtualization into your systems. Together with other people in your organization,you should create a 'deployment plan' that contains the operating specifications and services that will run on Red Hat Virtualization, and what is needed to support these services. Here are some security issues to consider when putting together a deployment plan:
  • Обеспечьте выполнение минимального числа необходимых служб в домене 0. Чем меньше заданий и служб выполняется в домене 0, тем меньше он подвергается риску.
  • Активируйте SELinux для улучшения защиты домена 0.
  • Используйте межсетевой экран для ограничения трафика к домену 0. Межсетевой экран может быть настроен на автоматический отказ для усиления защиты от атак на домен 0. Также рекомендуется ограничить число служб, использующих сетевое подключение.
  • Не открывайте доступ к домену 0 для обычных пользователей. Помните, домен 0 является привилегированным, а разрешение доступа непривилегированных пользователей может подвергнуть его безопасность неоправданному риску.

Глава 14. Организация хранилищ

Существует несколько способов организации дисковых хранилищ для виртуальных машин. Одним из них является экспорт физического блочного устройства (жесткого диска или раздела) из домена 0 в гостевой домен в качестве виртуального блочного устройства (VBD, Virtual Block Device). Виртуализация Red Hat активирует LVM и blktap в процессе установки по умолчанию. Кроме того, для реализации хранилищ могут использоваться стандартные сетевые протоколы, такие как NFS, iSCSI и CLVM.

Глава 15. Управление виртуальными машинами с помощью virsh

Приложение virsh может использоваться для управления виртуальными машинами. virsh использует libvirt API и служит альтернативой xm и графическому менеджеру виртуальных машин. Непривилегированные пользователи могут выполнять доступ в режиме «только для чтения». Для активации возможности выполнения xend/qemu сначала нужно выполнить настройку его выполнения в качестве службы. Отредактировав соответствующий файл конфигурации, перезагрузите систему. Аналогично xm, virsh запускается из командной строки.

15.1. Подключение к гипервизору

Чтобы инициировать сессию гипервизора с помощью virsh, выполните:
virsh connect <name>
Where <name> is the machine name of the hypervisor. If you want to initiate a read—only connection, append the above command with —readonly.

15.2. Создание виртуальной машины

Сессия виртуальной машины может быть создана из XML определения. Если вы уже создали гостевую систему с помощью xm, для нее можно создать виртуальную машину:
virsh create <path to XML configuration file>

15.3. Конфигурация XML дампа

С помощью virsh можно выполнить дамп данных виртуальной машины.
virsh dumpxml [domain-id | domain-name | domain-uuid]
This command outputs the domain information (in XML) to stdout . If you save the data to a file, you can use the create option to recreate the virtual machine.

15.4. Приостановка виртуальной машины

Чтобы приостановить домен с помощью virsh, выполните:
virsh suspend [domain-id | domain-name |domain-uuid]
When a domain is in a suspended state, it still consumes system RAM. There will also be no disk or network I/O when suspended. This operation is immediate and the virtual machine must be restarted with the resume option.

15.5. Возобновление работы виртуальной машины

Для возобновления работы приостановленной сессии с помощью virsh выполните:
virsh resume [domain-id | domain-name | domain-uuid]
Работа машины будет возобновлена немедленно. Параметры будут сохраняться между циклами suspend и resume.

15.6. Сохранение виртуальной машины

Для сохранения текущего состояния виртуальной машины в файл выполните:
virsh save [domain-name][domain-id | domain-uuid][filename]
This stops the virtual machine you specify and saves the data to a file, which may take some time given the amount of memory in use by your virtual machine. You can restore the state of the virtual machine with the restore option.

15.7. Восстановление виртуальной машины

You can use virsh to restore a virtual machine that you previously saved with the virsh save option:
virsh restore [filename]
This restarts the saved virtual machine, which may take some time. The virtual machine's name and UUID are preserved but are allocated for a new id.

15.8. Завершение работы виртуальной машины

Чтобы завершить работу виртуальной машины, выполните:
virsh shutdown [domain-id | domain-name | domain-uuid]
Поведение перезагружаемой виртуальной машины можно контролировать с помощью параметра on_shutdown в файле xmdomain.cfg.

15.9. Перезагрузка виртуальной машины

Для перезагрузки виртуальной машины с помощью virsh выполните:
virsh reboot [domain-id | domain-name | domain-uuid]
Поведение перезагружаемой машины может быть изменено с помощью параметра on_reboot в файле xmdomain.cfg.

15.10. Остановка домена

Для немедленной остановки виртуальной машины выполните:
virsh destroy [domain-name | domain-id | domain-uuid]
This command does an immediate ungraceful shutdown and stops any guest domain sessions (which could potentially lead to file corruptted filesystems still in use by the virtual machine). You should use the destroy option only when the virtual machine's operating system is non-responsive. For a paravirtualized virtual machine, you should use the shutdown option.

15.11. Преобразование имени домена в идентификатор домена

Имя домена или UUID может быть преобразовано в идентификатор с помощью virsh:
virsh domid [domain-name | domain-uuid]

15.12. Преобразование идентификатора домена в имя домена

Идентификатор домена или UUID может быть преобразован в имя с помощью virsh:
virsh domname [domain-name | domain-uuid]

15.13. Преобразование имени домена в UUID

Имя домена может быть преобразовано в UUID с помощью virsh:
virsh domuuid [domain-id | domain-uuid]

15.14. Отображение информации о виртуальной машине

Чтобы отобразить информацию о виртуальной машине, заданной идентификатором домена, именем домена или UUID, выполните:
virsh dominfo [domain-id | domain-name | domain-uuid]

15.15. Отображение информации об узле

Чтобы отобразить информацию об узле с помощью virsh, выполните:
virsh nodeinfo
Пример вывода:
CPU model                    x86_64
CPU (s)                      8
CPU frequency                2895 Mhz
CPU socket(s)                2      
Core(s) per socket           2
Threads per core:            2
Numa cell(s)                 1
Memory size:                 1046528 kb
Будут отображены данные узла и системы, поддерживающей процесс виртуализации.

15.16. Отображение списка виртуальных машин

Чтобы отобразить список виртуальных машин и их статус, выполните:
virsh list domain-name [ ——inactive  |  —— -all]
При указании опции ——inactive будет выведен список неактивных доменов (неактивным считается тот домен, который был определен, но в настоящий момент не является активным). При указании опции — -all будут отображены все домены независимо от их состояния. Пример вывода:
ID                 Name                 State
————————————————
0                   Domain0             running
1                   Domain202           paused
2                   Domain010           inactive
3                   Domain9600          crashed
Возможные значения статуса домена:
running  lists domains currently active on the CPU

blocked  lists domains that are blocked

paused   lists domains that are suspended

shutdown lists domains that are in process of shutting down
 
shutoff  lists domains that are completely down.

crashed  lists domains that are crashed

15.17. Отображение информации о виртуальных процессорах

Чтобы отобразить информацию о виртуальном процессоре с помощью virsh , выполните:
virsh vcpuinfo [domain-id | domain-name | domain-uuid]

15.18. Настройка соответствий виртуальных процессоров

Чтобы выполнить сопоставление виртуальных процессоров физическим, выполните:
virsh vcpupin [domain-id | domain-name | domain-uuid] [vcpu] , [cpulist]
Здесь [vcpu] — номер виртуального процессора, а [список_cpu] — сопоставляемые ему физические процессоры.

15.19. Изменение числа виртуальных процессоров

You can use virsh to modify a Virtual Machine's number of CPUs:
virsh setvcpus [domain-name | domain-id | domain-uuid] [count]
Обратите внимание, что указываемое число не может превышать значение, определенное при создании виртуальной машины.

15.20. Изменение выделенного объема памяти

You can use virsh to modify a domain's memory allocation:
virsh setmem [domain-id | domain-name]  [count]
You must specify the [count] in kilobytes. Note that the new count cannot exceed the amount you specified when you created the Virtual Machine. Values lower than 64 MB probably won't work. You can adjust the Virtual Machine memory as necessary.

15.21. Изменение максимального объема памяти

You can use virsh to modify a Virtual Machine's maximum memory:
virsh setmaxmem  [domain-name | domain-id | domain-uuid] [count]
You must specify the [count] in kilobytes. Note that the new count cannot exceed the amount you specified when you created the Virtual Machine. Values lower than 64 MB probably won't work. The maximum memory doesn't affect the current use of the Virtual Machine (unless the new value is lower which should shrink memory usage).

15.22. Managing Virtual Networks

You can use virsh to manage virtual networks. To list virtual networks:
virsh net-list
This command generates output similar to:
[root@domain ~]# virsh net-list
Name                 State      Autostart
-----------------------------------------
default              active     yes      
vnet1	             active     yes      
vnet2	             active     yes
To view network information for a specific virtual network:
virsh net-dumpxml [vnet name]
This displays information about a specified virtual network in XML format:
	
[root@domain ~]# virsh net-dumpxml vnet1
<network>
  <name>vnet1</name>
  <uuid>98361b46-1581-acb7-1643-85a412626e70</uuid>
  <forward dev='eth0'/>
  <bridge name='vnet0' stp='on' forwardDelay='0' />
  <ip address='192.168.100.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.100.128' end='192.168.100.254' />
    </dhcp>
  </ip>
</network>
Other virsh commands used in managing virtual networks are:
  • virsh net-autostart [network name] — Autostart a network specified as [network name]
  • virsh net-create [XML file] — Generates and starts a new network using a preexisting XML file
  • virsh net-define [XML file] — Generates a new network from a preexisting XML file without starting it
  • virsh net-destroy [network name] — Destroy a network specified as [network name]
  • virsh net-name [network UUID] — Convert a specified [network UUID] to a network name
  • virsh net-uuid [network name — Convert a specified [network name] to a network UUID
  • virsh net-start [name of an inactive network] — Starts a previously undefined inactive network
  • virsh net-undefine [name of an inactive network] — Undefine an inactive network

Глава 16. Управление виртуальными машинами с помощью xend

Демон xend выполняет определенные функции по управлению виртуальными машинами, в том числе осуществляет контроль виртуализированных ресурсов. Для взаимодействия с виртуальными машинами необходимо, чтобы xend работал. Прежде чем вы запустите xend, задайте параметры в файле конфигурации xend-config.sxp, который расположен в etc/xen. Ниже приведены доступные параметры.

Таблица 16.1. Параметры конфигурации xend

Параметр Описание
console-limit
Determines the console server's memory buffer limit and assigns values on a per-domain basis
min-mem
Определяет минимальный объем памяти (в мегабайтах), выделяемый домену 0. Если указано значение 0, объем не меняется.
dom0 cpus
Определяет число процессоров, которые домен 0 сможет использовать. По умолчанию назначается 1.
enable-dump
Определяет, выполнять ли дамп ядра при сбое. По умолчанию установлено в 0 (дамп не сохраняется).
external-migration-tool
Задает имя приложения или сценария, отвечающего за миграцию внешних устройств. Сценарии должны располагаться в etc/xen/scripts/external-device-migrate.
logfile
Задает расположение файла журнала. По умолчанию журнал будет сохранен в /var/log/xend.log.
loglevel
Устанавливает уровень критичности сообщений, записываемых в журнал. Доступные значения: DEBUG, INFO, WARNING, ERROR, CRITICAL. По умолчанию используется DEBUG.
network-script
Задает сценарий, активирующий сетевое окружение. Сценарии должны располагаться в каталоге etc/xen/scripts.
xend-http-server
Определяет, активировать ли HTTP-сервер. По умолчанию сервер не активирован.
xend-unix-server
Определяет, активировать ли сокет-сервер домена. Сокет-сервер представляет собой конечную точку, где обрабатываются сетевые соединения низкого уровня, которая разрешает или запрещает входящие подключения.
xend-relocation-server
Активирует сервер перемещения для поддержки миграции между машинами. По умолчанию сервер не активирован.
xend-unix-path
Задает расположение вывода данных команды xend-unix-server. По умолчанию вывод будет сохранен в var/lib/xend/xend-socket.
xend-port
Определяет порт, используемый HTTP-сервером. По умолчанию используется порт 8000.
xend-relocation-port
Определяет порт, используемый сервером перемещения. По умолчанию используется порт 8002.
xend-relocation-address
Определяет адреса виртуальных машин, которым разрешена миграция.
xend-address
Определяет адрес, которому сопоставлен сокет-сервер.
Установив параметры, запустите демон xend. Для его запуска выполните:
service xend start
Остановка xend:
service xend stop
Эта команда остановит xend, если он запущен.
Рестарт xend:
service xend restart
Эта команда перезапустит xend, даже если он уже работает.
Также можно проверить состояние xend:
service xend status
The output displays the daemon's status.

Глава 17. Управление виртуальными машинами с помощью графического приложения менеджера виртуальных машин

Данная глава содержит описание менеджера виртуальных машин, а также элементов интерфейса этого приложения.

17.1. Архитектура менеджера виртуальных машин

Понятие виртуализации Red Hat объединяет в себе набор программных компонентов, с помощью которых стала возможной реализация виртуальных машин. Менеджер виртуальных машин (Virtual Machine Manager, VMM) обеспечивает графический интерфейс доступа к виртуальным машинам вашей системы. С его помощью могут создаваться как паравиртуализированные, так и полностью виртуализированные машины. Кроме этого, могут выполняться задачи управления, такие как сохранение, восстановление, приостановка, возобновление, завершение работы виртуальных систем, а также выделение ресурсов памяти, виртуальных процессоров и контроль производительности.

17.2. Окно «Открыть соединение»

This window appears first and prompts the user to choose a hypervisor session. Non-privileged users can initiate a read-only session. Root users can start a session with full blown read-write status. For normal use, select the Local Xen host option. You start the Virtual Machine Manager test mode by selecting the Other hypervisor and then type test:///default in the URL field beneath. Once in test mode, you can connect to a libvirt dummy hypervisor. Note that although the Remote Xen host screen is visible, the functionality to connect to such a host is not implemented into Red Hat Enterprise Linux 5.1.
Virtual Machine Manager Connection window

Рисунок 17.1. Virtual Machine Manager Connection window

17.3. Окно менеджера виртуальных машин

В главном окне менеджера показаны все выполняющиеся виртуальные машины и назначенные им ресурсы (домен 0 включительно). Поля для отображения могут быть выбраны и изменены в любое время. Двойной щелчок на имени виртуальной машины откроет ее консоль. Если же вы выберете виртуальную машину и дважды щелкните на кнопке Подробности, будет отображена информация об этой машине. Новая машина может быть создана с помощью меню Файл.
Virtual Machine Manager main window

Рисунок 17.2. Virtual Machine Manager main window

17.4. Окно данных виртуальной машины

This window displays graphs and statistics of a guest's live resource utilization data available from the Red Hat Virtualization Virtual Machine Manager. The UUID field displays the globally unique identifier for the virtual machines(s).
Virtual Machine Manager Details window

Рисунок 17.3. Virtual Machine Manager Details window

17.5. Графическая консоль виртуальной машины

This window displays a virtual machine's graphical console. Paravirtual and full virtual machines use different techniques to export their local virtual framebuffers, but both technologies use VNC to make them available to the Virtual Machine Manager's console window. If your virtual machine is set to require authentication, the Virtual Machine Graphical console prompts you for a password before the display appears.
Окно графической консоли

Рисунок 17.4. Окно графической консоли

Your local desktop can intercept key combinations (for example, Ctrl+Alt+F11) to prevent them from being sent to the guest machine. You can use the Virtual Machine Manager's 'sticky key' capability to send these sequences. You must press any modifier key (like Ctrl or Alt) 3 times and the key you specify gets treated as active until the next non-modifier key is pressed. Then you can send Ctrl-Alt-F11 to the guest by entering the key sequence 'Ctrl Ctrl Ctrl Alt+F1'.

17.6. Starting the Virtual Machine Manager

Чтобы начать сессию менеджера виртуальных машин, в меню приложений выберите Система, затем Virtual Machine Manager.
Появится окно менеджера виртуальных машин.
Starting the Virtual Machine Manager

Рисунок 17.5. Starting the Virtual Machine Manager

17.7. Создание виртуальной машины

Менеджер виртуальных машин представляет собой приложение (virt-manager), с помощью которого можно выполнять их управление.
You can use Red Hat's Virtual Machine Manager to:
  • Создавать новые домены.
  • Configure or adjust a domain's resource allocation and virtual hardware.
  • Осуществлять сбор статистики использования ресурсов и просматривать информацию о выполняемых доменах.
  • Просматривать диаграммы производительности и использования ресурсов системы.
  • Использовать встроенный просмотрщик клиентов VNC, обеспечивающий доступ к графической консоли гостевого домена.

Примечание

You must install Red Hat Enterprise Linux 5.1, virt-manager, and the kernel packages on all systems that require virtualization. All systems then must be booted and running the Red Hat Virtualization kernel.
Последовательность действий при установке гостевой операционной системы в Red Hat Enterprise Linux 5 с помощью менеджера виртуальных машин:

Процедура 17.1. Создание гостевой операционной системы

  1. В меню приложений выберите Система, затем Virtual Machine Manager.
    Появится окно менеджера виртуальных машин.
    Virtual Machine Manager window

    Рисунок 17.6. Virtual Machine Manager window

  2. В меню Файл выберите Новая машина.
    Создание машины

    Рисунок 17.7. Создание машины

    Появится окно мастера создания новой виртуальной системы.
  3. Click Forward.
    Мастер создания виртуальной системы

    Рисунок 17.8. Мастер создания виртуальной системы

  4. Enter the name of the new virtual system and then click Forward.
    Назначение имени

    Рисунок 17.9. Назначение имени

  5. Введите путь к дереву установки. Дополнительно можно указать расположение файла кикстарта. Закончив, нажмите Далее.
    Расположение дерева установки

    Рисунок 17.10. Расположение дерева установки

  6. Установку можно произвести либо на физический дисковый раздел, либо в виртуальную файловую систему, определяемую файлом.

    Примечание

    Приведенный пример демонстрирует выполнение установки в файл.
    SELinux policy only allows xen disk images to reside in /var/lib/xen/images.
    Open a terminal and create the /xen directory and set the SELinux policy with the command restorecon -v /xen. Specify your location and the size of the virtual disk, then click Forward.
    Выделение пространства

    Рисунок 17.11. Выделение пространства

  7. Select memory to allocate the guest and the number of virtual CPUs then click Forward.
    Выделение памяти и процессоров

    Рисунок 17.12. Выделение памяти и процессоров

  8. Select Forward to open a console and the files start to install.
    Выделение памяти и процессоров

    Рисунок 17.13. Выделение памяти и процессоров

  9. Выполните установку.
    Установка начинается...

    Рисунок 17.14. Установка начинается...

    Предупреждение

    When installing Red Hat Enterprise Linux 5.1 on a fully virtualized guest, do not use the kernel-xen kernel. Using this kernel on fully virtualized guests can cause your system to hang.
    If you are using an Installation Number when installing Red Hat Enterprise Linux 5.1 on a fully virtualized guest, be sure to deselect the Virtualization package group during the installation. The Virtualization package group option installs the kernel-xen kernel.
    Note that paravirtualized guests are not affected by this issue. Paravirtualized guests always use the kernel-xen kernel.
  10. Type xm create -c xen-guest to start the Red Hat Enterprise Linux 5.1 guest. Right click on the guest in the Virtual Machine Manager and choose Open to open a virtual console.
    Red Hat Enterprise Linux 5.1 (guest)

    Рисунок 17.15. Red Hat Enterprise Linux 5.1 (guest)

  11. Введите имя пользователя и пароль для входа в систему.

17.8. Восстановление сохраненной машины

Все установленные в вашей системе виртуальные машины отображаются в главном окне менеджера. Исходная система обозначается как Domain0. Если список пуст, это означает, что в настоящий момент в системе нет выполняющихся машин.
Последовательность действий при восстановлении ранее сохраненной сессии:
  1. В меню Файл выберите Восстановить виртуальную машину.
    Restoring a Virtual Machine

    Рисунок 17.16. Restoring a Virtual Machine

  2. Появится окно каталогов.
    Выбор сохраненной сессии

    Рисунок 17.17. Выбор сохраненной сессии

  3. Перейдите к каталогу, содержащему файл сессии, и выберите файл.
  4. Нажмите Открыть.
Виртуальная система появится в главном окне.
Восстановленная сессия

Рисунок 17.18. Восстановленная сессия

17.9. Displaying Virtual Machine Details

С помощью менеджера виртуальных машин можно получить доступ к подробной информации о функционировании всех виртуальных машин.
To view a virtual system's details:
  1. В главном окне выберите виртуальную машину.
    Выбор виртуальной машины

    Рисунок 17.19. Выбор виртуальной машины

  2. В меню Редактировать выберите Подробности о машине... или нажмите кнопку Подробности в нижней части главного окна менеджера.
    Меню отображения информации виртуальной машины

    Рисунок 17.20. Меню отображения информации виртуальной машины

    Появится окно просмотра информации виртуальной машины, где будут доступны сведения об использовании ресурсов процессора и памяти.
    Обзор информации виртуальной машины

    Рисунок 17.21. Обзор информации виртуальной машины

  3. Выберите вкладку Оборудование.
    Появится окно сведений об оборудовании.
    Окно сведений об оборудовании

    Рисунок 17.22. Окно сведений об оборудовании

  4. Для просмотра или изменения числа виртуальных процессоров выберите Процессор.
    Отображение информации о распределении процессоров

    Рисунок 17.23. Отображение информации о распределении процессоров

  5. Для просмотра или изменения распределения памяти выберите Память.
    Отображение информации о распределении памяти

    Рисунок 17.24. Отображение информации о распределении памяти

  6. Для просмотра или изменения дисковой конфигурации выберите Диск.
    Отображение конфигурации диска

    Рисунок 17.25. Отображение конфигурации диска

  7. Для просмотра или изменения сетевой конфигурации выберите Сеть.
    Отображение конфигурации сети

    Рисунок 17.26. Отображение конфигурации сети

17.10. Configuring Status Monitoring

С помощью менеджера можно изменить настройки контроля статуса.
Порядок действий при настройке контроля статуса и активации консолей:
  1. В меню Редактировать выберите Параметры.
    Изменение параметров виртуальной машины

    Рисунок 17.27. Изменение параметров виртуальной машины

    Появится окно параметров.
  2. В окне настройки укажите время обновления статуса в секундах.
    Configuring Status Monitoring

    Рисунок 17.28. Configuring Status Monitoring

  3. В области «Консоли» выберите, как открывать консоль, и укажите устройство ввода.

17.11. Отображение идентификатора домена

Порядок действий при просмотре идентификаторов доменов для всех виртуальных машин в системе:
  1. В меню Вид отметьте ID домена.
    Отображение идентификаторов доменов

    Рисунок 17.29. Отображение идентификаторов доменов

  2. The Virtual Machine Manager lists the Domain ID's for all domains on your system.
    Отображение идентификаторов доменов

    Рисунок 17.30. Отображение идентификаторов доменов

17.12. Отображение состояния виртуальной машины

Порядок действий при просмотре состояния всех виртуальных машин в системе:
  1. В меню Вид отметьте Состояние.
    Отображение состояния виртуальной машины

    Рисунок 17.31. Отображение состояния виртуальной машины

  2. Менеджер отобразит состояние всех виртуальных машин в системе.
    Отображение состояния виртуальной машины

    Рисунок 17.32. Отображение состояния виртуальной машины

17.13. Отображение виртуальных процессоров

Порядок действий при просмотре виртуальных процессоров для всех виртуальных машин в системе:
  1. В меню Вид отметьте Виртуальные процессоры.
    Отображение виртуальных процессоров

    Рисунок 17.33. Отображение виртуальных процессоров

  2. Менеджер отобразит список виртуальных процессоров для всех виртуальных машин.
    Отображение виртуальных процессоров

    Рисунок 17.34. Отображение виртуальных процессоров

17.14. Отображение информации о занятости ресурсов процессора

Порядок действий при просмотре информации о занятости процессоров:
  1. В меню Вид отметьте Использование процессора.
    Отображение информации о занятости ресурсов процессора

    Рисунок 17.35. Отображение информации о занятости ресурсов процессора

  2. Будет отображена информация о занятости ресурсов процессоров (в процентах) для всех виртуальных машин в системе.
    Отображение информации о занятости ресурсов процессора

    Рисунок 17.36. Отображение информации о занятости ресурсов процессора

17.15. Отображение информации о занятости памяти

Порядок действий при просмотре информации о занятости ресурсов памяти:
  1. В меню Вид отметьте Использование памяти.
    Отображение информации о занятости памяти

    Рисунок 17.37. Отображение информации о занятости памяти

  2. Будет отображена информация о занятости ресурсов памяти (в процентах) для всех виртуальных машин в системе.
    Отображение информации о занятости памяти

    Рисунок 17.38. Отображение информации о занятости памяти

17.16. Managing a Virtual Network

To configure a virtual network on your system:
  1. From the Edit menu, select Host Details.
    Selecting Host Details

    Рисунок 17.39. Selecting Host Details

  2. This will open the Host Details menu. Click the Virtual Networks tab.
    Virtual Network Configuration

    Рисунок 17.40. Virtual Network Configuration

  3. All available virtual networks are listed on the left-hand box of the menu. You can edit the configuration of a virtual network by selecting it from this box and editing as you see fit.

17.17. Creating a Virtual Network

To create a virtual network on your system:
  1. Open the Host Details menu (refer to Раздел 17.16, «Managing a Virtual Network») and click the Add button.
    Virtual Network Configuration

    Рисунок 17.41. Virtual Network Configuration

    This will open the Create a new virtual network menu. Click Forward to continue.
    Creating a new virtual network

    Рисунок 17.42. Creating a new virtual network

  2. Enter an appropriate name for your virtual network and click Forward.
    Naming your virtual network

    Рисунок 17.43. Naming your virtual network

  3. Enter an IPv4 address space for your virtual network and click Forward.
    Choosing an IPv4 address space

    Рисунок 17.44. Choosing an IPv4 address space

  4. Define the DHCP range for your virtual network by specifying a Start and End range of IP addresses. Click Forward to continue.
    Selecting the DHCP range

    Рисунок 17.45. Selecting the DHCP range

  5. Select how the virtual network should connect to the physical network.
    Connecting to physical network

    Рисунок 17.46. Connecting to physical network

    If you select Forwarding to physical network, choose whether the Destination should be NAT to any physical device or NAT to physical device eth0.
    Click Forward to continue.
  6. You are now ready to create the network. Check the configuration of your network and click Finish.
    Ready to create network

    Рисунок 17.47. Ready to create network

  7. The new virtual network is now available in the Virtual Network tab of the Host Details menu.
    New virtual network is now available

    Рисунок 17.48. New virtual network is now available

Глава 18. Разрешение проблем виртуализации Red Hat

Эта секция содержит описание потенциальных проблем, с которыми вы можете столкнуться при установке и работе с системами виртуализации Red Hat. Здесь охватываются отображаемые сообщения об ошибках, сведения о расположении файлов журналов, информация о системных утилитах, а также рассматриваются общие подходы к анализу проблем.

18.1. Обзор журналов и их расположение

When deploying Red Hat Enterprise Linux 5.1 with Virtualization into your network infrastructure, the host's Virtualization software uses many specific directories for important configuration, log files, and other utilities. All the Red Hat Virtualization logs files are standard ASCII files, and easily accessable with any ASCII based editor:
  • Основной каталог конфигурации виртуализации Red Hat /etc/xen/ содержит демон xend и прочие файлы настройки виртуальной машины. Файлы сетевых сценариев расположены в подкаталоге /scripts.
  • Файлы журналов, к которым вы будете обращаться в процессе диагностики проблем, располагаются в каталоге /var/log/xen .
  • Также необходимо помнить, что текущим каталогом для хранения дисковых образов виртуальных машин является /var/lib/xen.
  • Сведения для файла /proc хранятся в /proc/xen/.

18.2. Описание журналов

Компонент виртуализации Red Hat включает в состав демон xend и процесс qemu-dm, файлы журналов которых хранятся в каталоге /var/log/xen/:
  • xend.log содержит все данные, собранные демоном xend, в том числе системные события и инициированные операторами задания. Он также будет регистрировать действия виртуальной машины (создание, отключение, удаление и т.д.). xend.log будет являться первым местом проверки в случае возникновения проблем.
  • xend-debug.log регистрирует ошибки событий, поступающие от xend и подсистем виртуализации (буфер кадров, сценарии Python и пр.).
  • xen-hotplug-log регистрирует события hotplug. Если устройство или сетевой сценарий не выполняют подключение, событие записывается в этот журнал.
  • qemu-dm.[PID].log создается процессом qemu-dm для каждого виртуализированного гостя. Сначала получите идентификатор процесса PID с помощью команды ps. В приведенном имени файла журнала замените [PID] идентификатором процесса qemu-dm.
При возникновении проблем с менеджером виртуальных машин можно обратиться к файлу virt-manager.log, расположенному в /.virt-manager. Следует помнить, что при перезапуске менеджера этот файл будет перезаписан. Поэтому, если вы хотите сохранить файл, создайте резервную копию, прежде чем перезапустить менеджер.

18.3. Важные каталоги

Существуют дополнительные утилиты и файлы журналов, о которых не стоит забывать в процессе отслеживания ошибок в окружении виртуализации Red Hat.
  • Образы виртуальных машин находятся в /var/lib/xen/images.
  • При перезапуске демона xend происходит обновление xend-database , которая расположена в /var/lib/xen/xend-db.
  • Дамп ядра, выполняемый с помощью команды xm dump-core, сохраняется в каталог /var/lib/xen/dumps.
  • Каталог /etc/xen содержит файлы конфигурации, используемые для управления системными ресурсами. Файл конфигурации xend-config.sxp позволяет применить изменения в масштабах всей системы.
  • Команды proc являются дополнительным методом сбора информации о системе. Записи proc находятся в каталоге /proc/xen:
/proc/xen/capabilities
/proc/xen/balloon
/proc/xen/xenbus/

18.4. Средства диагностики

В данной секции собраны сведения о приложениях системного администратора, сетевых утилитах и расширенных утилитах отладки. Утилиты, которые могут оказать помощь при диагностике проблем:
  • xentop
  • xm dmesg
  • xm log
  • vmstat
  • iostat
  • lsof
Расширенные утилиты отладки:
  • XenOprofile
  • systemTap
  • crash
  • sysrq
  • sysrq t
  • sysrq w
Сетевые утилиты:
  • ifconfig
  • tcpdump
  • brctl
Сетевая утилита brctl осуществляет проверку и конфигурацию моста Ethernet в ядре виртуализации. Для выполнения приведенных ниже команд необходимо обладать правами доступа root.
# brctl show 

bridge-name    bridge-id          STP  enabled  interfaces  
-----------------------------------------------------------------------------
xenbr0             8000.feffffff       no        vif13.0
xenbr1             8000.ffffefff       yes       pddummy0
xenbr2             8000.ffffffef       no        vif0.0

# brctl showmacs xenbr0

port-no           mac-addr                  local?       ageing timer

1                 fe:ff:ff:ff:ff:           yes            0.00
2                 fe:ff:ff:fe:ff:           yes            0.00


# brctl showstp xenbr0

xenbr0 

bridge-id              8000.fefffffffff

designated-root        8000.fefffffffff

root-port              0                   path-cost             0

max-age                20.00               bridge-max-age        20.00

hello-time             2.00                bridge-hello-time     2.00

forward-delay          0.00                bridge-forward-delay  0.00

ageing-time            300.01

hello-timer            1.43                tcn-timer             0.00

topology-change-timer  0.00                gc-timer              0.02

18.5. Анализ проблем с помощью журналов

When encountering issues with installing Red Hat Virtualization, you can refer to the host system's two logs to assist with troubleshooting. The xend.log file contains the same basic information as when you run the xm log command. It resides in the /var/log/ directory. Here is an example log entry for when you create a domain running a kernel:
[2006-12-27 02:23:02 xend] ERROR (SrvBase: 163) op=create: Error creating domain: (0, 'Error')
Traceback (most recent call list)
File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvBase.py" line 107 in_perform val = op_method (op,req)
File
"/usr/lib/python2.4/site-packages/xen/xend/server/SrvDomainDir.py line 71 in op_create
raise XendError ("Error creating domain: " + str(ex))
XendError: Error creating domain: (0, 'Error')
Другой файл, xend-debug.log, играет незаменимую роль в анализе ошибок, поскольку содержит более подробную информацию по сравнению с xend.log.
ERROR: Will only load images built for Xen v3.0
ERROR: Actually saw: GUEST_OS=netbsd, GUEST_VER=2.0, XEN_VER=2.0; LOADER=generic, BSD_SYMTAB'
ERROR: Error constructing guest OS
Обращаясь в службу поддержки, не забудьте включить копии обоих файлов.

18.6. Анализ проблем с помощью последовательной консоли

Анализ комплексных проблем можно проводить с помощью последовательной консоли. Например, если происходит сбой ядра виртуализации, и гипервизор генерирует ошибку, ее практически невозможно отследить на локальном узле. В свою очередь, последовательная консоль позволяет зарегистрировать ошибку на удаленном узле. Для этого необходимо настроить узел Xen и сам удаленный узел на получение информации, изменив grub.conf так, чтобы консоль 38400-bps была активна на /dev/ttyS0:
title Red Hat Enterprise Linix (2.6.18-8.2080_RHEL5xen0)
		root (hd0,2)
		kernel /xen.gz-2.6.18-8.el5 com1=38400,8n1 
		module /vmlinuz-2.618-8.el5xen ro root=LABEL=/rhgb quiet console=xvc console=tty xencons=xvc 	
        	module /initrd-2.6.18-8.el5xen.img
The sync_console can help determine a problem that causes hangs with asynchronous hypervisor console output, and the "pnpacpi=off" works around a problem that breaks input on the serial console. The parameters "console=ttyS0" and "console=tty" means that kernel errors get logged with on both the normal VGA console and on the serial console. Then you can install and set up ttywatch to capture the data on a remote host connected by a standard null-modem cable. For example, on the remote host you could type:
ttywatch --name myhost --port /dev/ttyS0
Эта команда перенаправляет вывод с /dev/ttyS0 в файл /var/log/ttywatch/myhost.log

18.7. Доступ к паравиртуализированной гостевой системе через консоль

Паравиртуализированным гостевым ОС автоматически сопоставляется виртуальная текстовая консоль для передачи данных операционной системе домена 0. Выполните команду:
xm console [domain name or number]
С помощью менеджера виртуальных машин тоже можно отобразить виртуальную текстовую консоль. В окне информации виртуальной машины в меню Вид выберите Последовательная консоль.

18.8. Доступ к полностью виртуализированному гостю через консоль

Full Virtualized guest operating systems automatically has a text console configured for use, but the difference is the kernel guest is not configured. To enable the guest virtual serial console to work with the Full Virtualized guest, you must modify the guest's grub.conf file, and include the 'console =ttyS0 console=tty0' parameter. This ensures that the kernel messages are sent to the virtual serial console (and the normal graphical console). If you plan to use the virtual serial console in a full virtualized guest, you must edit the configuration file in the /etc/xen/ directory. On the host domain, you can then access the text console by typing:
xm console
Отобразить последовательную консоль также можно с помощью менеджера виртуальных машин. В окне данных виртуальной машины в меню «Вид» выберите «Последовательная консоль».

18.9. Обеспечение сохранности LUN

Если ваша система не использует множественные пути (multipath), то для сохранения номеров логических устройств (Logical Unit Number, LUN) можно использовать udev. Сначала убедитесь в наличии корректных UUID. Затем модифицируйте файл scsi_id, расположенный в каталоге /etc. Закомментируйте следующую строку:
# options=-b
Замените на параметр
# options=-g
Таким образом, udev будет наблюдать за всеми SCSI-устройствами на предмет возврата UUID. Чтобы определить идентификаторы, выполните:
# scsi_id  -g  -s  /block/sdc
Пример вывода этой команды:
[root@devices] # scsi_id -g -s /block/sdc
*3600a0b80001327510000015427b625e*
Полученная строка символов и есть UUID. Формирование имен устройств может зависеть от UUID; для этого проверьте пути для всех устройств и убедитесь, что номер UUID эквивалентен для каждого устройства. Затем создайте правила наименования устройств. Для этого отредактируйте файл 20-names.rules, расположенный в каталоге /etc/udev/rules.d. Формат наименования:
# KERNEL="sd*",  BUS="scsi",  PROGRAM="sbin/scsi_id", RESULT="UUID", NAME="devicename"
Замените существующий «UUID» и «устройство» полученными значениями. Пример:
 KERNEL="sd*",  BUS="scsi",  PROGRAM="sbin/scsi_id", RESULT="3600a0b80001327510000015427b625e
", NAME="mydevicename"

В результате все устройства, имя которых удовлетворяет шаблону /dev/sd*, будут выполнять проверку заданного идентификатора UUID. При нахождении совпадающего устройства будет создан узел /dev/devicename (в данном примере это /dev/mydevice ). И наконец, добавьте файл rc.local, который расположен в каталоге /etc:
/sbin/start_udev
ОБЕСПЕЧЕНИЕ СОХРАННОСТИ LUN С MULTIPATH
Чтобы обеспечить постоянство LUN в многомаршрутном окружении, надо задать обозначения устройств multipath. В данном примере вы определите 4 имени, отредактировав файл multipath.conf в каталоге /etc/:
multipath  {  
             wwid       3600a0b80001327510000015427b625e
             alias      oramp1
}
multipath  {  
             wwid       3600a0b80001327510000015427b6
             alias      oramp2
}
multipath  {  
             wwid       3600a0b80001327510000015427b625e
             alias      oramp3
}
multipath  {  
             wwid       3600a0b80001327510000015427b625e
             alias      oramp4
}
Это определяет 4 LUN: /dev/mpath/oramp1, /dev/mpath/oramp2, /dev/mpath/oramp3, dev/mpath/oramp4. Имена будут сохраняться между перезагрузками, поскольку будут созданы алиасы идентификатора WWID для LUN.

18.10. Замечания об SELinux

Эта секция содержит информацию, которую важно помнить при реализации SELinux в окружении виртуализации Red Hat. Не забывайте обновлять политику SELinux, если вы внесли изменения в систему или же добавили новые устройства. Чтобы настроить том LVM для гостя, необходимо изменить контекст SELinux для соответствующего блочного устройства и группы томов.
# semanage fcontext -a -t xen_image _t -f -b /dev/sda2
# restorecon /dev/sda2
Логический параметр xend_disable_trans переводит xend в свободный режим после его рестарта. Если вы решили отключить защиту, лучше это сделать отдельно для демона, а не для всей системы. Не рекомендуется задавать метку xen_image_t для каталогов, которые вы планируете использовать для других целей.

18.11. Доступ к данным на дисковом образе гостевой системы

Для получения доступа к данным, расположенным на дисковом образе гостя, можно использовать два отдельных приложения. Сначала завершите работу всех гостевых систем во избежание возможного повреждения системы в процессе доступа к файловой системе из гостевой ОС или домена 0.
Можно использовать приложение kpartx для работы с разбитыми на разделы дисками и группами томов LVM:
yum install kpartx
kpartx -av /dev/xen/guest1
add map guest1p1 : 0 208782 linear /dev/xen/guest1 63
add map guest1p2: 0 16563015 linear /dev/xen/guest1 208845
Чтобы получить доступ к томам LVM во втором разделе, выполните повторное сканирование LVM с помощью vgscan и активируйте группу томов (по умолчанию с именем VolGroup00) в этом разделе с помощью команды vgchange -ay. Пример:
# kpartx -a /dev/xen/guest1
#vgscan
Reading all physical volumes . This may take a while...
Found volume group "VolGroup00" using metadata type 1vm2
# vgchange -ay VolGroup00
2 logical volume(s) in volume group VolGroup00 now active.
# lvs
LV VG Attr Lsize Origin Snap% Move Log Copy%
LogVol00 VolGroup00 -wi-a- 5.06G
LogVol01 VolGroup00 -wi-a- 800.00M
# mount /dev/VolGroup00/LogVol00 /mnt/
....
#umount /mnt/
#vgchange -an VolGroup00
#kpartx -d /dev/xen/guest1
По завершению не забудьте деактивировать логические тома ( vgchange -an), удалить разделы (kpartx-d) и петлевое устройство (losetup -d).

18.12. Типичные проблемы

При попытке запуска xend ничего не происходит. В результате выполнения xm list1 отображается ошибка:
Error: Error connecting to xend: Connection refused. Is xend running?
При выполнении команды xend start отображаются ошибки:
Error: Could not obtain handle on privileged command interfaces (2 = No such file or directory)
Traceback (most recent call last:)

File "/usr/sbin/xend/", line 33 in ?

from xen.xend.server. import SrvDaemon

File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDaemon.py" , line 26 in ?
		
from xen.xend import XendDomain

File "/usr//lib/python2.4/site-packages/xen/xend/XendDomain.py" , line 33, in ?

from xen.xend import XendDomainInfo
		
File "/usr/lib/python2.4/site-packages/xen/xend/image.py" , line37, in ?

import images

File "/usr/lib/python2.4/site-packages/xen/xend/image.py" , line30, in ?

xc = xen.lowlevel.xc.xc ()

RuntimeError: (2, 'No such file or directory' )
Возможно, вы перезагрузили компьютер с ядром, не являющимся ядром xen-hypervisor. В этом случае во время загрузки выберите ядро xen-hypervisor или назначьте его яром по умолчанию, отредактировав grub.conf.

18.13. Ошибки петлевых устройств

При использовании файловых образов гостевых систем число петлевых устройств может возрасти (по умолчанию разрешаются 8 активных петлевых устройств). Если вы хотите увеличить число файловых гостевых систем/ устройств, вам понадобится отредактировать файл /etc/modprobe.conf и добавить:
options loop max_loop=64
Данный пример использует значение 64, но вы можете указать произвольное значение. Возможно, вам понадобится организовать гостевые системы на основе петлевых устройств. Для этого в паравиртуализированной системе используйте команды phy: block device или tap:aio, а в полностью виртуализированной — phy: device или file: file.

18.14. Ошибки создания гостевых систем

When you attempt to create a guest, you receive an "Invalid argument" error message. This usually means that the kernel image you are trying to boot is incompatible with the hypervisor. An example of this would be if you were attempting to run a non-PAE FC5 kernel on a PAE only FC6 hypervisor.
Выполнив обновление yum и получив новое ядро, вы увидите, что текущим ядром grub.conf опять станет исходное ядро вместо ядра виртуализации.
Чтобы это исправить, надо модифицировать RPM текущего ядра в каталоге /etc/sysconfig/kernel/. Убедитесь, что в файле gb.conf параметр kernel-xen установлен по умолчанию.

18.15. Ошибки последовательной консоли

При отсутствии вывода на последовательную консоль попробуйте изменить параметры COM-порта в grub.conf:
serial  --unit=1  --speed=115200
title RHEL5 i386 Xen (2.6.18-1.2910.el5xen)
root (hd0, 8)
kernel /boot/xen.gz-2.6.18-1.2910.el5 com2=115200,8n1
module /boot/vmlinuz-2.6.18-1.2910.el5xen to root=LABEL=RHEL5_i386 console=tty console=ttyS1115200
module /boot/initrd-2.8.6.18-12910.el5xen.img

title RHEL5 i386 xen (2.6.18.-1.2910.el5xen
root (hd0, 8)
kernel /boot/xen.gz-2.6.18-1.2910.el5 com2=115200 console=com2l
module /boot/vmlinuz2.6.18-1.2910.el5xen to root=LABEL=RHEL5_i386 console=xvc xencons=xvc
module /boot/ititrd-2.6.18-1.2910.el5xen.img
После внесения этих изменений в grub.conf консоль должна функционировать корректно. Вы сможете использовать любое число для ttyS, что в результате будет работать как ttyS0.

18.16. Ошибки сетевого моста

Red Hat Virtualization can configure multiple Virtualization network bridges to use with multiple ethernet cards. To successfully configure multiple network bridges for ethernet cards, you must configure the second network interface by either using the system-config-network TUI/GUI, or by creating a new configuration file in /etc/sysconfig/network-scripts . You should use a process to setup multiple Xen bridges. This is an example config file for a second NIC called 'eth1' :
#/etc/sysconfig/network-scripts/fcfg-eth1
DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
USERCTL=no
IPV6INIT=no
PEERDNS=yes
TYPE=Ethernet
NETMASK=255.255.255.0
IPADDR=10.1.1.1
GATEWAY=10.1.1.254
ARP=yes
Скопируйте /etc/xen/scripts/network-bridge в /etc/xen/scripts/network-bridge.xen.
Edit /etc/xen/xend-config.sxp and add a line to your new network bridge script (this example uses "network-virtualization-multi-bridge" ).
В файле xend-config.sxp новая строка должна отражать новый сценарий:
network-script network-xen-multi-bridge
Снимите комментарий:
network-script network-bridge
Если вы планируете создать несколько мостов Xen, создайте отдельный сценарий. В приведенном ниже примере создаются два моста Xen xenbr0 и xenbr1 , затем они подключаются к eth1 и eth0 соответственно.
# !/bin/sh
# network-xen-multi-bridge
# Exit if anything goes wrong
set -e
# First arg is operation.
OP=$1
shift
script=/etc/xen/scripts/network-bridge.xen
case ${OP} in
start)
$script start vifnum=1 bridge=xenbr1 netdev=eth1
$script start vifnum=0 bridge=xenbr0 netdev=eth0
;;
stop)
$script stop vifnum=1 bridge=xenbr1 netdev=eth1
$script stop vifnum=0 bridge=xenbr0 netdev=eth0
;;
status)
$script status vifnum=1 bridge=xenbr1 netdev=eth1
$script status vifnum=0 bridge=xenbr0 netdev=eth0
;;
*)
echo 'Unknown command: ' ${OP}
echo 'Valid commands are: start, stop, status'
exit 1
esac
Используйте этот пример в качестве шаблона для создания дополнительных мостов.

18.17. Конфигурации портативных компьютеров

The task of configuring your RHEL 5.1 loaded laptop for use on a network environment, presents a number of potential challenges. Most WiFi and wired connections switch constantly during any given day, and Red Hat Virtualization assumes it has access to the same interface consistently. This results in the system performing ifup/ifdown calls to the network interface in use by Red Hat Virtualization. WiFi cards are not the ideal network connection method since Red Hat Virtualization uses the default network interface.
The idea here is to create a 'dummy' network interface for Red Hat Virtualization to use.
This technique allows you to use a hidden IP address space for your guests and Virtual Machines. To do this operation successfully, you must use static IP addresses as DHCP does not listen for IP addresses on the dummy network. You also must configure NAT/IP masquerading to enable network access for your guests and Virtual Machines. You should attach a static IP when you create the 'dummy' network interface.
В приведеннном примере имя интерфейса — dummy0, IP-адрес — 10.1.1.1. Сам сценарий с именем ifcfg-dummy0 расположен в каталоге /etc/sysconfig/network-scripts/:
DEVICE =dummy0
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
IPV6INIT=no
PEERDNS=yes
TYPE=Ethernet
NETMASK=255.255.255.0
IPADDR=10.1.1.1
ARP=yes
Чтобы разрешить сетевое подключение даже при отсутствии соединения с физической сетью, требуется сопоставить xenbr0 интерфейсу dummy0.
You will need to make additional modifications to the xend-config.sxp file. You must locate the ( network-script 'network-bridge' bridge=xenbr0 ) section and add include this in the end of the line:
netdev=dummy0
You must also make some modifications to your guest's domU networking configuration to enable the default gateway to point to dummy0. You must edit the DomU 'network' file that resides in the /etc/sysconfig/ directory to reflect the example below:
NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=10.1.1.1
			
IPADDR=10.1.1.10
NETMASK=255.255.255.0
Можно активировать NAT в домене 0, чтобы DomU имел доступ к общей сети. Это также позволит обойти ограничения виртуализации для беспроводных подключений. Измените файл S99XenLaptopNAT в каталоге /etc/rc3.d так, чтобы он включал:
#!/bin/bash
#
# XenLaptopNAT  Startup script for Xen on Laptops
#
# chkconfig: - 99 01
# description: Start NAT for Xen Laptops
#
# PATH=/usr/bin:/sbin:/bin:/usr/sbin
# export PATH
GATEWAYDEV=`ip route | grep default | awk {'print $5'}`
iptables -F
case "$1" in
start)
if test -z "$GATEWAYDEV"; then
echo "No gateway device found"
else
echo "Masquerading using $GATEWAYDEV"
/sbin/iptables -t nat -A POSTROUTING -o $GATEWAYDEV -j MASQUERADE
fi
echo "Enabling IP forwarding"
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "IP forwarding set to `cat /proc/sys/net/ipv4/ip_forward`"
echo "done."
;;
*)
echo "Usage: $0 {start|restart|status}"
;;
esac
Чтобы обеспечить автоматическую настройку сети во время загрузки, создайте ссылку к /etc/rc3.d/S99XenLaptopNAT.
В modprobe.conf добавьте:
alias dummy0 dummy
options dummy numdummies=1

18.18. Starting Domains Automatically During System Boot

Starting Domains Automatically During System Boot
Можно настроить автоматический старт гостевых систем при запуске системы. Для этого необходимо изменить символические ссылки в файле /etc/xen/auto, который указывает на файлы конфигурации автоматически запускаемых гостей. Чем больше число гостей, тем дольше времени займет процесс загрузки. Приведенный пример демонстрирует использование символических ссылок для гостевой системы rhel5vm01.
[root@python xen]# cd /etc/xen
[root@python xen]# cd auto
[root@python auto]# ls
[root@python auto]# ln -s ../rhel5vm01 .
[root@python auto]# ls -l

lrwxrwxrwx 1 root root 14 Dec 14 10:02 rhel5vm01 -> ../rhel5vm01

[root@python auto]#

18.19. Модификация домена 0

To use Red Hat Virtualization to manage domain0, you will constantly making changes to the grub.conf configuration file, that resides in the /etc directory. Because of the large number of domains to manage, many system administrators prefer to use the 'cut and paste' method when editing grub.conf . If you do this, make sure that you include all five lines in the Virtualization entry (or this will create system errors). If you require Xen hypervisor specific values, you must add them to the 'xen' line. This example represents a correct grub.conf Virtualization entry:
# boot=/dev/sda/
default=0
timeout=15
#splashimage=(hd0, 0)/grub/splash.xpm.gz
hiddenmenu
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console
title Red Hat Enterprise Linux Server (2.6.17-1.2519.4.21. el5xen)
        root (hd0, 0)
	kernel /xen.gz-2.6.17-1.2519.4.21.el5 com1=115200,8n1
	module /vmlinuz-2.6.17-1.2519.4.21el5xen ro root=/dev/VolGroup00/LogVol00
	module /initrd-2.6.17-1.2519.4.21.el5xen.img
For example, if you need to change your dom0 hypervisor's memory to 256MB at boot time, you must edit the 'xen' line and append it with the correct entry, 'dom0_mem=256M' . This example represents the respective grub.conf xen entry:
# boot=/dev/sda
default=0
timeout=15
#splashimage=(hd0,0)/grubs/splash.xpm.gz
hiddenmenu
serial --unit=0 --speed =115200 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console
title Red Hat Enterprise Linux Server (2.6.17-1.2519.4.21. el5xen)
        root (hd0,0)
	kernel /xen.gz-2.6.17-1.2519.4.21.el5 com1=115200,8n1 dom0_mem=256MB
	module /vmlinuz-2.6.17-1.2519.4.21.el5xen ro
	root=/dev/VolGroup00/LogVol00
	module /initrd-2.6.17-1.2519.4.21.el5xen.img

18.20. Файлы конфигурации гостевых систем

When you install new guests using virt-manager (or virt-install) tool(s) from Red Hat Enterprise Linux 5.1 with Virtualization, the guests configuration files (located in the /etc/xen directory) get modified and setup automatically. This configuration file example is for a para-virtualized guest:
name = "rhel5vm01"
memory = "2048"
disk = ['tap:aio:/xen/images/rhel5vm01.dsk,xvda,w',]
vif = ["type=ieomu, mac=00:16:3e:09:f0:12 bridge=xenbr0', 
       "type=ieomu, mac=00:16:3e:09:f0:13 ]
vnc = 1
vncunused = 1
uuid = "302bd9ce-4f60-fc67-9e40-7a77d9b4e1ed"
bootloader = "/usr/bin/pygrub"
vcpus=2
on_reboot = "restart"
on_crash = "restart"
Note that the serial="pty" is the default for the configuration file. This configuration file example is for a fully-virtualized guest:
name = "rhel5u5-86_64"
builder = "hvm"
memory = 500
disk = ['file:/xen/images/rhel5u5-x86_64.dsk.hda,w']
vif = [ 'type=ioemu, mac=00:16:3e:09:f0:12, bridge=xenbr0', 'type=ieomu, mac=00:16:3e:09:f0:13, bridge=xenbr1']
uuid = "b10372f9-91d7-ao5f-12ff-372100c99af5'
device_model = "/usr/lib64/xen/bin/qemu-dm"
kernel = "/usr/lib/xen/boot/hvmloader/"
vnc = 1
vncunused = 1
apic = 1
acpi = 1
pae = 1
vcpus =1
serial ="pty" # enable serial console
on_boot = 'restart'

18.21. Дублирование файлов конфигурации гостевых систем

You can copy (or clone) an existing configuration file to create an all new guest. You must modify the name parameter of the guests' configuration file. The new, unique name then appears in the hypervisor and is viewable by the management utilities. You must generate an all new UUID as well (using the uuidgen(1) command). Then for the vif entries you must define a unique MAC address for each guest (if you are copying a guest configuration from an existing guest, you can create a script to handle it). For the xen bridge information, if you move an existing guest configuration file to a new host, you must update the xenbr entry to match your local networking configuration. For the Device entries, you must modify the entries in the 'disk=' section to point to the correct guest image.
You must also modify these system configuration settings on your guest. You must modify the HOSTNAME entry of the /etc/sysconfig/network file to match the new guest's hostname.
Измените адрес HWADDR в файле /etc/sysconfig/network-scripts/ifcfg-eth0 так, чтобы он соответствовал выводу ifconfig eth0. При использовании статических IP-адресов также надо отредактировать запись IPADDR.

18.22. Создание сценария генерации адресов MAC

Виртуализация Red Hat генерирует MAC-адрес для каждой виртуальной машины в момент ее создания. Можно создать сценарий для автоматической генерации адресов. Пример:
#! /usr/bin/python
# macgen.py script generates a MAC address for Xen guests
#
import random
mac = [ 0x00, 0x16, 0x3e,
random.randint(0x00, 0x7f),
random.randint(0x00, 0xff),
random.randint(0x00, 0xff) ]
print ':'.join(map(lambda x: "%02x" % x, mac))

Generates e.g.:
00:16:3e:66:f5:77
to stdout

18.23. Настройка живой миграции виртуальной машины

Red Hat Virtualization can migrate virtual machines between other servers running Red Hat Enterprise Linux 5.1 with Virtualization. Further, migration is performed in an offline method (using the xm migrate command). Live migration can be done from the same command. However there are some additional modifications that you must do to the xend-config configuration file. This example identifies the entries that you must modify to ensure a successful migration:
(xend-relocation-server yes)
The default for this parameter is 'no', which keeps the relocation/migration server deactivated (unless on a trusted network) and the domain virtual memory is exchanged in raw form without encryption.
(xend-relocation-port 8002)
Параметр задает порт, используемый xend для миграции. Это значение менять не надо, убедитесь только, что вы сняли комментарий с предшествующей ему записи.
(xend-relocation-address )
При активном xend-relocation-server этот параметр определяет адрес, прослушивающий соединения сокета перемещения. При прослушивании миграция разрешается только через определенный интерфейс.
(xend-relocation-hosts-allow )
This parameter controls the host that communicates with the relocation port. If the value is empty, then all incoming connections are allowed. You must change this to a space-separated sequences of regular expressions (such as xend-relocation-hosts-allow- '^localhost\\.localdomain$' ). A host with a fully qualified domain name or IP address that matches these expressions are accepted.
Завершив настройку параметров, перезагрузите компьютер для их активации.

18.24. Интерпретация сообщений об ошибках

Ошибка:
failed domain creation due to memory shortage, unable to balloon domain0
Ошибка домена связана с нехваткой памяти. Домен 0 не может быть уменьшен, так как окажется недостаточно места для нового гостевой системы. Просмотрите файл xend.log на наличие ошибки:
[2006-12-21] 20:33:31 xend 3198] DEBUG (balloon:133) Balloon: 558432 Kib free; 0 to scrub; need 1048576; retries: 20
[2006-12-21] 20:33:31 xend. XendDomainInfo 3198] ERROR (XendDomainInfo: 202
Domain construction failed
You can check the amount of memory in use by domain0 by using the xm list Domain0 command. If domain0 is not ballooned down, you can use the command "xm mem-set Domain-0 NewMemSize" to check memory.
Ошибка:
wrong kernel image: non-PAE kernel on a PAE
This message indicates that you are trying to run an unsupported guest kernel image on your Hypervisor. This happens when you try to boot a non-PAE paravirtual guest kernel on a RHEL 5.1 hypervisor. Red Hat Virtualization only supports guest kernels with PAE and 64bit architectures.
Введите команду:
[root@smith]# xm create -c va base

Using config file "va-base"
Error: (22, 'invalid argument')
[2006-12-14 14:55:46 xend.XendDomainInfo 3874] ERRORs
(XendDomainInfo:202) Domain construction failed

Traceback (most recent call last)
File "/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 195 in create vm.initDomain()
File " /usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 1363 in initDomain raise VmError(str(exn))
VmError: (22, 'Invalid argument')
[2006-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XenDomainInfo: 1449]
XendDlomainInfo.destroy: domin=1
[2006-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XenDomainInfo: 1457]
XendDlomainInfo.destroy:Domain(1)
Если вы хотите выполнять 32-битное не-PAE ядро, гостевая система должна будет работать в качестве полностью виртуализированной машины. В случае паравиртуализированных гостей будет необходимо выполнять 32-битную гостевую систему PAE, а для выполнения 64-битных PAE-гостей понадобится 64-битный PAE-гипервизор. При полной виртуализации 64-битные гостевые системы должны работать с 64-битным гипервизором. 32-битный PAE-гипервизор, поставляемый с RHEL 5 i686, обеспечивает только выполнение 32-битных PAE и 32-битных полностью виртуализированных гостевых систем. 64-битный гипервизор поддерживает только 64-битные паравиртуализированные гостевые системы.
This happens when you move the full virtualized HVM guest onto a RHEL 5.1 system. Your guest may fail to boot and you will see an error in the console screen. Check the PAE entry in your configuration file and ensure that pae=1.You should use a 32bit distibution.
Ошибка:
Unable to open a connection to the Xen hypervisor or daemon
Эта ошибка может иметь место при невозможности запуска приложения virt-manager и означает, что в файле /etc/hosts нет записи localhost. Пример неверной записи:
# Do not remove the following line, or various programs
# that require network functionality will fail.
localhost.localdomain localhost
Пример верной записи:
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
localhost.localdomain. localhost
Ошибка в файле xen-xend.log file:
Bridge xenbr1 does not exist!
This happens when the guest's bridge is incorrectly configured and this forces the Xen hotplug scipts to timeout. If you move configuration files between hosts, you must ensure that you update the guest configuration files to reflect network topology and configuration modifications. When you attempt to start a guest that has an incorrect or non-existent Xen bridge configuration, you will receive the following errors:
[root@trumble virt]# xm create r5b2-mySQL01

Using config file " r5b2-mySQL01"
Going to boot Red Hat Enterprise Linux Server (2.6.18.-1.2747 .el5xen)
kernel: /vmlinuz-2.6.18-12747.el5xen
initrd: /initrd-2.6.18-1.2747.el5xen.img
Error: Device 0 (vif) could not be connected. Hotplug scripts not working.
Кроме этого, xend.log будет содержать ошибки:
[2006-11-14 15:07:08 xend 3875] DEBUG (DevController:143) Waiting for devices vif
[2006-11-14 15:07:08 xend 3875] DEBUG (DevController:149) Waiting for 0
[2006-11-14 15:07:08 xend 3875] DEBUG (DevController:464) hotplugStatusCallback

/local/domain/0/backend/vif/2/0/hotplug-status

[2006-11-14 15:08:09 xend.XendDomainInfo 3875] DEBUG (XendDomainInfo:1449) XendDomainInfo.destroy: domid=2
[2006-11-14 15:08:09 xend.XendDomainInfo 3875] DEBUG (XendDomainInfo:1457) XendDomainInfo.destroyDomain(2)
[2006-11-14 15:07:08 xend 3875] DEBUG (DevController:464) hotplugStatusCallback

/local/domain/0/backend/vif/2/0/hotplug-status
В этом случае в файле конфигурации гостя измените запись vif. Если вы используете мост xenbr0, запись должна выглядеть так:
# vif = ['mac=00:16:3e:49:1d:11, bridge=xenbr0',]
Ошибки Python:
[root@python xen]# xm shutdown win2k3xen12
[root@python xen]# xm create win2k3xen12

Using config file "win2k3xen12".

/usr/lib64/python2.4/site-packages/xenxm/opts.py:520: Deprecation Warning:
Non ASCII character '\xc0' in file win2k3xen12 on line 1, but no encoding
declared; see http://www.python.org/peps/pep-0263.html for details

execfile (defconfig, globs, locs,)
Error: invalid syntax 9win2k3xen12, line1)
Python генерирует такие ошибки в случае использования неверного файла конфигурации. Исправьте файл или создайте его заново.

18.25. Онлайн-ресурсы

Глава 19. Дополнительные ресурсы

За дальнейшей информацией о виртуализации Red Hat обратитесь к перечисленным далее ресурсам.

19.1. Информация в Интернет

  • http://www.cl.cam.ac.uk/research/srg/netos/xen/ — сайт проекта Xen™, послужившего основой виртуализации Red Hat. Кроме прочей информации, там можно найти двоичные файлы, исходные коды, а также полезные сведения, обзоры архитектур, документацию и пр. На английском.
  • http://www.libvirt.org/ — официальный сайт API виртуализации libvirt. На английском.
  • http://virt-manager.et.redhat.com/ — сайт проекта графического приложения менеджера виртуальных машин (virt-manager). На английском.

19.2. Установленная документация

  • /usr/share/doc/xen-<version-number>/ —. This directory contains a wealth of information about the Xen para-virtualization hypervisor and associated management tools, including a look at various example configurations, hardware-specific information, and the current Xen upstream user documentation.
  • man virsh and /usr/share/doc/libvirt-<version-number> — Contains subcommands and options for the virsh virtual machine management utility as well as comprehensive information about the libvirt virtualization library API.
  • /usr/share/doc/gnome-applet-vm-<version-number> — Documentation for the GNOME graphical panel applet that monitors and manages locally-running virtual machines.
  • /usr/share/doc/libvirt-python-<version-number> — Provides details on the Python bindings for the libvirt library. The libvirt-python package allows python developers to create programs that interface with the libvirt virtualization management library.
  • /usr/share/doc/python-virtinst-<version-number> — Provides documentation on the virt-install command that helps in starting installations of Fedora and Red Hat Enterprise Linux related distributions inside of virtual machines.
  • /usr/share/doc/virt-manager-<version-number> — Provides documentation on the Virtual Machine Manager, which provides a graphical tool for administering virtual machines.

Приложение A. Упражнение 1

Установка гостевой системы Xen
Цель: Установить гостевые системы RHEL 3, 4, 5 и Windows XP.
Необходимо: Рабочая станция с установленной системой Red Hat Enterprise Linux 5.0 и компонентом виртуализации.
В данном упражнении вы выполните установку и настройку Xen-гостей RHEL 3, 4, 5 и Win XP с помощью различных инструментов виртуализации.
Последовательность 1. Проверка поддержки расширений адресов PAE
Сначала необходимо определить, включает ли ваша система поддержку PAE. Виртуализация Red Hat поддерживает выполнение паравиртуализированных гостей на процессорах на основе x86_64 и ia64. Для выполнения гостей i386 обязательно наличие процессоров с расширениями PAE. Большинство старых портативных компьютеров (особенно на базе Pentium Mobile и Centrino) не поддерживают PAE.
  1. Чтобы определить, поддерживает ли процессор PAE, выполните:
        grep pae /proc/cpuinfo
    
  2. Приведенный ниже вывод этой команды показывает наличие поддержки PAE. Расширение физических адресов не поддерживается, если вывод команды пуст. Для выполнения упражнений при использовании систем x86_64 и ia64 обязательно наличие процессора i386.
    
        flags :
        fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat clflush dts acpi
        mmx fxsr sse sse2 ss tm pbe nx up est tm2
    
    
Последовательность 2. Установка паравиртуализированного гостя Xen RHEL5 Beta 2 с помощью virt-install.
В данном упражнении вы выполните установку гостя Xen Red Hat Enterprise Linux 5 с помощью virt-install.
  1. Чтобы установить гостевую систему Red Hat Enterprise Linux 5, запустите virt-install.
  2. При запросе установки полностью виртуализированного гостя введите no.
  3. В качестве имени виртуальной машины используйте rhel5b2-pv1.
  4. Используйте значение 500 для выделяемого объема RAM.
  5. Используйте /xen/rhel5b2-pv1.img в качестве дискового образа гостя.
  6. Введите 6 в качестве размера диска (образа гостя).
  7. Для активации графической поддержки введите yes.
  8. В качестве расположения дерева установки укажите nfs:server:/path/to/rhel5b2.
  9. После указания всех значений начнется установка.
  10. После завершения установки введите /etc/xen/rhel5b2-pv1 и внесите следующие изменения:\n#vnc=1 #vncunused=1 sdl=1
  11. С помощью текстового редактора отредактируйте /etc/inittab и добавьте init 5.#id:3:initdefault:id:5:initdefault:
Последовательность 3. Установка паравиртуализированного гостя Xen RHEL5 Beta 2 с помощью virt-manager.
В данном упражнении вы выполните установку гостя Xen Red Hat Enterprise Linux 5 Beta 2 с помощью virt-install.
  1. Чтобы установить гостевую систему Red Hat Enterprise Linux Beta 5, запустите virt-install.
  2. В окне подключения выберите локальный узел Xen и нажмите Подключиться.
  3. Start Red Hat's Virtual Machine Manager application, and from the File menu, click on New.
  4. Нажмите Далее.
  5. В качестве имени системы введите rhel5b2-pv2 и нажмите Далее.
  6. Выберите Паравиртуализованная и нажмите Далее.
  7. В качестве ссылки к установочному носителю введите nfs:server:/path/to/rhel5b2 и нажмите Далее.
  8. Выберите Простой файл и введите /xen/rhel5b2-pv2.img. Укажите 6000 Мб и нажмите Далее.
  9. Установите значения исходного и максимального объема памяти виртуальной машины в 500 и нажмите Далее.
  10. Нажмите Завершить.
Появится окно консоли виртуальной машины. Продолжите работу и завершите установку.
Последовательность 4. Проверка наличия поддержки Intel-VT и AMD-V.
В ходе данного упражнения вы должны определить, поддерживает ли ваша система оборудование Intel-VT и AMD-V, что необходимо для установки полностью виртуализированных гостевых ОС. Виртуализация Red Hat включает в свою структуру слой HVM (Hardware Virtualization Mode), обеспечивающий поддержку данных производителей процессоров.
  1. To determine if your CPU has Intel-VT or AMD-V support, type the following command: egrep -e 'vmx|svm' /proc/cpuinfo
  2. Приведенный вывод показывает наличие поддержки Intel-VT:
    .flags :
        fpu tsc msr pae mce cx8 apic mtrr mca cmov pat clflush dts acpi mmx fxsr sse
        sse2 ss ht tm pbe constant_tsc pni monitor vmx est tm2 xtpr
    
    Если результат выполнения команды пуст, это означает, что процессор не поддерживает Intel-VT и AMD-V.
  3. Чтобы определить, включает ли ваш процессор поддержку Intel-VT и AMD-V, выполните:
    cat /sys/hypervisor/properties/capabilities
  4. The following output shows that Intel-VT support has been enabled in the BIOS. If the command returns nothing, then go into the BIOS Setup Utlility and look for a setting related to 'Virtualization', i.e. 'Intel(R) Virtualization Technology' under 'CPU' section on a IBM T60p. Enable and save the setting and do a power off to take effect.
    
    xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
    
    
Последовательность 5. Установка полностью виртуализированного гостя Xen RHEL5 Beta с помощью virt-install.
В ходе данного упражнения вы выполните установку полностью виртуализированной гостевой системы Red Hat Enterprise Linux 5 с использованием virt-install.
  1. Чтобы установить гостевую систему Red Hat Enterprise Linux 5, запустите virt-install.
  2. При запросе установки полностью виртуализированного гостя введите yes.
  3. В качестве имени виртуальной машины используйте rhel5b2-pv2.
  4. Используйте значение 500 для выделяемого объема памяти.
  5. Используйте /xen/rhel5b2-fv1.img в качестве дискового образа гостя.
  6. Введите 6 в качестве размера диска (образа гостя).
  7. Для активации графической поддержки введите yes.
  8. В качестве виртуального образа CD укажите /dev/cdrom.
  9. The VNC viewer appears within the installation window. If there is an error message that says “main: Unable to connect to host: Connection refused (111)”, then type the following command to proceed: vncviewer localhost:5900. VNC port 5900 refers to the first Xen guest that is running on VNC. If it doesn't work, you might need to use 5901, 5902, etc.
После указания всех значений начнется установка.
Последовательность 6. Установка полностью виртуализированного гостя Xen RHEL5 Beta 2 с помощью virt-manager.
В ходе упражнения вы выполните установку полностью виртуализированного гостя Xen Red Hat Enterprise Linux 5 Beta 2 с использованием virt-manager:
  1. Чтобы установить гостевую систему Red Hat Enterprise Linux Beta 5, запустите virt-install.
  2. В окне Открыть соединение выберите локальный узел Xen и нажмите Подключиться.
  3. Start Red Hat's Virtual Machine Monitor application, and from the File menu, click on New.
  4. Нажмите Далее.
  5. В качестве имени системы введите rhel5b2-fv2 и нажмите Далее.
  6. Выберите «Полностью виртуализированная» и нажмите Далее.
  7. Укажите CD-ROM или DVD и введите путь к установочному носителю или образу ISO. Нажмите Далее.
  8. Выберите «Простой файл» и введите /xen/rhel5b2-fv2.img. Укажите 6000 Мб и нажмите Далее.
  9. Установите значения исходного и максимального объема памяти виртуальной машины в 500 и нажмите Далее.
  10. Нажмите Завершить.
  11. Появится окно консоли виртуальной машины.
Продолжите работу и завершите установку.
Последовательность 7. Установка полностью виртуализированного гостя Xen RHEL3 с помощью virt-manager.
В ходе данного упражнения вы выполните установку гостевой системы Red Hat Enterprise Linux 3 с использованием virt-manager:
  1. Порядок действий аналогичен порядку последовательности 6.
Последовательность 8. Установка полностью виртуализированного гостя Xen RHEL4 с помощью virt-manager.
В ходе данного упражнения вы выполните установку гостевой системы Red Hat Enterprise Linux 4 с использованием virt-manager :
  1. Порядок действий аналогичен порядку последовательности 6.
Последовательность 9. Установка полностью виртуализированного гостя Xen Windows XP с помощью virt-manager.
В ходе данного упражнения вы выполните установку полностью виртуализированной гостевой системы Windows XP с использованием virt-manager.
  1. Чтобы установить гостевую систему Red Hat Enterprise Linux 5 на узле Windows XP, запустите virt-install.
  2. В окне Открыть соединение выберите локальный узел Xen и нажмите Подключиться.
  3. Start Red Hat's Virtual Machine Manager application, and from the File menu click on New.
  4. Нажмите Далее.
  5. В качестве имени системы введите winxp и нажмите Далее.
  6. Выберите «Полностью виртуализированная» и нажмите Далее.
  7. Укажите CD-ROM или DVD и введите путь к установочному носителю или образу ISO. Нажмите Далее.
  8. Выберите «Простой файл» и введите /xen/rhel5b2-fv2.img. Укажите 6000 Мб и нажмите Далее.
  9. Установите значения исходного и максимального объема памяти виртуальной машины в 1024 и нажмите Далее.
  10. Нажмите Завершить.
  11. Появится окно консоли виртуальной машины. Продолжите работу и завершите установку.
  12. В качестве формата файловой системы для раздела C:\ выберите FAT. В поставку Red Hat Enterprise Linux 5 не входят модули ядра NTFS. Подключение или запись файлов в образ гостя Xen в данном случае усложняются по сравнению с ситуацией, если бы раздел был отформатирован в NTFS.
  13. После первой перезагрузки системы отредактируйте образ гостя winxp так: losetup /dev/loop0 /xen/winxp.imgkpartx -av /dev/loop0mount /dev/mapper/loop0p1 /mntcp -prv $WINDOWS/i386 /mnt/. Это поможет предотвратить проблему, с которой вы можете столкнуться позднее в процессе установки Windows.
  14. Перезапустите гостевую систему Xen вручную, выполнив xm create -c winxp/.
  15. В окне менеджера виртуальных машин выберите гостевую систему winxp и нажмите Открыть.
  16. Появится окно консоли виртуальной машины. Продолжите работу и завершите установку.
  17. Whenever a 'Files Needed' dialog box appears, change the path GLOBALROOT\DEVICE\CDROM0\I386 to C:\I386. Depending on your installation, you may or may not see this problem. You may be prompted for missing files during the installation. Changing the path to C:\I386 should compensate for this problem.
  18. Если консоль гостя Xen зависла, нажмите Выключить и внесите изменения в /etc/xen/winxp так, чтобы #vnc=1 #vncunused=1 sdl=1 #vcpus=2.
  19. Повторите шаг 14 и продолжите установку.

Приложение B. Упражнение 2

Живая миграция
Цель: Настроить и выполнить живую миграцию между двумя узлами.
Необходимо: Две рабочие станции с системой Red Hat Enterprise Linux 5.0 Beta 2 с платформой виртуализации и установленный на одной из машин гость Xen Fedora Core 6.
В ходе данного упражнения вы выполните настройку и живую миграцию между двумя узлами.
Прежде чем начать
Вам понадобятся два узла виртуализации, которые мы обозначим host1 и host2 , соединенные между собой через кабель UTP. Один из узлов экспортирует разделяемое хранилище через NFS. Для успешной миграции надо выполнить необходимую настройку узлов. Гостевая система Xen расположена в разделяемом хранилище, и на ней должен быть установлен потоковый сервер. Убедитесь, что потоковый сервер работает без каких-либо прерываний так, чтобы можно было осуществить живую миграцию.
Последовательность 1. Конфигурация xend (для обоих узлов).
В ходе данной последовательности вы выполните конфигурацию xend с целью его запуска в качестве HTTP-сервера и сервера перемещения. Демон xend не инициирует HTTP-сервер по умолчанию, а запускает сервер управления сокетами домена UNIX (для xm). Для активации живой миграции между двумя машинами надо настроить ее поддержку.
  1. Создайте резервную копию файла xend-config.sxp:
        cp -pr /etc/xen/xend-config.sxp /etc/xen/xend-config.sxp.default
    
  2. Внесите следующие изменения в файл /etc/xen/xend-config.sxp:
    #(xend-unix-server yes)(xend-relocation-server
        yes)(xend-relocation-port 8002)(xend-relocation-address
        '')(xend-relocation-hosts-allow '')#(xend-relocation-hosts-allow '^localhost$
        ^localhost\\.localdomain$')
    
  3. Перезапустите xend командой service xend restart.
Последовательность 2. Экспорт разделяемого хранилища через NFS.
В ходе данного упражнения вы настроите NFS и выполните экспорт разделяемого хранилища.
  1. Добавьте строку /xen *(rw,sync,no_root_squash)/ в файл /etc/exports.
  2. Сохраните /etc/exports и перезапустите сервер NFS. Убедитесь, что запуск сервера NFS выполняется по умолчанию: service nfs start chkconfig nfs on.
  3. После старта сервера NFS на host1 можно его подключить к host2: mount host1:/xen /xen.
  4. Запустите гостевую систему Xen на узле host1 и выберите fc6-pv1 (или fc6-pv2 из первого упражнения):
    xm create -c fc6-pv1
    
Последовательность 3. Установка потокового сервера гостя Xen.
В ходе выполнения данной последовательности вы выполните установку потокового сервера gnump3d. gnump3 был выбран для демонстрации, поскольку он поддерживает файлы OGG vorbis. Кроме того, его легко установить и настроить.
  1. Загрузите архив gnump3d-2.9.9.9.tar.bz2 с http://www.gnump3d.org/ . Распакуйте его в gnump3d-2.9.9.9/, затем выполните компиляцию и установите gnump3d с помощью команды tar xvjf gnump3d-2.9.9.9.tar.bz2\ncd gnump3d-2.9.9.9/\nmake install.
  2. Create a /home/mp3 directory and copy TruthHappens.ogg from Red Hat's Truth Happens page to mkdir /home/mp3wget -c http://www.redhat.com/v/ogg/TruthHappens.ogg
  3. Запустите потоковый сервер
     command:gnump3d
    
  4. На любом узле Xen запустите проигрыватель Movie Player путем выбора «Приложения», «Звук и видео», «Movie Player».
  5. Нажмите «Movie», «Open Location» и введите http://guest:8888/TruthHappens.ogg
Последовательность 4. Выполнение живой миграции.
  1. Запустите файл TruthHappens.ogg на одном из Xen узлов.
  2. Выполните живую миграцию с host1 на host2:
    xm migrate –live fc6-pv1 host2
    
  3. Откройте несколько окон терминалов на обоих узлах:
    watch -n1 xm list
    
  4. Понаблюдайте за процессом миграции. Обратите внимание, сколько времени это займет.
Дополнительная последовательность: Настройка сервера VNC из гостевой системы.
If time permits, from within the Xen guest, configure the VNC server to initiate when gdm starts up. Run VNC viewer and connect to the Xen guest. Play with the Xen guest when the live migration occurs. Attempt to pause/resume, and save/restore the Xen guest and observe what happens to the VNC viewer. If you connect to the VNC viewer via localhost:590x, and do a live migration, you won't be able to connect to the VNC viewer again when it dies. This is a known bug.

Приложение C. История изменений

История переиздания
Издание 2.0-11.4002013-10-31Rüdiger Landmann
Rebuild with publican 4.0.0
Издание 2.0-112012-07-18Anthony Towns
Rebuild for Publican 3.0
Издание 5.1.0-10Fri Aug 3 2007Michael Hideo Smith
Resolves: #245684
Content Updates

Юридическое уведомление

Copyright © 2007 Red Hat Inc..
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.