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
|