Часть 1. Разработка успешного развёртывания XenServer

Глава 1. Что такое XenServer?

Ответ на этот простой вопрос звучит так: "XenServer это предварительно упакованное решение виртуализации на основе Xen." К сожалению, несмотря на такой в равной степени простой ответ, для многих он не даёт ответ на основной вопрос, поэтому давайте погрузимся глубже в то, чем же является XenServer.

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

К сожалению, в отношении XenServer здесь существует небольшая путаница. На протяжении лет мы оба слышим людей, которым нужет XenServer, однако называют его "Xen", а иногда "сервер Xen". Хотя некоторые из этих людей не являются техническими специалистами, когда им нужны ответы на возниший вопрос, им важно быстро получать быстрый ответ.

В качестве примера, если кто- то работает над проектом, который они хотят интегрировать с XenServer, будет не лучшим для них на описываемый ресурс, как работающий с "Xen". Несмотря на то, что обе технологии, несомненно, связан, правильный ответ для "Xen" может быть ошибочным ответом для "XenServer", и понимание разницы между ними является ключевм для любого администратора XenServer.

Конечно, мы теперь знаем, что "XenServer является предварительно упакованное решением виртуализации на основе Xen," стрящемся вокруг проекта Xen, но это только самое начало, поскольку теперь нам нужно объяснить что такое Xen, что он делает и как он формирует завершённое решение XenServer, за которое мы будем отвечать.

[Замечание]Дальнейшая разработка

На момент написания книги уже был возможен ранний доступ к потенциально будущей версии XenServer. Версия с кодовое именем "Dundee" содержит изменения в некотороую функциональность ядра XenServer. В случае возникновения темы, в отношении которой известно, что она будет отличаться в представляемом Dundee, этот факт обводится рамкой наподобие этой с пометкой "изменения Dundee".

 Гипервизор Xen

Гипервизор Xen формирует ядро всех платформ виртуализации на основе Xen и, как и VMWare ESXi с Microsoft Hyper-V, являются гипервизорами "голого железа" (bare metal). Это означает, что первый запускаемый на машине код это код гипервизора и что что для управления системой не требуется никакая операционная система.

[Замечание]Что такое гипервизор? Что такое виртуализация?

Гипервизор является менеджером виртуальных машин (VMM, virtual machine manager), который применяет совокупность аппаратных и программных технологий для создания виртуальной среды, или для выполнения, множества операционных сред в одно и то же время. Обычно вы можете выполнять множество операционных систем поверх одних и тех же аппаратных средств.

Первоначально разработанный в университете Кембриджа, Кембридж, Англия, Xen сформировал ядро гипервизора, не только для XenServer, но и для OracleVM, а также мог применяться как необязательный гипервизор в пределах основных дистрибутивов Linux, таких как CentOS, Debian и SUSE Linux Enterprise Server. Кроме того, Xen усиленно применялся в том, что, возможно, является самым известным развёртыванием в Amazon: обеспечивая собой основу предложения продуктов веб- служб Amazon.

Xen активно развивался под надзором в рамках проекта Xen: проекта совместного фонда, где он извлекал выгоду от активного участия и вклада более десятка организаций. Такая широта развития гарантирует, что технология гипервизора Xen идёт в ногу с изменением тенденций в центрах обработки данных, сосредотачиваясь на предоставлении служб гипервизора.

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

[Замечание]О проекте Xen

Проект Xen является совместным проектом в фонде Linux. Он был создан, когда Citrix решил, что ядро приобретённой им у XenSource технологии Xen получит преимущества от независимого управления и предоставления в распоряжение. Проект Xen включает в себя множество проетков, причём и гипервизор Xen, и стек инструментария XAPI применяются внутри XenServer. Вы можете получить дополнительную информацию по проекту Xen и всем его подпроектам на сайте http://www.xenproject.org/.

 Инструментарий для виртуализации Xen

Гипервизор Xen просто выполняет управление виртуальной машиной и нуждается в некотором инструментарии для управления своей работой. Современные инструментальные опции, включающие libvirt, библиотеку для управления виртуализацией, а также XAPI, API управления Xen. При реализации под пользователя решения на основе Xen, вы вольны выбирать инструменты, лучше овечающие вашим потребностям. Однако, поскольку XenServer является пакетом решения виртуализации Xen, инструментарий был выбран для вас и это стек инструментов XAPI.

[Предостережение]Toolstack: No Trading

Стек инструментария XAPI встроен в решение виртуальзации XenServer и не может быть быть перемещён в другой стек управления гипервизором Xen. Таким образом, сфера данной книги сосредоточена на стеке инструментария XAPI, связанных демонах и расширенным набором утилит командной строки xe.

XAPI предоставляет интерфейсы и реализации для всей ожидаемой функциональности работы ВМ, управления хостом, хранения и настройки сетевой среды. Кроме того, когда два или более хостов XenServer помещаются в совместный пул, XAPI предоставляет дополнителное управление в этом типе ресурса пула и его работы. Для знакомых с libvirt: XAPI способен управлять множеством хостов в качестве единого агрегата и его функциональность аналогична libvirt с некоторыми расширениями oVirt. Наконец, мы не должны забывать, что XAPI распространяет API на некоторые наиболее популярные применяемые языки DevOps, такие как Java, JavaScript, PowerShell, Python и C++.