快照概览

本页面介绍什么是快照、快照的工作原理、一些常见使用场景以及创建和使用快照的最佳做法。如需了解如何创建和管理快照,以及如何根据快照恢复 Filestore 数据,请参阅使用快照保留数据的状态

什么是快照?

Filestore 快照是创建快照时文件共享数据的保留状态。实例会维持快照创建后修改的文件的状态。如果要将文件恢复为快照中的保留状态,您可以使用相关快照目录中的文件覆盖当前文件。

快照存储在 Filestore 实例中,并且是该实例的子资源。它们不会复制任何数据,也不会消耗容量 直到实例上的数据被修改为止。一个实例的所有快照共享共同的数据,这意味着实例仅保留这些快照之间的差异部分。

快照创建

文件共享的每个目录都包含一个隐藏的 .snapshot 目录。每个 .snapshot 目录都包含您创建的父级目录的快照,例如:

volume1/
│   genomics-file.txt
│
└───.snapshot
    │
    ├───snap1/
    │        genomics-file.txt
    │
    ├───snap2/
    │        genomics-file.txt
    │
    └───snap3/
             genomics-file.txt

快照包含创建快照时其父目录中存在的所有文件和子目录的只读视图。所有文件 atimeownership 和读写权限等属性 保留。

快照创建通常在两分钟内就能完成,因为它不涉及数据复制,并且不影响实例性能。

每个实例最多可以同时有 240 个快照。 文件共享名称和快照名称的总长度不得超过 78 个字符。

快照一致性

Filestore 快照具有 NFSv3 一致性语义。启动快照之前,Filestore 实例确认已写入到稳定的存储空间中或后跟已确认的 COMMIT 的所有写入将会包括在快照中。如需了解详情,请参阅 NFSv3 RFC-1813 第 3.3.7 节

准备文件共享以获得最佳快照一致性

快照的质量取决于您的应用从在大量写入工作负载期间创建的快照恢复数据的能力。在大多数情况下,即使您的应用向文件共享写入数据,您也可以创建具有良好一致性的快照。但是,如果您的应用要求严格的一致性,建议您执行以下一项或多项操作:

  • 使用 sync 装载选项或打开文件 替换为 O_DIRECT|O_SYNC。 这两种方法都可以提高一致性,但不能保证一致性。
  • 暂停将数据写入文件共享的应用或操作系统进程,使其在启动快照之前刷新对文件共享的更改。如需了解详情,请参阅 fsync(2)
  • 如果您的应用需要在多个共享之间保持一致性,请在写入所有文件共享的所有实例上暂停所有应用,并在恢复应用之前为所有文件共享创建快照。
  • 如果需要保持应用级层一致性,请在创建快照之前先停止应用并卸载文件共享。

.snapshot 目录的 NFS 语义

.snapshot 目录是特殊的隐藏目录,其中包含为其父级目录截取的快照。所有 NFS 和 bash 命令都适用于这些目录,但以下情况除外:

  • 您不能创建名为 .snapshot 的文件或目录,因为它是为快照预留的。
  • .snapshot 目录不会在 READDIRREADDIRPLUS 命令的输出中列出,也不会在 ls -a bash 命令中列出。
  • 要更改为 .snapshot 目录,您必须明确输入 .snapshot 字符串。示例:cd somedir/.snapshot/
  • shell 命令的自动补全功能不会将 .snapshot 列为选项。

删除快照中捕获的文件

在快照中捕获文件时,删除该文件不会增加可用磁盘 存储空间

还原为快照状态

将实例还原为快照状态的功能已正式发布 适用于可用区级、大规模 SSD、区域级 和企业实例

当实例还原到快照中捕获的状态时,所有新数据 写入,因为目标快照的创建已被删除,无法 已恢复。在目标快照之后创建的快照也会由还原流程删除。

功能限制

  • 还原快照功能是一项不可逆操作,它会从以下位置删除数据: 删除实时文件系统 。因此,意外丢失数据的风险较高。这是 与使用备份进行恢复相比 备份在使用后将保持当前状态 它会尝试通过多个备份进行恢复,以找到最佳备份。使用还原功能 功能。

  • 创建目标快照后写入的所有数据都将被删除 处于还原过程开始时,并且无法恢复。比目标快照更新的所有快照也将予以删除。例如: 依序创建 snapshot1snapshot2snapshot3。正在还原 将实例的状态更改为 snapshot2 中捕获的状态意味着写入的所有数据 在 snapshot2 之后创建的所有快照,以及在以下实例创建之后截取的所有快照: snapshot2)将在还原过程中删除。

    系统可能需要 6 小时到 10 天的时间来清理这些已删除的数据。实例 在此期间容量和性能可能会受到影响。

  • 将实例还原为快照状态会更新 NFS 文件系统 ID (fsid)。尝试次数 使用现有装载访问客户端将返回过时文件句柄错误。 最佳做法是在还原之前从实例中卸载所有客户端 并在操作完成后重新装载

  • 还原操作最多可能需要两分钟才能完成。

    • 与还原操作关联的任何相关清理,例如删除 链中的后续快照,可能需要 6 小时到 10 天 具体取决于所涉及的文件数量。
    • 您可以在还原操作执行期间以及 正在清理。
    • 您必须等待还原操作完成后才能开始另一个 还原操作。
  • 快照及其相关的 revert 操作适用于大多数服务 层级。快照在基本 SSD 中不可用,并且 基本 HDD 服务层级。

  • 只有具有单个共享的实例才能还原为快照状态。

  • 虽然企业服务层级支持快照, 它们不能与 Filestore 多共享结合使用 功能。

后续步骤