xg-scale

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