FreeBSD virtual environment management and repository

2020-10 upd: we reached the first fundraising goal and rented a server in Hetzner for development! Thank you for donating !

Внимание! Данные страницы описывают CBSD версии 13.0.x. Если вы используете более раннюю версию, рекомендуется сначала обновиться.

FreeBSD: Bhyve

Введение

Bhyve - это гипервизор, любезно открытый компанией NetAPP (имеющий свои наработки на базе FreeBSD ОС) под лицензей BSD и в данный момент входящий в коробочную/базовую версию ОС FreeBSD, в отличие от ряда аналогичных проектов, которые не являются частью ОС и их (или модифицированые для них ядра) необходимо предварительно скачать и установить. Другими словами, все релизы FreeBSD начиная с 10.0, в состоянии запустить *BSD, Linux и различные другие ОС прямо из коробки.

На данный момент, существует достаточно большое количество оберток для управления bhyve, наравне с базовым скриптом /usr/share/examples/bhyve/vmrun.sh и отличающиеся между собой поставленными целями

Основные цели, которые ставит CBSD:

  • Требовать от пользователя минимум действий, чтобы полноценно начать использовать bhyve;
  • Требовать от пользователя минимум по заучиванию команд и аргументов, а также пресечь постоянные обращения к документации: все должно быть доступно для управления через WEB или text user-interface;
  • Интеграция bhyve с другими компонентами FreeBSD (NFS, glusterfs, iscsi, HAST, carp) из коробки
  • Интеграция bhyve с внешними службами (DHCPD, Consul)
  • Ориентированность на большие инсталляции, за рамками применения на localhost-only

Для удобства, команды управления bhyve в CBSD аналогичны командам управления jail, но начинаются с буквы b:

  • jstart (jail start) -> bstart (bhyve start)
  • jstop (jail stop) -> bstop (bhyve stop)
  • jls (jail list) -> bls (bhyve list)
  • jconstruct-tui (jail constructor) -> bconstruct-tui (bhyve constructor)
  • и тд.

Пользуясь CBSD, вы можете совмещать в одном инструменте управление как для контейнеров jail, так и виртуальных машин на гипервизоре bhyve, используя тот или иной подход в разных задачах

Дополнительно, можете ознакомится со статьей: Jails против Bhyve

Начало работы с bhyve

Для начала работы с bhyve через CBSD, введите в командной строке:

			% cbsd bconstruct-tui
			

Если в вашей системе не хватает каких-либо компонент или настроек, вы увидете соответствующие подсказки, которые необходимо выполнить.

По готовности, вы увидете dialog-based меню для создания виртуальной машины:

Параметры vm_os_profile,jname и imgsize - являются обязательными для ручного ввода

Начните создание виртуальной машины с выбора типа ОС и выбора профиля ОС

Если вы запускаете виртуальную машину первый раз, при старте автоматически будет скачиватся соответствующий образ с официальных сайтов

Ряд параметров (ключи запуска bhyve) доступны в подменю bhyve_options:

и vnc_options:

Имейте ввиду, что при вводе параметра imgsize, вы задаете объем первого (загрузочного) виртуального жесткого диска.

Для добавления дополнительных дисков или сетевых карт, используйте команду cbsd bconfig уже после создания VM.

О сети bhyve

По-умолчанию, виртуальные машины используют tap интерфейс, который CBSD автоматически коммутирует в bridge на ваш uplink интерфейс (вы можете изменить интерфейс через меню nic_parent в 'cbsd bconfig' - bhyvenic - nic1

Вы можете предпочесть два других варианта коммутации, доступных в CBSD

  • Использовать виртуальный свич на базе vale(4). Для этого, воспользуйтесь диалогом создания свича через: cbsd valecfg-tui
  • Вы можете исключить bridge и использовать point-to-point соединение. Для этого, через 'cbsd bconfig' - bhyvenic - nic1, вам необходимо изменить параметр nic_parent в значение disable. В этом режиме, вы должны назначить какой-либо Ip адрес в качестве шлюза вашей виртуальной машины на tap интерфейсе

Внимание! Обратите внимание на присутствие меню для выбора IP адреса bhyve в меню bconstruct-tui. Имейте ввиду, что без вспомогательных скриптов внутри дистрибутива или виртуальной машины, вы не можете управлять настройками в самой виртуальной машины извне. Данный пункт меню сохраняет IP адрес в базе данных CBSD для того, чтобы вы могли сторонними методами (например через DHCP) сконфигурировать автоматическую настройку ОС без необходимости помещать внутри собственный скрипты. В качестве примера, посмотрите на статью: CBSD/bhyve и DHCPD