Xen (wiki.ru) - Справочные материалы - Системное администрирование - Каталог статей - Архив документации и мануалов для админов

Вторник, 06.12.2016, 02:45
Приветствую Вас Гость | RSS
Мой сайт
Главная
Регистрация
Вход
Форма входа

Меню сайта

Категории раздела
Об ОС Windows [137]
В категории размещаются статьи, касающщиеся операционных систем от Microsoft.
Об ОС *Nix [198]
В данной категории собраны статьи об ОС семейства Unix/Linux/FreeBSD/...
Справочные материалы [351]
Справка по всему разделу.
Виртуализация и Облака [46]
Networks & Routing [86]
DataBases [22]

Наш опрос
Оцените мой сайт
Всего ответов: 193

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » Системное администрирование » Справочные материалы

Xen (wiki.ru)

Xen

[править]
Материал из Википедии — свободной энциклопедии
Xen
Xen logo.gif
Xen screenshot.png
Xen с запущенными NetBSD и тремя дистрибутивами Linux
Тип

Сервер виртуализации

Разработчик

The Xen Project, XenSource, Inc.

Написана на

C[1]

ОС

Linux, OpenSolaris, BSD

Последняя версия

4.1.0 (26 марта 2011)

Лицензия

GNU GPL

Сайт

xen.org

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

Содержание

[убрать]

[править] Области применения

Технология виртуальных машин позволяет расширить функциональность оборудования следующими способами:

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

[править] Терминология

Основной концепцией гипервизора является домен. Доменом называется запущенная копия виртуальной машины. Если виртуальная машина перезагружается, то её домен завершается (в момент перезагрузки) и появляется новый домен. Более того, даже при миграции содержимое копируется из одного домена в другой домен. Таким образом, за время своей жизни практически все виртуальные машины оказываются по-очереди в разных доменах. Xen оперирует только понятием домена, а понятие «виртуальной машины» появляется на уровне администрирования (прикладных программ, управляющих гипервизором).

Домены бывают нескольких типов. Самые известные dom0 и domU. dom0 — первый запущенный Xen домен, обычно он автоматически создаётся и загружается сразу после загрузки и инициализации гипервизора. Этот домен имеет особые права на управление гипервизором и по-умолчанию всё аппаратное обеспечение компьютера доступно из dom0. Фактически, dom0 — это место жизни ПО, управляющего Xen . dom0 всегда один.

domU — рядовой домен (сокращение от User domain), содержащий в себе домен выполняющихся виртуальных машин. Обычно не имеет доступа к реальному оборудованию и является «полезной нагрузкой» системы виртуализации. В отличие от dom0, domU может быть множество (обычно несколько десятков).

stub-domain — домен, в котором запущена очень специализированная ОС, обеспечивающая работу с каким-либо оборудованием или бэк-эндом драйвера. Является развитием модели безопасности Xen. В продакте (то есть в промышленно применяемых системах виртуализации на базе Xen) пока не используется.

domain builder (конструктор доменов) — программа, которая создаёт domU (загружает в него нужный код и сообщает гипервизору о необходимости запуска). Помимо конструирования домена, обычно занимается подключением и конфигурированием виртуальных устройств, доступных для виртуальной машины. Она же отвечает за процесс миграции виртуальной машины с хоста на хост.

[править] Технологии

[править] Паравиртуализация

Основная статья: Паравиртуализация

Паравиртуализация — адаптация ядра исполняемой ОС для работы совместно с Xen, обычно сокращается до PV. Позволяет достичь очень высокой производительности за счёт отсутствия эмуляции «настоящего железа», простоты интерфейсов и учёта существования гипервизора при выполнении системных вызовов в коде ядра. Выполнение привилегированных операций запрещено, вместо них совершаются гипервызовы (англ. hypercalls) — обращения ядра гостевой ОС к гипервизору с просьбой о выполнении тех или иных операций. В большинстве случаев изменения при портировании ОС под Xen затрагивают только ядро ОС, хотя могут предполагать и незначительные изменения в системных библиотеках (например, libc). Процесс адаптации к Xen очень похож на портирование для новой платформы, однако значительно проще ввиду простоты реализации «гостевой» части драйвера (драйвера в Xen состоят из двух частей — одна исполняется вне виртуальной машины, вторая находится внутри неё. Часть драйвера в гостевой системе крайне примитивна и служит лишь транслятором запросов во вторую часть. Это сделано преднамеренно для простоты портирования ОС под Xen). В PV-режиме не поддерживаются «вложенные» режимы работы процессора, такие как real-86, virtual-86, переключение между 32-битным и 64-битным режимом, поддержка эмуляции аппаратной виртуализации и т. д. В связи с этим в PV-режиме отсутствует начальный фрагмент загрузки компьютера (с имитацией кода BIOS, загрузчика и т. д.), а ядро гостевой системы сразу же запускается в нужном режиме, подобно тому, как запускаются обычные программы. В связи с этим, в частности, сам Xen не может работать в PV-режиме (то есть невозможно запустить «вложенный» гипервизор в PV-режиме).

[править] Аппаратная виртуализация

В режиме аппаратной виртуализации (HVM) гостевая ОС не «знает» про существование гипервизора. Xen с помощью модулей из QEMU эмулирует реальное аппаратное обеспечение и позволяет провести начальную загрузку ОС. По её окончании для нормальной производительности должны запускаться PV-драйвера, которые реализуют быстрый интерфейс с виртуальными устройствами, подобно тому, как это работает в PV-режиме). Поскольку большинство привилегированных операций эмулируется, возможен запуск Xen в HVM-режиме из-под Xen. В этом случае вложенный гипервизор сможет работать только в PV-режиме.

