BVM专题
- 贡献者:admin
- 阅读:13113
- 类别:脚本工具
- 更新时间:2024-12-11 05:13:37
虚拟机管理器 BVM
Bhyve Vm Manager (bvm) 是一款基于 FreeBSD 系统下 Bhyve 的虚拟机管理工具,初衷就是要实现一款简单易用且便于扩展的 Bhyve vm 管理工具,为我们管理员在 FreeBSD 下使用虚拟机提供便利。bvm 项目在 2017 年 11 月 发起,于 2018 年 2 月由 Bigdragon 和社区的 iceage 使用 C 语言联合开发完成,并于 2018 年 7 月在 ygy 的大力帮助下成功地将 bvm 提交到 FreeBSD 官方软件库。
简介
功能特性
安装
-- or --
最新版本
bvm 1.3.5 (2024年12月11日)
基本配置
使用方法
Usage: bvm <options> [args...]
Options:
--abinfo Display information about auto-boot VMs
--addisk Add a new disk to VM
--addnat Add NAT
--addswitch Add Switch
--autoboot Auto-boot VMs
--clone Clone VM
--config Configure VM
--create Create new VM
--deldisk Delete a disk
--delnat Delete NAT
--delswitch Delete Switch
--swinfo Output Switch info
--decrypt Decrypt VM
--encrypt Encrypt VM
--login Log in to VM
--ls List VMs and status
--ll List VMs and status in long format
--netstat Show VM network status
--natinfo Output NAT info
--lock Lock VM
--lockall Lock all VMs
--os Output OS list
--poweroff Force power off
--reload-nat Reload NAT redirect port
--remove Destroy VM
--rename Rename VM
--restart Restart VM
--rollback Roll back to snapshot point
--setnat Set NAT IP address
--setsw Set Switch IP address
--setpr Set port redirection list
--showpr Show port redirection list
--showdev Show device
--showdevall Show all devices in class mode
--showdevuse Show all devices in simple mode
--showdhcp Show all DHCP clients
--showsnap Show snapshot list of VM
--showsnapall Show snapshot list of all VMs
--showstats Show VM stats
--snapshot Generate snapshot for VM
--start Start VM
--stop Stop VM
--unlock Unlock VM
--unlockall Unlock all VMs
--unsetsw Unset Switch IP address
--vminfo Output VM info
Usage: bvm <options> [args...]
Options:
--abinfo Display information about auto-boot VMs
--addisk Add a new disk to VM
--addnat Add NAT
--addswitch Add Switch
--autoboot Auto-boot VMs
--clone Clone VM
--config Configure VM
--create Create new VM
--deldisk Delete a disk
--delnat Delete NAT
--delswitch Delete Switch
--swinfo Output Switch info
--decrypt Decrypt VM
--encrypt Encrypt VM
--login Log in to VM
--ls List VMs and status
--ll List VMs and status in long format
--netstat Show VM network status
--natinfo Output NAT info
--lock Lock VM
--lockall Lock all VMs
--os Output OS list
--poweroff Force power off
--reload-nat Reload NAT redirect port
--remove Destroy VM
--rename Rename VM
--restart Restart VM
--rollback Roll back to snapshot point
--setnat Set NAT IP address
--setsw Set Switch IP address
--setpr Set port redirection list
--showpr Show port redirection list
--showdev Show device
--showdevall Show all devices in class mode
--showdevuse Show all devices in simple mode
--showdhcp Show all DHCP clients
--showsnap Show snapshot list of VM
--showsnapall Show snapshot list of all VMs
--showstats Show VM stats
--snapshot Generate snapshot for VM
--start Start VM
--stop Stop VM
--unlock Unlock VM
--unlockall Unlock all VMs
--unsetsw Unset Switch IP address
--vminfo Output VM info
常见问题
问题 1: 如何创建虚拟机?
问题 2: 如何修改虚拟机配置?
答: 虚拟机必须关闭,然后使用命令 'bvm --config vmname' 修改设置
以下是一些配置参数解释:
参数 描述
--------- -----------
cpus VM使用的CPU数量(不是核心数)
ram VM分配的内存(例如512M或1G)
ios path ISO镜像目录(自动列出供选择)
boot from 启动选项 (cd0:CD启动/hd0:硬盘启动)
uefi 用于带有VNC的GUI系统,将禁用--login
auto boot 自启动配置(见bvm --autoboot)
hostbridge CPU架构 (intel:hostbridge/AMD:amd_hostbridge)
disk config 磁盘配置(可以添加/删除磁盘,推荐使用--addisk)
network config 网络配置(网络/连接)
答: 虚拟机必须关闭,然后使用命令 'bvm --config vmname' 修改设置
以下是一些配置参数解释:
参数 描述
--------- -----------
cpus VM使用的CPU数量(不是核心数)
ram VM分配的内存(例如512M或1G)
ios path ISO镜像目录(自动列出供选择)
boot from 启动选项 (cd0:CD启动/hd0:硬盘启动)
uefi 用于带有VNC的GUI系统,将禁用--login
auto boot 自启动配置(见bvm --autoboot)
hostbridge CPU架构 (intel:hostbridge/AMD:amd_hostbridge)
disk config 磁盘配置(可以添加/删除磁盘,推荐使用--addisk)
network config 网络配置(网络/连接)
问题 3: 如何查看虚拟机配置信息?
答: 使用 'bvm --vminfo vmname' 查看虚拟机详细信息,包括虚拟机名称、操作系统、IP地址、网络模式、磁盘信息等。
示例输出:
---------------------------
Welcome to Bhyve Vm Manager
---------------------------
name : debian
os type : Debian
ram : 512m
cpus : 1
disk interface : ahci-hd
disk numbers : 1
|-ZFS support : off
|-disk(0) size : 5g
cd status : on
|-iso path : /root/iso/debian-9.3.0-amd64-netinst.iso
boot from : cd0
hostbridge : hostbridge
uefi : none
auto boot : yes
|-index : 2
|-time : 15 sec.
nic interface : e1000
nic numbers : 1
nic_0
|-network mode : NAT
|-wan : em0
|-gateway : nat2 [GW 192.168.1.1/24]
|-redirect : disable
|-bridge : bridge1
|-tap : vmnet1
|-ip : 192.168.1.10/24
status : off
lock : no
crypt : no
答: 使用 'bvm --vminfo vmname' 查看虚拟机详细信息,包括虚拟机名称、操作系统、IP地址、网络模式、磁盘信息等。
示例输出:
---------------------------
Welcome to Bhyve Vm Manager
---------------------------
name : debian
os type : Debian
ram : 512m
cpus : 1
disk interface : ahci-hd
disk numbers : 1
|-ZFS support : off
|-disk(0) size : 5g
cd status : on
|-iso path : /root/iso/debian-9.3.0-amd64-netinst.iso
boot from : cd0
hostbridge : hostbridge
uefi : none
auto boot : yes
|-index : 2
|-time : 15 sec.
nic interface : e1000
nic numbers : 1
nic_0
|-network mode : NAT
|-wan : em0
|-gateway : nat2 [GW 192.168.1.1/24]
|-redirect : disable
|-bridge : bridge1
|-tap : vmnet1
|-ip : 192.168.1.10/24
status : off
lock : no
crypt : no
问题 4: 如何启动虚拟机?
问题 5: 什么是虚拟机自动启动,如何使用?
答: 虚拟机自动启动意味着在系统启动时自动启动虚拟机。例如:有两个虚拟机,vm1和vm2,其中vm1是一个数据库服务器,vm2是一个依赖于vm1数据库服务的Web服务器,因此vm1必须在vm2之前启动。在vm1和vm2的配置中,有如下选项:
vm1的配置:
[8]. auto boot : yes
[9]. boot index : 1
[a]. boot time : 60
vm2的配置:
[8]. auto boot : yes
[9]. boot index : 2
[a]. boot time : 15
其中[8]表示自动启动,[9]表示启动顺序,[a]表示启动延迟。
这意味着vm2将在vm1启动60秒后启动,如果有一个vm3,它的启动时间取决于vm2的启动时间值。
要正确使用此选项,请将以下内容添加到启动脚本中:
sysrc bvmd_enable=yes
当系统启动时,将自动启动所有设置为自动启动的虚拟机,或者可以使用以下命令手动启动:
bvm --autoboot
你也可以随时检查自动启动虚拟机的设置情况:
bvm --abinfo
示例输出:
---------------------------------
idx vm time(sec)
---------------------------------
1 freebsd 18
2 debian 15
答: 虚拟机自动启动意味着在系统启动时自动启动虚拟机。例如:有两个虚拟机,vm1和vm2,其中vm1是一个数据库服务器,vm2是一个依赖于vm1数据库服务的Web服务器,因此vm1必须在vm2之前启动。在vm1和vm2的配置中,有如下选项:
vm1的配置:
[8]. auto boot : yes
[9]. boot index : 1
[a]. boot time : 60
vm2的配置:
[8]. auto boot : yes
[9]. boot index : 2
[a]. boot time : 15
其中[8]表示自动启动,[9]表示启动顺序,[a]表示启动延迟。
这意味着vm2将在vm1启动60秒后启动,如果有一个vm3,它的启动时间取决于vm2的启动时间值。
要正确使用此选项,请将以下内容添加到启动脚本中:
sysrc bvmd_enable=yes
当系统启动时,将自动启动所有设置为自动启动的虚拟机,或者可以使用以下命令手动启动:
bvm --autoboot
你也可以随时检查自动启动虚拟机的设置情况:
bvm --abinfo
示例输出:
---------------------------------
idx vm time(sec)
---------------------------------
1 freebsd 18
2 debian 15
问题 6: 如何关闭虚拟机?
问题 7: 如何查看虚拟机列表?
问题 8: 如何锁定虚拟机?
问题 9: 虚拟机加密和解密操作
问题 10: 如何查看虚拟机网络状态?
问题 11: 如何查看网络设备信息?
答: 可以使用以下命令查看网络设备信息:
bvm --showdev
bvm --showdevall
bvm --showdevuse
示例输出:
default-bridge
|-em0
|-c (nic1)
|-test (nic1)
nat0 [172.16.1.1/24]
|-ob (nic0)
|-c (nic0)
|-c11 (nic0)
|-c12 (nic0)
|-centos (nic0)
|-test (nic0)
|-freebsd-14 (nic0)
nat1 [10.10.30.1/24]
|-null
nat2 [192.168.1.1/24]
|-c2 (nic0)
|-debian (nic0)
switch0 [10.0.1.0/24]
|-null
switch1 [10.0.2.0/24]
|-null
switch2 [10.0.3.0/24]
|-null
switch3
|-null
switch4
|-null
switch5
|-null
switch6
|-null
switch7
|-null
default-bridge 是默认的虚拟机-主机桥接;nat0-nat2 是 3 个用于主机通信的保留 NAT 接口;switch0-switch7 是 8 个用于主机通信的保留虚拟机通信接口,它们也是桥接,但与默认桥接不同,主要用于内部网络,通常不包括主机的物理 NIC。
答: 可以使用以下命令查看网络设备信息:
bvm --showdev
bvm --showdevall
bvm --showdevuse
示例输出:
default-bridge
|-em0
|-c (nic1)
|-test (nic1)
nat0 [172.16.1.1/24]
|-ob (nic0)
|-c (nic0)
|-c11 (nic0)
|-c12 (nic0)
|-centos (nic0)
|-test (nic0)
|-freebsd-14 (nic0)
nat1 [10.10.30.1/24]
|-null
nat2 [192.168.1.1/24]
|-c2 (nic0)
|-debian (nic0)
switch0 [10.0.1.0/24]
|-null
switch1 [10.0.2.0/24]
|-null
switch2 [10.0.3.0/24]
|-null
switch3
|-null
switch4
|-null
switch5
|-null
switch6
|-null
switch7
|-null
default-bridge 是默认的虚拟机-主机桥接;nat0-nat2 是 3 个用于主机通信的保留 NAT 接口;switch0-switch7 是 8 个用于主机通信的保留虚拟机通信接口,它们也是桥接,但与默认桥接不同,主要用于内部网络,通常不包括主机的物理 NIC。
问题 12: bvm 支持哪些网络模式?
答: bvm 提供桥接和 NAT 模式,其中 3 个保留的 NAT 接口用于主机通信,8 个交换接口用于主机通信。管理员可以按需设置 NAT 网络 IP 地址,交换机通常不需要配置,除非在特殊情况下。
NAT 配置在 /usr/local/etc/bvm/nat.conf 中定义,如下所示:
nat0=172.16.1.1/24
nat1=10.10.30.1/24
nat2=192.168.1.1/24
交换机配置在 /usr/local/etc/bvm/switch.conf 中定义,如下所示:
switch0=10.0.1.0/24
switch1=10.0.2.0/24
switch2=10.0.3.0/24
switch3=
switch4=
switch5=
switch6=
switch7=
bvm 提供管理 NAT 和交换接口的命令:
查询命令:
bvm --natinfo
bvm --swinfo
设置命令:
bvm --setnat
bvm --setsw
bvm --unsetsw
添加命令:
bvm --addnat
bvm --addswitch
删除命令:
bvm --delnat
bvm --delswitch
答: bvm 提供桥接和 NAT 模式,其中 3 个保留的 NAT 接口用于主机通信,8 个交换接口用于主机通信。管理员可以按需设置 NAT 网络 IP 地址,交换机通常不需要配置,除非在特殊情况下。
NAT 配置在 /usr/local/etc/bvm/nat.conf 中定义,如下所示:
nat0=172.16.1.1/24
nat1=10.10.30.1/24
nat2=192.168.1.1/24
交换机配置在 /usr/local/etc/bvm/switch.conf 中定义,如下所示:
switch0=10.0.1.0/24
switch1=10.0.2.0/24
switch2=10.0.3.0/24
switch3=
switch4=
switch5=
switch6=
switch7=
bvm 提供管理 NAT 和交换接口的命令:
查询命令:
bvm --natinfo
bvm --swinfo
设置命令:
bvm --setnat
bvm --setsw
bvm --unsetsw
添加命令:
bvm --addnat
bvm --addswitch
删除命令:
bvm --delnat
bvm --delswitch
问题 13: 什么是端口转发?
答: 端口转发将内部虚拟机端口映射到主机端口,以实现虚拟机-主机通信。bvm 允许在虚拟机创建和配置期间设置端口转发。此外,bvm 支持动态端口转发,可以在不停止虚拟机的情况下添加/删除规则,使用以下命令:
bvm --setpr
bvm --showpr
例如,设置 IP 为 192.168.1.10 的虚拟机的端口转发:
bvm --setpr 192.168.1.10
你可以随时查看端口转发规则:
bvm --showpr
示例输出:
PROTO VM IP:PORT HOST PORT VM NAME
tcp 172.16.1.10:22 2224 freebsd-14
tcp 172.16.1.10:80 8080 freebsd-14
答: 端口转发将内部虚拟机端口映射到主机端口,以实现虚拟机-主机通信。bvm 允许在虚拟机创建和配置期间设置端口转发。此外,bvm 支持动态端口转发,可以在不停止虚拟机的情况下添加/删除规则,使用以下命令:
bvm --setpr
bvm --showpr
例如,设置 IP 为 192.168.1.10 的虚拟机的端口转发:
bvm --setpr 192.168.1.10
你可以随时查看端口转发规则:
bvm --showpr
示例输出:
PROTO VM IP:PORT HOST PORT VM NAME
tcp 172.16.1.10:22 2224 freebsd-14
tcp 172.16.1.10:80 8080 freebsd-14
问题 14: 如何查看 DHCP 客户端信息?
问题 15: 如何配置 DHCP?
问题 16: 如何查看虚拟机CPU、内存、网络流量等信息 ?
答: 使用 'bvm --showstats vmname' 命令查看虚拟机CPU、内存、网络流量等信息。
示例输出:
VM Configuration:
VM Name: ob
Allocated CPUs: 1
Allocated Memory: 128m
Storage Interface: ahci-hd
Network Interface: e1000
Process Runtime: 02:15:32
CPU Statistics:
CPU Runtime: 9m 45s
CPU Usage: 33.46%
Detailed Statistics:
- CPU Migrations: 1
- NMIs Delivered: 0
- ExtINTs Delivered: 0
Memory Usage:
Total Memory: 128m
Active Memory: 23.33 MB
Memory Usage: 0.02%
Network Traffic Statistics:
Nic 0 (vmnet0):
Received: 112.54 KB (1302 packets)
Transmitted: 316.48 KB (3345 packets)
Packet Loss Rate: 0.00%
答: 使用 'bvm --showstats vmname' 命令查看虚拟机CPU、内存、网络流量等信息。
示例输出:
VM Configuration:
VM Name: ob
Allocated CPUs: 1
Allocated Memory: 128m
Storage Interface: ahci-hd
Network Interface: e1000
Process Runtime: 02:15:32
CPU Statistics:
CPU Runtime: 9m 45s
CPU Usage: 33.46%
Detailed Statistics:
- CPU Migrations: 1
- NMIs Delivered: 0
- ExtINTs Delivered: 0
Memory Usage:
Total Memory: 128m
Active Memory: 23.33 MB
Memory Usage: 0.02%
Network Traffic Statistics:
Nic 0 (vmnet0):
Received: 112.54 KB (1302 packets)
Transmitted: 316.48 KB (3345 packets)
Packet Loss Rate: 0.00%