2020-10 upd: we reached the first fundraising goal and rented a server in Hetzner for development! Thank you for donating !
CBSD QEMU quick start
CBSD и QEMU
Platform | QEMU supported | NVMM supported | DragonflyBSD | Y | Y | FreeBSD | Y | N | NetBSD | Y | Y |
С CBSD версии 13.0.18 добавлена поддержка эмулятора QEMU и акселератора NVMM. Аналогично командам для jail, bhyve и XEN, вы можете создавать и управлять QEMU-based виртуальными машинами через аналогичные команды и диалоговые формы, при этом команды имеют префикс 'q': qstart, qdestroy..
На данный момент акселерация NVMM доступна только на платформе DragonFlyBSD. Тем не менее, если вы используете CBSD и QEMU на FreeBSD, вы можете воспользоваться возможностью легкого образа альтернативных архитектур в качестве полноценной виртуальной машины, если QEMU-usermode jail вам не подходит. Так, на хосте FreeBSD amd64, вы можете без труда запустить и работать с ОС для ARMv8/aarch64 или RISCv64.
При использовании NVMM, убедитесь что модуль загружен:
kldload nvmm
Проверить статус NVMM вы можете через команду:
nvmmctl identify
Если модуль отсутствует или работает некорректно, создавать ВМ вы сможете, но они будут работать без акселерации
Также, акселерация будет недоступна, если вы запускаете ненативные архитектуры.
Подробное описание работы с NVMM/QEMU на: странице проекта DragonflyBSD, NetBSD guide.
При работе с эмуляцией не родных архитектур, вам могут потребоваться прошивки и bios для загрузки систем:
Например:
- u-boot-qemu-arm64 - Cross-build das u-boot for model qemu-arm64
- u-boot-qemu-riscv64 - Cross-build das u-boot for model qemu-riscv64
- opensbi - RISC-V SBI bootloader and firmware
TODO/Ограничения
На данный момент, запуск qemu происходит от пользователя 'root';
На платформе DragonFlyBSD поддержка HammerFS2 в CBSD находится в разработке: автоматическая работа с PFS/snapshot/COW средствами HammerFS в данный момент невозможа;
На платформе FreeBSD в QEMU не поддерживаетсят QXL/Spice протокол;
Создание QEMU ВМ
Вы можете работать с QEMU-based виртуальными машинами через привычные в CBSD методы: TUI интерфейс, CLI интерфейс или CBSDfile.
cbsd qconstruct-tui --help cbsd qcreate --help cbsd qstart --help cbsd qdestroy --help
Демо работы с QEMU через CBSD
Demo of NVMM/QEMU via CBSD on DragonflyBSD 6.1-dev, Demo of running ARMv8 / AARCH64 and RISCv64 virtual machines on FreeBSD amd64 / x86_64: