Xen (произносится как / ˈzɛn / ) — это бесплатный гипервизор типа 1 с открытым исходным кодом , предоставляющий услуги, которые позволяют нескольким операционным системам компьютеров выполняться на одном и том же компьютерном оборудовании одновременно. Первоначально он был разработан в компьютерной лаборатории Кембриджского университета , а в настоящее время разрабатывается Linux Foundation при поддержке Intel , Citrix , Arm Ltd , Huawei , AWS , Alibaba Cloud , AMD , Bitdefender и EPAM Systems .
Сообщество Xen Project разрабатывает и поддерживает Xen Project как бесплатное программное обеспечение с открытым исходным кодом , соответствующее требованиям GNU General Public License (GPL) версии 2. В настоящее время Xen Project доступен для наборов инструкций IA-32 , x86-64 и ARM . [4]
Xen Project работает в более привилегированном состоянии ЦП, чем любое другое программное обеспечение на машине, за исключением прошивки .
Обязанности гипервизора включают управление памятью и планирование ЦП всех виртуальных машин («доменов»), а также запуск самого привилегированного домена («dom0») — единственной виртуальной машины, которая по умолчанию имеет прямой доступ к оборудованию. Из dom0 можно управлять гипервизором и запускать непривилегированные домены («domU»). [5]
Домен dom0 обычно является версией Linux или BSD . Пользовательские домены могут быть либо традиционными операционными системами, такими как Microsoft Windows , в которых привилегированные инструкции предоставляются инструкциями аппаратной виртуализации (если хост-процессор поддерживает виртуализацию x86 , например, Intel VT-x и AMD-V ), [6] либо паравиртуализированными операционными системами, в которых операционная система знает, что она работает внутри виртуальной машины, и поэтому выполняет гипервызовы напрямую, а не выдает привилегированные инструкции.
Xen Project загружается с помощью загрузчика, например GNU GRUB , а затем обычно загружает паравиртуализированную операционную систему хоста в домен хоста (dom0).
Xen возник как исследовательский проект в Кембриджском университете под руководством Яна Пратта , старшего преподавателя в компьютерной лаборатории , и его аспиранта Кейра Фрейзера. Первый публичный релиз Xen состоялся в 2003 году, а версия 1.0 появилась в 2004 году. Вскоре после этого Пратт и Фрейзер вместе с другими выпускниками Кембриджа, включая Саймона Кросби и генерального директора-основателя Ника Голта, создали XenSource Inc., чтобы превратить Xen в конкурентоспособный корпоративный продукт.
Для поддержки встраиваемых систем, таких как смартфоны/IoT с относительно ограниченными аппаратными вычислительными ресурсами, архитектура Secure Xen ARM на процессоре ARM была представлена на Xen Summit 17 апреля 2007 года, проходившем в IBM TJ Watson. [7] [8] Первый публичный выпуск исходного кода Secure Xen ARM был сделан на Xen Summit 24 июня 2008 года [9] [10] Санг-бумом Су, [11] выпускником Кембриджа, в Samsung Electronics.
22 октября 2007 года Citrix Systems завершила приобретение XenSource, [12] и проект Xen переехал в домен xen.org. Этот шаг начался некоторое время назад и сделал достоянием общественности существование Консультативного совета проекта Xen (Xen AB), в который вошли представители Citrix , IBM , Intel , Hewlett-Packard , Novell , Red Hat , Sun Microsystems и Oracle . Консультативный совет Xen консультирует руководителя проекта Xen и несет ответственность за торговую марку Xen, [13] которую Citrix свободно лицензировала всем поставщикам и проектам, реализующим гипервизор Xen . [14] Citrix также использовала сам бренд Xen для некоторых фирменных продуктов, не связанных с Xen, включая XenApp и XenDesktop .
15 апреля 2013 года было объявлено, что проект Xen был перемещен под эгиду Linux Foundation в качестве совместного проекта. [15] Linux Foundation запустил новую торговую марку для «Xen Project», чтобы отличить проект от любого коммерческого использования старой торговой марки «Xen». Новый сайт сообщества был запущен на xenproject.org [16] в рамках передачи. Участниками проекта на момент объявления были: Amazon, AMD, Bromium, CA Technologies, Calxeda, Cisco, Citrix, Google, Intel, Oracle, Samsung и Verizon. [17] Сам проект Xen является самоуправляемым. [18]
Начиная с версии 3.0 ядра Linux , поддержка Xen для dom0 и domU существует в основном ядре. [19]
Компании, предоставляющие услуги интернет-хостинга, используют гипервизоры для предоставления виртуальных частных серверов . Amazon EC2 (с августа 2006 года по ноябрь 2017 года), [48] IBM SoftLayer , [49] Liquid Web, Fujitsu Global Cloud Platform , [50] Linode , OrionVM [51] и Rackspace Cloud используют Xen в качестве основного гипервизора виртуальных машин для своих продуктовых предложений. [52]
Мониторы виртуальных машин (также известные как гипервизоры) также часто работают на мэйнфреймах и больших серверах под управлением IBM, HP и других систем. [ необходима цитата ] Виртуализация серверов может обеспечить такие преимущества, как:
Поддержка Xen динамической миграции виртуальных машин с одного хоста на другой позволяет балансировать нагрузку и избегать простоев.
Виртуализация также имеет преимущества при работе над разработкой (включая разработку операционных систем): запуск новой системы в качестве гостя позволяет избежать необходимости перезагружать физический компьютер при возникновении ошибки. Изолированные гостевые системы также могут помочь в исследовании компьютерной безопасности, позволяя изучать эффекты некоторых вирусов или червей без возможности компрометации хост-системы.
Наконец, поставщики аппаратных устройств могут принять решение о поставке своих устройств с несколькими гостевыми системами, чтобы иметь возможность запускать различные части программного обеспечения, требующие разных операционных систем. [ необходима цитата ]
Xen предлагает пять подходов к запуску гостевой операционной системы: [53] [54] [55]
Xen предоставляет форму виртуализации, известную как паравиртуализация, в которой гости запускают модифицированную операционную систему. Гости модифицируются для использования специального гипервызова ABI вместо определенных архитектурных функций. Благодаря паравиртуализации Xen может достигать высокой производительности даже на своей архитектуре хоста (x86), которая имеет репутацию несовместимой с традиционными методами виртуализации. [56] [57] Xen может запускать паравиртуализированных гостей («PV-гостей» в терминологии Xen) даже на процессорах без явной поддержки виртуализации. Паравиртуализация позволяет избежать необходимости эмулировать полный набор аппаратных и встроенных служб, что упрощает управление PV-системой и уменьшает поверхность атаки, подверженную потенциально вредоносным гостям. На 32-битной x86 код ядра хоста Xen работает в кольце 0 , в то время как размещенные домены работают в кольце 1 (ядро) и кольце 3 (приложения).
Процессоры, поддерживающие виртуализацию, позволяют запускать немодифицированные гостевые системы, включая фирменные операционные системы (например, Microsoft Windows). Это известно как аппаратная виртуализация , однако в Xen это известно как аппаратная виртуальная машина (HVM). Расширения HVM предоставляют дополнительные режимы выполнения с явным различием между наиболее привилегированными режимами, используемыми гипервизором с доступом к реальному оборудованию (называемые «рутовым режимом» в x86), и менее привилегированными режимами, используемыми гостевыми ядрами и приложениями с «аппаратным» доступом под полным контролем гипервизора (в x86, известными как «нерутовый режим»; как корневой, так и нерутовый режим имеют кольца 0–3). И Intel, и AMD внесли изменения в Xen, чтобы использовать свои соответствующие расширения архитектуры Intel VT-x и AMD-V. [58] Использование расширений виртуализации ARM v7A и v8A пришло с Xen 4.3. [59] Расширения HVM также часто предлагают новые инструкции, позволяющие паравиртуализированному гостю/драйверу выполнять прямые вызовы в гипервизор, обычно используемые для ввода-вывода или других операций, требующих высокой производительности. Они позволяют гостям HVM с подходящими незначительными модификациями получать многие преимущества производительности паравиртуализированного ввода-вывода. В текущих версиях Xen (до 4.2) только полностью виртуализированные гости HVM могут использовать аппаратные средства для нескольких независимых уровней защиты памяти и подкачки. В результате для некоторых рабочих нагрузок гости HVM с драйверами PV (также известные как PV-on-HVM, или PVH) обеспечивают лучшую производительность, чем чистые гости PV. Xen HVM имеет эмуляцию устройств на основе проекта QEMU для предоставления виртуализации ввода-вывода виртуальным машинам. Система эмулирует оборудование с помощью пропатченного демона QEMU «диспетчера устройств» (qemu-dm), работающего как бэкэнд в dom0. Это означает, что виртуализированные машины видят эмулированную версию довольно простого ПК. В среде, где производительность критически важна, драйверы дисков и сети PV-on-HVM используются во время обычной гостевой работы, поэтому эмулируемое оборудование ПК в основном используется для загрузки.
Администраторы могут «живо мигрировать» виртуальные машины Xen между физическими хостами по локальной сети без потери доступности. Во время этой процедуры локальная сеть итеративно копирует память виртуальной машины в место назначения, не останавливая ее выполнение. Процесс требует остановки примерно на 60–300 мс для выполнения окончательной синхронизации, прежде чем виртуальная машина начнет выполняться в своем конечном месте назначения, обеспечивая иллюзию бесшовной миграции. Подобная технология может служить для приостановки работающих виртуальных машин на диск, «замораживая» их рабочее состояние для возобновления в более позднее время.
Xen может масштабироваться до 4095 физических ЦП, 256 VCPU [ требуется разъяснение ] на гостевую систему HVM, 512 VCPU на гостевую систему PV, 16 ТБ ОЗУ на хост и до 1 ТБ ОЗУ на гостевую систему HVM или 512 ГБ ОЗУ на гостевую систему PV. [60]
Гипервизор Xen был портирован на ряд семейств процессоров:
Xen может поставляться на специализированной платформе виртуализации, такой как XCP-ng или XenServer (ранее Citrix Hypervisor, а до этого Citrix XenServer, а до этого XenSource XenEnterprise).
В качестве альтернативы Xen распространяется как дополнительная конфигурация многих стандартных операционных систем. Xen доступен и распространяется с:
Гостевые системы могут работать полностью виртуализированными (для чего требуется аппаратная поддержка), паравиртуализированными (для чего требуется модифицированная гостевая операционная система) или полностью виртуализированными с паравиртуализированными драйверами (PVHVM [73] ). [74] Большинство операционных систем, которые могут работать на ПК, могут работать как гостевые системы Xen HVM. Следующие системы могут работать как паравиртуализированные гостевые системы Xen:
Xen версии 3.0 представила возможность запускать Microsoft Windows в качестве гостевой операционной системы без изменений, если процессор хост-машины поддерживает аппаратную виртуализацию, предоставляемую Intel VT-x (ранее под кодовым названием Vanderpool) или AMD-V (ранее под кодовым названием Pacifica). Во время разработки Xen 1.x, Microsoft Research , совместно с группой операционных систем Кембриджского университета, разработали порт Windows XP на Xen, что стало возможным благодаря программе академического лицензирования Microsoft . Условия этой лицензии не допускают публикацию этого порта, хотя документация по этому опыту представлена в оригинальной статье Xen SOSP . [78] Джеймс Харпер и сообщество разработчиков программного обеспечения с открытым исходным кодом Xen начали разрабатывать бесплатные драйверы паравиртуализации программного обеспечения для Windows. Они предоставляют интерфейсные драйверы для блочных и сетевых устройств Xen и обеспечивают гораздо более высокую производительность диска и сети для систем Windows, работающих в режиме HVM. Без этих драйверов весь дисковый и сетевой трафик должен обрабатываться через QEMU-DM. [79] Впоследствии Citrix выпустила под лицензией BSD (и продолжает поддерживать) драйверы PV для Windows. [80]
Сторонние разработчики создали ряд инструментов (известных как консоли управления Xen) для упрощения общих задач администрирования хоста Xen, таких как настройка, запуск, мониторинг и остановка гостевых систем Xen. Вот некоторые примеры:
Гипервизор Xen подпадает под действие GNU General Public License, поэтому все эти версии содержат ядро свободного программного обеспечения с исходным кодом. Однако многие из них содержат фирменные дополнения.