xg-scale

view xen/installation.tex @ 0:4730a0d07d88

Исходники курса после первого прочтения.
Правки (которых должно быть много),
ещё пока не вносились.
author Igor Chubin <igor@chub.in>
date Tue Jul 01 16:16:44 2008 +0300 (2008-07-01)
parents
children
line source
1 \section{Инсталляция Xen}
3 На этой странице
4 описывается процедура подготовки
5 Linux-машины
6 для использования в качестве
7 хост-системы (домена 0) Xen.
8 Хост система работает под управлением Debian GNU/Linux.
10 \subsection{Начальные требования}
11 <graphviz>
12 digraph G \{
13 \begin{verbatim}
14 node [shape=rectangle];
15 a [label="Подготовка\nдомена 0",bgcolor=cyan,style=filled];
16 b [label="Подготовка\nдомена U"];
17 c [label="Запуск и эксплуатация\nсистемы"];
18 a -> b;
19 b -> c;
20 \end{verbatim}
21 \}
22 </graphviz>
24 \subsection{Получение Xen}
25 Xen можно получить одним из нескольких способов:
26 \begin{itemize}
27 \item Скачать архив исходных кодов;
28 \item Получить исходный код непосредственно из репозитория Xen;
29 \item Воспользоваться пакетом Xen, входящим в ваш дистрибутив Linux.
30 \end{itemize}
32 В первом и втором случае Xen нужно будет собирать из исходников,
33 в третьем — в систему, как правило, установливаются уже откомпилированные
34 пакеты.
36 \subsubsection{Получение архива исходных кодов}
37 Архив исходных кодов можно скачать со страницы:
38 \begin{itemize}
39 \item http://xen.xensource.com/download/
40 \end{itemize}
42 \subsubsection{Получение Xen из репозитория Mercurial}
43 Для получения кода Xen непосредственно из репозитория
44 необходимо установить \textbf{mercurial}.
45 После того как он установлен,
46 код можно получить с помощью команды:
48 \begin{verbatim}
49 node [shape=rectangle];
50 a [label="Подготовка\nдомена 0",bgcolor=cyan,style=filled];
51 b [label="Подготовка\nдомена U"];
52 c [label="Запуск и эксплуатация\nсистемы"];
53 a -> b;
54 b -> c;
55 \end{verbatim}
57 (здесь вместо версии 3.1 должна быть указана интересующая версия)
59 Или, для получения последнего среза unstable:
60 \begin{verbatim}
61 libncurses5-dev gawk libx11-dev zlib1g-dev libssl-dev python-dev
62 \end{verbatim}
64 Для сборки в Debian GNU/Linux
65 необходимо установить пакеты:
66 \begin{verbatim}
67 libncurses5-dev gawk libx11-dev zlib1g-dev libssl-dev python-dev
68 \end{verbatim}
70 Процедура получения кода из репозитория Mercurial подробна описана
71 на странице:
72 \begin{itemize}
73 \item http://www.cl.cam.ac.uk/research/srg/netos/xen/readmes/hg-cheatsheet.txt
74 \end{itemize}
76 \subsubsection{Инсталляция Xen из репозитория дистрибутива}
77 Можно воспользоваться пакетами Xen, входящими непосредственно в дистрибутив
78 Linux (при условии, что они входят в ваш дистрибутив).
80 Например, для Debian GNU/Linux процедура будет такой:
82 \begin{verbatim}
83 %# apt-get install xen-hypervisor-3.0.4-1-i386 linux-image-2.6.18-4-xen-686 xen-ioemu-3.0.4-1 xen-utils-3.0.4-1
84 \end{verbatim}
86 В случае выполнения команды установятся уже откомпилированные версии пакетов. Будут установлены:
87 \begin{itemize}
88 \item гипервизор;
89 \item ядро Linux откомпилированное под архитектуру Xen;
90 \item userland утилиты для работы с Xen.
91 \end{itemize}
93 \subsection{Инсталляция Xen из архива исходных текстов}
94 Список программного обеспечения, необходимого для сборки:
95 \begin{itemize}
96 \item GCC v3.4 or later
97 \item GNU Make
98 \item GNU Binutils
99 \item Development install of zlib (e.g., zlib-dev)
100 \item Development install of Python v2.3 or later (e.g., python-dev)
101 \item Development install of curses (e.g., libncurses-dev)
102 \item Development install of openssl (e.g., openssl-dev)
103 \item Development install of x11 (e.g. xorg-x11-dev)
104 \item bridge-utils package (/sbin/brctl)
105 \item iproute package (/sbin/ip)
106 \item hotplug or udev
107 \end{itemize}
109 Для Debian GNU/Linux, список такой:
111 \begin{verbatim}
113 \end{verbatim}
115 \subsection{Подготовка хост-системы Xen}
116 \subsubsection{Подготовка домена0}
117 Пусть:
118 \begin{itemize}
119 \item В качестве хост-машины (dom0) будет использоваться Debian GNU/Linux.
120 \item Будут использовать бинарные версии, доступные в репозитории Debian GNU/Linux.
121 \end{itemize}
123 Выполните инсталляцию бинарных версий
124 утилит Xen:
126 \begin{verbatim}
127 # apt-get install xen-hypervisor-3.0-i386 xen-utils-3.0
128 \end{verbatim}
130 Версии могут отличаться; найти текущие версии можно с помощью \textbf{apt-cache}:
132 \begin{verbatim}
133 %# apt-cache search xen hypervisor
134 \end{verbatim}
136 В том случае, если в вашей машине >4GB оперативной памяти,
137 используйте PAE-версию гипервизора Xen: \texttt{xen-hypervisor-3.0-i386-pae}.
139 Проинсталлируйте программное обеспечение,
140 используемое скрипта Xen для настройки сети:
142 \begin{verbatim}
143 # apt-get install iproute bridge-utils
144 \end{verbatim}
146 Отключите поддержку TLS,
147 иначе работа виртуальных машин существенно замедлится.
148 (этот шаг нужен только в более старых системах; в частности в дистрибутиве \textit{sarge} Debian GNU/Linux):
150 \begin{verbatim}
151 # mv /lib/tls /lib/tls.disabled
152 \end{verbatim}
154 В том случае, если вы используете Etch Debian,
155 необходимо установить libc6-xen:
157 \begin{verbatim}
158 # apt-get install libc6-xen
159 \end{verbatim}
161 Подготовьте Grub к загрузке Xen.
162 Такие строки должны присутствовать в конфигурационном
163 файле \texttt{/boot/grub/menu.lst}:
165 \begin{verbatim}
166 title Xen 3.0 / XenLinux 2.6
167 kernel /boot/xen-3.0-i386.gz
168 module /boot/xen0-linux-2.6.16-xen root=/dev/hda1 ro
169 \end{verbatim}
171 Подготовьте ядро, под управлением которого будет работать домен Dom0 Xen:
172 Для этого:
173 \begin{itemize}
174 \item Скачайте исходный код ядра Linux;
175 \item Наложите на него патч Xen;
176 \item Откомпилируйте изменённое ядро.
177 \end{itemize}
179 Получение ядра (используется ядро Debian GNU/Linux):
181 \begin{verbatim}
182 # apt-get install kernel-source-2.6.16
183 \end{verbatim}
185 Разархивирование ядра:
187 \begin{verbatim}
188 # cd /usr/src
189 # tar xfj linux-source-2.6.16.tar.bz2
190 \end{verbatim}
192 Список патчей для ядра Debian GNU/Linux доступен здесь: https://alioth.debian.org/project/showfiles.php?group\_id=30894.
194 Получение патча (точный адрес патча необходимо уточнить на странице, указанной выше):
196 \begin{verbatim}
197 # cd /usr/src
198 # wget --no-check-certificate https://alioth.debian.org/download.php/1561/linux-2.6
199 16-xen3.0.2-hg9629.patch.gz
200 \end{verbatim}
202 Наложение пачта:
204 \begin{verbatim}
205 # cd /usr/src/linux-source-2.6.16
206 # zcat ../linux-2.6.16-xen3.0.2-hg9629.patch.gz | patch -p1
207 patching file include/xen/interface/vcpu.h
208 patching file include/xen/interface/version.h
209 ...
210 Hunk #1 succeeded at 422 (offset 4 lines).
211 Hunk #2 succeeded at 717 (offset 5 lines).
212 ...
213 \end{verbatim}
215 После того как патч наложен,
216 можно приступить к конфигурированию и сборке ядра:
218 \begin{verbatim}
219 # make menuconfig
220 [configure like a normal machine]
222 Processor type and features ---> Subarchitecture Type (Xen-compatible)
224 Xen --->
225 [*] Privileged Guest (domain 0)
226 [*] Block-device backend driver
227 [*] Network-device backend driver
228 [*] Scrub memory before freeing it to Xen
229 [*] Block-device frontend driver
230 [*] Network-device frontend driver
231 [*] Disable serial port drivers
232 <*> Export Xen attributes in sysfs
233 \end{verbatim}
235 После конфигурирования, выполните сборку ядра с помощью \texttt{make-kpkg}:
237 \begin{verbatim}
238 # make-kpkg --append-to-version -xen kernel_image
239 \end{verbatim}
241 В результате должен быть получен
242 пакет Debian, который можно проинсталлировать в с помощью программы \texttt{dpkg}.
244 \begin{verbatim}
245 # dpkg -i ../linux-xen0-2.6.16-xen_10.00.Custom_i386.deb
246 \end{verbatim}
248 Ядро будет проинсталлировано в каталог \texttt{/boot}.
250 \begin{verbatim}
251 /boot/xen0-linux-2.6.16-xen
252 \end{verbatim}
254 Подготовка образа initrd:
255 В том случае, если вы используете при загрузке виртуальный диск initrd,
256 его необходимо подготовить для работы с новым ядром.
258 Сейчас можно выполнить перезагрузку
259 системы, и загрузиться на новом ядре.
260 Система будет работать под управление Xen,
261 в домен Dom0.
263 Ещё раз перепроверьте
264 содержимое конфигурационного файла \texttt{/boot/grub/menu.lst}
265 и перезагружайте систему.
267 \subsubsection{Подготовка сетевого моста}
268 <dl><dd> \textit{Основная статья: \textbf{Сеть в Xen}}
269 </dd></dl>
271 По умолчанию пакеты Debian Xen
272 не модифицируют сетевые настройки при инсталляции.
274 Необходимо добавить мост \texttt{br-xen}
275 в файлы \texttt{/etc/network/interfaces}.
277 \begin{verbatim}
278 auto br-xen
279 iface br-xen inet static
280 address 192.168.12.25
281 netmask 255.255.255.0
282 gateway 192.168.12.1
283 bridge_ports eth0
284 # optional
285 bridge_maxwait 0
286 \end{verbatim}
288 Дополнительные сведения о конфигурировании сетевых мостов в Linux,
289 можно узнать в файле \texttt{/usr/share/doc/bridge-utils/README.Debian.gz},
290 а также в справочном руководстве man на странице brctl(8).
292 \subsection{Что дальше?}
293 После того как домен 0 готов,
294 можно приступать к подготовке гостевых систем ­- доменов U.
296 Гостевой домен может работать
297 под управлением различных операционных систем
298 (подробнее: Поддержка Xen операционными системами).
300 Процедура подготовки гостевой системы описана
301 на соответствующей странице:
302 \begin{itemize}
303 \item Linux в Xen
304 \item FreeBSD в Xen
305 \item Windows XP в Xen (требует поддержки виртуализации на аппаратном уровне)
306 \end{itemize}
308 В качестве гостевой системы также могут использоваться различные
309 эмуляторы, упакованные в домен Xen,
310 например Xenomips ­- эмулятор маршрутизатора Cisco 7200.
312 \subsection{Дополнительная информация}
313 \begin{itemize}
314 \item Руководство пользователя Xen
315 \end{itemize}
317 Сборка Xen из архива исходных текстов:
319 \begin{itemize}
320 \item http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads/ Архивы исходных текстов Xen
321 \item Mercurial(hg) Cheatsheet for Xen -- Советы по использованию Mercurial для получения текущего архива Xen
322 \end{itemize}
324 Инсталляция на Debian GNU/Linux:
326 \begin{itemize}
327 \item Xen Debian Quick Start
328 \item The Perfect Xen 3.0 Setup For Debian
329 \item Installing Xen 3.0 upon Debian Unstable, with a custom Kernel
330 \end{itemize}
332 Инсталляция на Linux других дистрибутивов:
334 \begin{itemize}
335 \item UbuntuBreezyHowTo на XenSource
336 \item UbuntuHoaryHowTo на XenSource
337 \item HOWTO Xen and Gentoo
338 \end{itemize}
340 Документация по Xen:
342 \begin{itemize}
343 \item Xen v3.0 Users Manual
344 \item Xen Documentation
345 \item HowTos -- сборник HowTo на XenSource
346 \item Xen Wiki на XenSource
347 \end{itemize}