Ответы на часто задаваемые вопросы пользователей Xen

Опубликовано 11.01.2010

Автор: Xen-Users Common Questions Guide
Перевод: Сгибнев Михаил

 Введение

 Этот документ родился в ходе усилий сообщества Xen.org по анализу задаваемых вопросов в списке рассылки xen-users и призван помочь как новым так и опытным пользователям гипервизора Xen в решении наиболее часто возникающих проблем. Если вам есть, что добавить к этому документу, сообщите об этом на адрес stephen.spector@xen.org.

 Те пользователи, которые интересуются Xen, но не хотят его устанавливать, могут воспользоваться Live CD версией, доступной по адресу http://wiki.xensource.com/xenwiki/LiveCD.

 Где могут вам помочь

 Сайты, посвященные гипервизору Xen:

 Ссылки на руководства

 Xen.org поддерживает Wiki, именуемое “HowTo Page”, и содержащее различные руководства, доступные по адресу http://wiki.xensource.com/xenwiki/HowTos. Обновление статей в Wiki приводит к созданию новых руководств.

 Примерами руководств внутри Wiki могут служить:

 Внешними руководствами могут служить:

 Гостевые системы:

 Конвертирование образов

Q (G1.0): Как конвертировать Centos HVM Guest в PV Guest?

A (G1.0): Создайте Centos HVM domU с драйвером PV: http://pastebin.com/fb6fe631 Сконвертируйте HVM guest в PV guest: http://pastebin.com/f6a5022bf

Если вы все сделали согласно этим руководствам, то должны получить работающий PV domU. Если в процессе конвертации что-то пошло не так, то вы все еще можете загрузить HVM domU, выбрав non-xen kernel (вторая запись) из grub menu.list.

 Консоль

Q (G2.0): У меня есть образ виртуальной машины Xen, использующий графическую консоль (VNC). Есть ли способ использовать текстовую консоль (xen console)?

A (G2.0): Для гостевой машины HVM, вам необходимо включить серийный порт в файле конфигурации domU (пример можно посмотреть здесь) и указать domU использовать этот порт (ttyS0 в Linux), внеся изменения (для Linux domU) в файлы /boot/grub/menu.lst, /etc/inittab и /etc/securetty.

В случае гостевой машины PV, вам необходимо указать domU использовать консоль xen (в текущей версии xen именуемой xvc0, hvc0 в ядре pv_ops). Таким образом мы поднимем в domU консоль на серийном порту, но необходимо будет заменить ttyS0 на hvc0. С примером, показывающим работу с xvc0 и vnc, можно ознакомиться здесь.

Q (G2.1): Как мне удалить активную виртуальную машину?

A (G2.1): xm shutdown или xm delete

Q (G2.2): Как мне запустить xm console в WindowsXP DomU?

A (G2.2): Этого нельзя сделать

 Драйверы

Q (G3.0): Что такое драйверы GPLPV и где их взять?

A (G3.0): Это коллекция open source драйверов для Window PV, позволяющая произвести пара-виртуализацию. В настоящее время разработкой руководит Джеймс Харпер (James Harper). Дополнительную информацию можно получить по адресу:

 Domain0

Q (G4.0): Почему я не могу видеть всю свою оперативную память на моем Dom0?

A (G4.0): Domain 0 — это паравиртуальная машина в реальной, поэтому сколько вы назначили, столько вы и увидите, используя локальный инструментарий типа free, /proc/meminfo, top, etc.

Для просмотра системных параметров вам необходимо воспользоваться утилитой xm, в данном случае — xm info.

Кроме того, если у вас в системе более 16GB (но, вы, вероятно, об этом знаете), а ядро не использует PAE (в случае 32bit Xen), то вы увидите только 4GB.

Q (G4.1): Есть способ посмотреть DomUґs I/O из Dom0?

A (G4.1): iostat (Debian: sysstat-package)

Q (G4.2): Я могу назначить один из CPU только для Dom0?

A (G4.2): Добавьте это к строке загрузки ядра — dom0_max_vcpus=1 & dom0_vcpus_pin

