xg-scale
annotate xen/linux.tex @ 2:ae9c8cec3315
Иправлены небольшие опечатки
и ошибки переноса <pre>-блоков,
которые возникли при автоматическом
создании файла из wiki.
и ошибки переноса <pre>-блоков,
которые возникли при автоматическом
создании файла из wiki.
author | Igor Chubin <igor@chub.in> |
---|---|
date | Tue Jul 01 16:49:38 2008 +0300 (2008-07-01) |
parents | |
children |
rev | line source |
---|---|
igor@0 | 1 \section{Linux в Xen} |
igor@0 | 2 |
igor@0 | 3 На этой странице описана процедура подготовки |
igor@0 | 4 гостевой системы под управлением Linux |
igor@0 | 5 для работы в качестве пользовательского домена Xen |
igor@0 | 6 (domain U). |
igor@0 | 7 |
igor@0 | 8 \subsection{Начальные требования} |
igor@0 | 9 <graphviz> |
igor@0 | 10 digraph G \{ |
igor@0 | 11 \begin{verbatim} |
igor@0 | 12 node [shape=rectangle]; |
igor@0 | 13 a [label="Подготовка\nдомена 0"]; |
igor@0 | 14 b [label="Подготовка\nдомена U",bgcolor=cyan,style=filled]; |
igor@0 | 15 c [label="Запуск и эксплуатация\nсистемы"]; |
igor@0 | 16 a -> b; |
igor@0 | 17 b -> c; |
igor@0 | 18 \end{verbatim} |
igor@0 | 19 \} |
igor@0 | 20 </graphviz> |
igor@0 | 21 |
igor@0 | 22 Для выполнение описанных ниже действий |
igor@0 | 23 необходимо наличие проинсталлированной и настроенной |
igor@0 | 24 хост-системы Xen (домена 0). |
igor@0 | 25 Как это сделать описано на странице Инсталляция Xen. |
igor@0 | 26 |
igor@0 | 27 Предполагается, что в домене 0 установлен Debian GNU/Linux. |
igor@0 | 28 Для других дистрибутивов некоторые действия будут выполняться |
igor@0 | 29 иначе. |
igor@0 | 30 |
igor@0 | 31 \subsection{Подготовка образа гостевой системы} |
igor@0 | 32 \subsubsection{Подготовка дисковых разделов для использования в качестве дисков виртуальной машины} |
igor@0 | 33 Для того чтобы разделы виртуальной машины |
igor@0 | 34 соответствовали дисковым разделам реальной машины, |
igor@0 | 35 используйте следующие шаги: |
igor@0 | 36 |
igor@0 | 37 \begin{verbatim} |
igor@0 | 38 node [shape=rectangle]; |
igor@0 | 39 a [label="Подготовка\nдомена 0"]; |
igor@0 | 40 b [label="Подготовка\nдомена U",bgcolor=cyan,style=filled]; |
igor@0 | 41 c [label="Запуск и эксплуатация\nсистемы"]; |
igor@0 | 42 a -> b; |
igor@0 | 43 b -> c; |
igor@0 | 44 \end{verbatim} |
igor@0 | 45 |
igor@0 | 46 В том случае, если в виртуальной машине должно быть |
igor@0 | 47 несколько дисковых разделов, |
igor@0 | 48 подготовьте их. |
igor@0 | 49 Например, для /usr: |
igor@0 | 50 |
igor@0 | 51 \begin{verbatim} |
igor@0 | 52 node [shape=rectangle]; |
igor@0 | 53 a [label="Подготовка\nдомена 0"]; |
igor@0 | 54 b [label="Подготовка\nдомена U"]; |
igor@0 | 55 c [label="Запуск и эксплуатация\nсистемы",bgcolor=cyan,style=filled]; |
igor@0 | 56 a -> b; |
igor@0 | 57 b -> c; |
igor@0 | 58 \end{verbatim} |
igor@0 | 59 |
igor@0 | 60 Если вам необходимо пространство подкачки (swap) в виртуальной машине, |
igor@0 | 61 подготовьте его с помощью команды mkswap: |
igor@0 | 62 |
igor@0 | 63 \begin{verbatim} |
igor@0 | 64 # mkswap /dev/hdX |
igor@0 | 65 \end{verbatim} |
igor@0 | 66 |
igor@0 | 67 \subsubsection{Подготовка файлов для использования в качестве диска виртуальной машины} |
igor@0 | 68 Создайте файл для использования в качестве основного |
igor@0 | 69 диска виртуальной машины. |
igor@0 | 70 |
igor@0 | 71 \begin{verbatim} |
igor@0 | 72 # dd if=/dev/zero of=/xen/images/debian-host1.img bs=1M count=<size_in_MB> |
igor@0 | 73 # mkfs.ext3 /xen/images/debian-host1.img |
igor@0 | 74 # mount -o loop /srv/debian-host1.img /mnt |
igor@0 | 75 \end{verbatim} |
igor@0 | 76 |
igor@0 | 77 В том случае, если в виртуальной машине должно быть |
igor@0 | 78 несколько дисковых разделов, |
igor@0 | 79 подготовьте их. |
igor@0 | 80 Например, для /usr: |
igor@0 | 81 |
igor@0 | 82 \begin{verbatim} |
igor@0 | 83 # dd if=/dev/zero of=/xen/images/debian-host1-usr.img bs=1M count=<size_in_MB> |
igor@0 | 84 # mkfs.ext3 /xen/images/debian-host1-usr.img |
igor@0 | 85 # mkdir /mnt/usr |
igor@0 | 86 # mount -o loop /xen/images/debian-host1-usr.img /mnt/usr |
igor@0 | 87 \end{verbatim} |
igor@0 | 88 |
igor@0 | 89 Если вам необходимо пространство подкачки (swap) в виртуальной машине, |
igor@0 | 90 подготовьте его с помощью команды mkswap: |
igor@0 | 91 |
igor@0 | 92 \begin{verbatim} |
igor@0 | 93 # mkswap /dev/hdX |
igor@0 | 94 \end{verbatim} |
igor@0 | 95 |
igor@0 | 96 \subsubsection{Подготовка виртуальной системы под управлением Debian GNU/Linux} |
igor@0 | 97 |
igor@0 | 98 \paragraph{Инсталляция ОС Debian GNU/Linux} |
igor@0 | 99 Этот этап может быть выполнен проще, |
igor@0 | 100 если использовать xen-tools. |
igor@0 | 101 Ниже показано, как провести инсталляцию |
igor@0 | 102 системы вручную. |
igor@0 | 103 |
igor@0 | 104 Смотрите таже \url{http://www.debuntu.org/2006/05/14/51-how-to-installing-debian-etch-from-a-running-debian-based-system/1/}. |
igor@0 | 105 |
igor@0 | 106 Запустите \textbf{debootstrap} для инсталляция базы |
igor@0 | 107 системы: |
igor@0 | 108 |
igor@0 | 109 \begin{verbatim} |
igor@0 | 110 # debootstrap sarge /mnt http://debian.org.ua/debian |
igor@0 | 111 \end{verbatim} |
igor@0 | 112 |
igor@0 | 113 Скопируйте пакет ядром для работы с Xen, |
igor@0 | 114 который был подготовлен ранее, |
igor@0 | 115 в новую виртуальную машину: |
igor@0 | 116 |
igor@0 | 117 \begin{verbatim} |
igor@0 | 118 # cp linux-xen0-2.6.16-xen_10.00.Custom_i386.deb /mnt/root |
igor@0 | 119 \end{verbatim} |
igor@0 | 120 |
igor@0 | 121 Сделайте новую файловую систему корневой (с помощью chroot): |
igor@0 | 122 |
igor@0 | 123 \begin{verbatim} |
igor@0 | 124 # chroot /mnt /bin/bash |
igor@0 | 125 \end{verbatim} |
igor@0 | 126 |
igor@0 | 127 Проинсталлируйте пакет с ранее подготовленным |
igor@0 | 128 ядро Xen: |
igor@0 | 129 |
igor@0 | 130 \begin{verbatim} |
igor@0 | 131 # dpkg -i /root/linux-xen0-2.6.16-xen_10.00.Custom_i386.deb |
igor@0 | 132 \end{verbatim} |
igor@0 | 133 |
igor@0 | 134 Измените запись, соответствующую корневой системе в файле /etc/fstab: |
igor@0 | 135 |
igor@0 | 136 \begin{verbatim} |
igor@0 | 137 # vi /etc/fstab |
igor@0 | 138 /dev/hda1 / ext3 defaults,errors=remount-ro 0 1 |
igor@0 | 139 \end{verbatim} |
igor@0 | 140 |
igor@0 | 141 Если используется несколько дисковых разделов |
igor@0 | 142 в виртуальной машине, перечислите их: |
igor@0 | 143 |
igor@0 | 144 \begin{verbatim} |
igor@0 | 145 /dev/hda2 /usr ext3 defaults 0 2 |
igor@0 | 146 /dev/hda3 /var ext3 defaults 0 2 |
igor@0 | 147 ... |
igor@0 | 148 \end{verbatim} |
igor@0 | 149 |
igor@0 | 150 Запустите программу \textbf{base-config} для установки базовой |
igor@0 | 151 системы Debian. |
igor@0 | 152 |
igor@0 | 153 \begin{verbatim} |
igor@0 | 154 # base-config new |
igor@0 | 155 \end{verbatim} |
igor@0 | 156 |
igor@0 | 157 Измените конфигурацию сети в виртуальной машине: |
igor@0 | 158 |
igor@0 | 159 \begin{verbatim} |
igor@0 | 160 # vi /etc/network/interfaces |
igor@0 | 161 # vi /etc/resolv.conf |
igor@0 | 162 # vi /etc/hosts |
igor@0 | 163 \end{verbatim} |
igor@0 | 164 |
igor@0 | 165 Отключите использование TLS, |
igor@0 | 166 в противном случае работа системы может сильно замедлиться. |
igor@0 | 167 |
igor@0 | 168 \begin{verbatim} |
igor@0 | 169 # mv /lib/tls /lib/tls.disabled |
igor@0 | 170 \end{verbatim} |
igor@0 | 171 |
igor@0 | 172 В том случае, если используется дистрибутив Etch, |
igor@0 | 173 проинсталлируйте \texttt{libc6-xen}. |
igor@0 | 174 |
igor@0 | 175 \begin{verbatim} |
igor@0 | 176 # apt-get install libc6-xen |
igor@0 | 177 \end{verbatim} |
igor@0 | 178 |
igor@0 | 179 Отключите лишние терминалы getty, |
igor@0 | 180 а первый терминал направьте на файл \texttt{/dev/console} |
igor@0 | 181 вместо \texttt{/dev/tty1}: |
igor@0 | 182 |
igor@0 | 183 \begin{verbatim} |
igor@0 | 184 1:2345:respawn:/sbin/getty 38400 /dev/console |
igor@0 | 185 #2:23:respawn:/sbin/getty 38400 tty2 |
igor@0 | 186 #3:23:respawn:/sbin/getty 38400 tty3 |
igor@0 | 187 #4:23:respawn:/sbin/getty 38400 tty4 |
igor@0 | 188 #5:23:respawn:/sbin/getty 38400 tty5 |
igor@0 | 189 #6:23:respawn:/sbin/getty 38400 tty6 |
igor@0 | 190 \end{verbatim} |
igor@0 | 191 |
igor@0 | 192 Если в виртуальной машине будут загружаться модули ядра, |
igor@0 | 193 установить пакет \texttt{module-init-tools} |
igor@0 | 194 (обязательно для ядер 2.6 domU). |
igor@0 | 195 |
igor@0 | 196 \begin{verbatim} |
igor@0 | 197 # apt-get install module-init-tools |
igor@0 | 198 \end{verbatim} |
igor@0 | 199 |
igor@0 | 200 На этом инсталляция ОС в виртуальной машине завершена, |
igor@0 | 201 и можно завершить работу оболочки с изменённой корневой системой (chrooted shell). |
igor@0 | 202 |
igor@0 | 203 \begin{verbatim} |
igor@0 | 204 # exit |
igor@0 | 205 \end{verbatim} |
igor@0 | 206 |
igor@0 | 207 Если вы создавали несколько разделов в виртуальной машине, |
igor@0 | 208 размонтируйте их, начиная с самой глубокой. |
igor@0 | 209 |
igor@0 | 210 \begin{verbatim} |
igor@0 | 211 # umount /mnt/usr |
igor@0 | 212 # umount /mnt/var |
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 # umount /mnt |
igor@0 | 220 \end{verbatim} |
igor@0 | 221 |
igor@0 | 222 \paragraph{Конфигурирование виртуальной машины} |
igor@0 | 223 Необходимо создать конфигурационный файл виртуальной |
igor@0 | 224 машины. |
igor@0 | 225 Пусть виртуальная машина называется debian-vm0. |
igor@0 | 226 |
igor@0 | 227 \begin{verbatim} |
igor@0 | 228 # vi /etc/xen/debian-vm0 |
igor@0 | 229 # Kernel to use |
igor@0 | 230 kernel = "/boot/xen0-linux-2.6.16-xen" |
igor@0 | 231 # Memory in megabytes |
igor@0 | 232 memory = 128 |
igor@0 | 233 # Your domain's name |
igor@0 | 234 name = "debian-vm0" |
igor@0 | 235 # Root device |
igor@0 | 236 root = "/dev/hda1 ro" |
igor@0 | 237 # Don't forget to specify your bridge correctly here |
igor@0 | 238 vif = [ 'mac=aa:00:00:00:00:d2, bridge=br-xen' ] |
igor@0 | 239 \end{verbatim} |
igor@0 | 240 |
igor@0 | 241 В том случае, если использует физический дисковый раздел: |
igor@0 | 242 |
igor@0 | 243 \begin{verbatim} |
igor@0 | 244 disk = [ 'phy:/dev/hdX,hda1,w' ] |
igor@0 | 245 \end{verbatim} |
igor@0 | 246 |
igor@0 | 247 В том случае, если используется несколько разделов: |
igor@0 | 248 |
igor@0 | 249 \begin{verbatim} |
igor@0 | 250 disk = [ 'phy:/dev/hdX,hda1,w', 'phy:/dev/hdY,hda2,w' ] |
igor@0 | 251 \end{verbatim} |
igor@0 | 252 |
igor@0 | 253 Если вместо раздела используется файл, |
igor@0 | 254 конфигурация дисковой подсистемы выглядит так: |
igor@0 | 255 |
igor@0 | 256 \begin{verbatim} |
igor@0 | 257 disk = [ 'file:/xen/images/debian-host1.img,hda1,w' ] |
igor@0 | 258 \end{verbatim} |
igor@0 | 259 |
igor@0 | 260 В том случае, если используется несколько файлов, |
igor@0 | 261 строка должна выглядеть так: |
igor@0 | 262 |
igor@0 | 263 \begin{verbatim} |
igor@0 | 264 disk = [ 'file:/xen/images/debian-host1.img,hda1,w', 'file:/xen/images/debian-host1-usr.img,hda2,w' ] |
igor@0 | 265 \end{verbatim} |
igor@0 | 266 |
igor@0 | 267 Обратите внимание на то, чтобы записи о диска в конфигурации |
igor@0 | 268 виртуальной машины соответствовали файлу \texttt{/etc/fstab} |
igor@0 | 269 операционной системы этой машины. |
igor@0 | 270 |
igor@0 | 271 \subsubsection{Инсталляция и настройка Fedora Core в domU} |
igor@0 | 272 |
igor@0 | 273 При условии, что домен 0 работает под управлением Debian GNU/Linux, |
igor@0 | 274 а образ гостевой системы подмонтирован в каталог /mnt, |
igor@0 | 275 процедура инсталляции выглядит следующим образом: |
igor@0 | 276 |
igor@0 | 277 \begin{verbatim} |
igor@0 | 278 %# apt-get install yum |
igor@0 | 279 %# yum -c /tmp/yum-xen.conf --installroot=/mnt -y groupinstall Base |
igor@0 | 280 \end{verbatim} |
igor@0 | 281 |
igor@0 | 282 Пример конфигурационного файла \texttt{yum-xen.conf} (вы можете использовать другой репозиторий и другой уровень отладки): |
igor@0 | 283 |
igor@0 | 284 \begin{verbatim} |
igor@0 | 285 [main] |
igor@0 | 286 cachedir=/var/cache/yum |
igor@0 | 287 debuglevel=2 |
igor@0 | 288 logfile=/var/log/yum.log |
igor@0 | 289 exclude=*-debuginfo |
igor@0 | 290 gpgcheck=0 |
igor@0 | 291 obsoletes=1 |
igor@0 | 292 reposdir=/dev/null |
igor@0 | 293 |
igor@0 | 294 [base] |
igor@0 | 295 name=Fedora Core 6 - i386 - Base |
igor@0 | 296 #mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-6 |
igor@0 | 297 baseurl=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/i386/os/ |
igor@0 | 298 enabled=1 |
igor@0 | 299 |
igor@0 | 300 [updates-released] |
igor@0 | 301 name=Fedora Core 6 - i386 - Released Updates |
igor@0 | 302 #mirrorlist=http://fedora.redhat.com/download/mirrors/updates-released-fc6 |
igor@0 | 303 baseurl=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/updates/6/i386/ |
igor@0 | 304 enabled=1 |
igor@0 | 305 \end{verbatim} |
igor@0 | 306 |
igor@0 | 307 Если при инсталляции вы получаете ошибку |
igor@0 | 308 |
igor@0 | 309 \begin{verbatim} |
igor@0 | 310 Failed to add groups file for repository: base |
igor@0 | 311 Error: No Groups on which to run command |
igor@0 | 312 \end{verbatim} |
igor@0 | 313 |
igor@0 | 314 то модифицируйте код \textit{yum} следующим образом: |
igor@0 | 315 |
igor@0 | 316 \begin{verbatim} |
igor@0 | 317 # cp /usr/share/python-support/yum/yum/comps.py{,.ORIG} |
igor@0 | 318 # vi /usr/share/python-support/yum/yum/comps.py |
igor@0 | 319 # diff /usr/share/python-support/yum/yum/comps.py{.ORIG,} |
igor@0 | 320 124c124 |
igor@0 | 321 < if type not in ('mandatory', 'default', 'optional'): |
igor@0 | 322 --- |
igor@0 | 323 > if type not in ('mandatory', 'default', 'optional', 'conditional'): |
igor@0 | 324 143c143 |
igor@0 | 325 < if type not in ('mandatory', 'default', 'optional'): |
igor@0 | 326 --- |
igor@0 | 327 > if type not in ('mandatory', 'default', 'optional', 'conditional'): |
igor@0 | 328 \end{verbatim} |
igor@0 | 329 |
igor@0 | 330 Установленную систему можно доработать. |
igor@0 | 331 |
igor@0 | 332 \textit{Создать некоторые каталоги и файлы устройств.} |
igor@0 | 333 |
igor@0 | 334 \begin{verbatim} |
igor@0 | 335 %# mkdir /mnt/{dev,proc,etc} |
igor@0 | 336 %# for i in console null zero ; do /sbin/MAKEDEV -d /mnt/dev -x $i ; done |
igor@0 | 337 \end{verbatim} |
igor@0 | 338 |
igor@0 | 339 \textit{Отключить TLS}. |
igor@0 | 340 |
igor@0 | 341 \begin{verbatim} |
igor@0 | 342 %# mv /mnt/lib/tls /mnt/lib/tls-disabled |
igor@0 | 343 \end{verbatim} |
igor@0 | 344 |
igor@0 | 345 \textit{Создать /etc/fstab} |
igor@0 | 346 |
igor@0 | 347 \begin{verbatim} |
igor@0 | 348 %# cat <<EOL > /mnt/etc/fstab |
igor@0 | 349 /dev/sda1 / ext3 defaults 1 1 |
igor@0 | 350 none /dev/pts devpts gid=5,mode=620 0 0 |
igor@0 | 351 none /dev/shm tmpfs defaults 0 0 |
igor@0 | 352 none /proc proc defaults 0 0 |
igor@0 | 353 none /sys sysfs defaults 0 0 |
igor@0 | 354 /dev/sda2 /mnt ext3 defaults 1 2 |
igor@0 | 355 /dev/sda3 swap swap defaults 0 0 |
igor@0 | 356 EOL |
igor@0 | 357 \end{verbatim} |
igor@0 | 358 |
igor@0 | 359 \textit{Настроить сетевые интерфейсы}. |
igor@0 | 360 |
igor@0 | 361 \begin{verbatim} |
igor@0 | 362 %# cat <<EOL > /mnt/etc/sysconfig/network |
igor@0 | 363 NETWORKING=yes |
igor@0 | 364 HOSTNAME=localhost.localdomain |
igor@0 | 365 EOL |
igor@0 | 366 |
igor@0 | 367 cat <<EOL > /mnt/etc/sysconfig/network-scripts/ifcfg-eth0 |
igor@0 | 368 ONBOOT=yes |
igor@0 | 369 DEVICE=eth0 |
igor@0 | 370 BOOTPROTO=dhcp |
igor@0 | 371 EOL |
igor@0 | 372 \end{verbatim} |
igor@0 | 373 |
igor@0 | 374 \textit{Скопировать модули ядра} |
igor@0 | 375 |
igor@0 | 376 \begin{verbatim} |
igor@0 | 377 %# cp -R /lib/modules/2.6.*xen* /mnt/lib/modules/ |
igor@0 | 378 \end{verbatim} |
igor@0 | 379 |
igor@0 | 380 \textit{Установить пароль root\rq{}а} |
igor@0 | 381 |
igor@0 | 382 \begin{verbatim} |
igor@0 | 383 %$ sudo chroot /mnt |
igor@0 | 384 bash-3.1# pwconv |
igor@0 | 385 bash-3.1# passwd |
igor@0 | 386 Changing password for user root. |
igor@0 | 387 New UNIX password: |
igor@0 | 388 Retype new UNIX password: |
igor@0 | 389 passwd: all authentication tokens updated successfully. |
igor@0 | 390 bash-3.1# exit |
igor@0 | 391 \end{verbatim} |
igor@0 | 392 |
igor@0 | 393 \textit{Отключить сообщения об ошибках ядра на консоль} (не обязательно) |
igor@0 | 394 |
igor@0 | 395 \begin{verbatim} |
igor@0 | 396 |
igor@0 | 397 \end{verbatim} |
igor@0 | 398 |
igor@0 | 399 После того как инсталляция закончена, |
igor@0 | 400 можно попробовать запустить домен. |
igor@0 | 401 |
igor@0 | 402 \begin{verbatim} |
igor@0 | 403 %# umount /mnt |
igor@0 | 404 %# xm console -c fc |
igor@0 | 405 \end{verbatim} |
igor@0 | 406 |
igor@0 | 407 (здесь \textit{fc} это конфигурационный файл домена). |
igor@0 | 408 |
igor@0 | 409 \begin{center} \resizebox{10cm}{!}{\includegraphics{/var/lib/mediawiki/images/9/90/Fc-in-xen.png}}\\ \textit{}\end{center} |
igor@0 | 410 |
igor@0 | 411 \subsubsection{Инсталляция и настройка других дистрибутивов Linux в domU} |
igor@0 | 412 \begin{itemize} |
igor@0 | 413 \item Centos5 — описание процедуры подготовки domU для Centos5 |
igor@0 | 414 \end{itemize} |
igor@0 | 415 |
igor@0 | 416 \subsubsection{Инсталляция Debian из-под других дистрибутивов Linux} |
igor@0 | 417 |
igor@0 | 418 \begin{verbatim} |
igor@0 | 419 %# wget http://ftp.de.debian.org/debian/pool/main/d/debootstrap/debootstrap-udeb_0.3.3_i386.udeb |
igor@0 | 420 %# ar t debootstrap-udeb_0.3.3_i386.udeb |
igor@0 | 421 %# mkdir debootstrap |
igor@0 | 422 %# cd debootstrap |
igor@0 | 423 %# tar xvzf ../data.tar.gz |
igor@0 | 424 \end{verbatim} |
igor@0 | 425 |
igor@0 | 426 После этого инсталляция с помощью \textit{./deboostrap} выполняется как обычно. |
igor@0 | 427 |
igor@0 | 428 \subsection{Запуск виртуальной машины} |
igor@0 | 429 <graphviz> |
igor@0 | 430 digraph G \{ |
igor@0 | 431 \begin{verbatim} |
igor@0 | 432 node [shape=rectangle]; |
igor@0 | 433 a [label="Подготовка\nдомена 0"]; |
igor@0 | 434 b [label="Подготовка\nдомена U"]; |
igor@0 | 435 c [label="Запуск и эксплуатация\nсистемы",bgcolor=cyan,style=filled]; |
igor@0 | 436 a -> b; |
igor@0 | 437 b -> c; |
igor@0 | 438 \end{verbatim} |
igor@0 | 439 \} |
igor@0 | 440 </graphviz> |
igor@0 | 441 |
igor@0 | 442 \begin{verbatim} |
igor@0 | 443 # xm create -c debian-vm0 |
igor@0 | 444 \end{verbatim} |
igor@0 | 445 |
igor@0 | 446 Данная команда запустит новую виртуальную машину и создаст |
igor@0 | 447 подключенную к ней консоль (ключ -c). |
igor@0 | 448 Можно войти в систему от имени пользователя |
igor@0 | 449 root и настроить сетевой интерфейс eth0. |
igor@0 | 450 |
igor@0 | 451 Обратите внимание на то, что на консоли (\texttt{/dev/console}) |
igor@0 | 452 по умолчанию комбинация клавиш Ctrl-C не настроена |
igor@0 | 453 для прерывания процессов. |
igor@0 | 454 |
igor@0 | 455 Отключиться от консоли виртуальной машины вернуться в |
igor@0 | 456 терминал, из которого выполнялось подключение/запуск, |
igor@0 | 457 можно с помощью комбинации Ctrl-]. |
igor@0 | 458 |
igor@0 | 459 Вернуться на отключенную консоль |
igor@0 | 460 можно с помощью команды: |
igor@0 | 461 |
igor@0 | 462 \begin{verbatim} |
igor@0 | 463 # xm console debian-vm0 |
igor@0 | 464 \end{verbatim} |
igor@0 | 465 |
igor@0 | 466 Остановить домен можно командой: |
igor@0 | 467 |
igor@0 | 468 \begin{verbatim} |
igor@0 | 469 # xm shutdown -H debian-vm0 |
igor@0 | 470 \end{verbatim} |
igor@0 | 471 |
igor@0 | 472 Выключить домен (как будто бы вырубить виртуальную машину |
igor@0 | 473 по питанию), можно с помощью команды: |
igor@0 | 474 |
igor@0 | 475 \begin{verbatim} |
igor@0 | 476 # xm destroy debian-vm0 |
igor@0 | 477 \end{verbatim} |
igor@0 | 478 |
igor@0 | 479 Для получения полного списка команд, таких как shutdown, destroy |
igor@0 | 480 и т.д. введите: |
igor@0 | 481 |
igor@0 | 482 \begin{verbatim} |
igor@0 | 483 # xm help |
igor@0 | 484 \end{verbatim} |
igor@0 | 485 |
igor@0 | 486 Для того чтобы виртуальная машина (domU) загружалась автоматически, |
igor@0 | 487 когда загружает основная система (dom0), |
igor@0 | 488 необходимо сделать ссылку на |
igor@0 | 489 конфигурационный файл виртуальной машины: |
igor@0 | 490 |
igor@0 | 491 \begin{verbatim} |
igor@0 | 492 # ln -s <configfile> /etc/xen/auto/ |
igor@0 | 493 \end{verbatim} |
igor@0 | 494 |
igor@0 | 495 \subsection{Дополнительные вопросы} |
igor@0 | 496 \subsubsection{Сборка ядра Linux под Xen в Debian} |
igor@0 | 497 <dl><dd> \textit{Основная страница: \textbf{Сборка ядра Linux под Xen в Debian}} |
igor@0 | 498 </dd></dl> |
igor@0 | 499 |
igor@0 | 500 Ядро Linux, с поддержкой Xen, находящееся в репозитории Debian GNU/Linux |
igor@0 | 501 собрано с поддержкой PAE. |
igor@0 | 502 С другой стороны, большое количество систем (FreeBSD, NetBSD, Plan 9 и др.), работающих как гостевые системы в паравиртуальном домене Xen |
igor@0 | 503 не поддерживают PAE. |
igor@0 | 504 В этом случае потребуется пересобрать ядро домена 0 |
igor@0 | 505 без поддержки PAE. |
igor@0 | 506 Пересборка ядра может потребоваться и в других случаях. |
igor@0 | 507 |
igor@0 | 508 \subsection{Возможные проблемы при подготовке и запуске} |
igor@0 | 509 Множество проблем, с которыми можно столкнуться |
igor@0 | 510 при подготовке и запуске гостевой системы Xen, |
igor@0 | 511 описано на странице Xen FAQ. |
igor@0 | 512 |
igor@0 | 513 \subsubsection{Возможные проблемы с udev} |
igor@0 | 514 При старте домена может возникнуть такая проблема: |
igor@0 | 515 домен не стартует, на экран выдаётся сообщение |
igor@0 | 516 об ошибке: |
igor@0 | 517 |
igor@0 | 518 \begin{verbatim} |
igor@0 | 519 Device 768 (vbd) could not be connected. Hotplug scripts not working. |
igor@0 | 520 \end{verbatim} |
igor@0 | 521 |
igor@0 | 522 \textit{Номер устройства (768) может отличаться.} |
igor@0 | 523 |
igor@0 | 524 Если такая проблема возникла, причём она не пропадает |
igor@0 | 525 ни при отключении сетевых интерфейсов в виртуальной машине; |
igor@0 | 526 ни при изменении конфигурации дисков, проблема может быть связана с \textbf{udev}. |
igor@0 | 527 |
igor@0 | 528 Убедитесь, что udev достаточно новый. |
igor@0 | 529 Последние версии udev находятся здесь: http://kernel.org/pub/linux/utils/kernel/hotplug/ |
igor@0 | 530 |
igor@0 | 531 Проверьте, есть ли в конфигурации udev правила xen. |
igor@0 | 532 |
igor@0 | 533 Если нет, нужно их добавить. |
igor@0 | 534 Нужно создать файл \texttt{xen-backend.rules} |
igor@0 | 535 в каталоге \texttt{/etc/udev/rules.d} следующего содержания: |
igor@0 | 536 |
igor@0 | 537 \begin{verbatim} |
igor@0 | 538 # cat /etc/udev/rules.d/xen-backend.rules |
igor@0 | 539 SUBSYSTEM=="xen-backend", KERNEL=="tap*", RUN+="/etc/xen/scripts/blktap $env{ACTION}" |
igor@0 | 540 SUBSYSTEM=="xen-backend", KERNEL=="vbd*", RUN+="/etc/xen/scripts/block $env{ACTION}" |
igor@0 | 541 SUBSYSTEM=="xen-backend", KERNEL=="vtpm*", RUN+="/etc/xen/scripts/vtpm $env{ACTION}" |
igor@0 | 542 SUBSYSTEM=="xen-backend", KERNEL=="vif*", ACTION=="online", RUN+="$env{script} online" |
igor@0 | 543 SUBSYSTEM=="xen-backend", KERNEL=="vif*", ACTION=="offline", RUN+="$env{script} offline" |
igor@0 | 544 SUBSYSTEM=="xen-backend", ACTION=="remove", RUN+="/etc/xen/scripts/xen-hotplug-cleanup" |
igor@0 | 545 KERNEL=="evtchn", NAME="xen/%k" |
igor@0 | 546 \end{verbatim} |
igor@0 | 547 |
igor@0 | 548 Если такой файл \texttt{xen-backend.rules} уже есть, |
igor@0 | 549 можно переименовать его или создать символическую ссылку, |
igor@0 | 550 содержащую номер в названии. Правило должно грузиться предпоследним. |
igor@0 | 551 |
igor@0 | 552 \begin{verbatim} |
igor@0 | 553 # cd /etc/udev/rules.d |
igor@0 | 554 # mv xen-backend.rules 92-xen-backend.rules |
igor@0 | 555 \end{verbatim} |
igor@0 | 556 |
igor@0 | 557 После этого нужно перезапустить udev и попробовать |
igor@0 | 558 стартануть домен снова. |
igor@0 | 559 |
igor@0 | 560 \begin{verbatim} |
igor@0 | 561 # ps aux | grep udev |
igor@0 | 562 root 3321 0.0 0.2 1768 516 ? S<s 22:51 0:00 udevd --daemon |
igor@0 | 563 root 9349 0.0 0.2 1860 640 pts/2 S+ 23:27 0:00 grep udev |
igor@0 | 564 # udevd --daemon |
igor@0 | 565 # ps aux | grep udev |
igor@0 | 566 root 9352 0.0 0.2 1768 516 ? S<s 23:28 0:00 udevd --daemon |
igor@0 | 567 root 9356 0.0 0.2 1860 640 pts/2 S+ 23:29 0:00 grep udev |
igor@0 | 568 \end{verbatim} |
igor@0 | 569 |
igor@0 | 570 Дополнительные сведения о проблеме: \url{http://marc.theaimsgroup.com/?l=xen-users\&m=114319459529175\&w=2} |
igor@0 | 571 |