Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
Virtualization
A reference guide for virsch, xm, vmm and xend.
Редакция 2.0
Аннотация
http://bugzilla.redhat.com/bugzilla/
) относительно компонента Virtualization_Guide
.
Глава 1. Архитектура систем виртуализации Red Hat
Глава 2. Поддержка операционными системами
- 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.
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
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
Примечание
Глава 3. Поддержка аппаратного обеспечения
- Celeron
- Pentium II
- Pentium III
- Pentium IV
- Xeon
- AMD Athlon
- AMD Duron
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
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
Глава 4. Системные требования для виртуализации Red Hat
- Работающий дистрибутив RHEL 5
- Работающий загрузчик GRUB
- Доступ root
- Процессор P6 (или более ранний)
- Пакет bridge-utils для Linux
- Системы hotplug для Linux
- Установка zlib
- Окружение Python v2.2
- initscripts
Примечание
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. Загрузка системы
service xend start
xend
при загрузке также можно использовать chkconfig xend
во время установки.
Глава 6. Конфигурация GRUB
/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
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
com1=115200, 8n1
dom0_mem
dom0_max_vcpus
acpi
/* **** 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
Глава 7. Запуск гостевых доменов
xm
, virsh
или менеджера виртуальных машин. Обязательным условием загрузки гостевого домена является наличие установленного гостевого узла. Следующий пример демонстрирует использование параметра "-c" (console):
# xm create -c guestdomain1
guestdomain1
— файл конфигурации загружаемого домена. Параметр -c
обозначает, что после запуска домена будет подключена его консоль.
Глава 8. Запуск и остановка доменов в процессе загрузки
/etc/xen/
. Создайте символические ссылки к /etc/xen/auto
для всех доменов, которые должны запускаться автоматически во время загрузки.
chkconfig xendomains on
chkconfig xendomains off
chkconfig xendomains off
выполнит отключение доменов при следующей загрузке.
Глава 9. Файлы конфигурации
/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. Управление процессорами
Глава 11. Миграция домена
xm migrate domain-id [destination domain]
xm migrate domain-id -l [destination domain]
Глава 12. Конфигурация для использования по сети
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.
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
к соответствующему мосту.
network-route
, network-nat
, vif-route
, vif-nat
. Эти сценарии также могут быть заменены другими предпочитаемыми вариантами.
Глава 13. Обеспечение безопасности домена 0
- Обеспечьте выполнение минимального числа необходимых служб в домене 0. Чем меньше заданий и служб выполняется в домене 0, тем меньше он подвергается риску.
- Активируйте SELinux для улучшения защиты домена 0.
- Используйте межсетевой экран для ограничения трафика к домену 0. Межсетевой экран может быть настроен на автоматический отказ для усиления защиты от атак на домен 0. Также рекомендуется ограничить число служб, использующих сетевое подключение.
- Не открывайте доступ к домену 0 для обычных пользователей. Помните, домен 0 является привилегированным, а разрешение доступа непривилегированных пользователей может подвергнуть его безопасность неоправданному риску.
Глава 14. Организация хранилищ
Глава 15. Управление виртуальными машинами с помощью virsh
xend/qemu
сначала нужно выполнить настройку его выполнения в качестве службы. Отредактировав соответствующий файл конфигурации, перезагрузите систему. Аналогично xm, virsh запускается из командной строки.
15.1. Подключение к гипервизору
virsh connect <name>
<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. Создание виртуальной машины
virsh create <path to XML configuration file>
15.3. Конфигурация XML дампа
virsh dumpxml [domain-id | domain-name | domain-uuid]
stdout
. If you save the data to a file, you can use the create
option to recreate the virtual machine.
15.4. Приостановка виртуальной машины
virsh suspend [domain-id | domain-name |domain-uuid]
resume
option.
15.5. Возобновление работы виртуальной машины
virsh resume [domain-id | domain-name | domain-uuid]
suspend
и resume
.
15.6. Сохранение виртуальной машины
virsh save [domain-name][domain-id | domain-uuid][filename]
restore
option.
15.7. Восстановление виртуальной машины
virsh save
option:
virsh restore [filename]
15.8. Завершение работы виртуальной машины
virsh shutdown [domain-id | domain-name | domain-uuid]
on_shutdown
в файле xmdomain.cfg
.
15.9. Перезагрузка виртуальной машины
virsh reboot [domain-id | domain-name | domain-uuid]
on_reboot
в файле xmdomain.cfg
.
15.10. Остановка домена
virsh destroy [domain-name | domain-id | domain-uuid]
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. Преобразование имени домена в идентификатор домена
virsh domid [domain-name | domain-uuid]
15.12. Преобразование идентификатора домена в имя домена
virsh domname [domain-name | domain-uuid]
15.13. Преобразование имени домена в UUID
virsh domuuid [domain-id | domain-uuid]
15.14. Отображение информации о виртуальной машине
virsh dominfo [domain-id | domain-name | domain-uuid]
15.15. Отображение информации об узле
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 vcpuinfo [domain-id | domain-name | domain-uuid]
15.18. Настройка соответствий виртуальных процессоров
virsh vcpupin [domain-id | domain-name | domain-uuid] [vcpu] , [cpulist]
[vcpu]
— номер виртуального процессора, а [список_cpu]
— сопоставляемые ему физические процессоры.
15.19. Изменение числа виртуальных процессоров
virsh setvcpus [domain-name | domain-id | domain-uuid] [count]
15.20. Изменение выделенного объема памяти
virsh setmem [domain-id | domain-name] [count]
[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. Изменение максимального объема памяти
virsh setmaxmem [domain-name | domain-id | domain-uuid] [count]
15.22. Managing Virtual Networks
virsh net-list
[root@domain ~]# virsh net-list Name State Autostart ----------------------------------------- default active yes vnet1 active yes vnet2 active yes
virsh net-dumpxml [vnet name]
[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>
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 filevirsh net-define [XML file]
— Generates a new network from a preexisting XML file without starting itvirsh net-destroy [network name]
— Destroy a network specified as [network name]virsh net-name [network UUID]
— Convert a specified [network UUID] to a network namevirsh net-uuid [network name
— Convert a specified [network name] to a network UUIDvirsh net-start [name of an inactive network]
— Starts a previously undefined inactive networkvirsh net-undefine [name of an inactive network]
— Undefine an inactive network
Глава 16. Управление виртуальными машинами с помощью 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
|
Определяет адрес, которому сопоставлен сокет-сервер.
|
service xend start
service xend stop
service xend restart
service xend status
Глава 17. Управление виртуальными машинами с помощью графического приложения менеджера виртуальных машин
17.1. Архитектура менеджера виртуальных машин
17.2. Окно «Открыть соединение»
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.

Рисунок 17.1. Virtual Machine Manager Connection window
17.3. Окно менеджера виртуальных машин

Рисунок 17.2. Virtual Machine Manager main window
17.4. Окно данных виртуальной машины

Рисунок 17.3. Virtual Machine Manager Details window
17.5. Графическая консоль виртуальной машины

Рисунок 17.4. Окно графической консоли
17.6. Starting the Virtual Machine Manager
Система
, затем Virtual Machine Manager
.

Рисунок 17.5. Starting the Virtual Machine Manager
17.7. Создание виртуальной машины
- Создавать новые домены.
- Configure or adjust a domain's resource allocation and virtual hardware.
- Осуществлять сбор статистики использования ресурсов и просматривать информацию о выполняемых доменах.
- Просматривать диаграммы производительности и использования ресурсов системы.
- Использовать встроенный просмотрщик клиентов VNC, обеспечивающий доступ к графической консоли гостевого домена.
Примечание
Процедура 17.1. Создание гостевой операционной системы
- В меню приложений выберите Система, затем
Virtual Machine Manager
.Появится окно менеджера виртуальных машин.Рисунок 17.6. Virtual Machine Manager window
- В меню Файл выберите Новая машина.
Рисунок 17.7. Создание машины
Появится окно мастера создания новой виртуальной системы. - Click Forward.
Рисунок 17.8. Мастер создания виртуальной системы
- Enter the name of the new virtual system and then click Forward.
Рисунок 17.9. Назначение имени
- Введите путь к дереву установки. Дополнительно можно указать расположение файла кикстарта. Закончив, нажмите Далее.
Рисунок 17.10. Расположение дерева установки
- Установку можно произвести либо на физический дисковый раздел, либо в виртуальную файловую систему, определяемую файлом.
Примечание
Приведенный пример демонстрирует выполнение установки в файл.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 commandrestorecon -v /xen
. Specify your location and the size of the virtual disk, then click Forward.Рисунок 17.11. Выделение пространства
- Select memory to allocate the guest and the number of virtual CPUs then click Forward.
Рисунок 17.12. Выделение памяти и процессоров
- Select Forward to open a console and the files start to install.
Рисунок 17.13. Выделение памяти и процессоров
- Выполните установку.
Рисунок 17.14. Установка начинается...
Предупреждение
When installing Red Hat Enterprise Linux 5.1 on a fully virtualized guest, do not use thekernel-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 theVirtualization
package group during the installation. TheVirtualization
package group option installs thekernel-xen
kernel.Note that paravirtualized guests are not affected by this issue. Paravirtualized guests always use thekernel-xen
kernel. - 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.Рисунок 17.15. Red Hat Enterprise Linux 5.1 (guest)
- Введите имя пользователя и пароль для входа в систему.
17.8. Восстановление сохраненной машины
- В меню Файл выберите Восстановить виртуальную машину.
Рисунок 17.16. Restoring a Virtual Machine
- Появится окно каталогов.
Рисунок 17.17. Выбор сохраненной сессии
- Перейдите к каталогу, содержащему файл сессии, и выберите файл.
- Нажмите Открыть.

Рисунок 17.18. Восстановленная сессия
17.9. Displaying Virtual Machine Details
- В главном окне выберите виртуальную машину.
Рисунок 17.19. Выбор виртуальной машины
- В меню Редактировать выберите Подробности о машине... или нажмите кнопку Подробности в нижней части главного окна менеджера.
Рисунок 17.20. Меню отображения информации виртуальной машины
Появится окно просмотра информации виртуальной машины, где будут доступны сведения об использовании ресурсов процессора и памяти.Рисунок 17.21. Обзор информации виртуальной машины
- Выберите вкладку Оборудование.Появится окно сведений об оборудовании.
Рисунок 17.22. Окно сведений об оборудовании
- Для просмотра или изменения числа виртуальных процессоров выберите Процессор.
Рисунок 17.23. Отображение информации о распределении процессоров
- Для просмотра или изменения распределения памяти выберите Память.
Рисунок 17.24. Отображение информации о распределении памяти
- Для просмотра или изменения дисковой конфигурации выберите Диск.
Рисунок 17.25. Отображение конфигурации диска
- Для просмотра или изменения сетевой конфигурации выберите Сеть.
Рисунок 17.26. Отображение конфигурации сети
17.10. Configuring Status Monitoring
- В меню Редактировать выберите Параметры.
Рисунок 17.27. Изменение параметров виртуальной машины
Появится окно параметров. - В окне настройки укажите время обновления статуса в секундах.
Рисунок 17.28. Configuring Status Monitoring
- В области «Консоли» выберите, как открывать консоль, и укажите устройство ввода.
17.11. Отображение идентификатора домена
- В меню Вид отметьте ID домена.
Рисунок 17.29. Отображение идентификаторов доменов
- The Virtual Machine Manager lists the Domain ID's for all domains on your system.
Рисунок 17.30. Отображение идентификаторов доменов
17.12. Отображение состояния виртуальной машины
- В меню Вид отметьте Состояние.
Рисунок 17.31. Отображение состояния виртуальной машины
- Менеджер отобразит состояние всех виртуальных машин в системе.
Рисунок 17.32. Отображение состояния виртуальной машины
17.13. Отображение виртуальных процессоров
- В меню Вид отметьте Виртуальные процессоры.
Рисунок 17.33. Отображение виртуальных процессоров
- Менеджер отобразит список виртуальных процессоров для всех виртуальных машин.
Рисунок 17.34. Отображение виртуальных процессоров
17.14. Отображение информации о занятости ресурсов процессора
- В меню Вид отметьте Использование процессора.
Рисунок 17.35. Отображение информации о занятости ресурсов процессора
- Будет отображена информация о занятости ресурсов процессоров (в процентах) для всех виртуальных машин в системе.
Рисунок 17.36. Отображение информации о занятости ресурсов процессора
17.15. Отображение информации о занятости памяти
- В меню Вид отметьте Использование памяти.
Рисунок 17.37. Отображение информации о занятости памяти
- Будет отображена информация о занятости ресурсов памяти (в процентах) для всех виртуальных машин в системе.
Рисунок 17.38. Отображение информации о занятости памяти
17.16. Managing a Virtual Network
- From the Edit menu, select Host Details.
Рисунок 17.39. Selecting Host Details
- This will open the Host Details menu. Click the Virtual Networks tab.
Рисунок 17.40. Virtual Network Configuration
- 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
- Open the Host Details menu (refer to Раздел 17.16, «Managing a Virtual Network») and click the Add button.
Рисунок 17.41. Virtual Network Configuration
This will open the Create a new virtual network menu. Click Forward to continue.Рисунок 17.42. Creating a new virtual network
- Enter an appropriate name for your virtual network and click Forward.
Рисунок 17.43. Naming your virtual network
- Enter an IPv4 address space for your virtual network and click Forward.
Рисунок 17.44. Choosing an IPv4 address space
- Define the DHCP range for your virtual network by specifying a Start and End range of IP addresses. Click Forward to continue.
Рисунок 17.45. Selecting the DHCP range
- Select how the virtual network should connect to the 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. - You are now ready to create the network. Check the configuration of your network and click Finish.
Рисунок 17.47. Ready to create network
- The new virtual network is now available in the Virtual Network tab of the Host Details menu.
Рисунок 17.48. New virtual network is now available
Глава 18. Разрешение проблем виртуализации Red Hat
18.1. Обзор журналов и их расположение
- Основной каталог конфигурации виртуализации Red Hat
/etc/xen/
содержит демонxend
и прочие файлы настройки виртуальной машины. Файлы сетевых сценариев расположены в подкаталоге/scripts
. - Файлы журналов, к которым вы будете обращаться в процессе диагностики проблем, располагаются в каталоге
/var/log/xen
.
- Также необходимо помнить, что текущим каталогом для хранения дисковых образов виртуальных машин является
/var/lib/xen
. - Сведения для файла
/proc
хранятся в/proc/xen/
.
18.2. Описание журналов
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. Важные каталоги
- Образы виртуальных машин находятся в
/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. Анализ проблем с помощью журналов
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. Анализ проблем с помощью последовательной консоли
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
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. Доступ к паравиртуализированной гостевой системе через консоль
xm console [domain name or number]
18.8. Доступ к полностью виртуализированному гостю через консоль
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
udev
. Сначала убедитесь в наличии корректных UUID. Затем модифицируйте файл scsi_id
, расположенный в каталоге /etc
. Закомментируйте следующую строку:
# options=-b
# options=-g
# scsi_id -g -s /block/sdc
[root@devices] # scsi_id -g -s /block/sdc *3600a0b80001327510000015427b625e*
20-names.rules
, расположенный в каталоге /etc/udev/rules.d
. Формат наименования:
# KERNEL="sd*", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="UUID", NAME="devicename"
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
multipath.conf
в каталоге /etc/
:
multipath { wwid 3600a0b80001327510000015427b625e alias oramp1 } multipath { wwid 3600a0b80001327510000015427b6 alias oramp2 } multipath { wwid 3600a0b80001327510000015427b625e alias oramp3 } multipath { wwid 3600a0b80001327510000015427b625e alias oramp4 }
/dev/mpath/oramp1
, /dev/mpath/oramp2
, /dev/mpath/oramp3
, dev/mpath/oramp4
. Имена будут сохраняться между перезагрузками, поскольку будут созданы алиасы идентификатора WWID для LUN.
18.10. Замечания об SELinux
# semanage fcontext -a -t xen_image _t -f -b /dev/sda2 # restorecon /dev/sda2
xend_disable_trans
переводит xend
в свободный режим после его рестарта. Если вы решили отключить защиту, лучше это сделать отдельно для демона, а не для всей системы. Не рекомендуется задавать метку xen_image_t
для каталогов, которые вы планируете использовать для других целей.
18.11. Доступ к данным на дисковом образе гостевой системы
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
# 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. Ошибки петлевых устройств
/etc/modprobe.conf
и добавить:
options loop max_loop=64
phy: block device
или tap:aio
, а в полностью виртуализированной — phy: device
или file: file
.
18.14. Ошибки создания гостевых систем
"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.
grub.conf
опять станет исходное ядро вместо ядра виртуализации.
/etc/sysconfig/kernel/
. Убедитесь, что в файле gb.conf
параметр kernel-xen
установлен по умолчанию.
18.15. Ошибки последовательной консоли
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. Ошибки сетевого моста
/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
.
/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
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. Конфигурации портативных компьютеров
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
.
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
/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
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
/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
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
'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. Файлы конфигурации гостевых систем
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"
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. Дублирование файлов конфигурации гостевых систем
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.
/etc/sysconfig/network
file to match the new guest's hostname.
/etc/sysconfig/network-scripts/ifcfg-eth0
так, чтобы он соответствовал выводу ifconfig eth0
. При использовании статических IP-адресов также надо отредактировать запись IPADDR.
18.22. Создание сценария генерации адресов 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. Настройка живой миграции виртуальной машины
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
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
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
[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)
Unable to open a connection to the Xen hypervisor or daemon
/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!
[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',]
[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)
18.25. Онлайн-ресурсы
- Центр виртуализации Red Hat
http://www.openvirtualization.com
- Документация Red Hat Enterprise Linux 5 Beta 2
http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/index.html
- Libvirt API
http://www.libvirt.org
- Домашняя страница проекта virt-manager
http://virt-manager.et.redhat.com
- Центр сообщества Xen
http://www.xensource.com/xen/xen/
- Обзор технологий виртуализации
http://virt.kernelnewbies.org
- Развивающиеся технологии
http://et.redhat.com
Глава 19. Дополнительные ресурсы
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 thevirsh
virtual machine management utility as well as comprehensive information about thelibvirt
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 thelibvirt
library. Thelibvirt-python
package allows python developers to create programs that interface with thelibvirt
virtualization management library./usr/share/doc/python-virtinst-<version-number>
— Provides documentation on thevirt-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
- Чтобы определить, поддерживает ли процессор PAE, выполните:
grep pae /proc/cpuinfo
- Приведенный ниже вывод этой команды показывает наличие поддержки 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
virt-install
.
virt-install
.
- Чтобы установить гостевую систему Red Hat Enterprise Linux 5, запустите
virt-install
. - При запросе установки полностью виртуализированного гостя введите
no
. - В качестве имени виртуальной машины используйте
rhel5b2-pv1
. - Используйте значение 500 для выделяемого объема RAM.
- Используйте
/xen/rhel5b2-pv1.img
в качестве дискового образа гостя. - Введите 6 в качестве размера диска (образа гостя).
- Для активации графической поддержки введите
yes
. - В качестве расположения дерева установки укажите
nfs:server:/path/to/rhel5b2
. - После указания всех значений начнется установка.
- После завершения установки введите
/etc/xen/rhel5b2-pv1
и внесите следующие изменения:\n#vnc=1 #vncunused=1 sdl=1 - С помощью текстового редактора отредактируйте
/etc/inittab
и добавьтеinit 5.#id:3:initdefault:id:5:initdefault:
virt-manager
.
virt-install
.
- Чтобы установить гостевую систему Red Hat Enterprise Linux Beta 5, запустите
virt-install
. - В окне подключения выберите локальный узел Xen и нажмите Подключиться.
- Start Red Hat's Virtual Machine Manager application, and from the File menu, click on New.
- Нажмите Далее.
- В качестве имени системы введите
rhel5b2-pv2
и нажмите Далее. - Выберите Паравиртуализованная и нажмите Далее.
- В качестве ссылки к установочному носителю введите
nfs:server:/path/to/rhel5b2
и нажмите Далее. - Выберите
Простой файл
и введите/xen/rhel5b2-pv2.img
. Укажите 6000 Мб и нажмите Далее. - Установите значения исходного и максимального объема памяти виртуальной машины в 500 и нажмите Далее.
- Нажмите Завершить.
- To determine if your CPU has Intel-VT or AMD-V support, type the following command:
egrep -e 'vmx|svm' /proc/cpuinfo
- Приведенный вывод показывает наличие поддержки 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. - Чтобы определить, включает ли ваш процессор поддержку Intel-VT и AMD-V, выполните:
cat /sys/hypervisor/properties/capabilities
- 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
virt-install
.
- Чтобы установить гостевую систему Red Hat Enterprise Linux 5, запустите
virt-install
. - При запросе установки полностью виртуализированного гостя введите
yes
. - В качестве имени виртуальной машины используйте
rhel5b2-pv2
. - Используйте значение 500 для выделяемого объема памяти.
- Используйте
/xen/rhel5b2-fv1.img
в качестве дискового образа гостя. - Введите 6 в качестве размера диска (образа гостя).
- Для активации графической поддержки введите
yes
. - В качестве виртуального образа CD укажите
/dev/cdrom
. - 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.
virt-manager
:
- Чтобы установить гостевую систему Red Hat Enterprise Linux Beta 5, запустите
virt-install
. - В окне Открыть соединение выберите локальный узел Xen и нажмите Подключиться.
- Start Red Hat's Virtual Machine Monitor application, and from the File menu, click on New.
- Нажмите Далее.
- В качестве имени системы введите
rhel5b2-fv2
и нажмите Далее. - Выберите «Полностью виртуализированная» и нажмите Далее.
- Укажите CD-ROM или DVD и введите путь к установочному носителю или образу ISO. Нажмите Далее.
- Выберите «Простой файл» и введите
/xen/rhel5b2-fv2.img
. Укажите 6000 Мб и нажмите Далее. - Установите значения исходного и максимального объема памяти виртуальной машины в 500 и нажмите Далее.
- Нажмите Завершить.
- Появится окно консоли виртуальной машины.
virt-manager
.
virt-manager
:
- Порядок действий аналогичен порядку последовательности 6.
virt-manager
.
virt-manager
:
- Порядок действий аналогичен порядку последовательности 6.
virt-manager
.
virt-manager
.
- Чтобы установить гостевую систему Red Hat Enterprise Linux 5 на узле Windows XP, запустите
virt-install
. - В окне Открыть соединение выберите локальный узел Xen и нажмите Подключиться.
- Start Red Hat's Virtual Machine Manager application, and from the File menu click on New.
- Нажмите Далее.
- В качестве имени системы введите
winxp
и нажмите Далее. - Выберите «Полностью виртуализированная» и нажмите Далее.
- Укажите CD-ROM или DVD и введите путь к установочному носителю или образу ISO. Нажмите Далее.
- Выберите «Простой файл» и введите
/xen/rhel5b2-fv2.img
. Укажите 6000 Мб и нажмите Далее. - Установите значения исходного и максимального объема памяти виртуальной машины в 1024 и нажмите Далее.
- Нажмите Завершить.
- Появится окно консоли виртуальной машины. Продолжите работу и завершите установку.
- В качестве формата файловой системы для раздела
C:\
выберите FAT. В поставку Red Hat Enterprise Linux 5 не входят модули ядра NTFS. Подключение или запись файлов в образ гостя Xen в данном случае усложняются по сравнению с ситуацией, если бы раздел был отформатирован в NTFS. - После первой перезагрузки системы отредактируйте образ гостя
winxp
так:losetup /dev/loop0 /xen/winxp.imgkpartx -av /dev/loop0mount /dev/mapper/loop0p1 /mntcp -prv $WINDOWS/i386 /mnt/
. Это поможет предотвратить проблему, с которой вы можете столкнуться позднее в процессе установки Windows. - Перезапустите гостевую систему Xen вручную, выполнив
xm create -c winxp/
. - В окне менеджера виртуальных машин выберите гостевую систему
winxp
и нажмите Открыть. - Появится окно консоли виртуальной машины. Продолжите работу и завершите установку.
- Whenever a 'Files Needed' dialog box appears, change the path
GLOBALROOT\DEVICE\CDROM0\I386
toC:\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 toC:\I386
should compensate for this problem. - Если консоль гостя Xen зависла, нажмите
Выключить
и внесите изменения в/etc/xen/winxp
так, чтобы #vnc=1 #vncunused=1 sdl=1 #vcpus=2. - Повторите шаг 14 и продолжите установку.
Приложение B. Упражнение 2
host1
и host2
, соединенные между собой через кабель UTP. Один из узлов экспортирует разделяемое хранилище через NFS. Для успешной миграции надо выполнить необходимую настройку узлов. Гостевая система Xen расположена в разделяемом хранилище, и на ней должен быть установлен потоковый сервер. Убедитесь, что потоковый сервер работает без каких-либо прерываний так, чтобы можно было осуществить живую миграцию.
xm
). Для активации живой миграции между двумя машинами надо настроить ее поддержку.
- Создайте резервную копию файла
xend-config.sxp
:cp -pr /etc/xen/xend-config.sxp /etc/xen/xend-config.sxp.default
- Внесите следующие изменения в файл
/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$')
- Перезапустите xend командой
service xend restart
.
- Добавьте строку
/xen *(rw,sync,no_root_squash)/
в файл/etc/exports
. - Сохраните
/etc/exports
и перезапустите сервер NFS. Убедитесь, что запуск сервера NFS выполняется по умолчанию:service nfs start chkconfig nfs on
. - После старта сервера NFS на
host1
можно его подключить кhost2
:mount host1:/xen /xen
. - Запустите гостевую систему Xen на узле
host1
и выберитеfc6-pv1
(илиfc6-pv2
из первого упражнения):xm create -c fc6-pv1
- Загрузите архив
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
. - Create a
/home/mp3
directory and copy TruthHappens.ogg from Red Hat's Truth Happens page tomkdir /home/mp3wget -c http://www.redhat.com/v/ogg/TruthHappens.ogg
- Запустите потоковый сервер
command:gnump3d
- На любом узле Xen запустите проигрыватель Movie Player путем выбора «Приложения», «Звук и видео», «Movie Player».
- Нажмите «Movie», «Open Location» и введите http://guest:8888/TruthHappens.ogg
- Запустите файл
TruthHappens.ogg
на одном из Xen узлов. - Выполните живую миграцию с
host1
наhost2
:xm migrate –live fc6-pv1 host2
- Откройте несколько окон терминалов на обоих узлах:
watch -n1 xm list
- Понаблюдайте за процессом миграции. Обратите внимание, сколько времени это займет.
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.400 | 2013-10-31 | Rüdiger Landmann | ||
| ||||
Издание 2.0-11 | 2012-07-18 | Anthony Towns | ||
| ||||
Издание 5.1.0-10 | Fri Aug 3 2007 | Michael Hideo Smith | ||
|