ИТ База знаний
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Популярное и похожее
Как включить Hyper-V в Windows
Гайд по продуктам VMware
Передача файлов на виртуальную машину Hyper-V
Как включить Hyper-V в Windows
Обзор аппаратного обеспечения VMware: обновление и совместимость
Гайд по продуктам VMware
Оптимизация гипервизора Hyper-V
Openvox DGW-1004
Еженедельный дайджест
Начало работы с виртуализацией Xen в CentOS
Добро пожаловать в статью, посвященную началу работы с виртуализацией Xen на CentOS. Xen — это гипервизор с открытым исходным кодом, позволяющий параллельно запускать различные операционные системы на одной хост-машине. Этот тип гипервизора обычно называют гипервизором №1 в мире виртуализации.

Xen используется в качестве основы для виртуализации серверов, виртуализации настольных ПК, инфраструктуры как услуги (IaaS) и встраиваемых/аппаратных устройств. Возможность работы нескольких гостевых виртуальных машин на физическом хосте может значительно повысить эффективность использования основного оборудования.
Передовые возможности Xen гипервизора
- Xen не зависит от операционной системы – основным стеком управления (который называется domain 0 (домен 0)) может быть Linux, NetBSD, OpenSolaris и так далее.
- Возможность изоляции драйвера — Xen может разрешить основному системному драйверу устройства работать внутри виртуальной машины. Виртуальная машина может быть перезагружена в случае отказа или сбоя драйвера без воздействия на остальную часть системы.
- Поддержка паравиртуализации (Paravirtualization — это тип виртуализации, в котором гостевая операционная система перекомпилируется, устанавливается внутри виртуальной машины и управляется поверх программы гипервизора, работающей на ОС хоста.): это позволяет полностью паравиртуализированным хостам работать гораздо быстрее по сравнению с полностью виртуализированным гостем, использующим аппаратные расширения виртуализации (HVM).
- Небольшие размеры и интерфейс. В гипервизоре Xen используется микроядерное устройство, размер которого составляет около 1 МБ. Этот небольшой объем памяти и ограниченный интерфейс гостя делают Xen более надежным и безопасным, чем другие гипервизоры.
Пакеты Xen Project
Пакеты Xen Project состоят из:
- Ядро Linux с поддержкой Xen Project
- Сам гипервизор Xen
- Модифицированная версия QEMU — поддержка HVM
- Набор пользовательских инструментов
Компоненты Xen
Гипервизор Xen Project отвечает за обработку процессора, памяти и прерываний, поскольку он работает непосредственно на оборудовании. Он запускается сразу после выхода из загрузчика. Домен/гость — это запущенный экземпляр виртуальной машины.
Ниже приведен список компонентов Xen Project:
- Гипервизор Xen Project работает непосредственно на оборудовании. Гипервизор отвечает за управление памятью, процессором и прерываниями. Он не знает о функциях ввода-вывода, таких как работа в сети и хранение.
- Область контроля (Домен 0): Domain0 — специальная область, которая содержит драйверы для всех устройств в хост-системе и стеке контроля. Драйверы управляют жизненным циклом виртуальной машины — созданием, разрушением и конфигурацией.
- Гостевые домены/виртуальные машины — гостевая операционная система, работающая в виртуализированной среде. Существует два режима виртуализации, поддерживаемых гипервизором Xen:
- Паравиртуализация (PV)
- Аппаратная поддержка или полная виртуализация (HVM)
- Toolstack и консоль: Toolstack — это стек управления, в котором Domain 0 позволяет пользователю управлять созданием, конфигурацией и уничтожением виртуальных машин. Он предоставляет интерфейс, который можно использовать в консоли командной строки. На графическом интерфейсе или с помощью стека облачной оркестрации, такого как OpenStack или CloudStack. Консоль — это интерфейс к внешнему миру.
PV против HVM
Паравиртуализация (PV — Paravirtualization )
- Эффективная и легкая технология виртуализации, которая была первоначально представлена Xen Project.
- Гипервизор предоставляет API, используемый ОС гостевой виртуальной машины
- Гостевая ОС должна быть изменена для предоставления API
- Не требует расширений виртуализации от центрального процессора хоста.
- Гостям PV и доменам управления требуется ядро с поддержкой PV и драйверы PV, чтобы гости могли знать о гипервизоре и могли эффективно работать без эмуляции или виртуального эмулируемого оборудования.
Функции, реализованные в системе Paravirtualization, включают:
- Сигнал прерывания и таймеры
- Драйверы дисков и сетевые драйверы
- Эмулированная системная плата и наследуемый вариант загрузки (Legacy Boot)
- Привилегированные инструкции и таблицы страниц
Аппаратная виртуализация (HVM — Hardware-assisted virtualization ) — полная виртуализация
- Использует расширения виртуальной машины ЦП от ЦП хоста для обработки гостевых запросов.
- Требуются аппаратные расширения Intel VT или AMD-V.
- Полностью виртуализированные гости не требуют поддержки ядра. Следовательно, операционные системы Windows могут использоваться в качестве гостя Xen Project HVM.
- Программное обеспечение Xen Project использует Qemu для эмуляции аппаратного обеспечения ПК, включая BIOS, контроллер диска IDE, графический адаптер VGA, контроллер USB, сетевой адаптер и так далее
- Производительность эмуляции повышается за счет использования аппаратных расширений.
- С точки зрения производительности, полностью виртуализированные гости обычно медленнее, чем паравиртуализированные гости, из-за необходимой эмуляции.
- Обратите внимание, что можно использовать PV драйверы для ввода-вывода, чтобы ускорить гостевой HVM
Драйверы PVHVM — PV-on-HVM
- Режим PVH сочетает в себе лучшие элементы HVM и PV
- Позволяет виртуализированным аппаратным гостям использовать PV диск и драйверы ввода-вывода
- Никаких изменений в гостевой ОС
- Гости HVM используют оптимизированные драйверы PV для повышения производительности — обходят эмуляцию дискового и сетевого ввода-вывода, что приводит к повышению производительности в системах HVM.
- Оптимальная производительность на гостевых операционных системах, таких как Windows.
- Драйверы PVHVM требуются только для гостевых виртуальных машин HVM (полностью виртуализированных).
Установка Xen в CentOS 7.x
Чтобы установить среду Xen Hypervisor, выполните следующие действия.
1) Включите репозиторий CentOS Xen
2) Обновите ядро и установите Xen:
sudo yum -y update kernel && sudo yum -y install xen
3) Настройте GRUB для запуска Xen Project.
Поскольку гипервизор запускается перед запуском ОС, необходимо изменить способ настройки процесса загрузки системы:
Измените объем памяти для Domain0, чтобы он соответствовал выделенной памяти.
4) Запустите скрипт grub-bootxen.sh , чтобы убедиться, что grub обновлен /boot/grub2/grub.cfg
Подтвердите изменение значений:
grep dom0_mem /boot/grub2/grub.cfg
5) Перезагрузите свой сервер
6) После перезагрузки убедитесь, что новое ядро работает:
7) Убедитесь, что Xen работает:
Развертывание первой виртуальной машины
На этом этапе вы должны быть готовы к началу работы с первой виртуальной машиной. В этой демонстрации мы используем virt-install для развертывания виртуальной машины на Xen.
Установка HostOS в Xen называется Dom0. Виртуальные машины, работающие через Xen, называются DomU.
Если вы хотите управлять виртуальными машинами DomU с помощью графического приложения, попробуйте установить virt-manage r
Было полезно?
Почему?
😪 Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.
😍 Полезные IT – статьи от экспертов раз в неделю у вас в почте. Укажите свою дату рождения и мы не забудем поздравить вас.
Linux в Xen
Материал из Xgu.ru
На этой странице описана процедура подготовки гостевой системы под управлением Linux для работы в качестве пользовательского домена Xen (domain U).
Содержание
[править] Начальные требования
Для выполнение описанных ниже действий необходимо наличие проинсталлированной и настроенной хост-системы Xen (домена 0). Как это сделать описано на странице Инсталляция Xen.
Предполагается, что в домене 0 установлен Debian GNU/Linux. Для других дистрибутивов некоторые действия будут выполняться иначе.
[править] Подготовка образа гостевой системы
[править] Подготовка дисковых разделов для использования в качестве дисков виртуальной машины
Для того чтобы разделы виртуальной машины соответствовали дисковым разделам реальной машины, используйте следующие шаги:
В том случае, если в виртуальной машине должно быть несколько дисковых разделов, подготовьте их. Например, для /usr:
Если вам необходимо пространство подкачки (swap) в виртуальной машине, подготовьте его с помощью команды mkswap:
[править] Подготовка файлов для использования в качестве диска виртуальной машины
Создайте файл для использования в качестве основного диска виртуальной машины.
Или, если вы используете LVM:
(группа томов TURBO или группа с другим названием, которое вы используете, должна существовать и иметь достаточно места; подробнее: LVM).
В том случае, если в виртуальной машине должно быть несколько дисковых разделов, подготовьте их. Например, для /usr:
Если вам необходимо пространство подкачки (swap) в виртуальной машине, подготовьте его с помощью команды mkswap:
[править] Подготовка виртуальной системы под управлением Debian GNU/Linux
Здесь описывается как подготовить образ гостевого домена Xen,в котором будет работать Debian GNU/Linux. Обязательно стоит прочитать ещё Xen Debian Wiki.
[править] Инсталляция ОС Debian GNU/Linux
Этот этап может быть выполнен проще, если использовать xen-tools. Ниже показано, как провести инсталляцию системы вручную.
Запустите debootstrap для инсталляция базы системы:
Скопируйте пакет ядром для работы с Xen, который был подготовлен ранее, в новую виртуальную машину:
Сделайте новую файловую систему корневой (с помощью chroot):
Проинсталлируйте пакет с ранее подготовленным ядро Xen:
Измените запись, соответствующую корневой системе в файле /etc/fstab:
Если используется несколько дисковых разделов в виртуальной машине, перечислите их:
Запустите программу base-config для установки базовой системы Debian.
Измените конфигурацию сети в виртуальной машине:
Отключите использование TLS, в противном случае работа системы может сильно замедлиться.
В том случае, если используется дистрибутив Etch, проинсталлируйте libc6-xen.
Отключите лишние терминалы getty, а первый терминал направьте на файл /dev/console вместо /dev/tty1: (файл /etc/inittab)
Если в виртуальной машине будут загружаться модули ядра, установить пакет module-init-tools (обязательно для ядер 2.6 domU).
На этом инсталляция ОС в виртуальной машине завершена, и можно завершить работу оболочки с изменённой корневой системой (chrooted shell).
Если вы создавали несколько разделов в виртуальной машине, размонтируйте их, начиная с самой глубокой.
После чего размонтируйте корневую файловую систему виртуальной машины.
[править] Конфигурирование виртуальной машины
Необходимо создать конфигурационный файл виртуальной машины. Пусть виртуальная машина называется debian-vm0.
В том случае, если использует физический дисковый раздел:
В том случае, если используется несколько разделов:
Если вместо раздела используется файл, конфигурация дисковой подсистемы выглядит так:
В том случае, если используется несколько файлов, строка должна выглядеть так:
Обратите внимание на то, чтобы записи о дисках в конфигурации виртуальной машины соответствовали файлу /etc/fstab операционной системы этой машины.
[править] Инсталляция и настройка Fedora Core в domU
Здесь описывается как подготовить образ гостевого домена Xen,в котором будет работать Fedora Core 6.
При условии, что домен 0 работает под управлением Debian GNU/Linux, а образ гостевой системы подмонтирован в каталог /mnt, процедура инсталляции выглядит следующим образом:
Пример конфигурационного файла yum-xen.conf (вы можете использовать другой репозиторий и другой уровень отладки):
Если при инсталляции вы получаете ошибку
то модифицируйте код yum следующим образом:
Установленную систему можно доработать.
Создать некоторые каталоги и файлы устройств.
Настроить сетевые интерфейсы.
Скопировать модули ядра
Установить пароль root’а
Отключить сообщения об ошибках ядра на консоль (не обязательно)
Для загрузки ядра вы можете использовть ядро, которое используется в хост-системе, или воспользоваться ядром предлагаемым в дистрибутиве гостевой системы. Если использовать ядро Fedora (CentOS/RHEL), может понадобиться выполнить пересборку initrd:
После того как инсталляция закончена, можно попробовать запустить домен.
(здесь fc это конфигурационный файл домена).

