В заметке рассказано о подготовке образа гостевой системы с FreeBSD 8, предназначенного для работы под управлением Xen в режиме паравиртуализации, позволяющем добиться более высокой производительности по сравнению с HVM-режимом (полная аппаратная виртуализация).В настоящее время нет готовых бинарных образов ядра и системы, предназначенных для установки в роли гостевой ОС. Придется создавать их вручную. Для начала поставим FreeBSD обычным образом на диск или под управлением VirtualBox, после чего займемся созданием образа, пригодного для использования в Xen DomU.
Создадим каркас будущего образа гостевой ОС (размер можно сразу изменить исходя из решаемых задач):
# truncate -s 256M freebsd.img
Привяжем к этому файлу виртуальный диск:
# mdconfig -f freebsd.img
Установим загрузчик, создадим дисковые разделы и отформатируем под UFS2 с включенными softupdates:
# fdisk -BI md0
# bsdlabel -wB md0s1
# newfs -U md0s1aМонтируем локально созданную внутри файла ФС:
# mount /dev/md0s1a /mnt
В /usr/src текущей системы должен быть полный набор исходных текстов, обновим их:
# csup -h cvsup2.ru.FreeBSD.org -L 2 /usr/share/examples/cvsup/standard-supfile
Соберем ядро и мир
# make buildworld && make buildkernel KERNCONF=XEN
Установим итоговые собранные файлы на ранее подготовленный дисковый образ в файле, примонтированный в /mnt:
# export DESTDIR=/mnt && make installworld && make installkernel KERNCONF=XEN && cd etc && make distribution
Адаптируем настройки для работы в качестве гостевой системы Xen.
В /mnt/etc/fstab добавим:/dev/xbd0 / ufs rw 1 1
В /mnt/etc/ttys:
xc0 "/usr/libexec/getty Pc" vt100 on secure
Сохраним отдельно ядро гостевой системы, так как его потребуется скопировать для загрузки из dom0:
# cp /mnt/boot/kernel/kernel /some/place/freebsd-kernel
Отмонтируем виртуальный диск:
# umount /mnt
# mdconfig -d -u md0В результате получены файл с гостевой системой freebsd.img и файл с ядром freebsd-kernel.
Конфигурируем управляющее окружение Xen (dom0):Проверяем работает ли xen:
# xm list
Создаем файл конфигурации /etc/xen/freebsd:
kernel = "/virt/freebsd-8.0p2-i386-xen-domu-kernel"
memory = 512
name = "freebsd"
vif = [ '' ]
disk = [ 'file:/virt/freebsd-8.0p2-i386-xen-domu.img,hda,w' ]
extra = "boot_verbose=1"
extra += ",vfs.root.mountfrom=ufs:/dev/ad0s1a"
extra += ",kern.hz=100"где, /virt/freebsd-8.0p2-i386-xen-domu-kernel путь к предварительно скопированному в файловую систему dom0 подготовленного ранее ядра FreeBSD.
В /etc/xen/xend-config.sxp активируем сетевой мост для работы сети внутри FreeBSD:#(network-script network-dummy)
(network-script network-bridge)Запускаем гостевое окружение и сразу входим в консоль:
# xm create freebsd
# xm console freebsdИз проблем, отмечена неработа настройки ifconfig_xn0="DHCP", для получения адреса dhclient нужно запускать вручную.
URL: http://forums.freebsd.org/showthread.php?t=10268 http://wiki.freebsd.org/AdrianChadd/XenImages http://wiki.freebsd.org/AdrianChadd/XenHackery
Обсуждается: http://www.opennet.me/tips/info/2369.shtml
класс ;)
Вариант Дмитрия Ищука:
http://www.ita.com.ua/rus/articles.htm?id=34Быстродействие (а это единственный повод перехода с HVM на PVM) с диском в виде "file:/paht" отвратительное. Несколько лучше "tap:aio:/paht", а
кошерно - диск на разделе или LVM.У меня xc0-консоль вешала систему, а через SSH удалось потестить пару дней. Быстродействие (строго на глаз :-) хорошо подросло.
XEN 3.4 под SUSE 11.2
//Установим итоговые собранные файлы на ранее подготовленный дисковый образ в
//файле, примонтированный в /mnt:
//
// # export DESTDIR=/mnt && make installworld && make installkernel KERNCONF=XEN && cd etc && make distribution"&& cd etc " однако лишним будет