备份概览

本页面介绍什么是备份、备份的工作原理、一些常见使用场景以及创建和使用备份的最佳做法。如需了解如何创建和管理备份,以及如何通过备份恢复 Filestore 实例,请参阅备份和恢复文件共享

什么是备份?

Filestore 备份是指文件共享的副本,其中包含在创建备份时的文件共享的所有文件数据和元数据。它适用于基本 HDD 和基本 SSD 层级实例。创建文件共享的备份后,原始文件共享可被修改或删除,而不会影响备份。文件共享可以通过备份完全恢复为新的 Filestore 实例,也可以恢复到现有的文件共享。

备份是创建时保留在用户所指定地区内的地区性资源。您可以在 Filestore 实例所在的同一地区内创建备份,也可以在另一个地区创建备份以实现跨地区冗余。备份可在全球范围内寻址,且可用于将文件共享恢复到任何 GCP 地区,但不能跨项目进行共享。

创建备份

地区内的备份将根据先前的备份以递增方式创建。这意味着您创建的第一个备份是文件共享的完整副本,但后续备份仅包含先前备份中未包含的新数据或修改后的数据。先前备份中包含的未更改数据会在较新的备份中引用,但不会复制到其中。如果删除较早的备份,则其唯一数据将复制到下一个最近的备份,并且所有内部数据引用都将自动更新。

创建备份是瞬时操作,但您需要等待一段时间(与复制的时间量成正比)才能使用备份。在此期间,备份会经历三种状态:

状态 时长 说明
正在创建 几秒钟 对文件共享数据的最新更改不一定包含在备份中。在启动备份之前,备份中会包含由实例确认的稳定写入。
正在完成 取决于大小 对文件共享数据的最新更改未包含在备份中。
准备就绪 直到删除备份为止 备份已准备就绪,可供使用。

备份将在创建后自动压缩以降低费用。创建备份并不会影响 Filestore 实例的可用性或性能。

备份一致性

Filestore 备份具有 NFSv3 一致性语义。开始备份之前,Filestore 实例会确认可写入到稳定存储空间或者紧随其后是已确认的 COMMIT 的任何写入操作都会包含在备份中。如需了解详情,请参阅 NFSv3 RFC-1813 第 3.3.7 部分

常见使用场景

备份数据用于灾难恢复

假设您的 Filestore 实例位于 us-west1-c,并且您希望在此地区发生灾难时保护您的数据。您可以安排作业以定期在远程地区(例如 us- east1)创建此实例的备份。如果 us-west1-c 发生灾难,您可以使用之前的任何备份在其他位置创建新实例。

备份数据以防发生意外更改

如果要保护 Filestore 实例中的数据以防发生意外更改,您可以安排定期在实例所在的地区中创建实例的备份。如果数据丢失,您可以浏览备份列表以找出拥有所需文件版本的备份,根据备份创建一个新的 Filestore 实例,将其装载到原始实例所在的客户端,然后将文件复制过来。

您还可以在两个装载点使用 diff 命令来检查原始实例上的数据与根据备份恢复的数据之间的差异。恢复数据后,您可以删除已恢复的实例,备份会保留供日后使用。

此外,您也可以执行就地恢复,即备份数据直接恢复到原始 Filestore 实例,从而将实例中的所有数据替换为备份中的数据。建议在执行就地恢复之前创建最新数据的备份,因为任何未备份的数据都将丢失。

创建克隆以用于开发和测试

假设您在提供生产流量的 Filestore 实例上设置了数据库。如果您想使用数据库作为输入运行测试,则可以通过生产实例的备份创建新的 Filestore 实例用于测试。这样,测试使用就不会干扰生产。

同样,您可以使用备份进行离线分析和调查,而不会影响生产。

迁移数据

创建 Filestore 实例后,您便无法更改其位置或服务层级。如果需要将数据迁移到另一个地区,则可以创建数据备份,然后使用该备份在所需的地区创建新的 Filestore 实例,或者将备份恢复到现有实例。

此外,通过备份创建新的 Filestore 实例时,您可以在基本 HDD 和基本 SDD 层级之间进行选择,而无论源实例的层级如何。

最佳做法

准备文件共享以实现最佳备份一致性

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

  • 使用同步装载。如需了解详情,请参阅 nfs(5) 中的“同步装载选项”部分。或者,您也可以使用 O_DIRECT\O_SYNC 标志打开文件。如需了解详情,请参阅 open(2)
  • 暂停将数据写入文件共享的应用或操作系统进程,并促使其在启动备份之前清空对文件共享的更改。如需了解详情,请参阅 fsync(2)
  • 如果您的应用需要在多个共享之间保持一致性,请在写入所有文件共享的所有实例上暂停所有应用,并在恢复应用之前为所有文件共享创建备份。
  • 如果需要保持应用级层一致性,请在创建备份之前先停止应用并卸载文件共享。

将现有备份用作新备份的基准,以缩短创建备份的时间

在已有文件共享备份的地区中创建文件共享的备份时,现有备份会用作创建新备份的基准。这意味着如果不存在现有备份,系统可以更快地创建新备份。因此,建议您执行以下操作:

  • 在删除先前的文件共享备份之前,先创建新的文件共享备份。
  • 等待新备份处于 Ready 状态,然后再创建相同文件共享的后续备份。

将备份任务安排在非高峰时段运行,以缩短创建备份的时间

在非高峰时段创建备份可以缩短创建备份的时间。如果您要安排定期备份文件共享,建议在非高峰时段安排备份。

在 Filestore 实例所在地区中创建备份的高峰时段是每个工作日的结束时和午夜。建议您在清晨或工作日创建备份。

在不同的 Filestore 实例上整理数据,以最大限度地提高效率

备份操作会复制文件共享中的所有文件数据和元数据。文件共享中的数据越多,备份越大,费用也就越高。如果仅备份您需要备份的数据,建议您在不同的文件共享上整理数据。包括:

  • 在不同的文件共享上存储写入模式不同或备份要求不同的重要数据。
  • 将类似的数据保留在一个文件共享中,从而减少您需要创建的备份数量。

后续步骤