Разработчики: | Linux Foundation |
Дата последнего релиза: | 2015/1014 |
Технологии: | Виртуализация |
Содержание |
Xen — монитор виртуальных машин (VMM), или гипервизор. Работает в паравиртуальном режиме и в режиме аппаратной виртуализации (HVM), использует аппаратные возможности процессоров, поэтому не имеет привязки к конкретной операционной системе и может быть установлен «поверх» только лишь аппаратного обеспечения, в так называемом режиме bare metal. Способен поддерживать одновременную работу большого числа виртуальных машин на одной физической, при этом не тратя значительных вычислительных ресурсов.
Xen является одним из нескольких распространенных в настоящее время серверных гипервизоров для архитектуры x86. С ним работает свыше 10 млн пользователей. Другими популярными гипервизорами являются VMware vSphere и Microsoft Hyper-V, а также KVM, который, как и Xen, обладает открытым кодом.
Гипервизор XEN является кроссплатформенным решением с открытым кодом. XEN, принадлежавший ранее Citrix, а на сегодняшний день находящийся под управлением Linux Foundation, является одной из самых популярных платформ виртуализации.
По принципу действия гипервизор является процессом, отделяющим операционные системы и приложения от аппаратной части оборудования. Гипервизор в этом случае является так называемым менеджером виртуальных машин.Метавселенная ВДНХ
Области применения
Технология виртуальных машин позволяет расширить функциональность оборудования следующими способами:
- Виртуальная машина обладает производительностью, сравнимой с реальной.
- Возможность миграции запущенной виртуальной машины между физическими машинами.
- Превосходная поддержка оборудования (поддерживается большинство драйверов устройств Linux)
- Возможность создания песочницы, перезагружаемые драйверы устройств.
Технология
Для гостевых систем XEN — это полностью прозрачная среда. Для запуска операционной системы гипервизор предлагает подготовленные блочные устройства и сетевые интерфейсы. Такой алгоритм работы подчеркивает, что гипервизор не скрывает себя от операционных систем и не эмулирует существующее аппаратное обеспечение, открыто запрашивая необходимые для запуска драйвера. У такого подхода есть весомое преимущество — сохраняется высокая производительность гостевой операционной системы[1].
Загрузка операционных систем на платформе XEN происходит с определенным уровнем привилегий. Так, например, вместо самостоятельного выполнения привилегированных операций, гостевая операционная система обращается к гипервизору с запросом на выполнение необходимой операции.
Паравиртуализация позволяет достичь очень высокой производительности даже на таких очень тяжёлых для виртуализации платформах, как x86. Особенностью такого подхода является необходимость адаптации ядра операционной системы перед помещением в Xen. Процесс адаптации к Xen очень похож на портирование для новой платформы, однако значительно проще ввиду похожести виртуального оборудования на реальное. Даже с учетом того, что ядро операционной системы явно должно поддерживать Xen, пользовательские приложения и библиотеки остаются без изменения.
С ростом популярности технологий виртуализации, компании, производящие центральные процессоры и системную логику начали активно продвигать средства аппаратной виртуализации. Так на свет появились технологии Intel VT (известная под кодовым названием Vanderpool) и AMD Secure Virtual Machines (известная под кодовым названием Pacifica). Благодаря поддержке виртуализации на уровне оборудования в Xen появилась возможность запускать немодифицированные операционные системы, даже такие, как Microsoft Windows, модификация которых невозможна в силу закрытости исходного кода и лицензионных ограничений.
Особенности XEN
XEN имеет две наиболее значимые особенности: паравиртуализация и минимальность кода самого гипервизора.
Применение метода паравиртуализации обеспечивает возможность исполнения нескольких виртуальных машин на одном физическом оборудовании одновременно. При этом сохраняется высокая производительность, практически аналогичная скорости реальной, не виртуализированной машины.
Основной принцип паравиртуализации заключается в подготовке гостевых операционных систем путем незначительной модификации их ядра перед исполнением в виртуализированной среде. Это накладывает определенные ограничения на выбор используемых систем, так как от операционной системы требуется предоставление возможности внесения изменений в ее исходный код. Это касается как хост-систем, так и гостевых систем.
Вторым фактором, который относится к особенностям XEN, является незначительный объем кода самого гипервизора. Это достигается за счет выноса большего количества функций управления за пределы самого гипервизора. В рамках гипервизора разработчики оставили следующие функции:
- управление оперативной памятью и тактовой частотой (TSC) процессора,
- контроль за прерываниями и DMA (англ. direct memory access, прямой доступ к памяти),
- таймер реального времени.
Весь остальной функционал (от управления настройками сети до создания и удаления виртуальных машин) находится в так называемом управляющем домене.
Такой подход к распределению функционала повышает в целом отказоустойчивость системы виртуализации, так как сбой в компонентах, находящихся за пределами гипервизора, оказывает влияние исключительно на сам аварийный компонент, не затрагивая работоспособность остальной системы.
Распространенность
Xen с каждым днем поддерживает всё больше и больше платформ. Поддерживается Linux и NetBSD. Порт для FreeBSD в настоящее время проходит тестирование и вскоре будет официально выпущен (он доступен уже сейчас в SVN-репозитории FreeBSD). Порты других операционных систем, таких как Plan 9 также находятся в работе. Ожидается, что для всех этих операционных систем будут выпущены официальные порты для Xen (как это случилось для NetBSD).
На основе Xen создано несколько коммерческих продуктов для консолидации серверов. В частности это такие продукты как:
- Virtual Iron
- XenSource Server
- Oracle VM
История развития
2003: Первый публичный релиз
Xen начинался как исследовательский проект кембриджского университета под руководством Яна Пратта (Ian Pratt), ставшего в дальнейшем основателем компании XenSource. Компания поддерживала разработку опенсорсной версии (xen) и параллельно продавала коммерческие версии ПО, называвшиеся XenServer и XenEnterprise.
Первый публичный релиз Xen'а произошёл в 2003 году.
2007: Citrix покупает XenSource
В октябре 2007 Citrix купила XenSource и осуществила переименование продуктов:
- XenExpress в "XenServer Express Edition" (встроенная версия гипервизора стала называться "XenServer OEM Edition")
- XenServer в "XenServer Standard Edition"
- XenEnterprise в "XenServer Enterprise Edition"
В дальнейшем они были переименованы в XenServer (Free), Essentials for XenServer Enterprise, и Essentials for XenServer Platinum.
22 октября 2007 Citrix завершила поглощение XenSource и опенсорсный проект переехал на сайт http://www.xen.org/.
2009: Объявление об открытии исходных кодов
21 октября 2009 Citrix объявила, что их, являющиеся в настоящий момент коммерческими, версии XenServer станут полностью опенсорсными и публично-доступными. Саймон Кросби (Simon Crosby), главный инженер подразделения Цитрикс по виртуализации заявил: "XenServer 100% бесплатен и его исходные коды будут полностью открыты в ближайшее время. Мы не планируем получение прибыли со всего этого". (англ. XenServer is 100% free, and also shortly fully open sourced. There is no revenue from it at all.). При том, что версии Xen Server свободны, XenCenter (ПО для централизованного управления) продаётся под собственнической лицензией Citrix'ом.
2012: Выпуск Xen 4.2.0
Сообщество Xen.org объявило в сентябре 2012 года о выпуске обновленной версии гипервизора Xen 4.2.0, получившего несколько улучшений. Напомним, что на базе гипервизора Xen построено множество публичных и частных облачных инфраструктур, в частности облако Amazon AWS. Подготовка релиза этой версии Xen заняла 18 месяцев и 300 тысяч строк кода, который контрибьютили 43 организации 124 независимых профессионала.
- В Xen 4.1 появился новый toolstack гипервизора XL для управления виртуальными машинами, однако демон Xend остался дефолтным. Теперь дефолтным демоном является XL (с поддержкой протокола SPICE), который предоставляет больше возможностей для управления виртуальными машинами. Также была доработана библиотека libxl с точки зрения функционала и надежности.
- Поддержка больших вычислительных узлов.
Теперь узлы Xen 4.2 поддерживают до 4095 физических процессоров хоста, до 512 процессоров гостевых систем (vCPU) и до 5 ТБ памяти (для 64-битного гипервизора). Появилась поддержка загрузки EFI. Также были проведены существенные улучшения производительности, что увеличило коэффициент консолидации систем для VDI-нагрузок. Кроме того, появилась возможность автоматически создавать CPUPOOL для NUMA-узла и более интеллектуально разносить vCPU по соответствующим NUMA-узлам, а также поддержка нескольких PCI segments, что также положительно сказывается на производительности больших вычислительных узлов.
- Улучшенная безопасность.
Стек XSM/Flask (модули безопасности) был существенно доработан, а политики безопасности стали более ясными и простыми для изменения в соответствии с требованиями организации.
- Документация.
Состав и наполнение документации для Xen 4.2 были существенно доработаны.
Распределения организаций-контрибьюторов и отдельных профессионалов в код Xen 4.2 (показаны те, кто вложил более 1% от общего количества строчек кода):
2013
Citrix передала гипервизор Xen в Linux Foundation
На конференции Linux Foundation Collaboration Summit в апреле 2013 года было объявлено, что дальнейшей разработкой и поддержкой гипервизора Xen будет вместо компании Citrix заниматься некоммерческая организация Linux Foundation. Благодаря этому, полагают в Citrix, проект Xen получит более широкую поддержку. Об участии в проекте уже заявили Amazon Web Services, AMD, CA Technologies, Cisco, Google, Intel, Oracle, Samsung и Verizon.
Выпуск Xen 4.3
Новую версию гипервизора Xen 4.3 выпустила Linux Foundation в первые дни месяца, сообщила пресс-служба организации 11 июля 2013 года.
Xen 4.3 разрабатывался более 9 месяцев, в разработке принимало участие 90 профессионалов из 27 организаций и 25 независимых разработчиков.
Многие возможности новой версии будут использоваться в крупных публичных облаках:
- Ранняя поддержка архитектур ARM 32- и 64-bit (подробнее об этом тут). Поддержка ARMv7 была проверена для устройств Arndale Board, Samsung XE303C12-A01 Chromebook, ARM Fast Models и ARM Versatile Express. Для ARMv8 проверялись ARM Fast Models.
- Планировщик гипервизора теперь поддерживает NUMA-архитектуру, что увеличивает общую производительность платформы.
- На хостах теперь поддерживается до 16 ТБ физической оперативной памяти.
- Поддержка открытого коммутатора openvswitch.
- Снято ограничение на 300 виртуальных процессоров (vCPU) на хост, а гипервизор был оттестирован для 750 vCPU.
- Появилась поддержка средств аппаратной виртуализации (Intel hardware virtualization) для контроллеров APIC и интерфейса ACPI v5.
- Появилась поддержка расширения MWAIT, позволяющего оптимизировать потребление электроэнергии процессором хоста.
2015: Xen 4.6.0
14 октября 2015 года стало известно о выходе релиза свободного гипервизора Xen 4.6.0. В Xen 4.6 внесено более 2 тыс. изменений[2].
XPDS15 - Xen 4.6 and Beyond (2015)
Основные изменения в Xen 4.6:
- в libxc/libxl представлена полностью новая реализация Live-миграции (Migration v2), учитывающая особенности различных слоёв программного стека Xen, отличающаяся большей надёжностью и расширяемостью, а также лучшей поддержкой инфраструктур следующего поколения и работ, запланированных для будущих релизов гипервизора.
- переработан инструментарий Remus для создания конфигураций высокой доступности, который теперь основан на наработках Migration v2;
- в Libxl обеспечена возможность отмены уже инициированных асинхронных операций, что позволяет пользователю безболезненно отменить длительно выполняемые параллельные работы, воспользоваться всеми преимуществами libvirt и упростить интеграцию со стеками оркестровки облачных систем;
- улучшена поддержка протокола SPICE/QXL;
- добавлена поддержка дисковых контроллеров AHCI;
- в основную кодовую базу добавлен инструмент Xenalyze для анализа буферов трассировки гипервизора, который может быть использован для оптимизации и отладки;
- реализована поддержка новых возможностей выпусков ядра Linux с 3.18 по 4.3, в том числе поддержка бэкенда и фронтэнда Xen SCSI, поддержка ядер VPMU, увеличение производительности mmap, возможность адресовать в P2M более 512 ГБ для паравиртуальных гостевых систем;
- добавлена экспериментальная поддержка PVH Dom0/DomU на платформе FreeBSD. Удалены специфичный для FreeBSD классический порт i386 PV и неработающие расширения blkfront/back. Добавлена поддержка косвенного дескриптора Blkfront. Продолжается работа над поддержкой запуска гостевых систем на базе ARM32 и ARM64 во FreeBSD;
- подсистема обработки связанных с памятью событий переработана в новую подсистему VM event, поддерживающую архитектуры ARM и x86. Подсистема VM event может быть использована для перехвата любых специфичных для виртуальной машины событий, таких как обращение к памяти и регистрам, что позволяет создавать приложения для инспектирования работы гостевых систем и средства мониторинга;
- добавлена поддержка vTPM 2.0 (Virtual Trusted Platform Module), реализованная компаниями Intel и BitDefender;
- значительно увеличена масштабируемость таблицы доступа (Grant table), что в некоторых конфигурациях привело к удвоению общей пропускной способности виртуальной сетевой подсистемы хоста и значительному повышению производительности драйверов ввода/вывода;
- повышена эффективность механизма блокировок для улучшения работы крупных конфигураций, в которых на одном хосте запускаются сотни и тысячи виртуальных окружений;
- прекращена поддержка неиспользуемого планировщика SEDF;
- mini-OS выделен из кодовой базы в отдельное дерево исходных текстов и будет развиваться как отдельный проект;
- компания Intel реализовала для Xen ряд новых технологий, специфичных для архитектуры x86:
- альтернативный P2M-фреймворк с новыми возможностями интроспекции и защиты VM;
- технология журналирования IPML (Intel Page Modification Logging) для отслеживания обращения к страницам памяти при выполнении Live-миграции;
- система индивидуальной настройки L3 кэша для VM;
- механизмы мониторинга пропускной способности памяти;
- инструменты для профилирования гипервизора;
- доведена до полной функциональности реализация виртуальной системы NUMA для гостевых систем, работающих в режиме HVM;
- внесена большая порция улучшений, связанных с архитектурой ARM: число поддерживаемых на платформах ARM64 виртуальных CPU увеличено с 8 до 128;
- добавлена поддержка проброса доступа к не-PCI устройствам;
- поддержка ARM GICv2 на GICv3;
- поддержка 32-разрядного пользовательского окружения на 64-разрядных гостевых системах;
- поддержка OVMF;
- поддержка ARM-платформ Renesas R-Car Gen2, Thunder X, Huawei hip04-d04 и Xilinx ZynqMP SoC;
- представлен проект Raisin, предоставляющий инструментарий для сборки и формирования пакетов для развёртывания рабочих конфигураций Xen путём пересборки из исходных текстов и загрузки всех необходимых зависимостей, таких как Grub и Libvirt.
- введена в строй система непрерывной интеграции для тестирования кода Xen в сочетании с компонентами OpenStack.
- уровень качества поддержки Xen в OpenStack повышен с уровня С до уровня B.
2016: Выход Xen 4.7.0
24 июня 2016 года вышел релиз свободного гипервизора Xen 4.7. В него внесены 1622 изменения. В разработке выпуска приняли участие компании AMD, ARM, Bitdefender, Bosch, Broadcom, Citrix, Fujitsu, Huawei, Intel, Linaro, Netflix, NSA, Oracle, Red Hat и SUSE [3].
Основные изменения в составе Xen 4.7:
- Возможность применения патчей на лету (Live Patching) без необходимости перезапуска гипервизора. Новая техника подходит для устранения примерно 90% уязвимостей в гипервизоре. Реализация включает в себя добавленный в гипервизор системный вызов LIVEPATCH_SYSCTL, утилиту xen-livepatch для загрузки патча и инструментарий для создания патчей (создается сборка гипервизора с исправлением и без, после чего на основе изменения создаётся модуль, вносящий изменения в работающую систему);
- Поддержка удаления отдельных функций гипервизора через изменение настроек в KCONFIG, что позволяет создавать минималистичные сборки ядра с урезанным гипервизором для применения на встраиваемых системах и устройствах интернета вещей (IoT) или для отключения в гипервизоре потенциально уязвимых подсистем;
- Проведена оптимизация производительности и надёжности интерфейса интроспекции виртуальных машин (VMI, Virtual Machine Introspection), позволяющий задействовать аппаратные механизмы виртуализации Intel EPT и AMD RVI для контроля обращения к критичным с точки зрения безопасности областям памяти и блокирования возможных атак. На базе VMI разработан новый инструмент обеспечения безопасности Bitdefender Hypervisor Introspection, который вошёл в состав XenServer 7;
- Представлены наработки по обеспечению перезапуска частей Dom0, вынесенных в отдельные окружения для избавления от единой точки отказа. Если демон xenstored, отвечающий за управление настройками гипервизора, может выполняться в отдельной виртуальной машине "xenstored stub domain" начиная с Xen 4.2, то в 4.7 процесс создания подобной виртуальной машины существенно упрощён и обеспечена возможность перезапуска xenstored без нарушения работы Dom0;
- Добавлен новый интерфейс командной строки для управления устройствами PVUSB для гостевых систем. Поддерживается как бэкенд PVUSB, работающий на уровне ядра, так и вариант на базе QEMU;
- Поддержка горячего подключения дисковых бэкендов QEMU и устройств USB к гостевым системам, работающим в режиме HVM, что позволяет подключать и извлекать накопители без перезапуска гостевой системы. Для HVM также реализована функция мягкой перезагрузки (Soft-reset);
- Улучшена поддержка миграции виртуальных машин. Расширены возможности переноса окружений между хостами с разным аппаратным обеспечением. В состав интегрирован менеджер блокировок COLO (Coarse-grained Lock-stepping), позволяющий поднять производительность за счёт избавления от создания лишних слепков состояния (checkpoint). Отдельно развиваются дополнения COLO Block Replication и COLO Proxy, которые войдут в состав после их принятия проектом QEMU;
- Обеспечена адаптация Xen для новых типов нагрузок и приложений. Снято ограничение на размер памяти паравиртуализированной гостевой системы (512 Гб ОЗУ), что в сочетании с оставшимся ограничением на 512 vCPU на VM даёт возможность применения Xen для создания систем обработки больших объёмов данных и запуска СУБД, держащих данные в ОЗУ;
- Улучшена работа планировщика Credit2, который почти готов к промышленному применению. Добавлена возможность отправки команды для перегруппировки очередей выполняемых задач (runqueues) и балансировки нагрузки между ядрами CPU, отдельными процессорами и узлами NUMA. Возможности расширенной настройки позволяют реализовать более агрессивные схемы балансировки нагрузки, оптимальные для систем среднего размера (например, демонстрируется хорошая производительность при применении Hyper Threading). Для более крупных систем реализована поддержки закрепления CPU и vCPU (hard affinity);
- Улучшена работа realtime-планировщика RTDS, предоставляющего гостевой системе гарантированные ресурсы CPU. В новом выпуске планировщик RTDS переведён с модели распределения квантов времени на событийно-ориентированную архитектуру, что снизило накладные расходы от работы планировщика, улучшило производительность на встраиваемых системах и повысило качество выполнения realtime-задач. Добавлена возможность определения настроек для отдельных vCPU;
- Добавлена инфраструктура для организации блокировок чтения/записи в привязке к CPU, позволяющая повысить скорость выполнения интенсивных операций чтения. Например, переход на новые блокировки позволил увеличить пропускную способность передачи данных между виртуальными машинами с 15 до 48 gbit/s на двухпроцессорном сервере Haswell-EP;
- Расширена поддержка систем на базе архитектуры ARM: Добавлена возможность загрузки на ARM-хостах с ACPI 6.0. Обеспечена совместимость с интерфейсом PSCI 1.0 (Power State Co-ordination Interface). Реализация vGIC-v3 (Virtual Generic Interrupt Controller version 3) приведена в соответствие с требованиями спецификации. Добавлена поддержка прямого получения данных о времени Wallclock через совместно используемую страницу памяти;
- Задействованы новые возможности процессоров Intel Xeon: Добавлена поддержка механизма VT-d Posted Interrupts, предоставляющего средства аппаратного ускорения для виртуализации обработки прерываний. Добавлена поддержка технологии CDP (Code and Data Prioritization), позволяющей изолировать код и данные в совместно используемом кэше L3 для увеличения эффективности использования кэша в многопользовательских системах. Добавлена поддержка технологии VMX TSC Scaling, которая позволяет упростить миграцию между машинами с CPU, работающими на разной частоте. Добавлена поддержка механизма изоляции стека Memory Protection Keys.
Примечания
Подрядчики-лидеры по количеству проектов
Softline (Софтлайн) (53)
Крок (40)
Айтеко (Ай-Теко, iTeco) (13)
Крок Облачные сервисы (13)
Cloud4Y (ООО Флекс) (12)
Другие (506)
Commvault (5)
ITglobal.com (ИТглобалком Рус) (3)
Softline (Софтлайн) (2)
Крок (2)
Cloud4Y (ООО Флекс) (2)
Другие (24)
Крок Облачные сервисы (3)
ISPsystem (Экзософт) (1)
ITglobal.com (ИТглобалком Рус) (1)
Кортис (1)
Крикунов и Партнеры Бизнес Системы (КПБС, KPBS, Krikunov & Partners Business Systems) (1)
Другие (1)
Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров
VMware (94, 136)
Microsoft (14, 39)
IBM (18, 38)
Крок (2, 37)
Крок Облачные сервисы (1, 37)
Другие (393, 307)
VMware (4, 6)
Commvault (2, 5)
IBM (2, 4)
ITglobal.com (ИТглобалком Рус) (2, 3)
РусБИТех-Астра (ГК Астра) (1, 3)
Другие (14, 15)
Крок (1, 3)
Крок Облачные сервисы (1, 3)
ISPsystem (Экзософт) (1, 1)
VMware (1, 1)
СП Облачная платформа (Базис, Basis) (1, 1)
Другие (3, 3)
Orion soft (Орион) (2, 4)
Киберпротект (ранее Акронис-Инфозащита, Acronis-Infoprotect) (1, 3)
Крок Облачные сервисы (1, 3)
ITglobal.com (ИТглобалком Рус) (1, 3)
VStack (ИТглобалком Лабс) (1, 3)
Другие (9, 13)
РусБИТех-Астра (ГК Астра) (1, 4)
СП Облачная платформа (Базис, Basis) (2, 2)
ISPsystem (Экзософт) (1, 2)
VStack (ИТглобалком Лабс) (1, 2)
ITglobal.com (ИТглобалком Рус) (1, 2)
Другие (8, 9)
Распределение систем по количеству проектов, не включая партнерские решения
VMware vSphere - 77
Крок: Виртуальный дата-центр (IaaS) - 37
Microsoft Hyper-V - 37
Citrix Virtual Apps и Desktops (ранее XenApp и XenDesktop) - 20
Cisco UCS Unified Computing System (Cisco UCCX) - 18
Другие 365
Commvault Complete Data Protection - 4
IBM Cloud Paks - 3
ITglobal.com: VDI - 3
Astra Linux: Брест Виртуализация - 3
Cloud4Y Виртуальный рабочий стол (VDI) - 2
Другие 16
Крок: Виртуальный дата-центр (IaaS) - 3
Aerodisk vAIR - 1
VMware vSphere - 1
ISPsystem VMmanager - 1
VStack платформа виртуализации - 1
Другие 1