xg-scale
annotate xen.tex @ 2:ae9c8cec3315
Иправлены небольшие опечатки
и ошибки переноса <pre>-блоков,
которые возникли при автоматическом
создании файла из wiki.
и ошибки переноса <pre>-блоков,
которые возникли при автоматическом
создании файла из wiki.
author | Igor Chubin <igor@chub.in> |
---|---|
date | Tue Jul 01 16:49:38 2008 +0300 (2008-07-01) |
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 |