xg-scale

diff 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 diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/xen/installation.tex	Tue Jul 01 16:16:44 2008 +0300
     1.3 @@ -0,0 +1,347 @@
     1.4 +\section{Инсталляция Xen}
     1.5 +
     1.6 +На этой странице 
     1.7 +описывается процедура подготовки
     1.8 +Linux-машины 
     1.9 +для использования в качестве
    1.10 +хост-системы (домена 0) Xen.
    1.11 +Хост система работает под управлением Debian GNU/Linux.
    1.12 +
    1.13 +\subsection{Начальные требования}
    1.14 +<graphviz>
    1.15 +digraph G \{
    1.16 +\begin{verbatim}
    1.17 +node [shape=rectangle];
    1.18 +a [label="Подготовка\nдомена 0",bgcolor=cyan,style=filled];
    1.19 +b [label="Подготовка\nдомена U"];
    1.20 +c [label="Запуск и эксплуатация\nсистемы"];
    1.21 +a -> b;
    1.22 +b -> c;
    1.23 +\end{verbatim}
    1.24 +\}
    1.25 +</graphviz>
    1.26 +
    1.27 +\subsection{Получение Xen}
    1.28 +Xen можно получить одним из нескольких способов:
    1.29 +\begin{itemize}
    1.30 +\item  Скачать архив исходных кодов;
    1.31 +\item  Получить исходный код непосредственно из репозитория Xen;
    1.32 +\item  Воспользоваться пакетом Xen, входящим в ваш дистрибутив Linux.
    1.33 +\end{itemize}
    1.34 +
    1.35 +В первом и втором случае Xen нужно будет собирать из исходников, 
    1.36 +в третьем — в систему, как правило, установливаются уже откомпилированные 
    1.37 +пакеты.
    1.38 +
    1.39 +\subsubsection{Получение архива исходных кодов}
    1.40 +Архив исходных кодов можно скачать со страницы:
    1.41 +\begin{itemize}
    1.42 +\item  http://xen.xensource.com/download/
    1.43 +\end{itemize}
    1.44 +
    1.45 +\subsubsection{Получение Xen из репозитория Mercurial}
    1.46 +Для получения кода Xen непосредственно из репозитория 
    1.47 +необходимо установить \textbf{mercurial}.
    1.48 +После того как он установлен, 
    1.49 +код можно получить с помощью команды:
    1.50 +
    1.51 +\begin{verbatim}
    1.52 +node [shape=rectangle];
    1.53 +a [label="Подготовка\nдомена 0",bgcolor=cyan,style=filled];
    1.54 +b [label="Подготовка\nдомена U"];
    1.55 +c [label="Запуск и эксплуатация\nсистемы"];
    1.56 +a -> b;
    1.57 +b -> c;
    1.58 +\end{verbatim}
    1.59 +
    1.60 +(здесь вместо версии 3.1 должна быть указана интересующая версия)
    1.61 +
    1.62 +Или, для получения последнего среза unstable:
    1.63 +\begin{verbatim}
    1.64 +  libncurses5-dev gawk libx11-dev zlib1g-dev libssl-dev python-dev
    1.65 +\end{verbatim}
    1.66 +
    1.67 +Для сборки в Debian GNU/Linux 
    1.68 +необходимо установить пакеты:
    1.69 +\begin{verbatim}
    1.70 +  libncurses5-dev gawk libx11-dev zlib1g-dev libssl-dev python-dev
    1.71 +\end{verbatim}
    1.72 +
    1.73 +Процедура получения кода из репозитория Mercurial подробна описана 
    1.74 +на странице:
    1.75 +\begin{itemize}
    1.76 +\item  http://www.cl.cam.ac.uk/research/srg/netos/xen/readmes/hg-cheatsheet.txt
    1.77 +\end{itemize}
    1.78 +
    1.79 +\subsubsection{Инсталляция Xen из репозитория дистрибутива}
    1.80 +Можно воспользоваться пакетами Xen, входящими непосредственно в дистрибутив 
    1.81 +Linux (при условии, что они входят в ваш дистрибутив).
    1.82 +
    1.83 +Например, для Debian GNU/Linux процедура будет такой:
    1.84 +
    1.85 +\begin{verbatim}
    1.86 +%# 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
    1.87 +\end{verbatim}
    1.88 +
    1.89 +В случае выполнения команды установятся уже откомпилированные версии пакетов. Будут установлены:
    1.90 +\begin{itemize}
    1.91 +\item  гипервизор;
    1.92 +\item  ядро Linux откомпилированное под архитектуру Xen;
    1.93 +\item  userland утилиты для работы с Xen.
    1.94 +\end{itemize}
    1.95 +
    1.96 +\subsection{Инсталляция Xen из архива исходных текстов}
    1.97 +Список программного обеспечения, необходимого для сборки:
    1.98 +\begin{itemize}
    1.99 +\item  GCC v3.4 or later
   1.100 +\item  GNU Make
   1.101 +\item  GNU Binutils
   1.102 +\item  Development install of zlib (e.g., zlib-dev)
   1.103 +\item  Development install of Python v2.3 or later (e.g., python-dev)
   1.104 +\item  Development install of curses (e.g., libncurses-dev)
   1.105 +\item  Development install of openssl (e.g., openssl-dev)
   1.106 +\item  Development install of x11 (e.g. xorg-x11-dev)
   1.107 +\item  bridge-utils package (/sbin/brctl)
   1.108 +\item  iproute package (/sbin/ip)
   1.109 +\item  hotplug or udev
   1.110 +\end{itemize}
   1.111 +
   1.112 +Для Debian GNU/Linux, список такой:
   1.113 +
   1.114 +\begin{verbatim}
   1.115 +
   1.116 +\end{verbatim}
   1.117 +
   1.118 +\subsection{Подготовка хост-системы Xen}
   1.119 +\subsubsection{Подготовка домена0}
   1.120 +Пусть:
   1.121 +\begin{itemize}
   1.122 +\item  В качестве хост-машины (dom0) будет использоваться Debian GNU/Linux.
   1.123 +\item  Будут использовать бинарные версии, доступные в репозитории Debian GNU/Linux.
   1.124 +\end{itemize}
   1.125 +
   1.126 +Выполните инсталляцию бинарных версий
   1.127 +утилит Xen:
   1.128 +
   1.129 +\begin{verbatim}
   1.130 +# apt-get install xen-hypervisor-3.0-i386 xen-utils-3.0
   1.131 +\end{verbatim}
   1.132 +
   1.133 +Версии могут отличаться; найти текущие версии можно с помощью \textbf{apt-cache}:
   1.134 +
   1.135 +\begin{verbatim}
   1.136 +%# apt-cache search xen hypervisor
   1.137 +\end{verbatim}
   1.138 +
   1.139 +В том случае, если в вашей машине >4GB оперативной памяти,
   1.140 +используйте PAE-версию гипервизора Xen: \texttt{xen-hypervisor-3.0-i386-pae}.
   1.141 +
   1.142 +Проинсталлируйте программное обеспечение,
   1.143 +используемое скрипта Xen для настройки сети:
   1.144 +
   1.145 +\begin{verbatim}
   1.146 +# apt-get install iproute bridge-utils
   1.147 +\end{verbatim}
   1.148 +
   1.149 +Отключите поддержку TLS,
   1.150 +иначе работа виртуальных машин существенно замедлится.
   1.151 +(этот шаг нужен только в более старых системах; в частности в дистрибутиве \textit{sarge} Debian GNU/Linux):
   1.152 +
   1.153 +\begin{verbatim}
   1.154 +# mv /lib/tls /lib/tls.disabled
   1.155 +\end{verbatim}
   1.156 +
   1.157 +В том случае, если вы используете Etch Debian,
   1.158 +необходимо установить libc6-xen:
   1.159 +
   1.160 +\begin{verbatim}
   1.161 +# apt-get install libc6-xen
   1.162 +\end{verbatim}
   1.163 +
   1.164 +Подготовьте Grub к загрузке Xen.
   1.165 +Такие строки должны присутствовать в конфигурационном
   1.166 +файле \texttt{/boot/grub/menu.lst}:
   1.167 +
   1.168 +\begin{verbatim}
   1.169 +title Xen 3.0 / XenLinux 2.6
   1.170 +kernel /boot/xen-3.0-i386.gz
   1.171 +module /boot/xen0-linux-2.6.16-xen root=/dev/hda1 ro
   1.172 +\end{verbatim}
   1.173 +
   1.174 +Подготовьте ядро, под управлением которого будет работать домен Dom0 Xen:
   1.175 +Для этого:
   1.176 +\begin{itemize}
   1.177 +\item  Скачайте исходный код ядра Linux;
   1.178 +\item  Наложите на него патч Xen;
   1.179 +\item  Откомпилируйте изменённое ядро.
   1.180 +\end{itemize}
   1.181 +
   1.182 +Получение ядра (используется ядро Debian GNU/Linux):
   1.183 +
   1.184 +\begin{verbatim}
   1.185 +# apt-get install kernel-source-2.6.16
   1.186 +\end{verbatim}
   1.187 +
   1.188 +Разархивирование ядра:
   1.189 +
   1.190 +\begin{verbatim}
   1.191 +# cd /usr/src
   1.192 +# tar xfj linux-source-2.6.16.tar.bz2
   1.193 +\end{verbatim}
   1.194 +
   1.195 +Список патчей для ядра Debian GNU/Linux доступен здесь: https://alioth.debian.org/project/showfiles.php?group\_id=30894.
   1.196 +
   1.197 +Получение патча (точный адрес патча необходимо уточнить на странице, указанной выше):
   1.198 +
   1.199 +\begin{verbatim}
   1.200 +# cd /usr/src
   1.201 +# wget --no-check-certificate https://alioth.debian.org/download.php/1561/linux-2.6
   1.202 +16-xen3.0.2-hg9629.patch.gz
   1.203 +\end{verbatim}
   1.204 +
   1.205 +Наложение пачта:
   1.206 +
   1.207 +\begin{verbatim}
   1.208 +# cd /usr/src/linux-source-2.6.16
   1.209 +# zcat ../linux-2.6.16-xen3.0.2-hg9629.patch.gz | patch -p1
   1.210 +patching file include/xen/interface/vcpu.h
   1.211 +patching file include/xen/interface/version.h
   1.212 +...
   1.213 +Hunk #1 succeeded at 422 (offset 4 lines).
   1.214 +Hunk #2 succeeded at 717 (offset 5 lines).
   1.215 +...
   1.216 +\end{verbatim}
   1.217 +
   1.218 +После того как патч наложен,
   1.219 +можно приступить к конфигурированию и сборке ядра:
   1.220 +
   1.221 +\begin{verbatim}
   1.222 +# make menuconfig
   1.223 +[configure like a normal machine]
   1.224 +
   1.225 +Processor type and features  ---> Subarchitecture Type (Xen-compatible)
   1.226 +
   1.227 +Xen --->
   1.228 +[*] Privileged Guest (domain 0)
   1.229 +[*]   Block-device backend driver
   1.230 +[*]   Network-device backend driver
   1.231 +[*] Scrub memory before freeing it to Xen
   1.232 +[*] Block-device frontend driver
   1.233 +[*] Network-device frontend driver
   1.234 +[*] Disable serial port drivers
   1.235 +<*> Export Xen attributes in sysfs
   1.236 +\end{verbatim}
   1.237 +
   1.238 +После конфигурирования, выполните сборку ядра с помощью \texttt{make-kpkg}:
   1.239 +
   1.240 +\begin{verbatim}
   1.241 +# make-kpkg --append-to-version -xen kernel_image
   1.242 +\end{verbatim}
   1.243 +
   1.244 +В результате должен быть получен
   1.245 +пакет Debian, который можно проинсталлировать в с помощью программы \texttt{dpkg}.
   1.246 +
   1.247 +\begin{verbatim}
   1.248 +# dpkg -i ../linux-xen0-2.6.16-xen_10.00.Custom_i386.deb
   1.249 +\end{verbatim}
   1.250 +
   1.251 +Ядро будет проинсталлировано в каталог \texttt{/boot}.
   1.252 +
   1.253 +\begin{verbatim}
   1.254 +/boot/xen0-linux-2.6.16-xen
   1.255 +\end{verbatim}
   1.256 +
   1.257 +Подготовка образа initrd:
   1.258 +В том случае, если вы используете при загрузке виртуальный диск initrd,
   1.259 +его необходимо подготовить для работы с новым ядром.
   1.260 +
   1.261 +Сейчас можно выполнить перезагрузку
   1.262 +системы, и загрузиться на новом ядре.
   1.263 +Система будет работать под управление Xen, 
   1.264 +в домен Dom0.
   1.265 +
   1.266 +Ещё раз перепроверьте
   1.267 +содержимое конфигурационного файла \texttt{/boot/grub/menu.lst}
   1.268 +и перезагружайте систему.
   1.269 +
   1.270 +\subsubsection{Подготовка сетевого моста}
   1.271 +<dl><dd> \textit{Основная статья: \textbf{Сеть в Xen}}
   1.272 +</dd></dl>
   1.273 +
   1.274 +По умолчанию пакеты Debian Xen 
   1.275 +не модифицируют сетевые настройки при инсталляции.
   1.276 +
   1.277 +Необходимо добавить мост \texttt{br-xen}
   1.278 +в файлы \texttt{/etc/network/interfaces}.
   1.279 +
   1.280 +\begin{verbatim}
   1.281 +auto br-xen
   1.282 +iface br-xen inet static
   1.283 +      address 192.168.12.25
   1.284 +      netmask 255.255.255.0
   1.285 +      gateway 192.168.12.1
   1.286 +      bridge_ports eth0
   1.287 +      # optional
   1.288 +      bridge_maxwait 0
   1.289 +\end{verbatim}
   1.290 +
   1.291 +Дополнительные сведения о конфигурировании сетевых мостов в Linux, 
   1.292 +можно узнать в файле \texttt{/usr/share/doc/bridge-utils/README.Debian.gz},
   1.293 +а также в справочном руководстве man на странице brctl(8).
   1.294 +
   1.295 +\subsection{Что дальше?}
   1.296 +После того как домен 0 готов, 
   1.297 +можно приступать к подготовке гостевых систем ­- доменов U.
   1.298 +
   1.299 +Гостевой домен может работать 
   1.300 +под управлением различных операционных систем
   1.301 +(подробнее: Поддержка Xen операционными системами).
   1.302 +
   1.303 +Процедура подготовки гостевой системы описана
   1.304 +на соответствующей странице:
   1.305 +\begin{itemize}
   1.306 +\item  Linux в Xen
   1.307 +\item  FreeBSD в Xen
   1.308 +\item  Windows XP в Xen (требует поддержки виртуализации на аппаратном уровне)
   1.309 +\end{itemize}
   1.310 +
   1.311 +В качестве гостевой системы также могут использоваться различные
   1.312 +эмуляторы, упакованные в домен Xen,
   1.313 +например Xenomips ­- эмулятор маршрутизатора Cisco 7200.
   1.314 +
   1.315 +\subsection{Дополнительная информация}
   1.316 +\begin{itemize}
   1.317 +\item  Руководство пользователя Xen
   1.318 +\end{itemize}
   1.319 +
   1.320 +Сборка Xen из архива исходных текстов:
   1.321 +
   1.322 +\begin{itemize}
   1.323 +\item  http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads/ Архивы исходных текстов Xen
   1.324 +\item  Mercurial(hg) Cheatsheet for Xen -- Советы по использованию Mercurial для получения текущего архива Xen
   1.325 +\end{itemize}
   1.326 +
   1.327 +Инсталляция на Debian GNU/Linux:
   1.328 +
   1.329 +\begin{itemize}
   1.330 +\item  Xen Debian Quick Start
   1.331 +\item  The Perfect Xen 3.0 Setup For Debian
   1.332 +\item  Installing Xen 3.0 upon Debian Unstable, with a custom Kernel
   1.333 +\end{itemize}
   1.334 +
   1.335 +Инсталляция на Linux других дистрибутивов:
   1.336 +
   1.337 +\begin{itemize}
   1.338 +\item  UbuntuBreezyHowTo на XenSource
   1.339 +\item  UbuntuHoaryHowTo на XenSource
   1.340 +\item  HOWTO Xen and Gentoo
   1.341 +\end{itemize}
   1.342 +
   1.343 +Документация по Xen:
   1.344 +
   1.345 +\begin{itemize}
   1.346 +\item  Xen v3.0 Users Manual
   1.347 +\item  Xen Documentation
   1.348 +\item  HowTos -- сборник HowTo на XenSource
   1.349 +\item  Xen Wiki на XenSource
   1.350 +\end{itemize}