Отредактируйте /etc/xen/xend-config.sxp — установите “(dom0-cpus 1)”

Перезагрузите Dom0

Чтобы обойтись без перезагрузки — xm vcpu-set 0 1 xm vcpu-pin 0 0 0

 DomainU

Q (G5.0): Мой DomU не запускается! Виснет где-то посередине между жизнью и смертью…

$ sudo xm console test
io scheduler cfq registered
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Xen virtual console successfully installed as xvc0 Event-channel device installed. netfront: Initialising
virtual ethernet driver. i8042.c: No controller found. mice: PS/2 mouse device common for all mice
TCP bic registered NET: Registered protocol family 1
NET: Registered protocol family 17
Using IPI No-Shortcut mode xen-vbd: registered block device major 8 blkfront: sda2: barriers enabled
5
XENBUS: Device with no driver: device/console/0 Freeing unused kernel memory: 140k freed
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
***************************************************************
***************************************************************
** WARNING: Currently emulating unsupported memory accesses **
** in /lib/tls glibc libraries. The emulation is **
** slow. To ensure full performance you should **
** install a 'xen-friendly' (nosegneg) version of **
** the library, or disable tls support by executing **
** the following as root: **
** mv /lib/tls /lib/tls.disabled **
** Offending process: modprobe (pid=663) **
***************************************************************
***************************************************************
Continuing...

A (G5.0): Вполне вероятно, что у вас нет физической консоли VPS и VPS загружается,но вы этого не видите. Проверить это предположение можно так:

 Сперва убедитесь в том, что VPS имеет устройство «console» в каталоге /dev. Подмонтируйте файловую систему domU к dom0, перейдите в каталог /dev и выполните команду:

/dev/MAKEDEV console

 Если вы используете современное ядро и гипервизор Xen проверьте параметры в файле начального запуска. Необходимо наличие следующей опции:

extra = "4 TERM=xterm xencons=tty console=tty1"

 Проверьте, будет ли загружаться ваша система после проведенных изменений. Так же необходимо убедиться в наличии подходящей вашей версии xen библиотеки libc6 (в Debian вы можете сделать «apt-get install libc6-xen»).

Q (G5.1): Как установить ограничения планировщика и веса domU в конфигурационном файле domU?

A (G5.1): Параметр weight= в файле конфигурации xm будет работать, если вы не используете RHEL или CentOS.

Q (G5.2): Как мне запустить приложение в DomU?

A (G5.2): Странный вопрос. Войдите в консоль виртуальной машины и делайте что хотите.

Q (G5.3): Мои domUs постоянно имеют статус ‘b’ (blocked) в выводе команды ‘xm list’, но при этом всё работает. Ну скажите, это нормально?

A (G5.3): Это нормально, если гостевой домен не нагружен работой. Можно провести аналогию между обычным процессом, находящимся в нормальном режиме блокировки при ожидании ввода пользователем какой-либо команды. Если заставить процессор поработать, то вы увидите изменение состояния виртуальной вашины на running.

Q (G5.4): Я могу назначить имя машины domU из скрипта network-common?

A (G5.4): hostname=$(xenstore_read «$XENBUS_PATH/domain» | tr — ‘_.:/+’ ‘——‘)

 Вопросы инсталляции

 Файловая система

Q (I1.0): Можно ли иметь иметь общую корневую файловую систему для нескольких серверов Xen?

A (I1.0): Вы можете установить OS в раздел LVM и использовать его между всеми domU, указывая ‘r’ вместо ‘w’ при определении диска. Но так как корневая файловая система будет примонтирована только для чтения, нам необходимо будет организовать ramfs для /tmp и /var.

 Я использую в Xen два диска, один из которых примонтирован только для чтения в качестве корневого раздела, а второй используется для данных. У меня есть необходимость в разделах, содержащих предустановленное ПО, поэтому я создаю логический том и помещаю на него необходимую информацию например, программное обеспечение и т.д.,), затем создают снапшот этого тома и монтирую его с правами rw на машину xen. Таким образом у меня всегда есть «эталонный» раздел с предустановленным ПО и даже в случае неких катаклизмов возможно полное восстановление.

