Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Xen - Технологии11 мая 2011Оглавление: 1. Xen 2. Технологии 3. Toolstack 4. Распространённость ПаравиртуализацияПаравиртуализация адаптация ядра исполняемой ОС для работы совместно с Xen, обычно сокращается до PV. Позволяет достичь очень высокой производительности за счёт отсутствия эмуляции «настоящего железа», простоты интерфейсов и учёта существования гипервизора при выполнении системных вызовов в коде ядра. Выполнение привилегированных операций запрещено, вместо них совершаются гипервызовы обращения ядра гостевой ОС к гипервизору с просьбой о выполнении тех или иных операций. В большинстве случаев изменения при портировании ОС под Xen затрагивают только ядро ОС, хотя могут предполагать и незначительные изменения в системных библиотеках. Процесс адаптации к Xen очень похож на портирование для новой платформы, однако значительно проще ввиду простоты реализации «гостевой» части драйвера. В PV-режиме не поддерживаются «вложенные» режимы работы процессора, такие как real-86, virtual-86, переключение между 32-битным и 64-битным режимом, поддержка эмуляции аппаратной виртуализации и т. д. В связи с этим в PV-режиме отсутствует начальный фрагмент загрузки компьютера, а ядро гостевой системы сразу же запускается в нужном режиме, подобно тому, как запускаются обычные программы. В связи с этим, в частности, сам Xen не может работать в PV-режиме. Аппаратная виртуализацияВ режиме аппаратной виртуализации гостевая ОС не «знает» про существование гипервизора. Xen с помощью модулей из QEMU эмулирует реальное аппаратное обеспечение и позволяет провести начальную загрузку ОС. По её окончании для нормальной производительности должны запускаться PV-драйвера, которые реализуют быстрый интерфейс с виртуальными устройствами, подобно тому, как это работает в PV-режиме). Поскольку большинство привилегированных операций эмулируется, возможен запуск Xen в HVM-режиме из-под Xen. В этом случае вложенный гипервизор сможет работать только в PV-режиме. Минимизация функций гипервизораГипервизор Xen реализует минимальный набор операций для управления оперативной памятью, состоянием процессора, таймерами реального времени и счётчиками тактов процессора, прерываниями и контролем за DMA. Все остальные функции, такие как реализация дисковых и блочных устройств, создание и удаление виртуальных машин, их миграция между серверами и т. д. реализуется в управляющем домене. За счёт этого размер гипервизора получается весьма малым, так же как и размер его исходного текста. По замыслу авторов это увеличивает устойчивость системы виртуализации, так как ошибка в компонентах вне гипервизора не приводит к компрометации/повреждению самого гипервизора и ограничивает повреждения только вышедшей из строя компонентой, не мешая работать остальным. Все функции, связанные с обеспечением работы сети, блочных устройств, эмуляции видеоадаптеров и прочих устройств вынесены за пределы гипервизора. Большинство таких устройств состоит из двух частей: драйвера в domU и программы в dom0. Драйвер реализует минимальный объём работы, фактически, транслируя запросы от ОС в программу в dom0. Программа в dom0 выполняет основную часть работы. При этом программа чаще всего запускается в виде отдельного процесса для каждого обслуживаемого устройства. Сбой в такой программе ведёт к сбою только одного устройства и не затрагивает работу других копий программы. Традиционно используется следующая терминология: front часть модуля, находящегося в domU, back часть, находящаяся в dom0. Для некоторых типов устройств «задняя» часть может быть различной при сохранении одной и той же «передней» части. Например, драйвер блочного устройства может иметь backend в форме программы работы с VHD-образами, с блочными устройствами, с iscsi-инициатором и т. д. Междоменное взаимодействиеXen предоставляет доменам три механизма взаимодействия: один с гипервизором, и два между доменами. Чаще всего, взаимодействие происходит между dom0 и domU, хотя модель допускает взаимодействие и между двумя domU. Междоменное взаимодействие сводится к двум видам: events и shard mem. Третий вариант передача страницы памяти, является частным случаем общего доступа к памяти. Events служат примерно для того же, для чего служат прерывания в архитектуре x86 или сигналы в Unix быстрая синхронная или асинхронная передача сигнала о наступлении какого-то события. Общий доступ к памяти обеспечивает возможность передачи значительных объемов информации, а события скорость передачи. События могут быть маскированными и немаскированными. Немаскированные события вызывают callback и позволяют обрабатывать событие сразу же по факту его возникновения. Маскированные события лишь устанавливают флаг о том, что событие произошло, а обработчик переодически смотрит, произошло ли событие. Второй метод позволяет не вызывать callback по каждому событию и в случае частых событий существенно снижает время обработки. Напротив, первый вариант позволяет увеличить скорость обработки события, которое, возможно, происходит не слишком часто, но требует немедленной реакции. Просмотров: 3646
|