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