PVE 虚拟机传输限速(迁移/磁盘移动/备份/复制)
⚠️重点单位:bwlimit = KiB/s(千字节)
换算:10240 KiB/s = 10 MiB/s,102400 = 100MB/s
1、全局集群限速(网页端,推荐)
- 左侧【数据中心 Datacenter】→【选项 Options】→【带宽限制 Bandwidth Limits】→【编辑】
migration:节点间虚拟机迁移(含热迁移、带本地盘迁移)move:磁盘跨存储移动clone:克隆虚拟机restore:备份恢复default:默认兜底限速
示例:迁移限制 20MB/s → 填入 20480
bwlimit: migration=20480,move=20480配置保存在 /etc/pve/datacenter.cfg,所有节点立刻生效,无需重启服务
2、单次迁移临时限速(CLI,单次生效,不改动全局)
在线热迁移,限制20MB/s(20480 KiB/s)
qm migrate 100 pek100-vms11 --online --bwlimit 20480
100= VMIDpek100-vms11目标节点名--bwlimit 0取消限速
补充:
migrate_speed是虚拟机内存热迁移限速,单位MB/s,写在单个VM配置里`bash
给VM100单独设置内存迁移上限15MB/s
qm set 100 –migrate_speed 15
## 3、存储层面限速(单独存储池)
编辑 `/etc/pve/storage.cfg`,给单个存储池增加bwlimit,只对这个存储生效lvmthin: local-lvm
thinpool data
vgname pve
content rootdir,images
bwlimit default=20480,migration=20480
## 4、备份 vzdump 限速
### 全局备份限速 /etc/vzdump.confbwlimit: 20480
单次备份限速:
```bash
vzdump 100 --bwlimit 204805、存储复制 pvesr(VM增量复制)
⚠️ 这个单位不一样:–rate 单位 MB/s
# 创建VM100复制任务,限速15MB/s
pvesr create-local-job 100-0 pek100-vms15 --schedule "*/5" --rate 15
网页端:虚拟机→复制,编辑任务直接填写速率
6、虚拟机磁盘IO限速(虚拟机内部读写,不是网络迁移)
限制虚拟机硬盘读写速度(虚拟机内部跑业务的磁盘上限,不是节点之间迁移网络)
# VM100,读写上限30MB/s
qm set 100 --mbps 30
# 分开设置读、写
qm set 100 --mbps_rd 30 --mbps_wr 20
✅ 给你的建议(当前集群心跳震荡场景)
你的集群心跳和业务共用vmbr0,迁移流量会抢占心跳包,直接加剧corosync成员震荡
- 全局设置迁移限速:
migration=10240(10MB/s),先低一点,保护集群心跳- 迁移尽量避开业务高峰;优先用CLI加
--bwlimit临时限速- 不要一边跑大迁移,一边调试集群网络
单位换算速查表
| 目标速度 | bwlimit(KiB/s) |
|---|---|
| 10 MB/s | 10240 |
| 20 MB/s | 20480 |
| 50 MB/s | 51200 |
| 100 MB/s | 102400 |
常见坑
- 区分:bwlimit(KiB/s) vs migrate_speed(MB/s) vs pvesr –rate(MB/s),单位很容易搞混
datacenter.cfg的migration只限制磁盘块迁移;内存热迁移由migrate_speed单独控制- 磁盘IO限速(–mbps)只管虚拟机内部读写,不控制跨节点迁移网络
作者:月影鹏鹏 创建时间:2026-10-04 00:30
最后编辑:月影鹏鹏 更新时间:2026-10-04 00:30
最后编辑:月影鹏鹏 更新时间:2026-10-04 00:30