The OpenNET Project / Index page

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

Тестирование во FreeBSD системы виртуализации BSD Hypervisor (BHyVe)
Разработчики FreeBSD приглашают принять участие в тестировании гипервизора
BSD Hypervisor (BHyVe), открытого в этом году компанией NetApp. Гипервизор
BHyVe обладает прекрасной производительностью, но пока не входит в состав
основной кодовой базы FreeBSD и нуждается в дополнительном тестировании.

Для работы BHyVe требуется наличие новых CPU Intel Core i3, i5 и i7,
поддерживающих механизм виртуализации VT-x и  работу со вложенными страницами
памяти (EPT - Extended Page Tables). Опционально для проброса PCI-устройств в
госетвые окружения может быть задействована технология VT-d (Direct Device
Attach). Проверить наличие VY-x можно просмотрев  флаги в секции "Features" в
выводе dmesg, в списке должен присутствовать флаг VMX.

В качестве гостевой системы пока может работать только FreeBSD. Созданные в
рамках проекта паравиртуальные драйверы для ускорения работы с устройствами
хранения и сетевого доступа (virtio, if_vtnet, virtio_pci, virtio_blk) в
дальнейшем могут быть адаптированы для работы гостевых систем совместно с
другими системами виртуализации.

Подготовка хост-окружения

Пользователи FreeBSD-CURRENT могут загрузить необходимые патчи из специального репозитория:

   svn co http://svn.freebsd.org/base/projects/bhyve /usr/src/

Для FreeBSD 9.0BETA3 можно использовать ревизию 225769 из этого же SVN-репозитория BHyVe. 

Устанавливаем необходимые порты:

   pkg_add -r subversion
   pkg_add -r binutils
   pkg_add -r curl
   rehash

Загружаем исходные тексты из SVN (грузим ревизию 225769):

   svn co http://svn.freebsd.org/base/projects/bhyve@225769 /usr/src/

Пересобираем ядро и перезагружаем систему:

   cd /usr/src
   make buildkernel KERNCONF=GENERIC
   make installkernel KERNCONF=GENERIC
   reboot

После перезагрузки необходимо загрузить модуль ядра vmm.ko:

   kldload vmm

Для управления BHyVe необходимо установить несколько вспомогательных утилит:
/usr/sbin/bhyve, /usr/sbin/bhyveload и /usr/sbin/vmmctl, а также библиотеку
/usr/lib/libvmmapi.*. Уже собранные данные компоненты можно загрузить здесь,
для установки следует запустить скрипт cpinstall.sh.

Для сборки из исходных текстов можно использовать примерно такие команды:

   cd /usr/src/
   make buildworld
   mkdir /usr/jail/
   make installworld DESTDIR=/usr/jail/
   cp /usr/jail/usr/sbin/bhyve* /usr/sbin/
   cp /usr/jail/usr/sbin/vmm* /usr/sbin/
   cp /usr/jail/usr/lib/libvmmapi* /usr/lib/
   rehash

Правим /boot/loader.conf. Отключаем  вывод отладочных предупреждений и изменяем
лимит памяти до 4 Гб для системы с 8 Гб ОЗУ (остальные 4 Гб будут отданы
гостевым системам):

   debug.witness.watch="0"
   hw.physmem="0x100000000"

После перезагрузки вывод dmesg для  системы с 8 Гб ОЗУ выглядит примерно так:

   real memory  = 8589934592 (8192 MB)
   avail memory = 3021811712 (2881 MB)


Подготовка гостевой системы:

Для упрощения тестирования подготовлен уже сконфигурированный образ гостевой
системы, который  можно загрузить и установить выполнив:

   cd /usr/share/
   curl -O http://people.freebsd.org/~neel/bhyve/vm1.tar.gz
   gunzip vm1.tar.gz
   tar -xf vm1.tar

Данный образ содержит скрипт запуска и образ коревой ФС, размером 300 Мб
(/usr/share/vm1/boot/kernel/mdroot). При загрузке создаётся два  virtio-устройства:

    vtnet0: виртуальный сетевой интерфейс, привязанный к интерфейсу tap0 на стороне хост-системы
    vtbd0: виртуальной блочное устройство, использующее 32 Гб дисковый образ /usr/share/vm1/diskdev


Скрипт /usr/share/vm1/vmprep.sh предназначен для подготовки хост-системы для
использования BHyVe, включая загрузку модуля ядра vmm.ko и настройку сети
(вместо em0 следует указать текущий сетевой адаптер).

   #!/bin/sh
   kldload vmm
   kldload if_tap
   ifconfig tap0 create
   kldload bridgestp
   kldload if_bridge
   ifconfig bridge0 create
   ifconfig bridge0 addm em0
   ifconfig bridge0 addm tap0
   ifconfig bridge0 up
   ifconfig tap0 up


