Добро пожаловать в статью, посвященную началу работы с виртуализацией 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
sudo yum -y install centos-release-xen
2) Обновите ядро и установите Xen:
sudo yum -y update kernel && sudo yum -y install xen
3) Настройте GRUB для запуска Xen Project.
Поскольку гипервизор запускается перед запуском ОС, необходимо изменить способ настройки процесса загрузки системы:
sudo vi /etc/default/grub
Измените объем памяти для Domain0, чтобы он соответствовал выделенной памяти.
RUB_CMDLINE_XEN_DEFAULT="dom0_mem=2048M,max:4096M cpuinfo com1=115200,8n1 console=com1,tty loglvl=all guest_loglvl=all"
4) Запустите скрипт grub-bootxen.sh
, чтобы убедиться, что grub обновлен /boot/grub2/grub.cfg
bash `which grub-bootxen.sh`
Подтвердите изменение значений:
5) Перезагрузите свой сервер
sudo systemctl reboot
6) После перезагрузки убедитесь, что новое ядро работает:
# uname -r
7) Убедитесь, что Xen работает:
# xl info host : xen.example.com release : 3.18.21-17.el7.x86_64 machine : x86_64 nr_cpus : 6 max_cpu_id : 5 nr_nodes : 1 cores_per_socket : 1 threads_per_core : 1 .........................................................................
Развертывание первой виртуальной машины
На этом этапе вы должны быть готовы к началу работы с первой виртуальной машиной. В этой демонстрации мы используем virt-install
для развертывания виртуальной машины на Xen.
sudo yum --enablerepo=centos-virt-xen -y install libvirt libvirt-daemon-xen virt-install sudo systemctl enable libvirtd sudo systemctl start libvirtd
Установка HostOS в Xen называется Dom0. Виртуальные машины, работающие через Xen, называются DomU.
virt-install -d --connect xen:/// --name testvm --os-type linux --os-variant rhel7 --vcpus=1 --paravirt --ram 1024 --disk /var/lib/libvirt/images/testvm.img,size=10 --nographics -l "http://192.168.122.1/centos/7.2/os/x86_64" --extra-args="text console=com1 utf8 console=hvc0"
Если вы хотите управлять виртуальными машинами DomU с помощью графического приложения, попробуйте установить virt-manage
r
sudo yum -y install virt-manager