xg-scale

annotate xen.tex @ 6:4a790b55d005

Обновлен раздел по Windows XP. Исправлен стиль, добавлены некоторые уточнения по конфигурационному файлу
author Igor Chubin <igor@chub.in>
date Wed Jul 09 08:50:18 2008 +0300 (2008-07-09)
parents
children
rev   line source
igor@0 1 \section{Xen}
igor@0 2
igor@0 3
igor@0 4 \textbf{Xen} — это монитор виртуальных машин (VMM, Virtual Machine Monitor) или гипервизор (hypervisor) с поддержкой паравиртуализации (para-virtualization) для процессоров x86 архитектуры, распространяющийся с открытым исходным кодом (opensource). Xen может организовать совместное безопасное исполнение нескольких виртуальных машин на одной физической системе с производительностью близкой к непосредственной (native).
igor@0 5
igor@0 6 Xen обладает функциональностью ПО корпоративного уровня; в нём, в частности, обеспечивается:
igor@0 7 \begin{itemize}
igor@0 8 \item Производительность виртуальных машин близкая к производительности при непосредственном исполнении на железе;
igor@0 9 \item Возможность живой миграции работающих виртуальных машин между хостами;
igor@0 10 \item Поддержка до 32 виртуальных процессоров на одну гостевую машину с возможностью горячего добавления (hotplug) процессоров;
igor@0 11 \item Поддержка платформ x86/32, x86/32 с PAE и x86/64;
igor@0 12 \item Поддержка аппаратной виртуализации для запуска немодифицированных операционных систем (включая Microsoft Windows);
igor@0 13 \item Отличная поддержка оборудования (поддерживаются практически все драйверы устройств Linux).
igor@0 14 \end{itemize}
igor@0 15
igor@0 16 \subsection{Что это}
igor@0 17 \subsubsection{Что может виртуализация}
igor@0 18 \begin{enumerate}
igor@0 19 \item Запуск множества операционных систем одновременно
igor@0 20 \item Гарантированная изоляция ОС друг от друга
igor@0 21 \item Возможность гибкого разделения ресурсов между машинами
igor@0 22 \end{enumerate}
igor@0 23
igor@0 24 \subsubsection{Зачем это надо}
igor@0 25
igor@0 26 \subsubsection{Примеры использования}
igor@0 27 Список примеров не полный.
igor@0 28
igor@0 29 Консолидация серверов хостинг-провайдеров:
igor@0 30 \begin{itemize}
igor@0 31 \item Одна виртуальная машина на пользователя;
igor@0 32 \item Динамическое создание виртуальных машин;
igor@0 33 \item Миграция VM в пределах кластера;
igor@0 34 \item Плавный апгрейд критических серверов.
igor@0 35 \end{itemize}
igor@0 36
igor@0 37 \subsection{Виртуализация и паравиртуализация}
igor@0 38 Принципы действия виртуальных машин/эмуляторов/сред ограниченного исполнения:
igor@0 39
igor@0 40 \begin{itemize}
igor@0 41 \item \textbf{интерпретация} и \textbf{динамическая рекомпиляция} -- Bochs -- PearPC -- QEMU -- VirtualPC for MAC;
igor@0 42 \item \textbf{виртуализация на уровне ОС} -- Jail -- Linux-VServer -- OpenVZ -- Virtuozzo -- Zones;
igor@0 43 \item \textbf{виртуализация} -- VMware -- VirtualPC -- Virtual Server 2005 -- QEMU с модулем kqemu;
igor@0 44 \item \textbf{паравиртуализация} и \textbf{портирование} -- Xen -- UML .
igor@0 45 \end{itemize}
igor@0 46
igor@0 47 Идеальная виртуальная среда абсолютно прозрачна
igor@0 48 для гостевых систем.
igor@0 49 Ключевые особенности виртуализации:
igor@0 50 \begin{itemize}
igor@0 51 \item Общие принципы построения мейнфреймов
igor@0 52 \item Практически невозможно для процессоров семейства i386
igor@0 53 \item Запуск немодифицированных ОС выполняется сложно
igor@0 54 \begin{itemize}
igor@0 55 \item Перехват привилегированных вызовов
igor@0 56 \item Динамическое изменение кода
igor@0 57 \end{itemize}
igor@0 58 \item В результате в некоторых случаях производительность страдает.
igor@0 59 \end{itemize}
igor@0 60
igor@0 61 Xen не скрывает себя от гостевых ОС.
igor@0 62 Наоборот, они должны быть подготовлены к работе с этой системой.
igor@0 63 Для этого выполняется:
igor@0 64 \begin{itemize}
igor@0 65 \item Портирование операционной системы для работы с Xen
igor@0 66 \item Гостевым операционным система даётся возможность использования драйверов хост-системы, но только под её присмотром.
igor@0 67 \end{itemize}
igor@0 68
igor@0 69 В настоящий момент модифицированный код гостевых ОС
igor@0 70 доступен для Linux и NetBSD. Ведётся работа по портированию
igor@0 71 FreeBSD, OpenSolaris и Plan9.
igor@0 72
igor@0 73 Xen полностью интегрирован с Linux:
igor@0 74 \begin{itemize}
igor@0 75 \item Существует отдельная архитектура ядра (ARCH=xen)
igor@0 76 \item Xen работает как гипервизор
igor@0 77 \item Ядро обращается к гипервизору для получения ресурсов
igor@0 78 \item Гипервизор использует драйверы Linux.
igor@0 79 \end{itemize}
igor@0 80
igor@0 81 \subsubsection{Дополнительная информация}
igor@0 82 \begin{itemize}
igor@0 83 \item http://en.wikipedia.org/wiki/Virtualization
igor@0 84 \item http://en.wikipedia.org/wiki/X86\_virtualization
igor@0 85 \item Технологии виртуализации: вчера, сегодня, завтра -- статья Сергея Озерова и Александра Карабуто в журнале \dq{}Экспресс Электроника\dq{}
igor@0 86 \item http://www.xensource.com/xen/xen/index.html
igor@0 87 \item http://en.wikipedia.org/wiki/Xen
igor@0 88 \item Paravirtualization is a Dead-End Approach -- критика паравиртуализации в блоге VirtualIron
igor@0 89 \end{itemize}
igor@0 90
igor@0 91 \subsection{Сравнение с другими виртуальными машинами}
igor@0 92 Сравнение виртуальных машин, сред ограниченного исполнения
igor@0 93 и эмуляторов производится на странице \textit{Сравнение виртуальных машин}.
igor@0 94
igor@0 95 \subsection{Производительность}
igor@0 96 <dl><dd> \textit{Основная страница: \textbf{Производительность Xen}}
igor@0 97 </dd></dl>
igor@0 98
igor@0 99 Портирование ОС на Xen позволяет добиться большей эффективности
igor@0 100 в сравнении с виртуализацией, основанной на перехвате
igor@0 101 несработавших инструкций, или тем более использовании интерпретатора
igor@0 102 или JIT-компилятора кода гостевой ОС.
igor@0 103 Минусом этого подхода является необходимость в портировании ОС,
igor@0 104 но опыт показал, что это можно сделать довольно быстро.
igor@0 105
igor@0 106 Операционные системы, работающие в Xen, исполняются
igor@0 107 с уровнем привилегий 1 вместо 0, который зарезервирован для Xen.
igor@0 108 В результате гостевые ОС не могут использовать привилегированные
igor@0 109 инструкции для запрета/разрешения прерываний, изменения таблиц адресов
igor@0 110 и т.д. Вместо этого они должны выполнять соответствующее обращение (hypercall)
igor@0 111 к гипервизору Xen с просьбой выполнить необходимую операцию.
igor@0 112 При правильной разработке интерфейса между виртуальными машинами и гипервизором,
igor@0 113 накладные расходы на выполнение операций малы.
igor@0 114
igor@0 115 Вместо того чтобы пытаться эмулировать существующее аппаратное обеспечение,
igor@0 116 Xen предоставляет специально подготовленные блочные устройства
igor@0 117 и сетевые интерфейсы гостевых операционным системам, и требуя
igor@0 118 соответствующий драйвер.
igor@0 119 Преимущество такого подхода заключается в том, что производительность
igor@0 120 гостевой ОС практически не страдает:
igor@0 121 например, скорость передачи данных по Gigabit Ethernet каналу
igor@0 122 из машины, работающей под Xen, такая же как и у родной операционной системы.
igor@0 123
igor@0 124 Группа разработчиков Xen провела исследование производительности этой системы.
igor@0 125 Для этого система с ядром Linux 2.4.22 была запущена в различных режимах
igor@0 126 и в ней выполнялся ряд тестов.
igor@0 127 Проводилось сравнение системы работающей на реальной машине,
igor@0 128 с работой в виртуальных машинах с такими системами виртуализации:
igor@0 129 \begin{itemize}
igor@0 130 \item VMware workstation 3.2;
igor@0 131 \item User Mode Linux (UML).
igor@0 132 \end{itemize}
igor@0 133
igor@0 134
igor@0 135 Тесты, на которых проводилось сравнение:
igor@0 136 \begin{itemize}
igor@0 137 \item Набор тестов SPEC CPU2000 Integer;
igor@0 138 \item Полная сборка Linux 2.4.22 в конфигурации по умолчанию на локальном диске;
igor@0 139 \item PostgreSQL выполняющая тест OSDB Information Retrieval (IR);
igor@0 140 \item PostgreSQL выполняющая тест OSDB On-Line Transaction Processing (OLTP);
igor@0 141 \item Однопользовательский тест файловой системы dbench 2.0;
igor@0 142 \item Тест SPWCWeb99 для Web-сервера Apache 1.3.27 с модулем `mod\_specweb99\rq{} для динамического создания контента.
igor@0 143 \end{itemize}
igor@0 144
igor@0 145 На рисунке изображены уровни производительности
igor@0 146 для Linux (L), Xen/Linux (X), VMware Workstation 3.2 (V)
igor@0 147 и User Mode Linux (U).
igor@0 148
igor@0 149 Тест SPEC INT2000 наиболее требователен к процессору CPU, но практически не выполняет
igor@0 150 ввода/вывода и требует минимум работы от самой операционной системы,
igor@0 151 и вследствие этого все три техники виртуализации показали практически одинаковые
igor@0 152 хорошие результаты.
igor@0 153
igor@0 154 В других тестах, наоборот, требуется большее участие ОС, больше переключений контекста
igor@0 155 и больше операций по созданию процессов.
igor@0 156 Производительность Linux внутри Xen практически не отличается
igor@0 157 от производительности Linux, работающего непосредственно на железе.
igor@0 158 В наихудшем случае, при выполнении теста OSDB-IR, отставание составило 8\%.
igor@0 159 При использовании других техник виртуализации,
igor@0 160 результаты не были настолько хорошими. В некоторых случаях
igor@0 161 замедление составило до 88\%.
igor@0 162 В работе \url{http://www.cl.cam.ac.uk/netos/papers/2003-xensosp.pdf}
igor@0 163 приведены дополнительные результаты, в частности касающиеся одновременного
igor@0 164 запуска большого количества виртуальных машин.
igor@0 165
igor@0 166 Представленные выше результаты были проверены и подтверждены
igor@0 167 независимой группой Кларксоновского Университета (Clarkson University).
igor@0 168 С результатами исследования, проведённого этой группой, можно ознакомиться
igor@0 169 в работе \dq{}Xen and the Art of Repeated Research\dq{},
igor@0 170 которая также включает результаты сравнения производительности Xen
igor@0 171 и машины IBM zServer.
igor@0 172
igor@0 173 \subsubsection{Дополнительная информация}
igor@0 174 \begin{itemize}
igor@0 175 \item Xen Performance -- статья группы разработчиков Xen, сравнивающая производительность Linux, Xen, UML, VMWare
igor@0 176 \item Xen and the Art of Virtualization -- статья группы разработчиков Xen, в которой описывается архитектура Xen
igor@0 177 \item Xen and the Art of Repeated Research -- результаты исследования производительности, выполненного независимой группой Кларксоновского Университета
igor@0 178 \end{itemize}
igor@0 179
igor@0 180 \subsection{Новые возможности Xen}
igor@0 181 <dl><dd> \textit{Основная страница: \textbf{Новости Xen}}
igor@0 182 </dd></dl>
igor@0 183
igor@0 184 Текущяя версия: \textit{Xen 3.2.0}, релиз сделан 16 января 2008 года.
igor@0 185
igor@0 186 \subsubsection{Возможности Xen 3}
igor@0 187 Xen 3 значительно отличается от своего предшественника Xen 2.
igor@0 188 Повышены устойчивость к сбоям, безопасность, производительность.
igor@0 189 Появился ряд принципиально новых возможностей.
igor@0 190
igor@0 191 Наиболее значимые изменения:
igor@0 192 \begin{itemize}
igor@0 193 \item Intel (Physical Addressing Extensions) PAE для поддержки 32битных серверов с >4G ОЗУ
igor@0 194 \item Поддержка x86/64 (Intel EM64T, AMD Opteron)
igor@0 195 \item Поддержка Intel VT-x для запуска немодифицированных гостевых ОС (Windows XP/2003, немодифицированный Linux)
igor@0 196 \item Усовершенствованные инструменты управления
igor@0 197 \item Улучшенная поддержка ACPI
igor@0 198 \item AGP/DRM графика
igor@0 199 \end{itemize}
igor@0 200
igor@0 201 Начиная с версии 3.1 появились следующие возможности:
igor@0 202 \begin{itemize}
igor@0 203 \item Поддержка XenAPI 1.0
igor@0 204 \begin{itemize}
igor@0 205 \item Конфигурационные файлы виртуальных машин в XML;
igor@0 206 \item Управление жизненным циклом виртуальных машин;
igor@0 207 \item Безопасная привязка XML-RPC для многих языков
igor@0 208 \end{itemize}
igor@0 209 \item Предварительная поддержка save/restore/migrate для HVM-доменов (в частности, Windows);
igor@0 210 \item Динамическое управление памятью для HVM-доменов;
igor@0 211 \item Поддержка 32-на-64 паравиртуальных гостевых систем (запуск паравиртуальных систем PAE на 64-битном Xen);
igor@0 212 \item Поддержка copy-on-write для дисковых устройств blktap.
igor@0 213 \end{itemize}
igor@0 214
igor@0 215 \subsubsection{Ограничения Xen 2}
igor@0 216 В предыдущей версии Xen (Xen 2.0) наиболее сильно были заметны следующие недостатки:
igor@0 217 \begin{itemize}
igor@0 218 \item Не поддерживалась многопроцессорность в гостевых ОС
igor@0 219 \item Поддерживалась только архитектура i386; x86\_64 поддерживает только в режиме i386
igor@0 220 \end{itemize}
igor@0 221
igor@0 222 \subsection{Аппаратные требования}
igor@0 223 <dl><dd> \textit{Основная страница: \textbf{Аппаратные требования Xen}}
igor@0 224 </dd></dl>
igor@0 225
igor@0 226 В настоящий момент Xen
igor@0 227 работает на платформах \textbf{Intel x86} и \textbf{Intel x86\_64} (в режиме совместимости i386)
igor@0 228 и требует процессора не ниже P6.
igor@0 229 Выполняется поддержка многопроцессорных машин (в том числе и машин с процессорами с архитектурой Hyper-Threading).
igor@0 230 В ближайшее время Xen будет работать на процессорах архитектуры IA64.
igor@0 231 Также ведутся работы по подготовке Xen для работы на процессорах с архитектурой PPC и ARM.
igor@0 232
igor@0 233 Для использования \textit{модифицированных}
igor@0 234 операционных систем -- подготовленных к использованию в паравиртуальной машине Xen -- никаких дополнительных требований к аппаратному обеспечению
igor@0 235 компьютера, на котором будут выполняться виртуальные машины, не предъявляется.
igor@0 236
igor@0 237 Использование операционных систем \textit{в неизменном
igor@0 238 виде} возможно при использовании
igor@0 239 процессоров с поддержкой виртуализации.
igor@0 240
igor@0 241 \subsection{Поддержка Xen различными операционными системами}
igor@0 242 <dl><dd> \textit{Основная страница: \textbf{Поддержка Xen операционными системами}}
igor@0 243 </dd></dl>
igor@0 244
igor@0 245 В домене 0 может использоваться ОС:
igor@0 246 \begin{itemize}
igor@0 247 \item Linux
igor@0 248 \item NetBSD
igor@0 249 \item OpenSolaris
igor@0 250 \end{itemize}
igor@0 251
igor@0 252 В паравиртуальном режиме в домене domU работают:
igor@0 253 \begin{itemize}
igor@0 254 \item Linux
igor@0 255 \item NetBSD (без PAE)
igor@0 256 \item FreeBSD (начиная с 7, без поддержки PAE и с большим количеством ограничений)
igor@0 257 \item Plan9 (без PAE)
igor@0 258 \item OpenSolaris (build 44).
igor@0 259 \end{itemize}
igor@0 260
igor@0 261 В режиме аппаратной виртуализации поддерживаются Windows XP, Windows 2003 Server.
igor@0 262
igor@0 263 \subsection{Инсталляция, конфигурирование и использование Xen}
igor@0 264 \subsubsection{Как начать?}
igor@0 265 Для того чтобы попробовать Xen в действии, не нужно много времени.
igor@0 266 При благоприятных обстоятельствах
igor@0 267 (вы ясно соображаете, уверенно чувствуете себя в командной строке,
igor@0 268 у вас хороший канал в Интернет, и вы используете Linux -- обычно эти качества
igor@0 269 встречаются вместе)
igor@0 270 вы увидите приглашение гостевой ОС меньше чем через
igor@0 271 десять минут после того как начнёте экспериментировать.
igor@0 272
igor@0 273 Возможно, вы используете систему,
igor@0 274 которая уже поддерживает Xen из коробки.
igor@0 275
igor@0 276 Если так, то вы можете получить образ из Интернета,
igor@0 277 описанным здесь способом.
igor@0 278
igor@0 279 Если ваша система не поддерживает Xen,
igor@0 280 а вы не хотите сейчас заниматься сборкой и инсталляцией
igor@0 281 Xen вручную, можно использовать Live CD с Xen.
igor@0 282 Его образ можно получить здесь.
igor@0 283
igor@0 284 \subsubsection{Инсталляция операционной системы в domU}
igor@0 285 Существует несколько способов
igor@0 286 подготовки образа гостевой системы.
igor@0 287 \begin{enumerate}
igor@0 288 \item Инсталляция средствами базовой операционной системы
igor@0 289 \item Использование готового образа
igor@0 290 \item Использование инсталлятора гостевой ОС
igor@0 291 \item Использование диска реальной машины
igor@0 292 \end{enumerate}
igor@0 293
igor@0 294 \paragraph{Инсталляция средствами базовой операционной системы}
igor@0 295 Этот способ является основным для Xen.
igor@0 296
igor@0 297 Подготовка образа для использования
igor@0 298 в качестве дискового раздела в домене domU
igor@0 299 состоит из двух этапов:
igor@0 300 \begin{enumerate}
igor@0 301 \item Создание собственно файла/раздела образа и файловой системы внутри него
igor@0 302 \item Наполнение образа операционной системой
igor@0 303 \end{enumerate}
igor@0 304
igor@0 305 Создание собственно образа выполняется
igor@0 306 очень просто.
igor@0 307
igor@0 308 \begin{verbatim}
igor@0 309 # dd if=/dev/zero of=domU-disk.img bs=1024k count=<размер_в_MB>
igor@0 310 # mkfs.ext3 domU-disk.img
igor@0 311 \end{verbatim}
igor@0 312
igor@0 313 Затем этот образ монтируется и
igor@0 314 наполняется.
igor@0 315
igor@0 316 Вот, например, как это можно сделать в Debian GNU/Linux:
igor@0 317
igor@0 318 \begin{verbatim}
igor@0 319 # mount -o loop domU-disk.img /mnt
igor@0 320 # debootstrap etch /mnt
igor@0 321 \end{verbatim}
igor@0 322
igor@0 323 В результате, в каталоге \texttt{/mnt}
igor@0 324 будет установлена операционная система \textbf{Debian GNU/Linux},
igor@0 325 дистрибутив \textbf{etch}.
igor@0 326
igor@0 327 Подробнее процедура инсталляции описана здесь.
igor@0 328
igor@0 329 \paragraph{Использование готового образа}
igor@0 330 Если вы создаете не первый домен,
igor@0 331 вы можете взять образ существующего домена за основу.
igor@0 332 Можно подготовить образцовые домены
igor@0 333 разного предназначения и при необходимости
igor@0 334 копировать и дорабатывать их.
igor@0 335
igor@0 336 В Интернете доступно огромное количество образов дисковых
igor@0 337 разделов, готовых для использования в качестве основных
igor@0 338 дисковых разделов в пользовательских доменах Xen.
igor@0 339
igor@0 340 В этом случае подготовка дискового раздела сводится
igor@0 341 к простому выкачиванию файла из сети.
igor@0 342 После того как образ получен, нужно создать конфигурационный
igor@0 343 файл домена, в котором указать этот образ в качестве
igor@0 344 дискового раздела. Затем, стартануть новый домен.
igor@0 345
igor@0 346 Как правило, в комплекте с образом уже есть готовый к использованию
igor@0 347 конфигурационный файл домена. Можно использовать его,
igor@0 348 но только перед этим проверить и при необходимости изменить
igor@0 349 пути в именах файлов, в частности, в имене ядра,
igor@0 350 и параметры домена -- память, сетевые интерфейсы и другие.
igor@0 351
igor@0 352 Этот способ может использоваться как для экспериментов,
igor@0 353 так и для создания полноценных гостевых доменов.
igor@0 354 Готовые образы поддаются доработке и расширению.
igor@0 355
igor@0 356 Подробнее о источниках образов в Сети,
igor@0 357 смотрите здесь.
igor@0 358
igor@0 359 \paragraph{Использование инсталлятора гостевой операционный системы}
igor@0 360 Этот способ требует наличия аппаратной виртуализации
igor@0 361 базовой системой (подробнее здесь)
igor@0 362 или поддержки архитектуры Xen инсталлятором гостевой ОС.
igor@0 363 На сегодняшний день список инсталляторов ОС, готовых
igor@0 364 к использованию в паравиртуальном режиме Xen, пуст.
igor@0 365
igor@0 366 В режиме аппаратной виртуализации все выглядит
igor@0 367 так же, как и при подготовке обычной виртуальной машины
igor@0 368 в других системах.
igor@0 369
igor@0 370 Процесс подготовки нового домена состоит из трех этапов:
igor@0 371 \begin{enumerate}
igor@0 372 \item Создание конфигурационного файла домена.
igor@0 373 \item Подготовка пустого образа для дискового раздела гостевого домена.
igor@0 374 \item Запуск виртуальной машины.
igor@0 375 \end{enumerate}
igor@0 376
igor@0 377 После того как виртуальная машина стартанёт,
igor@0 378 будет запущен инсталлятор операционной системы,
igor@0 379 и дальше инсталляция будет проходить обычным способом.
igor@0 380
igor@0 381 Когда инсталляция будет завершена, необходимо отредактировать
igor@0 382 конфигурационный файл домена: указать загрузку с диска
igor@0 383 вместо загрузки с CD.
igor@0 384
igor@0 385 \paragraph{Использование диска реальной машины}
igor@0 386 Существующую реальную машину можно запускать
igor@0 387 в виртуализированной среде Xen.
igor@0 388 (верно и обратное: пользовательский домен Xen
igor@0 389 можно очень легко превратить в реальную машину; об этом ниже).
igor@0 390
igor@0 391 Это можно сделать следующим образом:
igor@0 392 \begin{itemize}
igor@0 393 \item побайтно скопировать дисковые разделы реальной машины в файлы или дисковые разделы Xen-системы;
igor@0 394 \item переставить диск из реальной машины в Xen-систему.
igor@0 395 \end{itemize}
igor@0 396
igor@0 397 После чего создать конфигурационный файл домена,
igor@0 398 в котором указать соответствующие дисковые разделы.
igor@0 399
igor@0 400 При загрузке нового домена нужно использовать не старое ядро системы,
igor@0 401 а ядро подготовленное для Xen.
igor@0 402 Поэтому, при необходимости, не забудьте скопировать модули
igor@0 403 нового ядра на диск гостевой системы:
igor@0 404
igor@0 405 \begin{verbatim}
igor@0 406 # mount /dev/hdb1 /mnt
igor@0 407 # cp -r /lib/modules/2.6.16-xenU /mnt/lib/modules
igor@0 408 \end{verbatim}
igor@0 409
igor@0 410 Здесь:
igor@0 411 \begin{itemize}
igor@0 412 \item \textbf{/dev/hdb1} -- корневой дисковый раздел гостевой системы;
igor@0 413 \item \textbf{2.6.16-xenU} -- точное название ядра, под управлением которого будет работать гостевой домен.
igor@0 414 \end{itemize}
igor@0 415
igor@0 416 Этот способ, выполненный в обратном направлении,
igor@0 417 позволяет превращать виртуальные машины Xen в реальные.
igor@0 418 Для этого нужно:
igor@0 419 \begin{enumerate}
igor@0 420 \item Подготовить виртуальную машину Xen на отдельном диске
igor@0 421 \item Проинсталлировать из реальной системы на диск домена загрузчик
igor@0 422 \item Установить (но пока не запускать!) в виртуальной системе реальное ядро
igor@0 423 \item Указать в конфигурационном файле загрузчика в виртуальной системе использовать реальное ядро
igor@0 424 \item Отредактировать /etc/fstab с учётом того, как диск будет виден в реальной системе
igor@0 425 \item Вытащить диск и запустить с него реальную систему.
igor@0 426 \end{enumerate}
igor@0 427
igor@0 428 \subsubsection{Образы domU различных операционных систем}
igor@0 429 В Интернете доступно большое количество domU-образов
igor@0 430 различных операционных систем, готовых для использования
igor@0 431 с Xen.
igor@0 432
igor@0 433 Для того чтобы использовать образ, необходимо:
igor@0 434 \begin{enumerate}
igor@0 435 \item Настроить Xen в домене 0
igor@0 436 \item Получить желаемый образ domU
igor@0 437 \item Создать конфигурационный файл для новой виртуальной машины, указывающий на полученный образ domU
igor@0 438 \item Запустить новую виртуальную машину
igor@0 439 \end{enumerate}
igor@0 440
igor@0 441 \textbf{Linux}:
igor@0 442 \begin{itemize}
igor@0 443 \item http://jailtime.org/
igor@0 444 \item http://xen-get.org/
igor@0 445 \end{itemize}
igor@0 446
igor@0 447 \textbf{FreeBSD}:
igor@0 448 \begin{itemize}
igor@0 449 \item http://www.fsmware.com/xenofreebsd/7.0/download/
igor@0 450 \end{itemize}
igor@0 451
igor@0 452 \textbf{NetBSD}:
igor@0 453 \begin{itemize}
igor@0 454 \item http://www.netbsd.org/Ports/xen/howto.html
igor@0 455 \end{itemize}
igor@0 456
igor@0 457 \textbf{OpenSolaris}:
igor@0 458 \begin{itemize}
igor@0 459 \item http://www.opensolaris.org/os/community/xen/How-To-8-15-06/install/AugDomUs/
igor@0 460 \end{itemize}
igor@0 461
igor@0 462 Также существует репозитори образов,
igor@0 463 предназначенных для непосредственного исполнения процессором.
igor@0 464 Эти образы можно использовать в Xen в режиме
igor@0 465 аппаратной виртуализации.
igor@0 466 \begin{itemize}
igor@0 467 \item Коллекция образов на Free OS Zoo
igor@0 468 \end{itemize}
igor@0 469
igor@0 470 \subsubsection{Виртуальная машина Windows XP}
igor@0 471 <dl><dd>\textit{Основная статья: \textbf{Windows XP в Xen}}
igor@0 472 </dd></dl>
igor@0 473
igor@0 474 Процедура подготовки Xen-системы для использования в режиме аппаратной виртуализации
igor@0 475 и последующего запуска ОС Windows XP в виртуальной машине Xen детально
igor@0 476 описана на странице Windows XP в Xen (использован перевод Михаила Сгибнева).
igor@0 477
igor@0 478 \subsubsection{Виртуализация устройств}
igor@0 479 \paragraph{Виртуализация дисковых систем}
igor@0 480 <dl><dd> \textit{Основная статья: \textbf{Блочные устройства в Xen}}
igor@0 481 </dd></dl>
igor@0 482
igor@0 483 \paragraph{Виртуализация сети}
igor@0 484 <dl><dd> \textit{Основная статья: \textbf{Сеть в Xen}}
igor@0 485 </dd></dl>
igor@0 486
igor@0 487 \paragraph{Виртуализация графической карты}
igor@0 488 \begin{itemize}
igor@0 489 \item http://www.cs.toronto.edu/~andreslc/xen-gl/
igor@0 490 \end{itemize}
igor@0 491
igor@0 492 \subsubsection{Использование Xen}
igor@0 493 \paragraph{Сохранение и восстановление доменов, миграция и живая миграция}
igor@0 494 \paragraph{Горячее подключение устройств}
igor@0 495 <dl><dd> \textit{Основная статья: \textbf{Горячее подключение устройств}}
igor@0 496 </dd></dl>
igor@0 497
igor@0 498 \paragraph{Распределение ресурсов между виртуальными машинами}
igor@0 499 <dl><dd> \textit{Основная статья: \textbf{Распределение ресурсов между доменами}}
igor@0 500 </dd></dl>
igor@0 501
igor@0 502 \subsection{Средства управления и мониторинга виртуальных машин}
igor@0 503 \begin{center} \resizebox{10cm}{!}{\includegraphics{/var/lib/mediawiki/images/8/83/Enomalism.jpg}}\\ \textit{Enomalism -- Web-инструмент для управления работой виртуальных машин}\end{center}
igor@0 504
igor@0 505 <dl><dd> \textit{Основная статья: \textbf{Средства управления Xen}}
igor@0 506 </dd></dl>
igor@0 507
igor@0 508 Cуществует множество различных
igor@0 509 средств для управления работой виртуальных машин,
igor@0 510 в их числе:
igor@0 511
igor@0 512 \begin{itemize}
igor@0 513 \item \textbf{xm} — встроенное средство, работает в консольном режиме. Наблюдение выполнятся с помощью \textbf{xm top}.
igor@0 514 \item Enomalism — консоль управления и мониторинга Xen с Web-интерфейсом
igor@0 515 \item XenMan — программа для управление и мониторинга Xen c графическим интерфейсом пользователя
igor@0 516 \item virt-manager — программа для управления и мониторинга Xen с графическим интерфейсом пользователя от RedHat
igor@0 517 \end{itemize}
igor@0 518
igor@0 519 Отдельно стоит отметить библиотеку \textit{libvirt}, которая предоставляет
igor@0 520 унифицированные механизмы управления не только для управления доменами Xen,
igor@0 521 но также машинами QEMU и OpenVZ. Программа \textit{virt-manager} построено на основе этой библиотеки.
igor@0 522
igor@0 523 Другие средства управления виртуальными машинами:
igor@0 524 \begin{itemize}
igor@0 525 \item http://www.xen-tools.org/
igor@0 526 \item https://savannah.cern.ch/projects/vgrid
igor@0 527 \end{itemize}
igor@0 528
igor@0 529 \subsection{Коммерческие системы виртуализации, основанные на Xen}
igor@0 530 В настоящий момент, коммерческие системы виртуализации, базирующиеся на Xen,
igor@0 531 предлагают следующие производители:
igor@0 532 \begin{itemize}
igor@0 533 \item XenSource (Citrix)
igor@0 534 \item VirtualIron
igor@0 535 \item Novell
igor@0 536 \item Oracle
igor@0 537 \item Sun
igor@0 538 \end{itemize}
igor@0 539
igor@0 540 Как правило, они эти системы отличаются от свободных решений тем что,
igor@0 541 имеют:
igor@0 542 \begin{itemize}
igor@0 543 \item более развитый интерфейс инсталляции и управления виртуальными машинами
igor@0 544 \item более развитую драйверную поддержку гостевых операционных систем, в частности, как правило, у них есть свои собственные паравиртуальные драйверы (работающие только с конкретной модификацией системы виртуализации) для Windows, которые позволяют существенно ускорить операции ввода/вывода внутри гостевых систем (сейчас ведётся работа на свободными PV-драйверами Xen для Windows, подробнее: Паравиртуальные драйверы Xen для Windows).
igor@0 545 \end{itemize}
igor@0 546
igor@0 547 \subsection{Коммерческая поддержка и хостинг на Xen}
igor@0 548 \subsubsection{Коммерческая поддержка решений на Xen}
igor@0 549 <dl><dd> \textit{Основная страница: \textbf{Коммерческая поддержка Xen}}
igor@0 550 </dd></dl>
igor@0 551
igor@0 552 \subsubsection{Хостинг на Xen}
igor@0 553 <dl><dd> \textit{Основная страница: \textbf{Хостинг доменов Xen}}
igor@0 554 </dd></dl>
igor@0 555
igor@0 556 \subsection{Информационные ресурсы}
igor@0 557 \subsubsection{Документация}
igor@0 558 Русскоязычная:
igor@0 559 \begin{itemize}
igor@0 560 \item Руководство пользователя Xen
igor@0 561 \item XenFaq ­— часто задаваемые вопросы по Xen
igor@0 562 \item man-страницы:
igor@0 563 \begin{itemize}
igor@0 564 \item man xm
igor@0 565 \item man xmdomain.cfg
igor@0 566 \end{itemize}
igor@0 567 \end{itemize}
igor@0 568
igor@0 569 Англоязычная:
igor@0 570 \begin{itemize}
igor@0 571 \item The Xen™ virtual machine monitor (англ.) — сборник документации на сайте Кембриджского университета
igor@0 572 \item Xen users\rq{} manual (англ.) — для пользователей и администраторов
igor@0 573 \item Xen Interface manual (англ.) — для разработчиков
igor@0 574 \item Xen Wiki (англ.)
igor@0 575 \item XenFaq (англ.)
igor@0 576 \end{itemize}
igor@0 577
igor@0 578 Немецкоязычная:
igor@0 579 \begin{itemize}
igor@0 580 \item http://www.pug.org/index.php/Xen-Installation (нем.)
igor@0 581 \end{itemize}
igor@0 582
igor@0 583 \subsubsection{Другие интернет-ресурсы}
igor@0 584 \begin{itemize}
igor@0 585 \item Xen (англ.) и Xen (рус.) на wikipedia.org — статьи о Xen на Wikipedia
igor@0 586 \end{itemize}
igor@0 587
igor@0 588 \subsubsection{Списки рассылки}
igor@0 589 Существуют несколько списков рассылки, посвящёных Xen. Наиболее важные из них перечислены ниже.
igor@0 590 Официальная страница списков рассылки и информация о подписке на них находится здесь:
igor@0 591 <dl><dd> http://lists.xensource.com/
igor@0 592 </dd></dl>
igor@0 593 Поиск в архивах (и некоторый статистический анализ)
igor@0 594 можно выполнять с помощью MarkMail:
igor@0 595 <dl><dd> http://xen.markmail.org/
igor@0 596 </dd></dl>
igor@0 597
igor@0 598 <dl><dt> xen-devel@lists.xensource.com
igor@0 599 </dt><dd> Обсуждение разработки и ошибок. Подписка здесь: http://lists.xensource.com/xen-devel
igor@0 600 </dd><dt> xen-users@lists.xensource.com
igor@0 601 </dt><dd> Обсуждение инсталляции и использования. Подписка здесь: http://lists.xensource.com/xen-users
igor@0 602 </dd><dt> xen-announce@lists.xensource.com
igor@0 603 </dt><dd> Используется только для анонсов. Подписка здесь: http://lists.xensource.com/xen-announce
igor@0 604 </dd><dt> xen-changelog@lists.xensource.com
igor@0 605 </dt><dd> Лента Changelog для веток unstable и 2.0 -- ориентирован на разработчиков. Подписка здесь: http://lists.xensource.com/xen-changelog
igor@0 606 </dd></dl>
igor@0 607
igor@0 608 \subsubsection{Книги}
igor@0 609 \begin{itemize}
igor@0 610 \item The Definitive Guide to the Xen Hypervisor (англ.) — наиболее серьёзная книга о \textit{внутреннем устройстве Xen}
igor@0 611 \end{itemize}
igor@0 612