0. 前言:为什么必须懂 vzdump
Proxmox VE 自带备份工具 vzdump,WebUI 里点点鼠标就能跑,但——
• 默认设置往往把生产盘打到 90 % IO Util; • 快照失败时自动回退“挂起模式”,VM 会卡 5–30 s; • 多节点并行备份,NAS 直接被打穿。
把命令行参数、模式差异、节流手段三招练成三板斧,备份窗口缩短 50 %,业务零感知。
1. 命令行骨架一览
vzdump pvesh / REST API/var/log/vzdump/
最简可行备份
vzdump 100 --storage backup_nfs --mode snapshot --compress zstd
2. 快照模式 vs 挂起模式:一张表看懂
经验:数据库 VM 先打开 QGA + 快照模式;若备份失败日志出现 “snapshot failed: fs-freeze failed”,再手动改 suspend,别等自动回退。
3. 关键参数速查表(收藏级)
--mode--storage--compress--zstd-level--ionice-- bwlimit--node--pigz--exclude-path/mnt/cache/*--script/etc/vzdump/backup-hook.pl
4. 实战:零感知备份一条命令
场景:VM 101 是 MySQL 主库,800 GB,SSD 池,夜间 02:00 备份,不允许超过 60 MB/s。
vzdump 101 \
--mode snapshot \
--storage pbs_remote \
--compress zstd \
--zstd-level 3 \
--ionice 6 \
--bwlimit 61440 \
--quiet 1 \
--mail-to dba@xxx.com解释:
• ionice 6让备份进程排在 SSD 缓存之后;• bwlimit 61440≈ 60 MB/s,NAS 千兆口不堵;• quiet 1减少日志刷屏,搭配--mail-to失败才报警。
5. 并行备份 + 全局限速:xargs 组合拳
需求:一次 dump 10 台,但 NAS 总写带宽只有 150 MB/s。
# /root/batch-backup.sh
cat vm-list.txt | xargs -P 4 -I {} vzdump {} \
--mode snapshot \
--storage nas_backup \
--compress zstd \
--bwlimit 38400 \
--ionice 6• -P 4最多 4 并发,单任务 37.5 MB/s,总线 150 MB/s 封顶;• vm-list.txt每行一个 VMID,支持#注释。
6. 钩子脚本模板:备份前优雅刷表
/etc/vzdump/backup-hook.pl
#!/usr/bin/perl
if ($ENV{PHASE} eq 'backup-start') {
system("ssh mysql@$ENV{HOSTNAME} 'mysql -e \"SET GLOBAL innodb_flush_log_at_trx_commit=2\"'");
}
if ($ENV{PHASE} eq 'backup-end') {
system("ssh mysql@$ENV{HOSTNAME} 'mysql -e \"SET GLOBAL innodb_flush_log_at_trx_commit=1\"'");
}记得
chmod +x并在 vzdump 加--script /etc/vzdump/backup-hook.pl
7. 常见失败码与急救
snapshot failed: fs-freeze failedapt install qemu-guest-agenttimeout waiting on suspend--mode stop 或分片备份no space left on devicepvesm statusgot timeoutbwlimit,开 ionice 7
8. 性能调优 checklist(随手打钩)
• SSD 池开启 zstd+level 3,机械盘用lzo• 备份窗口前执行 pvesm prune清理旧链,避免边删边写• 10 GbE 环境把 bwlimit调到 0,ionice 保持 5 即可• Ceph 后端加 --tmpdir /tmp指向 NVMe,减少跨池读写的 scrub 冲击
9. 一行总结(背下来)
vzdump <VMID> --mode snapshot --storage <DST> --compress zstd --zstd-level 3 --ionice 6 --bwlimit <MB/s*1024>
把参数做成 Ansible 变量模板,从此备份窗口不再背锅。祝各位数据常青,vzdump 一路绿灯!
本文链接:https://kinber.cn/post/5723.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝:

支付宝微信扫一扫,打赏作者吧~
