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 версии 12.2.x. Если вы используете более раннюю версию, рекомендуется сначала обновиться.

Живая миграция виртуальной машины bhyve

Команда bmigrate

Реализацией данной особенности в bhyve мы благодарны Политехническому университету Бухареста и в частности: Elena Mihailescu and Mihai Carabaș.

На момент опубликовании этой страницы, данный функционал отсутствовал в кодовой базе FreeBSD и получен со страницы проекта на GitHub (FreeBSD-UPB)

Данный функционал является продолжением функционала checkpoints


Основные требования:


Необходимым условием является наличие DFS, что в случае с CBSD не должно являться проблемой (подробнее: отсутствие привязки к ZFS). В данный момент протестирована работа на NFSv3,v4 и GlusterFS ( Ceph в процессе тестирования )

Для успешной процедуры живой миграции, вам также необходимо иметь максимально близкие по техническим характеристикам сервера (архитектура, CPU). В текущий момент bhyve гипервизор не поддерживает выравнивание инструкций CPU (редактирование и кастомизация CPUID) при наличии разных процессоров (разных поколений, моделей)

Кроме этого CBSD ноды, которые обмениваются между собой виртуальными машинами, должны быть добавлены в кластер через команду node

В процессе живой миграции, нода-источник задействует функционал по созданию отложенной задачи на ноде-приемнике через cbsd task, поэтому убедитесь, что вы имеете запущенным процесс 'cbsdd' ( регулируется параметром cbsdd_enable=YES в файле /etc/rc.conf)


Для миграции служит команда bmigrate, имеющая два аргумента - непосредственно имя (jname) переезжаемой виртуальной машины и имя ноды приемника (node)

В процессе миграции скрипт выполняет предварительную проверку на совместимость нод, в том числе на наличие общих каталогов ( это каталоги jails-data, jails-rcconf, jails-system в рабочем окружении CBSD)


Небольшое демо на ранней стадии разработки: Youtube::FreeBSD bhyve live migration, first overview

Небольшое демо на ранней стадии разработки: Youtube::FreeBSD bhyve live migration: FreeBSD guest + networking (no sound)

Небольшое демо на ранней стадии разработки: Youtube::FreeBSD bhyve live migration: Linux Debian guest + networking (no sound)

Смотрите также: checkpoints, taskd, CPU topology