开始输入,可搜索发票、服务、域名、工单,以及 更多...
在独立服务器上用 Proxmox VE 运行虚拟机或出售 VPS,Proxmox VE 备份与快照是必须提前规划的工作:误删文件、系统升级失败、被入侵都需要靠它们恢复。本文介绍 vzdump 的三种备份模式、如何创建定时备份任务、用 qmrestore / pct restore 恢复、快照和备份的区别、Proxmox Backup Server 的作用,以及备份存储空间怎么规划。适用于 Proxmox VE 7.x / 8.x,命令在宿主机 root 下执行。
默认的 local 存储(目录 /var/lib/vz)可以存放备份文件,local-lvm 用于虚拟机磁盘但不能存备份。先看看各存储剩余空间和现有虚拟机:
pvesm status
df -h /var/lib/vz
qm list
pct list
ls -lh /var/lib/vz/dump/
vzdump 是 PVE 自带的备份工具,三种模式区别如下:
# one VM, live, zstd compressed, to storage "local"
vzdump 100 --mode snapshot --storage local --compress zstd
# one container, suspend mode
vzdump 101 --mode suspend --storage local --compress zstd
# stop mode: most consistent, guest is shut down during backup
vzdump 102 --mode stop --storage local --compress zstd
# all guests on this node, with a note
vzdump --all --mode snapshot --storage local --compress zstd --notes-template '{{guestname}} manual'
推荐使用 zstd 压缩,速度快、压缩率高。备份文件默认保存在 /var/lib/vz/dump/,VM 为 .vma.zst,容器为 .tar.zst。
网页后台进入“数据中心 → 备份 → 添加”即可图形化创建任务:选择节点、存储、计划时间、模式、压缩方式,在“保留”中设置保留份数。也可以用命令创建,效果相同:
# every day 02:30, all guests, keep 7 daily + 4 weekly
pvesh create /cluster/backup --schedule '02:30' --all 1 \
--storage local --mode snapshot --compress zstd \
--prune-backups keep-daily=7,keep-weekly=4 --enabled 1
pvesh get /cluster/backup
# preview when a schedule will run
systemd-analyze calendar '02:30'
prune-backups 决定自动清理旧备份的规则,例如 keep-daily=7,keep-weekly=4 表示保留最近 7 天每天一份和最近 4 周每周一份。不设置保留策略,备份会一直累积直到磁盘写满。
恢复时建议优先恢复到一个新的 VM ID,确认数据无误后再切换,避免覆盖掉原机。如果确定要覆盖,需要先停机并加 --force 1:
# list backup files on a storage
pvesm list local --content backup
# restore a VM backup to a NEW id 120 on local-lvm
qmrestore /var/lib/vz/dump/vzdump-qemu-100-2026_10_01-02_30_00.vma.zst 120 --storage local-lvm
# overwrite the existing VM 100 (VM must be stopped)
qm stop 100
qmrestore /var/lib/vz/dump/vzdump-qemu-100-2026_10_01-02_30_00.vma.zst 100 --force 1
# restore a container backup
pct restore 121 /var/lib/vz/dump/vzdump-lxc-101-2026_10_01-02_30_00.tar.zst --storage local-lvm
快照记录的是某一时刻的磁盘(可选内存)状态,创建和回滚都只需几秒,适合在升级系统、修改配置前“留后路”。但快照和原盘存放在同一存储上,硬盘损坏时一起丢失,而且长期保留会占用越来越多空间、拖慢磁盘性能。所以:快照用于短期回退,备份用于真正的数据保护,两者不能互相替代。
# take a snapshot before an upgrade (add --vmstate 1 to include RAM)
qm snapshot 100 before_upgrade --description "before apt full-upgrade"
qm listsnapshot 100
# roll back if something breaks
qm rollback 100 before_upgrade
# delete it when no longer needed
qm delsnapshot 100 before_upgrade
# containers use pct
pct snapshot 101 before_upgrade
pct rollback 101 before_upgrade
快照要求存储支持,例如 LVM-thin、ZFS、Ceph 或目录存储上的 qcow2 格式;普通 LVM 或 raw 格式不支持快照。
Proxmox Backup Server(PBS)是官方的专用备份服务器,支持增量备份、数据去重、加密与校验,同一台虚拟机每天备份时只传输变化的数据块,占用空间和备份时间都远小于 vzdump 全量文件。通常把 PBS 部署在另一台服务器或另一个机房,然后在 PVE“数据中心 → 存储 → 添加 → Proxmox Backup Server”中填写地址、数据存储名、用户和指纹即可使用。
# after adding the PBS storage in Datacenter -> Storage, check it
pvesm status
# back up to it like any other storage (named "pbs1" here)
vzdump 100 --mode snapshot --storage pbs1
空间规划可按经验估算:vzdump 全量备份大小约为虚拟机已用数据量 × 压缩比(zstd 通常为 0.4–0.7),乘以保留份数,再预留 20% 余量。例如 10 台已用 20GB 的虚拟机保留 7 份,约需 10 × 20 × 0.6 × 7 ≈ 840GB。使用 PBS 去重后通常会少很多。
说明虚拟机选项里启用了 QEMU Guest Agent 但系统内没有运行。在虚拟机内安装并启动 qemu-guest-agent(Debian/Ubuntu 用 apt,CentOS/Rocky/AlmaLinux 用 dnf),或者在 PVE 中关闭该选项。
先在备份任务里设置合理的保留策略,再手动删除 /var/lib/vz/dump/ 中不再需要的旧备份(删除前请确认),或把备份目标改到独立的数据盘或 PBS。
不建议。快照依赖原存储,硬盘故障、存储损坏或误删虚拟机时快照会一起消失,至少应保留一份存放在其他磁盘或其他服务器的备份。
如仍无法解决,可提交工单联系 IMIDC 7×24 技术支持:https://www.imidc.com/submitticket.php