Запуск гостевой системы в среде виртуализации:

Выполняем скрипт конфигурации хост-системы и запускаем гостевое окружение vm1:

   cd /usr/share/vm1/
   sh vmprep.sh
   sh vmrun.sh vm1

Если не удаётся загрузить модуль vmm.ko на экран будет выведена примерно такая ошибка:

   Launching virtual machine "vm1" with 768MB memory below 4GB and 2048MB memory above 4GB ...
  vm_create: No such file or directory

В случае успеха будет отображён процесс загрузки FreeBSD:


   Launching virtual machine "vm1" with 768MB memory below 4GB and  2048MB memory above 4GB ...
   Consoles: userboot  

   FreeBSD/amd64 User boot, Revision 1.1
   (neel@freebsd.org, Sun Sep 25 22:19:14 PDT 2011)
   Loading /boot/defaults/loader.conf 
   /boot//kernel/kernel text=0x41e94f data=0x57ac0+0x273590 syms=[0x8+0x737b8+0x8+0x6abe3]
   /boot//kernel/virtio.ko size 0x4ad8 at 0xbc8000
   /boot//kernel/if_vtnet.ko size 0xac80 at 0xbcd000
   /boot//kernel/virtio_pci.ko size 0x56c0 at 0xbd8000
   /boot//kernel/virtio_blk.ko size 0x4f60 at 0xbde000
   ....

Если используемый в системе процессор не содержит возможностей,  необходимых
для работы BHyVe, будет выведен примерно такой текст ошибки:

   ...
   AMD Features=0x20100800<SYSCALL,NX,LM>
   AMD Features2=0x1<LAHF>
   kldload vmm.ko
   vmx_init: processor does not support desired primary processor-based controls
   module_register_init: MOD_LOAD (vmm, 0xffffffff816127a0, 0) error 22

Тестовая гостевая система сконфигурирована с пустым паролем для пользователя
root. После входа следует настроить параметры сети указав IP в ручную через
команду ifconfig или получив адрес по DHCP, запустив "dhclient vtnet0".

Для остановки виртуальной машины нужно перезагрузить гостевое окружение, нажать
ESC при появлении экрана загрузки и набрать "quit" в приглашении загрузчика.
 
Ключи: virtual, freebsd, bhyve, bsd, hypervisor / Лицензия: CC-BY
Раздел:    Корень / Безопасность / Виртуализация - Xen, OpenVZ, KVM, Qemu

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, G.NercY.uR (?), 18:36, 14/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чёрт возьми! Пилят разработчики потихоньку и систему и средства виртуализации не обращая внимание на крики недовольных медленными темпами развития и "вечным отставанием от ...". Медленно но верно идёт караван, а не шумно бегая и разбегаясь в разные стороны по скользким льдам. :)
     
     
  • 2.17, pavlinux (ok), 01:18, 18/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Товар протухнет, пока верблюд дойдет и Core i3/5/7 уже ацтой будет.
    Нонче без самолётов никак.
     
     
  • 3.19, анон (?), 21:42, 19/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    У нас до сих пор на старых ксеонах сервера и не собираются менять. Думаю и все эти коры5, 7 простоят долго.
     
     
  • 4.22, saNdro (?), 21:22, 24/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ксеоны простоят долго точно. Но i3,i5 и i7 - это не ксеоны. (:
     

  • 1.2, freename (ok), 19:18, 14/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Было бы хорошо посмотреть на тесты в сравнение с тем же virtualbox на фреебсд, на сколько улей перспективен
     
     
  • 2.6, Аноним (-), 11:39, 15/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Какие  тесты. Это альфа же.
     
     
  • 3.7, NSForth (ok), 13:17, 15/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Да, верно, тестирование альфа-версий ПО запрещено на территории Российской Федерации, СНГ и Грузии.
     
     
  • 4.8, вап (?), 15:27, 15/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Что??
     
  • 4.10, Аноним (-), 18:00, 15/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    А с этого места поподробнее, пожалуйста
     
     
  • 5.11, ander (??), 01:07, 16/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    *sarcasm*
     
  • 2.20, Анонимз (?), 13:02, 21/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    http://wiki.freebsd.org/201105DevSummit?action=AttachFile&do=get&target=BHyVe
     


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




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

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