Q (I1.1): Я установил два web-сервера Debian, на каждом из которых живет форум phpbb3. Один из серверов представляет собой паравиртуальную машину domU (512 MB of ram, 1 vcpu, образ диска file:/home/vale/debian.img,hda,w), в качестве корневой системы выступает OpenSuse 11.0. Второй сервер представляет собой виртуальную машину hyper-v (512 MB 1 cpu) в окружении Windows Server 2008 R2. Производительность PV по сравнению с hyper-v очень мала.

Почему?

Я установил гостевую ОС как HVM домен, затем установил файлы linux-xen-image и libc6-xen.

Файл конфигурации Xen PV:

name='pv'
ramdisk='/home/vale/initrd.img-2.6.18-6-xen-686'
kernel='/home/vale/vmlinuz-2.6.18-6-xen-686'
bootloader=''
vif=['mac=00:16:3e:33:37:4f, bridge=xenbr0']
vcpus=1
memory=512
disk=['file:/home/vale/pv.img,hda,w']
on_reboot='restart'
on_crash='restart'
extra=''
root='/dev/hda1'
platform='xen'

A (I1.1): Всё дело в том, что phpBB3 очень активно использует операции ввода/вывода (если вы используете базу данных, установленную на той же машине). Вашей ошибкой было использование:

disk=['file:/home/vale/pv.img,hda,w']

В Xen использование file:/ в качестве образа виртуальной машины не рекомендуется, лучше воспользоваться tap:aio:/, хотя с мест сообщают, что и это не самое лучшее решение.

Если коротко, то для хранения образов виртуальных лучше всего использовать раздел LVM.

Q (I1.2): Возможен ли запуск виртуальной машины, содержащей только gpxe (после старта образ виртуальной машины будет получен с другого
сервера)?

A (I2.2): Имеется руководство по настройке окружения PXE boot для корневого хоста Xen (hypervisor + dom0) и гостевого хоста Xen, как PV (Para-Virtualized) так и HVM (Hardware-assisted Virtual Machine). Ознакомиться с ним вы можете здесь.

 Вопросы работы сети

 Мост

Q (N1.0): Какой механизм использует Xen для обработки пакетов, приходящих с различных VM, при отправке их
к месту назначения?

A (N1.0): Никакой. Xen этим не знанимается. Это задача ОС, используемой в качестве dom0.

В случае Linux dom0: http://www.linuxfoundation.org/en/Net:Bridge

В случае opensolaris dom0: http://opensolaris.org/os/project/crossbow/

 Определение IP

Q (N2.0): Я хочу знать IP, назначенный VM в XEN.. Любым способом, но без входа в систему этой VM..

A (N2.0): Найдите mac-адрес domU. Это просто, если domU использует статический MAC).

Простым способом получения IP-адреса будет изучение файла конфигурации domU или выполнение команды:

xm network-list domU_name

Где вас должна заинтересовать строка:

Idx BE MAC Addr. handle state evt-ch tx-/rx-ring-ref BE-path 0 0 00:16:3E:F7:D6:E7 0 4
6 16238/16237 /local/domain/0/backend/vif/163/0

Теперь, когда у вас есть MAC адрес, можно найти и IP адрес, выполнив команду tcpdump на интерфейсе eth0 корневого хоста:

# tcpdump -n -i eth0 ether src 00:16:3e:f7:d6:e7
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
15:54:56.419482 IP 10.0.0.10 > 10.0.0.1: ICMP echo reply, id 5443, seq 1, length 64 15:54:57.422349
IP 10.0.0.10 > 10.0.0.1: ICMP echo reply, id 5443, seq 2, length 64

IP-адрес нашего домена — 10.0.0.10.

 NAT

Q (N3.0): Я никак не могу сконфигурировать NAT на dom0. Исходящий от domU трафик отправляется с оригинальным domU IP-адресом, вместо IP-адреса dom0 и запросы не возвращаются в domU.

A (N3.0): Вы забыли применить маскарадинг. Используйте следующую команду:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

 SSL/VPN