[править] Инсталляция и настройка других дистрибутивов Linux в domU
- Centos5 — описание процедуры подготовки domU для Centos5
- http://www.gitco.de/repo/xen3.3.1/ — подборка пакетов, имеющих отношение к Xen, для CentOS
[править] Инсталляция Debian из-под других дистрибутивов Linux
После этого инсталляция с помощью ./debootstrap выполняется как обычно.
[править] Запуск виртуальной машины
Данная команда запустит новую виртуальную машину и создаст подключенную к ней консоль (ключ -c). Можно войти в систему от имени пользователя root и настроить сетевой интерфейс eth0.
Обратите внимание на то, что на консоли (/dev/console) по умолчанию комбинация клавиш Ctrl-C не настроена для прерывания процессов.
Отключиться от консоли виртуальной машины вернуться в терминал, из которого выполнялось подключение/запуск, можно с помощью комбинации Ctrl-].
Вернуться на отключенную консоль можно с помощью команды:
Остановить домен можно командой:
Выключить домен (как будто бы вырубить виртуальную машину по питанию), можно с помощью команды:
Для получения полного списка команд, таких как shutdown, destroy и т.д. введите:
Для того чтобы виртуальная машина (domU) загружалась автоматически, когда загружает основная система (dom0), необходимо сделать ссылку на конфигурационный файл виртуальной машины:
[править] Дополнительные вопросы
[править] Сборка ядра Linux под Xen в Debian
Ядро Linux, с поддержкой Xen, находящееся в репозитории Debian GNU/Linux собрано с поддержкой PAE. С другой стороны, большое количество систем (NetBSD, Plan 9 и др.), работающих как гостевые системы в паравиртуальном домене Xen не поддерживают PAE (FreeBSD может быть собрано с поддержкой PAE). В этом случае потребуется пересобрать ядро домена 0 без поддержки PAE. Пересборка ядра может потребоваться и в других случаях.
[править] Использование домена с paravirt_ops
- При подготовке ядра создать модули (или включить в ядро) с драйверами блочных устройств frontend, работающие через paravirt_ops
- В конфигурационном файле домена добавить строчку
- В конфигурационном файле нужно перейти на использование дисков типа xvda. Для этого нужно изменить название корневой файловой системы (сделать /dev/xvda1), изменить параметр disk в конфигурационном файле домена чтобы в нём использовались имена xvda и изменить /etc/fstab внутри самого домена
Пример конфигурационного файла домена:
Фрагменты файлов внутри домена:
В Ubuntu вмест правки /etc/inittab нужно создать /etc/init/hvc0.conf с таким содержимым:
Для ядер в районе 2.6.34 может пригодиться патч [2] (подробнее: [3]).
[править] Ядро с paravirt_ops в домене 0
Если вы используете ядро с paravirt_ops в домене 0.
[править] Возможные проблемы при подготовке и запуске
Множество проблем, с которыми можно столкнуться при подготовке и запуске гостевой системы Xen, описано на странице Xen FAQ.
[править] Возможные проблемы с udev
При старте домена может возникнуть такая проблема: домен не стартует, на экран выдаётся сообщение об ошибке:
Номер устройства (768) может отличаться.
Если такая проблема возникла, причём она не пропадает ни при отключении сетевых интерфейсов в виртуальной машине; ни при изменении конфигурации дисков, проблема может быть связана с udev.
Убедитесь, что udev достаточно новый. Последние версии udev находятся здесь: http://kernel.org/pub/linux/utils/kernel/hotplug/
Проверьте, есть ли в конфигурации udev правила xen.
Если нет, нужно их добавить. Нужно создать файл xen-backend.rules в каталоге /etc/udev/rules.d следующего содержания:
Если такой файл xen-backend.rules уже есть, можно переименовать его или создать символическую ссылку, содержащую номер в названии. Правило должно грузиться предпоследним.
После этого нужно перезапустить udev и попробовать стартануть домен снова.
Ещё возможный вариант (например, на Debian Lenny) — отсутствие бита исполнения на скриптах Xen, исправляется простым
и неправильный в них шебанг #!/bin/sh, либо его отсутствие, исправляется ручным добавлением #!/bin/bash в начало каждого скрипта.




