Автор: Сгибнев Михаил
Целью данной статьи не является сравнение различных средств виртуализации, в ней показано как
в кратчайшие сроки развернуть виртуальную машину Xen на NetBSD-3.0.
Общие сведения о виртуальных машинах и сравнение различных методов виртуализации
вы можете почерпнуть в статье Александра Полякова http://unix.ginras.ru/apps/gam002.html
Так как официально NetBSD-3.0 еще не вышла, то мы воспользуемся снапшотом системы с
последующим ее обновлением до текущего состояния.
Начальная установка NetBSD-3.0_BETA ничем не отличается от установки
других версий данной операционной системы.
По завершению установки входим в систему
и производим необходимую начальную настройку,
исходя из личных предпочтений и условий:
Настоятельно рекомендую перед использованием обновить систему:
Для обновления дерева исходных текстов:
#export CVSROOT=":pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot"
#cvs login (пароль:anoncvs)
Необходимо распаковать в каталог /usr/src архивы исходных текстов системы, которые можно скачать с ftp.netbsd.org.
Далее:
#cd /usr
Обновляем систему:
#cvs up -dP src
Создаем необходимые для сбоки каталоги и задаем переменную окружения (не забывайте указывать BSDOBJDIR после каждой перезагрузки)
#mkdir /usr/src/obj
#mkdir /usr/src/tooldir
#mkdir /usr/src/obj/obj_dir
#cd /usr/src
#export BSDOBJDIR="/usr/src/obj"
Собираем инструментарий
#./build.sh -T /usr/src/tooldir -u tools
===> Summary of results:
build.sh command: ./build.sh -T /usr/src/tooldir -u tools
build.sh started: Mon Nov 14 11:06:45 MSK 2005
No /usr/src/tooldir/bin/nbmake, needs building.
Bootstrapping nbmake
MACHINE: i386
MACHINE_ARCH: i386
TOOLDIR path: /usr/src/tooldir
DESTDIR path: /usr/src/obj/destdir.i386
RELEASEDIR path: /usr/src/obj/releasedir
Created /usr/src/tooldir/bin/nbmake
makewrapper: /usr/src/tooldir/bin/nbmake-i386
Updated /usr/src/tooldir/bin/nbmake-i386
Tools built to /usr/src/tooldir
build.sh started: Sat Nov 26 21:35:11 MSK 2005
build.sh ended: Sat Nov 26 21:45:32 MSK 2005
===> .
Собираем систему:
#./build.sh -O /usr/src/obj/obj_dir -D /usr/src/obj/destdir.i386 \
-T /usr/src/tooldir -X /usr/xsrc -x distribution
===> Summary of results:
build.sh command: ./build.sh -O /usr/src/obj/obj_dir -D /usr/src/obj/destdir.i386 \
-T /usr/src/tooldir distribution
build.sh started: Mon Nov 14 11:17:31 MSK 2005
MACHINE: i386
MACHINE_ARCH: i386
TOOLDIR path: /usr/src/tooldir
DESTDIR path: /usr/src/obj/destdir.i386
RELEASEDIR path: /usr/src/obj/obj_dir/releasedir
makewrapper: /usr/src/tooldir/bin/nbmake-i386
Updated /usr/src/tooldir/bin/nbmake-i386
Successful make distribution
build.sh started: Sat Nov 26 21:48:37 MSK 2005
build.sh ended: Sat Nov 27 00:34:45 MSK 2005
===> .
Собираем новое ядро:
#./build.sh -O /usr/src/obj/obj_dir -D /usr/src/obj/destdir.i386 \
-T /usr/src/tooldir kernel=GENERIC
===> Summary of results:
build.sh command: ./build.sh -O /usr/src/obj/obj_dir -D /usr/src/obj/destdir.i386 \
-T /usr/src/tooldir kernel=GENERIC
build.sh started: Mon Nov 14 12:26:33 MSK 2005
MACHINE: i386
MACHINE_ARCH: i386
TOOLDIR path: /usr/src/tooldir
DESTDIR path: /usr/src/obj/destdir.i386
RELEASEDIR path: /usr/src/obj/obj_dir/releasedir
makewrapper: /usr/src/tooldir/bin/nbmake-i386
Updated /usr/src/tooldir/bin/nbmake-i386
Building kernel without building new tools
Building kernel: GENERIC
Build directory: /usr/src/obj/obj_dir/sys/arch/i386/compile/GENERIC
Kernels built from GENERIC:
/usr/src/obj/obj_dir/sys/arch/i386/compile/GENERIC/netbsd
build.sh started: Sat Nov 26 21:35:11 MSK 2005
build.sh ended: Sat Nov 26 21:35:11 MSK 2005
===> .
Устанавливаем ядро и презагружаемся:
#cp /usr/src/obj/obj_dir/sys/arch/i386/compile/GENERIC/netbsd /
#shutdown -r now
После загрузки у нас теперь NetBSD 3.0_RC3 (GENERIC) #0: Mon Nov 14 12:33:48 MSK 2005
Устанавливаем пользовательское окружение:
#./build.sh -O /usr/src/obj/obj_dir -D /usr/src/obj/destdir.i386 \
-T /usr/src/tooldir install=/
...
Copyng set base
Copyng set comp
...
===> Summary of results:
build.sh command: ./build.sh -O /usr/src/obj/obj_dir -D /usr/src/obj/destdir.i386 \
-T /usr/src/tooldir install=/
build.sh started: Mon Nov 14 12:45:33 MSK 2005
MACHINE: i386
MACHINE_ARCH: i386
TOOLDIR path: /usr/src/tooldir
DESTDIR path: /usr/src/obj/destdir.i386
RELEASEDIR path: /usr/src/obj/obj_dir/releasedir
makewrapper: /usr/src/tooldir/bin/nbmake-i386
Updated /usr/src/tooldir/bin/nbmake-i386
Succeful installworld to /
build.sh started: Sat Nov 26 21:35:11 MSK 2005
build.sh ended: Sat Nov 26 21:35:11 MSK 2005
===> .
Контрольная перезагрузка:
#shutdown -r now
Я рекомендую сразу же собрать релиз, который будет нами впоследствии использован для
установки в гостевой домен. Сделать это можно следующей командой:
./build.sh -O /usr/src/obj/obj_dir -D /usr/src/obj/destdir.i386 \
-T /usr/src/tooldir -R /usr/src/obj/releasedir -X /usr/xsrc -x release
Далее, необходимо скачать или обновить систему портов NetBSD - pkgsrc.
Так как не стоит забывать о безопасности, то настоятельно рекомендуется установить
утилиту /usr/pkgsrc/security/audit-packages, после чего скачать
свежую базу уязвимостей следующей командой:
/usr/pkg/sbin/download-vulnerability-list
и, воспользовавшись командой crontab -e, внести следующее задание демону CRON:
0 3 * * * /usr/pkg/sbin/download-vulnerability-list >/dev/null 2>&1
Далее, создайте файл
/etc/security.local следующего содержания:
if [ -x /usr/pkg/sbin/audit-packages ]; then
/usr/pkg/sbin/audit-packages
fi
Для работы Xen нам необходимо установить пакеты sysutils/grub, sysutils/xenkernel20 и sysutils/xentools20:
#cd /usr/pkgsrc/sysutils/grub
#make install clean
#cd /usr/pkgsrc/sysutils/xentools20
make install clean
#cd /usr/pkgsrc/sysutils/xenkernel20
#make install clean
Отредактируем, скомпилируем и установим ядро для domain0 на нашей системе.
#cd /usr/src/sys/arch/i386/conf
#cp XEN0 Irish_XEN0
#vi
#config Irish_XEN0
#cd ../compile/Irish_XEN0
#make depend
#make
#cp /netbsd /netbsd.generic
#make install
Создаем каталог /grub и помещаем в него файл menu.lst следущего содержания
(при этом считаем, что загрузка осуществляется с wd0):
#Grub config file for NetBSD/xen. Copy as /grub/menu.lst and run
# grub-install /dev/rwd0d (assuming your boot device is wd0).
#
# The default entry to load will be the first one
default=0
# boot after 10s the default entry if the user didn't hit keyboard
timeout=10
# Configure serial port to use as console. Ignore if you'll use VGA only
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
# Let the user select which console to use (serial or VGA), default
# to serial after 10s
terminal --timeout=10 serial console
# An entry for NetBSD/xen, using /netbsd as the domain0 kernel, and serial
# console. Domain0 will have 64MB RAM allocated.
# Assume NetBSD is installed in the first MBR partition.
title Xen 2.0 / NetBSD (hda0, serial)
root(hd0,0)
kernel (hd0,a)/xen.gz dom0_mem=65536 com1=115200,8n1
module (hd0,a)/netbsd root=/dev/hda1 ro console=ttyS0
# Same as above, but using VGA console
# We can use console=tty0 (Linux syntax) or console=pc (NetBSD syntax)
title Xen 2.0 / NetBSD (hda0, vga)
root(hd0,0)
kernel (hd0,a)/xen.gz dom0_mem=65536
module (hd0,a)/netbsd root=/dev/hda1 ro console=tty0
# NetBSD/xen using a backup domain0 kernel (in case you installed a
# nonworking kernel as /netbsd
title Xen 2.0 / NetBSD (hda0, backup, serial)
root(hd0,0)
kernel (hd0,a)/xen.gz dom0_mem=65536 com1=115200,8n1
module (hd0,a)/netbsd.backup root=/dev/hda1 ro console=ttyS0
title Xen 2.0 / NetBSD (hda0, backup, VGA)
root(hd0,0)
kernel (hd0,a)/xen.gz dom0_mem=65536
module (hd0,a)/netbsd.backup root=/dev/hda1 ro console=tty0
#Load a regular NetBSD/i386 kernel. Can be useful if you end up with a
#nonworking /xen.gz
title NetBSD 3.0
root (hd0,a)
kernel --type=netbsd /netbsd.generic
#Load the NetBSD bootloader, letting it load the NetBSD/i386 kernel.
#May be better than the above, as grub can't pass all required infos
#to the NetBSD/i386 kernel (e.g. console, root device, ...)
title NetBSD chain
root (hd0,0)
chainloader +1
## end of grub config file.
Затем устанавливаем конфигурационный файл:
#grub-install /dev/rwd0d
#shutdown -r now
Загружаем систему:
Необходимо убедиться, что устройства
/dev/xencons и
/dev/xenevt, необходимые для работы Xen, созданы.
В противном случае, создайте из командой:
#cd /dev && sh MAKEDEV xen
#ls /dev/xen*
/dev/xencons /dev/xenevt
Производим запуск демона xen:
#cp /usr/pkg/share/examples/rc.d/* /etc/rc.d/
#/etc/rc.d/xend start
Starting xend.
#ps -aux | grep xen
root 99 8.9 11.4 7152 6752 ? S 9:06PM 0:00.42 /usr/pkg/bin/python2.3 /usr/pkg/sbin/xend start
xend пишет логи в файлы /var/log/xend.log и /var/log/xend-debug.log.
Контроль за доменами осуществляется с помощью утилиты xm:
#xm list
Name Id Mem(MB) CPU State Time(s) Console
Domain-0 0 64 0 r---- 61.7
Обратите внимание, что связь между xend и xm осуществляется через сокет TCP, и xend прослушивает
порты *.8000, *.8001 and *.8002. Я настоятельно советую вам фильтровать эти порты
(с помощью IPF или PF) и принимать соединения только с адреса 127.0.0.1, при этом
ограничить число пользователей, которые могут получить доступ к domain0.
#netstat -anf inet
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1.65531 127.0.0.1.8000 TIME_WAIT
tcp 0 0 127.0.0.1.65533 127.0.0.1.8000 TIME_WAIT
tcp 0 0 127.0.0.1.8000 *.* LISTEN
tcp 0 0 127.0.0.1.8001 *.* LISTEN
tcp 0 0 *.8002 *.* LISTEN
tcp 0 0 192.168.164.131.22 192.168.164.1.1247 ESTABLISHED
tcp 0 0 *.22 *.* LISTEN
Откомпилируем ядро непривилегированного домена:
#vi XENU
#config XENU
Build directory is ../compile/XENU
Don't forget to run "make depend"
#cd ../compile/XENU
#make depend
#make
Создадим каталог xen_kernels , в котором мы будем хранить ядра непривилегированных доменов и
поместим туда только что созданное ядро:
mkdir /home/xen_kernels
cp /usr/src/sys/arch/i386/compile/XENU/netbsd /home/xen_kernels/
И создадим файл, в котором будет содержаться домен(если у вас нет специально отведенного для этих целей раздела):
root@netbsd-3:dd if=/dev/zero of=/home/xen_kernels/nbsd.img bs=1k seek=1 count=150000
150000+0 records in
150000+0 records out
150000000 bytes transferred in 37.284 secs (13732432 bytes/sec)
root@netbsd-3:vnconfig -v -c vnd0 nbsd.img
/dev/rvnd0d: 512001024 bytes on nbsd.img
root@netbsd-3:disklabel -e -I vnd0
disklabel: Invalid signature in mbr record 0
root@netbsd-3:vi disklabel.proto
root@netbsd-3:disklabel -R -r vnd0 disklabel.proto
disklabel: Invalid signature in mbr record 0
root@netbsd-3:newfs /dev/vnd0a
В примере выше был создан файл размером 150Мб, подключен с помощью vnconfig, размечен на разделы и
на нем была создана файловая мистема. На появляющуюся ощибку "Invalid signature in mbr record 0" внимания
обращать не стоит. В моем примере файл disklabel.proto, содержащий карту диска, был
весьма примитивен и содержал один единственный раздел:
# /dev/rvnd0d:
type: vnd
disk: vnd
label: Xen_Test
flags:
bytes/sector: 512
sectors/track: 32
tracks/cylinder: 64
sectors/cylinder: 2048
cylinders: 146
total sectors: 300002
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # microseconds
track-to-track seek: 0 # microseconds
drivedata: 0
4 partitions:
# size offset fstype [fsize bsize cpg/sgs]
a: 300002 0 4.2BSD 0 0 0 # (Cyl. 0 - 146*)
c: 300002 0 unused 0 0 # (Cyl. 0 - 146*)
d: 300002 0 unused 0 0 # (Cyl. 0 - 146*)
После этого, мы монтируем /dev/vnd0a:
mount /dev/vnd0a /mnt
и распаковываем в этом каталоге все необходимые нам наборы, которые находятся
в каталоге
/usr/src/obj/releasedir
Создаем файл конфигурации домена /usr/pkg/etc/xen/nbsd:
# -*- mode: python; -*-
#============================================================================
# Python defaults setup for 'xm create'.
# Edit this file to reflect the configuration of your system.
#============================================================================
#----------------------------------------------------------------------------
# Kernel image file. This kernel will be loaded in the new domain.
kernel = "/home/xen_kernels/netbsd"
#kernel = "/home/xen_kernels/netbsd-install"
# Memory allocation (in megabytes) for the new domain.
memory = 64
# A handy name for your new domain. This will appear in 'xm list',
# and you can use this as parameters for xm in place of the domain number.
name = "nbsd"
# Which CPU to start domain on (only relevant for SMP hardware)
cpu = -1 # leave to Xen to pick
#----------------------------------------------------------------------------
# Define network interfaces for the new domain.
# Number of network interfaces. Default is 1.
nics=1
# Optionally define mac and/or bridge for the network interfaces.
# Random MACs are assigned if not given.
# The MAC address specified is the one used for the interface in the new
# domain. The interface in domain0 will use this address xor'd with
# 00:00:00:01:00:00 (i.e. aa:00:00:51:02:f0 in our example)
# bridge is a required parameter, which will be passed to the vif script
# called by xend when a new domain is created to configure the new
# xvif interface in domain0. We can pass any information here.
# In our example, the xvif won't be added to a bridge, but configured with a
# private address. Pass the ifconfig line which will be used by the script
# here instead.
# vif = [ 'mac=aa:00:00:50:02:f0, bridge=10.0.0.254 netmask 255.255.255.0' ]
#----------------------------------------------------------------------------
# Define the disk devices you want the domain to have access to, and
# what you want them accessible as.
# Each disk entry is of the form phy:DEV,VDEV,MODE
# where DEV is the device, VDEV is the device name the domain will see,
# and MODE is r for read-only, w for read-write.
# VDEV doesn't really matter for NetBSD guest OS, but does for Linux.
# Worse, the device has to exists in /dev/ of domain0, because xm will
# try to stat() it. This means that in order to load a Linux guest OS
# from a NetBSD domain0, you'll have to create /dev/hda1, /dev/hda2, ...
# on domain0, with the major/minor from Linux :(
#disk = [ 'phy:/dev/cd0a,cd0a,r', 'phy:/dev/vnd0a,wd0h,w' ]
disk = [ 'phy:/dev/vnd0a,wd0h,w' ]
#----------------------------------------------------------------------------
# Set the kernel command line for the new domain.
# Set root device. This one does matter for NetBSD
root = "/dev/wd0h"
# extra parameters passed to the kernel
#extra = ""
#----------------------------------------------------------------------------
# Set according to whether you want the domain restarted when it exits.
# The default is False.
#autorestart = True
# end of nbsd config file ====================================================
Командой 'xm create' создается новый домен. Он будет использовать файл конфигурации,
определяемой переменной
PKG_SYSCONFDIR (по умолчанию /usr/pkg/etc/xen/).
Разберем строку
disk = [ 'phy:/dev/cd0a,cd0a,r', 'phy:/dev/vnd0a,wd0h,w' ]. Она определяет, к каким разделам
корневого домена будет иметь доступ гостевой домен, при этом действует следущая схема
обозначения дисков:
phy:DEV,VDEV,MODE. Здесь DEV обозначает раздел корневого домена,
VDEV - раздел, под которым он будет виден в корневой системе и значение MODE может быть
r для режима read-only и w для режима read-write.
В нашем примере мы монтируем CD-ROM и наш виртуальный диск. Для работы CD-ROM не нужен, вы можете закомментировать
эту строку, она необходима только при установке системы с CD-ROM (при этом
учтите, что при начальной установке домена (если вы не устанавливаетет его с компакт диска),
вы должны откомпилировать ядро INSTALL_XENU и поместить его в каталог с ядром XENU).
В нашем случае, мы перенесем систему в гостевой домен, поэтому установка не потребуется и можно стразу использовать
нормальное ядро.
Оставьте строку, содержащую
disk = [ 'phy:/dev/vnd0a,wd0h,w' ].
Настроку сети я рекомендую провести после установки домена, хотя все
параметры можно указать и в конфигурационном файле.
Данная команда позволит вам сразу подключиться к создаваемому домену:
#xm create -c /usr/pkg/etc/xen/nbsd
Мы получим следующую картину:
root@notebook:xm create -c /usr/pkg/etc/xen/nbsd
Using config file "/usr/pkg/etc/xen/nbsd".
Started domain nbsd, console on port 9601
************ REMOTE CONSOLE: CTRL-] TO QUIT ********
Loaded initial symtab at 0xc041da5c, strtab at 0xc0449e80, # entries 11261
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
NetBSD 3.0_RC4 (XENU) #0: Tue Nov 29 13:17:33 MSK 2005
root@notebook.work.dreamcatcher.ru:/usr/src/sys/arch/i386/compile/XENU
total memory = 61884 KB
avail memory = 60388 KB
mainbus0 (root)
cpu0 at mainbus0: (uniprocessor)
cpu0: Intel Pentium M (Dothan) (686-class), 1599.98 MHz, id 0x6d6
cpu0: features afe9fbbf
cpu0: features afe9fbbf
cpu0: features afe9fbbf
hypervisor0 at mainbus0
debug virtual interrupt using event channel 2
misdirect virtual interrupt using event channel 0
Domain controller: using event channel 1
xencons0 at hypervisor0: Xen Virtual Console Driver
xencons0: console major 143, unit 0
Initialising Xen virtual ethernet frontend driver.
npx0 at hypervisor0: using exception 16
Xen clock: using event channel 3
raidattach: Asked for 8 units
Kernelized RAIDframe activated
crypto: assign driver 0, flags 2
crypto: driver 0 registers alg 1 flags 0 maxoplen 0
crypto: driver 0 registers alg 2 flags 0 maxoplen 0
crypto: driver 0 registers alg 3 flags 0 maxoplen 0
crypto: driver 0 registers alg 4 flags 0 maxoplen 0
crypto: driver 0 registers alg 5 flags 0 maxoplen 0
crypto: driver 0 registers alg 17 flags 0 maxoplen 0
crypto: driver 0 registers alg 6 flags 0 maxoplen 0
crypto: driver 0 registers alg 7 flags 0 maxoplen 0
crypto: driver 0 registers alg 15 flags 0 maxoplen 0
crypto: driver 0 registers alg 8 flags 0 maxoplen 0
crypto: driver 0 registers alg 16 flags 0 maxoplen 0
crypto: driver 0 registers alg 9 flags 0 maxoplen 0
crypto: driver 0 registers alg 10 flags 0 maxoplen 0
crypto: driver 0 registers alg 13 flags 0 maxoplen 0
crypto: driver 0 registers alg 14 flags 0 maxoplen 0
crypto: driver 0 registers alg 11 flags 0 maxoplen 0
crypto: driver 0 registers alg 18 flags 0 maxoplen 0
xennet0 at hypervisor0: Xen Virtual Network Interface
xennet0: using event channel 4
xennet0: MAC address aa:00:00:50:02:f0
xbd: using event channel 5
xbd0 at hypervisor0: Xen Virtual Block Device 146 MB
xbd1 at hypervisor0: Xen Virtual Block Device 587 MB
Searching for RAID components...
boot device: xbd0
root on xbd0a dumps on xbd0b
mountroot: trying smbfs...
mountroot: trying coda...
mountroot: trying msdos...
mountroot: trying cd9660...
mountroot: trying ntfs...
mountroot: trying nfs...
mountroot: trying lfs...
mountroot: trying ext2fs...
mountroot: trying ffs...
root file system type: ffs
warning: no /dev/console
init: copying out path `/sbin/init' 11
init: Creating mfs /dev (412 blocks, 1024 inodes)
/etc/rc.conf is not configured. Multiuser boot aborted.
Enter pathname of shell or RETURN for /bin/sh:
Terminal type? [unknown] vt100
Terminal type is vt100.
We recommend creating a non-root account and using su(1) for root access.
# ls
.cshrc bin lib rescue stand usr
.profile dev libexec root var
altroot etc mnt sbin tmp
#mount /dev/xbd0a /
После этого мы можем приступать к настройке домена.
Необходимо создать файл fstab, содержащий следущую строку:
/dev/xbd0a / ffs rw 1 1
Отредактировать
/etc/rc.conf на наличие этих и других, необходимых лично вам, строк:
rc_configured=YES
wscons=YES
no_swap=YES
ifconfig_xennet0="inet 192.168.50.2 netmask 255.255.255.252"
defaultroute="192.168.50.1"
hostname="xen-test.netbsd-3.farm.dreamcatcher.ru"
В конечном итоге, целью наших стараний будет получить:
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
NetBSD 3.0_RC4 (XENU) #0: Tue Nov 29 13:17:33 MSK 2005
Welcome to NetBSD!
: {1}
Для настройки сети необходимо просто настроить соответствующий сетевой интерфейс
xvif2.0 в корневом домене:
#ifconfig xvif2.0 inet 192.168.50.1 netmask 255.255.255.252
#ping 192.168.50.1
PING 192.168.50.1 (192.168.50.1): 56 data bytes
64 bytes from 192.168.50.1: icmp_seq=0 ttl=255 time=0.032 ms
64 bytes from 192.168.50.1: icmp_seq=1 ttl=255 time=0.028 ms
64 bytes from 192.168.50.1: icmp_seq=2 ttl=255 time=0.026 ms
^C
----192.168.50.1 PING Statistics----
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.026/0.029/0.032/0.003 ms
#ping 192.168.50.2
PING 192.168.50.2 (192.168.50.2): 56 data bytes
64 bytes from 192.168.50.2: icmp_seq=0 ttl=255 time=0.113 ms
64 bytes from 192.168.50.2: icmp_seq=1 ttl=255 time=0.062 ms
64 bytes from 192.168.50.2: icmp_seq=2 ttl=255 time=0.058 ms
^C
----192.168.50.2 PING Statistics----
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.058/0.078/0.113/0.031 ms
Остановить домен можно командой
xm shutdown nbsd, выполненной в корневом домене.
В последствии, число виртуальных машин можно увеличить простым копированием и переименованием файла конфигурации
и файла, содержащего образ операционной системы гостевого домена.
Внимательный читатель обратит внимание, что в разные моменты времени используется и RC3 и RC4, это
обусловлено тем, лабораторная работа по данной статье проводилась на двух разных машинах в течении нескольких дней.