среда, 5 октября 2016 г.

FreeBSD виртуализация: Bhyve установка гостя в графическом режиме

Завтра обещают выход 11-го релиза FreeBSD. образ для загрузки уже доступен на сайте.
В качестве одной из плюшек  анонсирована возможность графической установки виртуальных машин во встроенном гипервизоре bhyve.
Толком процесс еще нигде не описан, поэтому пришлось  слегка напрячся, но результат того стоил. Источники: ссылка, маны.
Исходные данные: FreeBSD 11  или FreeBSD 10.3, обновленные до актуального состояния.
Устанавливаем из /usr/ports/sysutils : vm-bhyve, grub2-bhyve, bhyve-firmware.
процедура стандартная:
cd /usr/ports/sysutils/vm-bhyve
make install clean && rehash
 остальные порты аналогично. В принципе из портов критична только установка vm-bhyve, остальное можно ставить из пакетов pkg install grub2-bhyve bhyve-firmware, но из портов гарантированно получите самый свежий софт.
Двигаемся дальше:
echo 'if_bridge_load=”YES”' >> /boot/loader.conf
echo 'if_tap_load=”YES”' >> /boot/loader.conf
echo 'nmdm_load=”YES”' >> /boot/loader.conf
echo 'vmm_load=”YES”' >> /boot/loader.conf
echo 'vm_enable=”YES”' >> /etc/rc.conf
echo 'vm_dir=”zfs:zroot/vms”' >> /etc/rc.conf
echo 'vm_list=””' >> /etc/rc.conf
echo 'vm_delay=”5″' >> /etc/rc.conf

перегружаемся, или если лень грузим модули руцями: 
kldload if_bridge if_tap nmdm vmm

Датасет для виртуалок:
zfs create -o mountpoint=/vms zroot/vms

если не используете ZFS, то просто создаете каталог, подробности в выводе при установке vm-bhyve.
Инициируем виртуальное окружение:
vm init

Копируем шаблоны виртуалок:
cp /usr/local/share/examples/vm-bhyve/* /vms/.templates/

Копируем образы UEFI:
cp /usr/local/share/uefi-firmware/* /vms/.config

 Должен отметить, что графический режим доступен только при выборе в качестве загрузчика UEFI.
Создаем виртуальный свитч:
vm switch create public

добавляем в него свой физический интерфейс:
vm switch add public igb0

с точки зрения системы вы просто создаете сетевой мост, но утилита vm-bhyve гордо зовет его виртуальным свитчем.

Я ставил Debian, файл качал торрентом, чтоб не грузить сервер, после по ftp залил на хост машину, Вы можете просто указать URL инсталяционного образа :
vm iso /путь/к/образу/имя_образа.iso

Копируем шаблон:
cp /vms/.templates/debian.conf /vms/.templates/debian_gui.conf

редактируем:
/vms/.templates/debian_gui.conf
приводим к виду:
Вторая и третья строки - это количества ядер и памяти для вашей виртуалки, остальное параметры для VNC соединения.

Создаем виртуалку с диском 20G используя свой новый шаблон:
vm create -t debian_gui -s 20G test

смотрим:
vm list
выдаст примерно следующее:



редактируем машину:
vm configure test

исправляем порт на 5900, 5901... какой нравится
Запускаем установку:
vm install test debian-8.6.0-amd64-lxde-CD-1.iso

подключаемся VNC клиентом к выбранному порту хост-машины. Конкретно в моем случае, при использовании в качестве клиента Remmina, столкнулся с тем, что необходимо выбирать глубину цвета 24 и хорошее качество соединения:


В меню установки выбираем расширеный режим и в нем экспертную графическую установку, процесс установки debian подробно не описываю, единственный нюанс при установке загрузчика необходимо сделать следующий выбор:

иначе после выключения виртуалки, получите от UEFI сообщение, что загрузочный диск не найден.









Заканчиваем установку, после перезагрузки выключаем виртуальную машину и запускаем снова из консоли:
vm start test

Подключаемся VNC клиентом:













Проделываем дальнейшие настройки, в моем случае это будет терминальный сервер, буду ставить xRdp, x11-rdp и т.д.
Понятное дело, что установку можно было осуществить со стандартным шаблоном в текстовом режиме, но надо же было оттестировать новые возможности моей любимой операционки :-)
Для дальнейшей эксплуатации имеет смысл изменить значение опции 'graphics_wait' на "auto", иначе виртуалка не будет продолжать загрузку пока вы не подключитесь к ней по  VNC.

Комментариев нет:

Отправить комментарий