Q (N4.0): У меня не получается использовать openvpn на гостевой машине Xen, не загружается модуль tun.

A (N4.0): Требования openvpn к ОС, находящейся в domU, идентичны к требованиям обычной ОС. Если вы не можете загрузить какой-либо модуль, то вам необходимо использовать ядро с поддержкой этого модуля.

В качестве альтернативы, можете скомпилировать ядро с поддержкой tun/tap.

 Вопросы отказоустойчивости

 Сервисы

Q (HA1.0): Какое ПО существует для Xen, предназначенное для обеспечения отказоустойчивости?

A (HA1.0): Есть несколько инструментов:

  • CentOS Cluster
  • Project Kemari — http://www.osrg.net/kemari/
  • Project Remus — http://blog.xen.org/index.php/2009/04/02/project-remus-released/
  • Linux Cluster Resource Manager — http://clusterlabs.org/mediawiki/images/f/fb/Configuration_Explained.pdf

 Разное

 Вложенный Xen

Q (D1.0): Я могу запустить Xen в виртуальной машине Xen?

A (D1.0): Да. Вы можете установить Xen на базовую систему, создать домен HVM и в нем опять установить Xen. Обратите внимание, что внутренний Xen пока не поддерживает HVM.

 Как работает Xen

Q (D3.0): Как Xen делает системные вызовы на паравиртуальной машине?

A (D3.0): Прим. переводчика. Я ничего не понял, что там объяснялось, в виду отсутствия специфических знаний. Тот, кому может это понадобиться, прочтет и оригинал, я думаю.

Q (D3.1): Как Xen делает системные вызовы на виртуальной машине (HVM)?

A (D3.1): Для HVM domU нет никаких изменений в поведении системных вызовов. HVM поддерживается только для процессоров Intel-VT and AMD-SVM, так как они поддерживают виртуализацию. Такие процессоры создают новое кольцо (Root-Ring 0) с более высокой привилегией для VMM и гостевая ОС работает с теми же самыми привелегиями (как и без Xen) в Non-Root Ring 0. Таким образом, системные вызовы гостевой ОС ведут себя как обычно.

Q (D3.2): Я могу использовать в качестве DomU операционные системы, отличные от Dom0??

A (D3.2): Да.


[ad name=»Google Adsense»]



 Уважайте труд автора, сохраняйте копирайты.
Реклама на сайте висит не просто так и если статья Вам понравилась, с ее помощью Вы можете отблагодарить автора за проделанную работу. Спасибо!

5 комментариев в Ответы на часто задаваемые вопросы пользователей Xen

  1. спасибо большое! отличная статья, отличный перевод!

  2. Попробуйте распечатать эту страницу. Цитирую:
    A (G2.0): Для гостевой машины HVM, вам необходимо включить серийный порт в файле конфигурации domU (пример можно посмотреть здесь)

    Где здесь? На бумаге будет ссылка?

  3. Хм. Откройте предварительно ссылку и распечатайте указанный на ней листинг. Если в оригинале листинга нет, то он здесь так же не появится.

  4. Уважаемые разработчики Xen и все кто интересуется Xen.
    Открылись интересные вакансии для Xen разработчиков. ЗП от 70 000.

    Информация о вакансиях по ссылкам
    http://hh.ru/vacancy/4717877
    http://hh.ru/vacancy/4739529

    Пишите на мыло ragingblizzard@gmail.com

    Спасибо за внимание.

    Уважаемые администраторы сайта не удаляйте, пожалуйста, данное сообщение, это не спам, большое спасибо.

  5. Уважаемые разработчики и администраторы Linux/Openfiler/Xen.
    Открылись интересные вакансии для специалистов. ЗП от 90 000.

    Информация о вакансиях по ссылкам:
    http://hh.ru/vacancy/4717877
    http://hh.ru/vacancy/4739529
    http://hh.ru/vacancy/4763698
    http://hh.ru/vacancy/4776329

    Пишите на мыло ragingblizzard@gmail.com

    Спасибо за внимание.

    Уважаемые администраторы сайта не удаляйте данное сообщение, пожалуйста, это не спам, большое спасибо.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*