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. Если вы используете более раннюю версию, рекомендуется сначала обновиться.
Обратите внимание! Данные команды поддерживают маску (wildcard) в качестве jname, например: jname='*', jname='ja*l*'
Чекпоинты, спящий режим и паузы виртуальной машины
Команда bcheckpoint, bsuspend, bpause
Для использования этой особенности, ядро (модуль vmm.ko) и userland утилиты ( bhyve и bhyvectl ) должны быть пересобраны с флагом BHYVE_SNAPSHOT. Добавьте в /etc/src.conf строчку:
WITH_BHYVE_SNAPSHOT=yes
И в конфигурационный файл ядра опцию:
options BHYVE_SNAPSHOT
Функциональность чекпоинтов (checkpoint) и спящий режим (suspend) виртуальной машины - это заморозка виртуального окружения с сохранением всего состояния на диск, из которого вы можете вновь вернуть систему в прежнее состояние без необходимости перезагрузки окружения.
Чекпоинты
В CBSD для работы с чекпоинтами служит команда bcheckpoint, имеющая следующий синтаксис:
cbsd bcheckpoint [jname=] [mode=] [name=] [poweroff=]
где:
- - jname: (обязательно) имя окружения, например: freebsd1
- - mode: (обязательно) действие относительно окружения: create (создать чекпоинт), list (список созданных чекпоинтов), destroyall (уничтожить все чекпоинты)
- - name: (опционально) указать альтернативное имя чекпоинту, по-умолчанию: checkpoint
- - poweroff: (опционально). Если poweroff=1, CBSD автоматически выключит виртуальную машину моментально (через bstop noacpi=1) по факту создания чекпоинта.
% cbsd bls JNAME JID VM_RAM VM_CURMEM VM_CPUS PCPU VM_OS_TYPE IP4_ADDR STATUS VNC_PORT freebsd1 21923 1024 24 1 0 freebsd DHCP On 127.0.0.1:5900 % cbsd bcheckpoint mode=create jname=freebsd1 Waiting and sure that the info is written on the disk: 1/5 Waiting and sure that the info is written on the disk: 2/5 Waiting and sure that the info is written on the disk: 3/5 Waiting and sure that the info is written on the disk: 4/5 Waiting and sure that the info is written on the disk: 5/5 Checkpoint was created!: /usr/jails/jails-system/freebsd1/checkpoints/checkpoint.ckp % cbsd bcheckpoint mode=create jname=freebsd1 name=after_update Waiting and sure that the info is written on the disk: 1/5 Waiting and sure that the info is written on the disk: 2/5 Waiting and sure that the info is written on the disk: 3/5 Waiting and sure that the info is written on the disk: 4/5 Waiting and sure that the info is written on the disk: 5/5 Checkpoint was created!: /usr/jails/jails-system/freebsd1/checkpoints/after_update.ckp % cbsd bcheckpoint mode=list jname=freebsd1 Created checkpoint for freebsd1: after_update checkpoint
Имея созданные чекпоинты, вы можете возвращаться в нужное состояние через команду bstart с аргументом checkpoint
Небольшое демо на ранней стадии разработки на Youtube
Спящий режим
WIP
Пауза виртуальной машины
WIP