SYNOPSIS
vzdump help
vzdump {<vmid>} [OPTIONS]
创建备份。
- <vmid>: <string>
-
要备份的客户系统 ID。
- --all <boolean> (default = 0)
-
备份此主机上所有已知的客户系统。
- --bwlimit <integer> (0 - N) (default = 0)
-
限制 I/O 带宽(单位为 KiB/s)。
- --compress <0 | 1 | gzip | lzo | zstd> (default = 0)
-
压缩转储文件。
- --dumpdir <string>
-
将生成的文件存储到指定目录。
- --exclude <string>
-
排除指定的客户系统(假定使用 --all)
- --exclude-path <array>
-
排除特定文件/目录(shell glob)。以 / 开头的路径锚定到容器根目录,其他路径相对于每个子目录进行匹配。
- --fleecing [[enabled=]<1|0>] [,storage=<storage ID>]
-
backup fleecing 的选项(仅 VM)。
- --ionice <integer> (0 - 8) (default = 7)
-
使用 BFQ 调度器时设置 IO 优先级。对于 VM 的 snapshot 和 suspend 模式备份,这只影响压缩器。值为 8 表示使用 idle 优先级,否则使用带指定数值的 best-effort 优先级。
- --job-id \S+
-
备份作业的 ID。如果设置,备份通知的 backup-job 元数据字段将设置为该值。只有 root@pam 可以设置此参数。
- --lockwait <integer> (0 - N) (default = 180)
-
等待全局锁的最长时间(分钟)。
- --mailnotification <always | failure> (default = always)
-
已弃用:请改用通知目标/匹配器。指定何时发送通知邮件
- --mailto <string>
-
已弃用:请改用通知目标/匹配器。应接收电子邮件通知的电子邮件地址或用户的逗号分隔列表。
- --maxfiles <integer> (1 - N)
-
已弃用:请改用 prune-backups。每个客户系统的最大备份文件数。
- --mode <snapshot | stop | suspend> (default = snapshot)
-
备份模式。
- --node <string>
-
仅在此节点上执行时运行。
- --notes-template <string>
-
用于为备份生成备注的模板字符串。它可以包含变量,这些变量会被相应值替换。目前支持 {\{\cluster}}、{\{\guestname}}、{\{\node}} 和 {\{\vmid}},未来可能会加入更多变量。必须为单行,换行符和反斜杠需要分别转义为 \n 和 \\。
需要选项:storage - --notification-mode <auto | legacy-sendmail | notification-system> (default = auto)
-
确定使用哪种通知系统。如果设置为 legacy-sendmail,vzdump 会考虑 mailto/mailnotification 参数,并通过 sendmail 命令向指定地址发送电子邮件。如果设置为 notification-system,将通过 PVE 的通知系统发送通知,并忽略 mailto 和 mailnotification。如果设置为 auto(默认设置),则在设置 mailto 时发送电子邮件,否则使用通知系统。
- --notification-policy <always | failure | never> (default = always)
-
已弃用:不要使用
- --notification-target <string>
-
已弃用:不要使用
- --pbs-change-detection-mode <data | legacy | metadata>
-
用于检测文件变化并切换容器备份编码格式的 PBS 模式。
- --performance [max-workers=<integer>] [,pbs-entries-max=<integer>]
-
其他与性能相关的设置。
- --pigz <integer> (default = 0)
-
当 N>0 时使用 pigz 而不是 gzip。N=1 使用一半核心,N>1 使用 N 作为线程数。
- --pool <string>
-
备份指定池中包含的所有已知客户系统。
- --protected <boolean>
-
如果为 true,将备份标记为受保护。
需要选项:storage - --prune-backups [keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>] (default = keep-all=1)
-
使用这些保留选项,而不是存储配置中的保留选项。
- --quiet <boolean> (default = 0)
-
减少输出。
- --remove <boolean> (default = 1)
-
根据 prune-backups 清理较旧的备份。
- --script <string>
-
使用指定的 hook 脚本。
- --stdexcludes <boolean> (default = 1)
-
排除临时文件和日志。
- --stdout <boolean>
-
将 tar 写入 stdout,而不是写入文件。
- --stop <boolean> (default = 0)
-
停止此主机上正在运行的备份作业。
- --stopwait <integer> (0 - N) (default = 10)
-
等待客户系统停止的最长时间(分钟)。
- --storage <storage ID>
-
将生成的文件存储到此存储。
- --tmpdir <string>
-
将临时文件存储到指定目录。
- --zstd <integer> (default = 1)
-
Zstd 线程数。N=0 使用一半可用核心;如果 N 设置为大于 0 的值,则将 N 用作线程数。
DESCRIPTION
备份是任何合理 IT 部署的必要组成部分,Proxmox VE 提供了一个完全集成的解决方案, 可利用各类存储和各类客户机系统的能力。这允许系统管理员通过 mode 选项, 在备份一致性和客户机系统停机时间之间进行精细权衡。
Proxmox VE 备份始终是完整备份,包含 VM/CT 配置和所有数据。备份可以通过 GUI 启动,也可以通过 vzdump 命令行工具启动。
运行备份之前,必须先定义备份存储。有关如何添加存储,请参见 storage documentation。备份存储可以是 Proxmox Backup Server 存储,此时备份会以去重数据块和元数据的形式保存;也可以是文件级存储, 此时备份会作为普通文件保存。由于 Proxmox Backup Server 具备高级功能, 建议在专用主机上使用它。使用 NFS 服务器也是一个不错的替代方案。在这两种 情况下,之后都可能需要将这些备份保存到磁带驱动器,以便异地归档。
可以为备份作业设置计划,使其在指定日期和时间自动执行,并可选择节点和 客户机系统。更多信息请参见 备份作业 一节。
备份模式
根据客户机类型,可以通过多种方式提供一致性(选项 mode)。
- stop mode
-
该模式提供最高的备份一致性,代价是虚拟机运行会有短暂停机。其工作方式是先 对虚拟机执行有序关机,然后运行后台 QEMU 进程备份虚拟机数据。备份开始后, 如果虚拟机之前处于运行状态,它会恢复到完整运行模式。通过使用实时备份功能 保证一致性。
- suspend mode
-
该模式出于兼容性原因提供,会在调用 snapshot 模式之前挂起虚拟机。由于挂起 虚拟机会导致更长停机时间,并且不一定改善数据一致性,因此建议改用 snapshot 模式。
- snapshot mode
-
该模式提供最低的运行停机时间,代价是存在较小的一致性风险。其工作方式是执行 Proxmox VE 实时备份,即在虚拟机运行期间复制数据块。如果启用并运行了 guest agent (agent: 1),它会调用 guest-fsfreeze-freeze 和 guest-fsfreeze-thaw 以提高一致性。
对于 Windows 客户机,如果客户机内部还使用其他备份软件,则必须配置 guest agent。更多详情请参见 guest agent 章节中的 Freeze & Thaw。
可在线查看 QemuServer 的 Proxmox VE 实时备份技术概览: here。
|
|
Proxmox VE 实时备份可在任何存储类型上提供类似快照的语义。它不要求底层存储 支持快照。另请注意,由于备份通过后台 QEMU 进程完成,当 QEMU 读取虚拟机磁盘 时,已停止的虚拟机会在短时间内显示为正在运行。但虚拟机本身并未启动, 只是其磁盘被读取。 |
- stop mode
-
在备份期间停止容器。这可能导致很长的停机时间。
- suspend mode
-
该模式使用 rsync 将容器数据复制到临时位置(见选项 --tmpdir)。随后挂起容器, 并由第二次 rsync 复制已更改文件。之后再次启动(恢复)容器。这样停机时间最短, 但需要额外空间保存容器副本。
当容器位于本地文件系统上,而备份目标存储是 NFS/CIFS 服务器时,也应将 --tmpdir 设置在本地文件系统上,因为这会带来数倍性能提升。如果备份存储是 NFS 服务器,并且要在 suspend 模式下备份使用 ACL 的本地容器,也必须使用本地 tmpdir。
- snapshot mode
-
该模式使用底层存储的快照设施。首先会挂起容器以确保数据一致性。随后为容器卷 创建临时快照,并将快照内容归档到 tar 文件中。最后再次删除临时快照。
|
|
snapshot 模式要求所有被备份卷都位于支持快照的存储上。可以使用 backup=no 挂载点选项将单个卷排除在备份之外(因此也排除该要求)。 |
|
|
默认情况下,除 Root Disk 挂载点外的其他挂载点不会包含在备份中。 对于卷挂载点,可以设置 Backup 选项将该挂载点纳入备份。设备挂载和绑定挂载 永远不会被备份,因为其内容在 Proxmox VE 存储库之外管理。 |
虚拟机备份 Fleecing
启动虚拟机备份时,QEMU 会在其块层安装一个 "copy-before-write" 过滤器。该过滤器 确保在客户机发生新写入时,备份仍需要的旧数据会先发送到备份目标。客户机写入会 阻塞,直到该操作完成,因此对尚未备份扇区的客户机 IO 会受备份目标速度限制。
使用 backup fleecing 时,这类旧数据会缓存在 fleecing 镜像中,而不是直接发送到 备份目标。这有助于提升客户机 IO 性能,在某些场景下甚至可以避免卡住,代价是 需要更多存储空间。
要手动启动虚拟机 123 的备份,并在存储 local-lvm 上创建 fleecing 镜像, 请运行:
vzdump 123 --fleecing enabled=1,storage=local-lvm
和往常一样,可以为特定备份作业设置该选项,也可以通过 配置选项 设置为节点范围的默认选项。 在 UI 中,编辑备份作业时可在 Advanced 选项卡中配置 fleecing。
fleecing 存储应是快速的本地存储,并支持精简置备和 discard。例如 LVM-thin、RBD、 存储配置中带 sparse 1 的 ZFS,以及许多基于文件的存储。理想情况下, fleecing 存储应为专用存储,这样即使它被写满,也不会影响其他客户机,只会导致 备份失败。fleecing 镜像中已经备份的部分会被 discard,以尽量降低空间使用量。
对于不支持 discard 的基于文件的存储(例如 4.2 之前版本的 NFS),应在存储配置中 设置 preallocation off。配合 qcow2 使用时(当存储支持时会自动作为 fleecing 镜像格式使用),其优势是镜像中已分配的部分之后可以复用,仍可帮助 节省不少空间。
|
|
在非精简置备的存储上,例如未使用 sparse 选项的 LVM 或 ZFS, 需要预先为 fleecing 镜像保留与原始磁盘相同的完整大小。在精简置备存储上, 只有当备份正忙于另一块磁盘且客户机重写整块磁盘时,fleecing 镜像才可能增长到 与原始镜像相同的大小。 |
CT 变更检测模式
设置变更检测模式会定义 pxar 归档的编码格式,以及在以 Proxmox Backup Server 作为目标的容器备份中如何处理已变更和未变更的文件。
编辑作业时,可以在 Advanced 选项卡中为单个备份作业配置变更检测模式选项。 此外,也可以通过 配置选项 将该选项设置为 节点范围的默认选项。
有 3 种可用的变更检测模式:
| 模式 | 描述 |
|---|---|
Default |
读取并编码所有文件到单个归档中,使用 pxar 格式版本 1。 |
Data |
读取并编码所有文件,但将数据和元数据拆分到独立流中,使用 pxar 格式版本 2。 |
Metadata |
与 Data 一样拆分流并使用归档格式版本 2,但会使用上一个快照的元数据归档 (如果存在)来检测未变更文件,并在可能时复用其数据块,而不从磁盘读取文件内容。 |
要使用变更检测模式 metadata 执行备份,可以运行:
vzdump 123 --storage pbs-storage --pbs-change-detection-mode metadata
|
|
虚拟机备份,或目标为 Proxmox Backup Server 以外存储后端的备份, 不受该设置影响。 |
备份文件名
较新版本的 vzdump 会将客户机类型和备份时间编码到文件名中,例如:
vzdump-lxc-105-2009_10_09-11_04_43.tar
这样就可以在同一目录中存储多个备份。可以通过各种保留选项限制保留的备份数量, 请参见下面的 Backup Retention 一节。
备份文件压缩
备份文件可以使用以下算法之一压缩:lzo
[Lempel–Ziv–Oberhumer a lossless data compression algorithm
LZO]
、gzip
[gzip -
based on the DEFLATE algorithm gzip]
或 zstd
[Zstandard a lossless data compression algorithm
Zstandard]
。
目前,Zstandard(zstd)是这三种算法中最快的。相较于 lzo 和 gzip,zstd 的另一个优势是支持多线程。Lzo 和 gzip 使用更广泛,也通常默认安装。
可以安装 pigz
[pigz - parallel implementation of gzip
https://zlib.net/pigz/]
作为 gzip 的直接替代品,以通过多线程提供更好性能。
对于 pigz 和 zstd,可以调整线程/核心数量。请参见下面的
配置选项。
通常可以通过备份文件名的扩展名判断创建该备份时使用的压缩算法。
.zst |
Zstandard (zstd) 压缩 |
.gz or .tgz |
gzip 压缩 |
.lzo |
lzo 压缩 |
如果备份文件名不是以上述文件扩展名之一结尾,则它不是由 vzdump 压缩的。
备份加密
对于 Proxmox Backup Server 存储,可以选择设置备份的客户端加密,请参见 相应章节。
备份作业
除了手动触发备份,也可以设置周期性作业,将所有或选定的虚拟客户机备份到存储。 可以在 UI 的 Datacenter → Backup 下管理作业,也可以通过 /cluster/backup API 端点管理。两种方式都会在 /etc/pve/jobs.cfg 中生成 作业条目,并由 pvescheduler 守护进程解析和执行。
作业可以配置为面向所有集群节点或某个特定节点,并按照给定计划执行。计划格式 与 systemd calendar events 非常相似,详情请参见 calendar events 一节。UI 中的 Schedule 字段 可以自由编辑,其下拉列表包含多个可作为起点的示例。
如果主机在计划时间离线,或 pvescheduler 在计划时间被禁用,计划备份就会错过 执行。因此可以配置补执行行为。启用 Repeat missed 选项(UI 中的 Advanced 选项卡,配置中为 repeat-missed)后,可告知调度器尽快运行错过的作业。
有一些设置可用于调优备份性能(其中部分在 UI 的 Advanced 选项卡中公开)。 最重要的是用于限制 IO 带宽的 bwlimit。压缩器使用的线程数量可分别通过 pigz(替代 gzip)和 zstd 设置控制。此外还有 ionice(使用 BFQ 调度器时), 以及作为 performance 设置一部分的 max-workers(仅影响虚拟机备份)和 pbs-entries-max(仅影响容器备份)。详情请参见 配置选项。
备份保留
通过 prune-backups 选项,可以灵活指定要保留哪些备份。
- keep-all <boolean>
-
保留所有备份。如果该值为 true,则不能设置其他选项。
- keep-last <N>
-
保留最后 <N> 个备份。
- keep-hourly <N>
-
保留最近 <N> 小时的备份。如果单个小时内有多个备份,则只保留最新的一个。
- keep-daily <N>
-
保留最近 <N> 天的备份。如果单日内有多个备份,则只保留最新的一个。
- keep-weekly <N>
-
保留最近 <N> 周的备份。如果单周内有多个备份,则只保留最新的一个。
|
|
一周从星期一开始,到星期日结束。软件使用 ISO week date 系统,并能 正确处理年末周。 |
- keep-monthly <N>
-
保留最近 <N> 个月的备份。如果单月内有多个备份,则只保留最新的一个。
- keep-yearly <N>
-
保留最近 <N> 年的备份。如果单年内有多个备份,则只保留最新的一个。
保留选项会按上述顺序处理。每个选项只覆盖其时间范围内的备份。下一个选项不会 处理已经覆盖的备份,只会考虑更早的备份。
将要使用的保留选项指定为逗号分隔列表,例如:
# vzdump 777 --prune-backups keep-last=3,keep-daily=13,keep-yearly=9
虽然可以将 prune-backups 直接传递给 vzdump,但通常更合理的做法是在存储层级 配置该设置,这可以通过 Web 界面完成。
|
|
旧的 maxfiles 选项已弃用,应替换为 keep-last;如果 maxfiles 为 0 表示无限保留,则应替换为 keep-all。 |
Prune 模拟器
可以使用 Proxmox Backup Server 文档中的 prune simulator,探索不同备份计划下各种保留选项的效果。
保留设置示例
备份频率和旧备份保留时间可能取决于特定工作负载中数据变更频率,以及较旧状态的 重要性。当备份作为公司的文档归档时,还可能存在关于备份必须保留多长时间的 法律要求。
在本示例中,假设每天执行备份,保留周期为 10 年,并且已保存备份之间的时间间隔 逐渐增大。
keep-last=3 - 即使只执行每日备份,管理员也可能希望在重大升级前后额外创建 一个备份。设置 keep-last 可以确保这一点。
keep-hourly 未设置 - 对于每日备份而言这并不相关。通过 keep-last 已经覆盖了 额外的手动备份。
keep-daily=13 - 与至少覆盖一天的 keep-last 一起使用,可确保至少拥有两周备份。
keep-weekly=8 - 确保至少拥有完整两个月的每周备份。
keep-monthly=11 - 与前面的 keep 设置一起使用,可确保至少拥有一年的每月备份。
keep-yearly=9 - 这是用于长期归档的设置。由于前面的选项已经覆盖当前年份, 因此可将其设置为 9 来覆盖剩余年份,从而总计至少覆盖 10 年。
建议使用高于环境最低要求的保留周期;如果发现保留周期不必要地过高,随时可以 降低,但备份一旦被移除,就无法重新创建。
备份保护
可以将备份标记为 protected 以防止其被移除。尝试通过 Proxmox VE 的 UI、CLI 或 API 移除受保护备份会失败。但是,这是由 Proxmox VE 强制执行的,而不是文件系统本身; 这意味着任何对底层备份存储具有写访问权限的人,仍然可以手动删除备份文件本身。
|
|
受保护备份会被 pruning 忽略,并且不计入保留设置。 |
对于基于文件系统的存储,保护通过 sentinel 文件 <backup-name>.protected 实现。 对于 Proxmox Backup Server,该保护在服务器端处理(自 Proxmox Backup Server 版本 2.1 起可用)。
使用存储选项 max-protected-backups 控制每个客户机在该存储上允许多少个受保护 备份。使用 -1 表示无限制。默认情况下,对具有 Datastore.Allocate 权限的用户 无限制,对其他用户为 5。
还原
备份归档可以通过 Proxmox VE Web GUI 还原,也可以通过以下 CLI 工具还原:
- pct restore
-
容器还原工具
- qmrestore
-
虚拟机还原工具
详情请参见相应手册页。
带宽限制
还原一个或多个大型备份可能需要大量资源,尤其是从备份存储读取以及写入目标存储 所需的存储带宽。这可能会对其他虚拟客户机产生负面影响,因为存储访问可能拥塞。
为避免这种情况,可以为备份作业设置带宽限制。Proxmox VE 为还原和归档实现了两种限制:
-
每个还原任务限制:表示从备份归档读取时的最大带宽
-
每个存储写入限制:表示写入特定存储时使用的最大带宽
读取限制会间接影响写入限制,因为写入量不能超过读取量。较小的每作业限制会覆盖 较大的每存储限制。只有当用户在受影响存储上拥有 ‘Data.Allocate’ 权限时, 较大的每作业限制才会覆盖每存储限制。
可以使用还原 CLI 命令中的 ‘--bwlimit <integer>` 选项,为特定还原作业设置带宽 限制。限制单位为 KiB/s,这意味着传入 `10240’ 会将备份读取速度限制为 10 MiB/s, 从而确保其余可用存储带宽留给已经运行的虚拟客户机,避免备份影响其运行。
|
|
可以为 ‘bwlimit` 参数使用 0,以禁用某个特定还原作业的所有限制。 如果需要尽快还原非常重要的虚拟客户机,这会很有帮助。(需要在存储上拥有 `Data.Allocate’ 权限) |
大多数情况下,存储通常可用的带宽会随时间保持稳定,因此系统实现了按已配置存储 设置默认带宽限制的能力,可以通过以下命令完成:
# pvesm set STORAGEID --bwlimit restore=KIBs
实时还原(Live-Restore)
还原大型备份可能需要很长时间,在此期间客户机仍不可用。对于存储在 Proxmox Backup Server 上的虚拟机备份,可以使用 live-restore 选项缓解该等待时间。
通过 GUI 中的复选框或 qmrestore 的 --live-restore 参数启用 live-restore 后, 虚拟机会在还原开始后立即启动。数据会在后台复制,并优先复制虚拟机正在主动访问的 数据块。
注意,这有两个限制:
-
在 live-restore 期间,虚拟机的磁盘读取速度会受限,因为数据必须从备份服务器 加载(但一旦加载完成,它会立即在目标存储上可用,因此同一数据第二次访问时 只会在第一次产生代价)。写入速度基本不受影响。
-
如果 live-restore 因任何原因失败,虚拟机会处于未定义状态,即并非所有数据都 可能已经从备份中复制,并且 很可能 无法保留失败还原操作期间写入的任何数据。
这种运行模式尤其适用于大型虚拟机,且初始运行只需要少量数据的场景,例如 Web 服务器。一旦 OS 和必要服务启动,虚拟机即可运行,同时后台任务继续复制较少使用的 数据。
单文件还原
存储 GUI 的 Backups 选项卡中的 File Restore 按钮可用于直接打开备份中所含 数据的文件浏览器。此功能仅适用于 Proxmox Backup Server 上的备份。
对于容器,文件树第一层会显示所有包含的 pxar 归档,可以自由打开和浏览。 对于虚拟机,第一层会显示包含的驱动器镜像;打开后会显示在驱动器上找到的受支持 存储技术列表。在最基本的情况下,会有一个名为 part 的条目,表示分区表, 其中包含驱动器上找到的每个分区条目。注意,对于虚拟机,并非所有数据都可能可访问 (不支持的客户机文件系统、存储技术等)。
可以使用 Download 按钮下载文件和目录;下载目录时会即时压缩为 zip 归档。
为了安全访问可能包含不可信数据的虚拟机镜像,系统会启动一个临时虚拟机(不会作为 客户机可见)。这并不意味着从此类归档下载的数据本身一定安全,但它避免了将 hypervisor 系统暴露于危险之中。该虚拟机会在超时后自行停止。从用户角度看, 整个过程是透明的。
|
|
为便于排错,每个临时虚拟机实例都会在 /var/log/proxmox-backup/file-restore/ 中生成日志文件。当尝试还原单个文件或 访问备份归档中包含的文件系统失败时,该日志文件可能包含附加信息。 |
配置
全局配置存储在 /etc/vzdump.conf。该文件使用简单的冒号分隔键/值格式。 每一行格式如下:
OPTION: value
文件中的空行会被忽略,以 # 字符开头的行会被视为注释并同样被忽略。该文件中的 值会作为默认值使用,并可在命令行上覆盖。
当前支持以下选项:
- bwlimit: <integer> (0 - N) (default = 0)
-
限制 I/O 带宽(单位 KiB/s)。
- compress: <0 | 1 | gzip | lzo | zstd> (default = 0)
-
压缩转储文件。
- dumpdir: <string>
-
将生成的文件保存到指定目录。
- exclude-path: <array>
-
排除指定文件/目录(shell glob)。以 / 开头的路径锚定到容器根目录,其他路径则相对于各个子目录匹配。
- fleecing: [[enabled=]<1|0>] [,storage=<storage ID>]
-
backup fleecing 选项(仅适用于虚拟机)。
- enabled=<boolean> (default = 0)
-
启用 backup fleecing。当客户机发生新写入时,将相关块的备份数据缓存在指定存储上,而不是直接复制到备份目标。这有助于提升客户机 I/O 性能,甚至避免卡顿,但代价是需要更多存储空间。
- storage=<storage ID>
-
使用该存储保存 fleecing 镜像。为了高效利用空间,最好使用支持 discard 且支持 thin provisioning 或 sparse file 的本地存储。
- ionice: <integer> (0 - 8) (default = 7)
-
使用 BFQ 调度器时设置 I/O 优先级。对于虚拟机的 snapshot 和 suspend 模式备份,该设置只影响压缩器。值为 8 表示使用 idle 优先级,否则使用带指定数值的 best-effort 优先级。
- lockwait: <integer> (0 - N) (default = 180)
-
等待全局锁的最长时间(分钟)。
- mailnotification: <always | failure> (default = always)
-
已弃用:请改用通知目标/匹配器。指定何时发送通知邮件。
- mailto: <string>
-
已弃用:请改用通知目标/匹配器。应接收电子邮件通知的电子邮件地址或用户,以逗号分隔。
- maxfiles: <integer> (1 - N)
-
已弃用:请改用 prune-backups。每个客户系统的最大备份文件数。
- mode: <snapshot | stop | suspend> (default = snapshot)
-
备份模式。
- notes-template: <string>
-
用于生成备份备注的模板字符串。可以包含变量,这些变量会被对应值替换。当前支持 {\{\cluster}}、{\{\guestname}}、{\{\node}} 和 {\{\vmid}},未来可能会增加更多变量。必须为单行,换行符和反斜杠需要分别转义为 \n 和 \\。
需要选项:storage - notification-mode: <auto | legacy-sendmail | notification-system> (default = auto)
-
确定使用哪个通知系统。如果设置为 legacy-sendmail,vzdump 会使用 mailto/mailnotification 参数,并通过 sendmail 命令向指定地址发送电子邮件。如果设置为 notification-system,则通过 PVE 通知系统发送通知,并忽略 mailto 和 mailnotification。如果设置为 auto(默认设置),设置了 mailto 时会发送电子邮件,否则使用通知系统。
- notification-policy: <always | failure | never> (default = always)
-
已弃用:不要使用。
- notification-target: <string>
-
已弃用:不要使用。
- pbs-change-detection-mode: <data | legacy | metadata>
-
用于检测文件变化并为容器备份切换编码格式的 PBS 模式。
- performance: [max-workers=<integer>] [,pbs-entries-max=<integer>]
-
其他性能相关设置。
- max-workers=<integer> (1 - 256) (default = 16)
-
适用于虚拟机。允许同时使用的最大 I/O worker 数量。
- pbs-entries-max=<integer> (1 - N) (default = 1048576)
-
适用于发送到 PBS 的容器备份。限制同一时间允许驻留在内存中的条目数量,以避免意外 OOM。对于包含大量文件的容器,可增大该值以支持备份。
- pigz: <integer> (default = 0)
-
当 N>0 时使用 pigz 代替 gzip。N=1 表示使用一半核心数,N>1 表示使用 N 作为线程数。
- pool: <string>
-
备份指定 pool 中包含的所有已知客户系统。
- protected: <boolean>
-
如果为 true,则将备份标记为受保护。
需要选项:storage - prune-backups: [keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>] (default = keep-all=1)
-
使用这些保留选项,而不是存储配置中的保留选项。
- keep-all=<boolean>
-
保留所有备份。为 true 时与其他选项冲突。
- keep-daily=<N>
-
保留最近 <N> 个不同日期的备份。如果同一天有多个备份,只保留最新的一个。
- keep-hourly=<N>
-
保留最近 <N> 个不同小时的备份。如果同一小时有多个备份,只保留最新的一个。
- keep-last=<N>
-
保留最近 <N> 个备份。
- keep-monthly=<N>
-
保留最近 <N> 个不同月份的备份。如果同一月份有多个备份,只保留最新的一个。
- keep-weekly=<N>
-
保留最近 <N> 个不同周的备份。如果同一周有多个备份,只保留最新的一个。
- keep-yearly=<N>
-
保留最近 <N> 个不同年份的备份。如果同一年有多个备份,只保留最新的一个。
- remove: <boolean> (default = 1)
-
根据 prune-backups 清理较旧备份。
- script: <string>
-
使用指定的 hook script。
- stdexcludes: <boolean> (default = 1)
-
排除临时文件和日志。
- stopwait: <integer> (0 - N) (default = 10)
-
等待客户系统停止的最长时间(分钟)。
- storage: <storage ID>
-
将生成的文件保存到该存储。
- tmpdir: <string>
-
将临时文件保存到指定目录。
- zstd: <integer> (default = 1)
-
Zstd 线程数。N=0 表示使用一半可用核心数;如果 N 设置为大于 0 的值,则将 N 作为线程数。
tmpdir: /mnt/fast_local_disk storage: my_backup_storage mode: snapshot bwlimit: 10000
文件排除
|
|
该选项仅适用于容器备份。 |
vzdump 默认跳过以下文件(可通过选项 --stdexcludes 0 禁用)
/tmp/?* /var/tmp/?* /var/run/?*pid
也可以手动指定(额外的)排除路径,例如:
# vzdump 777 --exclude-path /tmp/ --exclude-path '/var/foo*'
这会排除目录 /tmp/,以及名为 /var/foo、/var/foobar 等的任何文件或目录。
|
|
对于备份到 Proxmox Backup Server(PBS)的备份以及 suspend 模式备份, 带尾随斜杠的模式会匹配目录,但不会匹配文件。另一方面,对于非 PBS 的 snapshot 模式和 stop 模式备份,带尾随斜杠的模式目前完全不会匹配,因为 tar 命令不支持 这种方式。 |
不以 / 开头的路径不会锚定到容器根目录,而是会相对于任意子目录进行匹配。 例如:
# vzdump 777 --exclude-path bar
这会排除名为 /bar、/var/bar、/var/foo/bar 等的任何文件或目录,但不会排除 /bar2。
配置文件也会存储在备份归档内部(位于 ./etc/vzdump/),并会被正确还原。
示例
简单转储客户机 777,不使用快照,只将客户机私有区域和配置文件归档到默认转储目录 (通常为 /var/lib/vz/dump/)。
# vzdump 777
使用 rsync 和挂起/恢复创建快照(最短停机时间)。
# vzdump 777 --mode suspend
备份所有客户机系统,并向 root 和 admin 发送通知邮件。由于设置了 mailto, 且 notification-mode 默认为 auto,通知邮件会通过系统的 sendmail 命令发送, 而不是通过通知系统发送。
# vzdump --all --mode suspend --mailto root --mailto admin
使用 snapshot 模式(无停机)和非默认转储目录。
# vzdump 777 --dumpdir /mnt/backup --mode snapshot
备份多个客户机(选择性备份)
# vzdump 101 102 103 --mailto root
备份除 101 和 102 以外的所有客户机
# vzdump --mode suspend --exclude 101,102
将容器还原为新的 CT 600
# pct restore 600 /mnt/backup/vzdump-lxc-777.tar
将 QemuServer 虚拟机还原为 VM 601
# qmrestore /mnt/backup/vzdump-qemu-888.vma 601
使用管道将现有容器 101 克隆为新的容器 300,并设置 4GB 根文件系统
# vzdump 101 --stdout | pct restore --rootfs 4 300 -
常用命令示例:
# vzdump 777 --mode snapshot # vzdump --all --mode suspend # qmrestore /mnt/backup/vzdump-qemu-888.vma 601
版权和免责声明
Copyright © 2022-2025 成都市梨儿方信息技术有限责任公司.
本程序是自由软件:你可以依据自由软件基金会发布的 GNU Affero General Public License 条款重新分发和/或修改本程序;可使用该许可证第 3 版,或(由你选择)任何后续版本。
发布本程序是希望它能够有用,但不提供任何担保;甚至不包含对适销性或特定用途适用性的默示担保。更多详情请参见 GNU Affero General Public License。
你应当已经随本程序收到一份 GNU Affero General Public License 的副本。如果没有,请访问: https://www.gnu.org/licenses/
Copyright © 2007-2022 Proxmox Server Solutions GmbH
本程序是自由软件:你可以依据自由软件基金会发布的 GNU Affero General Public License 条款重新分发和/或修改本程序;可使用该许可证第 3 版,或(由你选择)任何后续版本。
发布本程序是希望它能够有用,但不提供任何担保;甚至不包含对适销性或特定用途适用性的默示担保。更多详情请参见 GNU Affero General Public License。
你应当已经随本程序收到一份 GNU Affero General Public License 的副本。如果没有,请访问: https://www.gnu.org/licenses/

