The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Подготовка паравиртуализированного гостевого окружения с FreeBSD 8 для Xen
В заметке рассказано о подготовке образа гостевой системы с 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

Примечание: C 2012 года проект FreeBSD перешёл на использование Subversion.
Вместо cvsup следует использовать svnup (или freebsd-update для системы,
portsnap/pkg для портов):

   cd /usr/ports/net/svnup && make install
   svnup stable -h svn0.us-west.freebsd.org 
   svnup ports -h svn0.us-west.freebsd.org 



Соберем ядро и мир

   # 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 нужно запускать вручную.
 
Ключи: xen, freebsd, virtual, guest, install / Лицензия: CC-BY
Раздел:    Корень / Безопасность / Виртуализация - Xen, OpenVZ, KVM, Qemu

Обсуждение [ RSS ]
  • 1, netc (ok), 11:42, 14/05/2010 [ответить]  
  • +/
    класс ;)
     
  • 2, sergem (??), 14:48, 14/05/2010 [ответить]  
  • +/
    Вариант Дмитрия Ищука:
    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

     
  • 5, sysadm (??), 10:04, 04/06/2010 [ответить]  
  • +/
    //Установим итоговые собранные файлы на ранее подготовленный дисковый образ в
    //файле, примонтированный в /mnt:
    //
    //   # export DESTDIR=/mnt && make installworld && make installkernel KERNCONF=XEN && cd etc && make distribution

    "&& cd etc " однако лишним будет

     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру