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} |