NDMP 转储和恢复阶段描述
适用于
ONTAP 9
问题解答
术语
转储阶段描述中使用的一些关键术语是:
- 索引节点:
- 文件系统上的每个文件都有一个与之关联的标识符。
- 这个 id 被称为 inode。
- 文件系统通常已预先分配了 inode。
- ONTAP 中的
df -i
输出显示卷的已用 inode 总数和可用 inode 总数。 - 在本文档中,我们将交替使用术语 inode 和文件。
- 文件系统上的每个文件都有一个与之关联的标识符。
- Inode 文件:
- 这是文件系统上的特殊文件,其中包含卷中所有 inode 的列表及其详细信息。
- 索引节点图:
- 一个数组,其元素数量与卷上的 inode 数量相同。
- inode 编号用作其在数组中对应条目的索引。
- 任何条目中的值为 1 表示相应的文件将存在于给定的备份中。
- 偏移图:
- 一个数组,其元素数量与卷上的 inode 数量相同。
- inode 编号用作数组中其对应条目的索引。
- 如果备份中存在某个 inode,则其对应条目包含磁带上的物理地址,该地址标记备份映像中文件数据的起始位置。
转储阶段
- 对于由 NDMP 启动并启用文件历史记录的备份,转储必须在阶段 III 和 IV 生成文件历史记录,并在阶段 IIIb 生成偏移量图。
- 生成文件历史记录和偏移量图会增加这些阶段的 NDMP 备份成本,但允许 NDMP 提供一些宝贵的功能,例如备份索引、DAR 和增强型 DAR。
- 有关文件历史记录的更多信息,请参阅常见问题解答:NDMP 文件历史记录。
第一阶段
- dump 会生成需要备份的文件列表。
- 此阶段的输出是所谓的 inode 映射。
- inode 映射包含卷上每个 inode 的对应条目。
- 需要备份的 inode 对应的条目设置为 1,而不需要备份的 inode 对应的条目设置为 0。
注意: inode 数量越多,第一阶段所需的时间就越长。 例如,一个拥有 10 亿个 inode 的卷所需的时间会比一个拥有 1000 万个 inode 的卷长得多。
第二阶段
- dump 将第一阶段生成的 inode 映射写入磁带。
第三阶段
- dump 将备份数据集的整个目录结构写入磁带。
- 如果启用,则会在此阶段生成目录的文件历史记录并将其传递给备份应用程序。
- 第 IIIa 阶段:
- ACL 阶段:在此阶段,dump 将数据集的 ACL 备份到磁带。
- 如果数据集中有很多文件都设置了 ACL,则此步骤可能需要更多时间。
- IIIb期:
- 此阶段仅针对已启用文件历史记录的 NDMP 备份执行。
- 此阶段的输出是偏移量图。
- 对于任何给定备份中的每个文件,偏移量图都包含磁带上的物理地址,该地址标记了备份映像中文件起始的位置。
- 第 IIIa 阶段:
注意: 目录 inode 越多,完成第三阶段所需的时间就越长。 此外,由于 dump 会遍历整个目录树,因此读取更深、更宽或两者兼具的目录结构所需的时间可能比读取更简单的目录结构更长。
第四阶段
- 此阶段会将实际文件数据转储到磁带上。
- 此阶段按 inode 顺序运行。
- 因此,保证先找到编号较小的 inode,再找到编号较大的 inode。
- 如果启用,则会在此阶段生成文件历史记录并将其传递给备份应用程序。
第五阶段
- 这是阶段 IIIa 的重复。
- 这在NetApp本机转储中传统上是存在的。
- 出于向后兼容的原因,保留了此阶段,但在现代 ONTAP 版本中是无操作的。
恢复阶段
- 第一阶段:
- 整个备份映像的目录结构被读入 inofile,文件信息被读入 inomap。
- 第二阶段:
- 所有选择用于恢复的文件和目录都是根据第一阶段创建的 inofile 和 inomap 在文件系统上创建的
- 由于恢复操作的性质,在浏览或列出文件系统时,第二阶段创建的文件和目录将显示为零字节
- 零字节文件和目录条目将更改为非零值,并且可能会观察到大小增加在恢复进入第三阶段后
- 第三阶段:
- 从备份映像中读取单个文件的内容,并在第二阶段创建的树状结构中填充数据。
Qtree/卷转储与非 Qtree 子目录转储
- 转储的第一阶段行为根据用户是启动卷/Qtree还是非Qtree子目录/子树的备份而不同。
- 对于子目录转储,必须检查指定备份根目录下的每个目录和文件,以确定是否应将其包含在备份中。
- 此操作非常耗时,尤其是当子目录包含数百万个 inode(文件)时。
- 使用基于卷和 Qtree 的备份,无需遍历整个目录树即可确定需要备份的内容。
- 相反,ONTAP 可以通过备份快照的 inode 文件。
- 只需查看 inode 文件,就可以确定 inode 是否存在以及它是否是给定 qtree/volume 的一部分。
- 与目录遍历相比,使用 inode 文件是一个更快、更高效的过程。
- Inode 文件不包含足够的信息,无法对非 qtree 子目录转储执行相同的操作,因此建议尽可能备份 Qtree 和卷,而不是非 Qtree 子目录。
- 请注意,使用 exclude NDMP 环境变量也会导致 Qtree 和 Volume 转储执行较慢的目录遍历方法。
- 如果备份速度是一个因素,请避免在 NDMP 启动的转储备份中使用排除项。