16.1备份模式

根据备份对象的种类,有多种数据一致性模式(mode)可以选择:

虚拟机备份

  • stop模式

    该模式能提供最强的数据一致性保障,代价是备份过程中虚拟机要停机。该模式的执行流程依次是,停止虚拟机运行,后台执行Qemu进程备份虚拟机数据。备份完成后,Qemu进程将虚拟机恢复到备份开始前的运行状态。通过live backup特性可以保证数据一致性。

  • suspend模式

    提供该模式的唯一原因是兼容性。该模式首先会挂起虚拟机,然后执行snapshot模式。鉴于该模式会挂起虚拟机,导致虚拟机长时间停止运行,而同时并没有改进备份数据一致性,因此建议直接使用snapshot模式。

  • snapshot模式

    采用该模式虚拟机停机时间最短,代价是备份数据有可能不一致。该模式实际上采用的是Proxmox VE在线备份,也就是在虚拟机运行状态下复制数据。如果启用了guest agent(agent:1),该模式将调用guest-fsfreeze-freeze和guest-fsfreeze-thaw以改进数据一致性。

可点击此处查看Proxmox VE对QemuServer在线备份的技术概览资料。

注意

Proxmox VE在线备份技术对任意类型存储服务上的虚拟机可以进行类似snapshot形式的备份。但并不需要底层存储服务支持snapshot功能。另外请注意,备份操作是由后台Qemu进程完成的,尽管虚拟机可能已停止运行,但在Qemu读取虚拟机磁盘的过程中,虚拟机状态仍会显示为运行。但此时只有虚拟机磁盘有读取动作,虚拟机本身并没有运行。

容器备份

  • stop模式

    备份过程中停止容器运行。该模式可能导致较长的停机时间。

  • suspend模式

    该模式利用rsync将容器数据复制到一个临时位置(参看选项–tmpdir)。之后将挂起容器,并再次调用rsync同步复制之前复制过程中改变的文件。完成后将恢复容器运行。该模式下的停机时间较短,但需要额外的空间来保存容器备份。

    当容器位于服务器本地磁盘,而备份目标位置在外部NFS/CIFS服务器上时,你应该设置—tmpdir将临时位置指定在本地磁盘上,这样能大大提高性能。此外,在将配置了ACLs的本地磁盘容器备份到外部NFS服务器上时,必须设置tmpdir为本地磁盘目录。

  • snapshot模式

    采用该模式需要底层存储服务的snapshot功能支持。首先,容器会被挂起以确保备份数据一致性。然后将为容器所在存储卷创建一个临时快照,该快照会被打包到一个tar文件。备份完成后,临时快照会被删除。

注意

Snapshot模式要求被备份存储卷所在存储服务支持snapshot。可以设置挂载点选项backup=no将指定存储卷排除在备份范围之外(同时排除对相关存储支持snapshot功能的要求)。

注意

默认配置下,只有根磁盘挂载点会被备份,其他附加挂载点不会被备份。可以设置挂载点的Backup参数将附加挂载点纳入备份范围。Device和bind并未纳入Proxmox VE存储库的管理,所以也不会被备份。