Bhyve VM Manager
内测网址 :http://bigdragon.chinafreebsd.cn/bvm/
Bhyve VM Manager 是由 China FreeBSD 社区发起的一款基于 FreeBSD 下的 Bhyve 虚拟
机管理工具,初衷就是要实现一款简单易用且便于扩展的 Bhyve vm 管理工具,为我们管
理员在 FreeBSD 下使用虚拟机提供便利。
bvm 项目在 2017 年 11 月 发起,于 2018 年 2 月由 BigDragon 和 iceage 使用 C 语言
联合开发完成。bvm 可以为虚拟机提供 NAT 以及 Bridged 等基本联网方式,内部模拟了层交换机的
理念,基本满足宿主机内复杂环境下组网需求。满足开机自启动,以及热重启等功能,且
通过 uefi 固件支持常用的图形界面操作系统。
当前支持的操作系统:
-----------------------------------
os grub uefi
-----------------------------------
FreeBSD yes yes
OpenBSD yes no
NetBSD yes no
Debian yes yes
Ubuntu yes yes
Kail yes yes
CentOS no yes
openSUSE yes yes
Gentoo yes yes
Tails yes yes
Kubuntu yes yes
Windows10 no yes
命令大纲
bvm < --addisk | --autoboot | --create | --deldisk
| --login | --poweroff | --lock | --lockall | --remove
| --restart | --start | --unlock | --unlockall
| --vminfo > vm
bvm < clone | rename > src_vm dst_vm
bvm < --ls | --os | --showdev | --showdevall | --showdevalls>
bvm < --setnat | setsw > netif ip
bvm < --unsetsw> swif
常用选项:
--addisk
为虚拟机添加第二块硬盘,--config 的快捷命令。在虚拟机初始时
默认为单硬盘模式,但是在虚拟机创建完成之后可以通过此选项为虚
拟机添加多块硬盘,需要注意的是:新添加的硬盘数量会显示在--ls
选项下,但是 --ls 显示的存储空间大小为所有磁盘的总容量。另外,
此选项需要在虚拟机关机状态下使用。
--autoboot
开机启动选项,通常管理员手动维护模式下不需要此选项。有时宿主
机在关机或者意外宕机的情况下再次开机,这时可以通过 rc 脚本自
动启动管理员设定的虚拟机。其方法为使用 bvm --config vmname
修改 auto boot 菜单的默认值为 yes。
在自启动模式下bvm 会参考 vm 的启动级别和延时选项,启动级别
(boot index) 为启动优先级,当存在多个自启动虚拟机时,启动优先
级数值越低的虚拟机启动顺序越靠前。启动延时(boot time) 为启动
当前虚机之后也可以说在启动下一个虚拟机之前暂定的秒数。之所以
设计这两个参数是因为有的业务可能需要优先启动,以保证业务正常。
比如,数据库与 web 服务的关系,如果数据虚拟机库不优先启动那么
有可能导致 web 服务异常!正确使用此选项的方法为:加入开启启动
脚本:
sysrc bvmd_enable=yes
--clone
快速克隆一个相同的虚拟机,需要两个参数,比如以 freebsd 虚拟机
为模版克隆 newfb 虚拟机:
bvm --clone freebsd newfb
--config
配置虚拟机。此选项需要在虚拟机关机的情况下才能使用。可允许用
户独立配置的选项有:cpus、ram、iso path、boot from、hostbridge
、uefi、auto boot、disk config、以及 network config。其中 cpus
为当前虚拟机使用的 cpu 个数(非核心数),ram 为当前虚拟机所申请
的内存大小,其单位可以为 M/G 等。iso path 为iso光盘映像所在的
目录(是目录,非 iso 绝对地址),当指定目录后 bvm 会自动列出当前
目录中所包含的 iso 文件,用户可以通过菜单号自主选择。boot from
选项是个很重要的选项,当首次安装完系统后用户需要手动调整此选项
为 hd0 否则系统会从 iso 光盘启动,当需要使用 iso 光盘进行系统
维护时可更改此选项为 cd0 。uefi 选项多为安装图形界面的操作系统
所使用,此选项需要配合 VNC 获取桌面,另外此选项会使 bvm --login
选项失效,因为 --login 为文本控制台,不具备图形界面操作条件。
auto boot 选项不再赘述。hostbridge 为架构属性,当使用 intel 系
列 CPU 时其属性值应为 hostbridge;当使用 AMD 系列 CPU 时其属性
值应为 amd_hostbridge。disk config 选项可以增加或者删除当前虚拟
机的硬盘,如果为增加硬盘的话建议使用 --addisk 快捷命令。而net-
work config 选项可以配置虚拟机的组网或者联网方式。
--create
创建一个新的指定虚拟机。
--deldisk
删除指定虚拟机的磁盘,--config 的快捷命令。
--login
登录指定虚拟机,只针对非 uefi 模式下的文本控制台虚拟机有效。
--ls
对所有虚拟机简要信息进行综合列表。
--os
对当前支持的操作系统进行列表,(只针对 grub2-bhyve引导的文本控
制台操作系统进行约束,uefi 支持列表请参考 FreeBSD 官媒)。
--poweroff
对指定虚拟机强行断电关机。
--lock
锁定指定虚拟机,不可更改,删除,运行等一切写操作。只能进行简单
的读操作,比如 --vminfo、 --ls。
--lockall
锁定全部虚拟机,行为同 --lock 。
--remove
销毁指定的虚拟机,注意,运行此命令时虚拟机不能处于运行状态。
--rename
对指定虚拟机进行重命名,行为同 --remove。
--restart
重启指定虚拟机。
--setnat
设置 NAT 界面IP地址段,例:
bvm --setnat nat0 172.16.1.0/24
--setsw
设置 switch 界面 IP 地址(通常不需要设置,除非特殊情况),方
法同 --setnat 。
--showdev
精简显示网络设备信息,其中 default-bridge 为虚拟机默认与宿主
机桥接器;nat0-nat2 为预留 3 个与宿主机 NAT 通信界面;switch0
-switch7 为预留 8 个虚拟机通信界面,此界面同样实为网桥,但是
与默认桥接器区别是此界面多数情况下为内部组网所需,通常不包括
宿主机物理网卡。
--showdevall
详细显示当前宿主机下网络设备情况。详细显示虚拟机与桥接器 nat
等联网方式等,虚拟机为白色表示虚拟机状态为非活动状态,绿色表
示当前虚拟机为活动状态。
--showdevalls
详细显示当前工作状态下的 nat, switch 设备下挂虚拟机情况。
--start
启动指定虚拟机。
--stop
对指定虚拟机软关机(信号获取不准确)。
--unlock
对指定虚拟机进行解锁。
--unlockall
解锁所有虚拟机(对未上过锁的虚拟机无影响)。
--unsetsw
解除 switch 上设定的 IP 地址。
--vminfo
打印指定虚拟机详细配置信息和状态。
内测网址 :http://bigdragon.chinafreebsd.cn/bvm/