本文目录导读:

- 使用专业备份软件(推荐的方法)
- 使用 Linux 自带工具(如 rsync、dd)
- 使用 Windows 系统工具
- 云存储 / 备份服务(如 AWS、Azure、阿里云)
- 使用网络设备(硬件限速)
- 总结与最佳实践
设置备份的带宽和 I/O(输入/输出)限制,具体方法取决于你使用的备份软件(如 Veeam、Acronis、Bacula 等)、操作系统工具(如 rsync、dd)或云服务(如 AWS、Azure)。
以下是几种常见场景的设置方法:
使用专业备份软件(推荐的方法)
大多数企业级备份软件都内置了限速功能,这是最稳定、最推荐的方式。
- Veeam Backup & Replication:
- 带宽限制: 在“网络流量规则”(Network Traffic Rules)中设置,你可以根据时间段(如工作时间限速,夜间不限速)和备份仓库创建规则,限制源端到目标端的网络吞吐量(5 MB/s)。
- 存储 I/O 限制: Veeam 有“存储级限制”(Storage-Level Corruption Guard 或 虚拟机磁盘I/O限制),通常通过调整“任务并发数”或“读写请求大小”来间接控制 I/O 负载。
- Acronis Cyber Protect / True Image:
- 带宽限制: 在“设置” -> “网络连接” -> “备份速度限制”中,可以设置“下载速度限制”和“上传速度限制”(单位:Kbps 或 Mbps)。
- CPU/磁盘限制: Acronis 通常在任务属性中提供“资源消耗”选项,允许降低备份进程的优先级或限制其使用的 CPU 核心数,从而间接影响 I/O。
- Veeam Agent for Windows/Linux (免费版):
- 命令行方式: 通过
Set-VBRBackupQueue或修改注册表(Windows)来限制网络传输速度,Linux 端可通过ionice和tc命令结合使用。
- 命令行方式: 通过
使用 Linux 自带工具(如 rsync、dd)
如果使用脚本或命令行工具,可以通过操作系统工具限制网络和 I/O。
-
限制网络带宽: 使用
trickle命令(需安装)。# 限制上传速度为 100 KB/s trickle -s -u 100 rsync -av /data/ user@remote:/backup/ # 限制下载速度为 500 KB/s trickle -d 500 -u 100 /path/to/backup_script.sh
-
限制磁盘 I/O: 使用
ionice命令。# 将备份进程的 I/O 优先级设为“空闲”(Background, 只在进行空闲I/O时运行) ionice -c 3 dd if=/dev/sda of=/mnt/backup.img bs=4M # 设置为“尽力而为”中的低优先级 (class 2, priority 7) ionice -c 2 -n 7 rsync -av /source/ /destination/
注:
ionice主要控制磁盘读写优先级,而非绝对速度。
使用 Windows 系统工具
- 限制网络带宽 (系统级): 通过 PowerShell 设置
New-NetQosPolicy策略,限制 rsync.exe 进程的带宽:New-NetQosPolicy -Name "BackupLimit" -AppPathNameMatchCondition "rsync.exe" -ThrottleRateActionBitsPerSecond 10MB
- 限制磁盘 I/O (进程级): 通过“资源监视器”(Resmon.exe)可以手动限制某个进程的 CPU 和磁盘请求,但无法精确到固定 MB/s,主要靠降低优先级,更专业的做法是用工具如 Process Lasso 来限制进程的 I/O 优先级。
云存储 / 备份服务(如 AWS、Azure、阿里云)
- AWS S3 / Glacier:
- 网络: 无直接“限速”选项,但可以设置 ACL(访问控制)或 IAM 策略来限制单个请求的速率(Rate Limiting),或使用 AWS CLI 时配合
--endpoint-url和--cli-read-timeout参数,更常用的是使用AWS DataSync或S3 Transfer Acceleration,但限速仍需配合客户端工具(如trickle)。
- 网络: 无直接“限速”选项,但可以设置 ACL(访问控制)或 IAM 策略来限制单个请求的速率(Rate Limiting),或使用 AWS CLI 时配合
- 阿里云 OSS:
- 网络: OSS SDK 或 ossutil 工具支持
-L option限制每秒最大流量。./ossutil cp -r localfolder/ oss://bucket/remotepath/ --limit-speed 10M # 限制速度为 10 MB/s
- 网络: OSS SDK 或 ossutil 工具支持
- Azure Backup:
- 网络: 在恢复服务保管库的设置中,有“网络带宽”选项,可以限制从 Azure 到本地的下载速度,以及上传到 Azure 的速度,通常以工作时间为界限进行智能限制。
使用网络设备(硬件限速)
- 如果你的备份服务运行在物理服务器上,并且你有管理交换机或路由器的权限,可以通过 QoS(服务质量)规则 对特定 IP 地址、端口或协议进行带宽限制,限制备份服务器 IP 在 TCP 873端口(rsync)上的最大带宽。
总结与最佳实践
- 首选软件内设: 90% 的情况下,直接使用备份软件自带的“网络流量控制”或“资源限制”功能最方便、最稳定。
- 区分“带宽”和“I/O”:
- 带宽限制 主要针对网络流量(上传/下载速度),常见工具:
trickle(Linux), 备份软件设置。 - I/O 限制 主要针对磁盘读写速度,常见工具:
ionice(Linux), 资源监视器 (Windows)。
- 带宽限制 主要针对网络流量(上传/下载速度),常见工具:
- 设置合理的阈值:
- 不要设置得太死(1 MB/s),否则备份速度会极慢。
- 建议参考:网络带宽占用不超过可用带宽的 60%,磁盘 I/O 占用不超过峰值 70%。
- 配合计划任务: 最好只在业务高峰期(如 9:00-18:00)开启限制,低谷期(夜间)取消限制,让备份跑更快。
如果需要针对某个具体的备份软件(Sysinternals、Bacula、BorgBackup)或操作系统版本给出更详细的命令,请告诉我。