[править] Минимизация функций гипервизора

Гипервизор Xen (по состоянию на версии 3 и 4) реализует минимальный набор операций для управления оперативной памятью, состоянием процессора, таймерами реального времени и счётчиками тактов (TSC) процессора, прерываниями и контролем за DMA. Все остальные функции, такие как реализация дисковых и блочных устройств, создание и удаление виртуальных машин, их миграция между серверами и т. д. реализуется в управляющем домене. За счёт этого размер гипервизора получается весьма малым (для версии 3.4 размер двоичного кода всего гипервизора меньше 600 КБ), так же как и размер его исходного текста. По замыслу авторов это увеличивает устойчивость системы виртуализации, так как ошибка в компонентах вне гипервизора не приводит к компрометации/повреждению самого гипервизора и ограничивает повреждения только вышедшей из строя компонентой, не мешая работать остальным.

Все функции, связанные с обеспечением работы сети, блочных (дисковых) устройств, эмуляции видеоадаптеров и прочих устройств вынесены за пределы гипервизора. Большинство таких устройств состоит из двух частей: драйвера в domU и программы в dom0. Драйвер (чаще всего встроенный в ядро ОС или загружающийся в виде модуля) реализует минимальный объём работы, фактически, транслируя запросы от ОС в программу в dom0. Программа в dom0 выполняет основную часть работы. При этом программа чаще всего запускается в виде отдельного процесса для каждого обслуживаемого устройства. Сбой в такой программе ведёт к сбою только одного устройства (блочного, сетевого) и не затрагивает работу других копий программы (то есть не затрагивает сетевые/блочные устройства остальных доменов, или даже другие устройства того же самого домена).

Традиционно используется следующая терминология: front — часть модуля, находящегося в domU, back — часть, находящаяся в dom0. Для некоторых типов устройств «задняя» часть может быть различной при сохранении одной и той же «передней» части. Например, драйвер блочного устройства может иметь backend в форме программы работы с VHD-образами, с блочными устройствами, с iscsi-инициатором и т. д.

[править] Междоменное взаимодействие

Xen предоставляет доменам три механизма взаимодействия: один — с гипервизором (hypercalls), и два между доменами. Чаще всего, взаимодействие происходит между dom0 и domU, хотя модель допускает взаимодействие и между двумя domU.

Междоменное взаимодействие сводится к двум видам: events (события) и shard mem (общий доступ к памяти). Третий вариант — передача страницы памяти, является частным случаем общего доступа к памяти.

Events служат примерно для того же, для чего служат прерывания в архитектуре x86 или сигналы в Unix — быстрая синхронная или асинхронная передача сигнала о наступлении какого-то события. Общий доступ к памяти обеспечивает возможность передачи значительных объемов информации, а события — скорость передачи.

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

[править] Toolstack

В связи с тем, что сам гипервизор (около 500—600 КБ) реализует только «ядро» системы, весь остальной функционал выносится на прикладной уровень, работающий в dom0. Набор программ, реализующий функциональность за пределами Xen называют англ. toolstack (устоявшегося перевода не имеется).

Существуют две версии toolstack для Xen: основанная на xend (входит в большинство поставок Xen) и основанная на xapi (входит в состав Xen Cloud Platform). Xend развивался одновременного с Xen, написан на Python и с самого начала шёл под открытой лицензией. Xapi был проприетарной разработкой Xensource (в дальнейшем Citrix), но в 2009 году был опубликовано под лицензией GPL. Xapi написано на OCaml, имеет меньший набор возможностей, но работает более стабильно.

В обеих версиях toolstack присутствуют следующие утилиты:

  • xenstored — демон, реализующий интерфейс XenStore. В xapi-toolstack он переписан на ocaml, но реализует ту же самую функциональность.
  • xenconsoled — демон, обеспечивающий в dom0 доступ к консолям виртуальных машин. Xenconsoled реализует бэкэнд консольного устройства для domU и использует API unix98 для создания псевдотерминалов в dom0. Соответствие между номером псевдотерминала и виртуальной машиной записывается в XenStore.

[править] Распространённость

Xen с каждым днем поддерживает всё больше и больше платформ. В настоящее время поддерживается Linux и NetBSD. Порт для FreeBSD в настоящее время проходит тестирование и вскоре будет официально выпущен (он доступен уже сейчас в SVN-репозитории FreeBSD). Порты других операционных систем, таких как Plan 9 также находятся в работе. Ожидается, что для всех этих операционных систем будут выпущены официальные порты для Xen (как это случилось для NetBSD).

На основе Xen создано несколько коммерческих продуктов для консолидации серверов. В частности это такие продукты как:

[править] История

Xen начинался как исследовательский проект кембриджского университета под руководством Яна Пратта (Ian Pratt), ставшего в дальнейшем основателем компании XenSource. Компания поддерживала разработку опенсорсной версии (xen) и параллельно продавала коммерческие версии ПО, называвшиеся XenServer и XenEnterprise.

Первый публичный релиз Xen произошёл в 2003 году. В октябре 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[3], и опенсорсный проект переехал на сайт http://www.xen.org/.

21 октября 2009 Citrix объявила, что их, являющиеся в настоящий момент коммерческими, версии XenServer станут полностью опенсорсными и публично-доступными [4]. Саймон Кросби (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 под собственнической лицензией.

[править] Примечания

[править] См. также

[править] Ссылки



Источник: http://ru.wikipedia.org/wiki/Xen
Категория: Справочные материалы | Добавил: admin (07.08.2011)
Просмотров: 1267 | Теги: xen, virlualization | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Copyright MyCorp © 2016