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
|