Avamar 空间回收过程 — 第 1 部分:垃圾数据收集
Summary: 本知识库文章介绍了 Avamar 空间回收过程的第一部分。这称为垃圾数据收集。
Instructions
本文是一系列中的第一篇文档,其中记录了 Avamar 如何回收 GSAN 内部和硬盘上的空间。
当前的垃圾数据收集实施与 Avamar v7.0 一起引入,其设计基本保持不变。
垃圾数据收集的作用是什么?
垃圾数据收集是 Avamar 回收用于存储备份数据的空间的过程的第一个阶段。
它在 cur 目录上运行,并通过删除任何备份不再引用的数据区块来释放 GSAN 中的空间:
- 如果可以在索引中查找数据,则表示数据将被“定义”。
- 如果数据作为备份的一部分存在(即哈希存在于用户核算系统、复合条带或目录元素中),则引用数据。
通过垃圾数据收集回收的空间在 运行处理 后才能重复使用。在每日计划的垃圾数据收集完成后,立即运行处理。请参阅 Avamar 空间回收过程 — 第 2 部分:正在处理。
垃圾数据收集何时运行?
垃圾数据收集的运行时间是多少?
默认情况下,垃圾数据收集将运行 4 小时。如果两次通过在此时间内未完成,则下一个垃圾数据收集的运行时间将增加 15 分钟。这将继续,直到两次通过成功完成,或达到 7 小时(420 分钟)的默认限制。
下面列出了常见问题。某些文章可能需要在戴尔支持网站上查看身份验证。
- 维护计划程序或更具体地说,垃圾数据收集处于禁用状态。status.dpn 的输出可以确认这一点。
- 操作系统容量高于 disknogc 值(可能为 86% 至 89%)。
- Avamar 节点之间的时间同步问题。
- 索引条带正在拆分。
- 哈希引用的位映射无法重置。
垃圾数据收集的工作原理
步骤 1 — 构建参考计数表 (TORC):
垃圾数据收集读取用户核算系统中的条目、复合条带和目录元素,以构建参考表计数 (TORC)。
在 TORC 中,垃圾数据收集会记录系统上的所有哈希以及引用每个哈希的次数。
步骤 2 — 阅读索引:
TORC 完成后,每个节点都会将其单个索引条带的子集加载到内存中。读取的条带数由 gccount 参数定义。对于索引中定义的每个哈希,垃圾数据收集会在 TORC 中查找哈希,以检查是否引用该哈希。
- 如果索引和 TORC 中都存在哈希,则无需执行任何操作。TORC 中的每个哈希的引用计数至少为 1,因此哈希是定义和引用的。
- 如果哈希存在于索引中,但 不在 TORC 中,则定义但不引用哈希,因此可以删除。
提醒:如果哈希存在于 TORC 中,但 不在索引中,这将是一个数据完整性错误(引用但未定义哈希)。 这会导致 hfscheck 故障。
步骤 3 — 删除未引用的哈希:
正如我们前面提到的,未引用的哈希不是任何备份的一部分,因此可以安全地从 Avamar 中删除。为此,垃圾数据收集:
- 删除索引中的条目。
- 将区块标头描述符 (CHD) 中的哈希条目设为零。CHD 定义单个区块在条带容器内的位置。
Avamar 已将哈希占用的区域标记为空。出于性能和或容量原因,在此阶段不会删除数据。
步骤 4 — 更新 TORC:
如果删除的垃圾数据收集区块是复合区块,则必须更新 TORC。
回想一下步骤 1,TORC 中的引用计数包括由复合条带(包含复合区块)进行的引用。
由于已删除复合区块,我们可以将 TORC 中的引用计数减去该复合区块引用的任何哈希数。
垃圾数据收集通过在复合中读取来查看它引用的哈希,然后更新 TORC 来执行此操作。
步骤 5 — 阅读下一组索引:
垃圾数据收集从内存中卸载上一组索引条带,然后加载新集。
对于这些新的索引条带,将重复步骤 2、3 和 4。
读取所有索引条带后,将删除 TORC 中具有 0 个引用(得益于步骤 4)的任何数据区块(称为“原子”区块)。
步骤 6 — 启动新通过:
读取所有索引后,垃圾数据收集将启动新通过。
所有索引条带都会重新读取,查找由于我们之前的通过而不再引用的数据。
这是必需的,因为哈希不是以逻辑顺序读取的,而是按它们存储在索引中的顺序进行读取。
垃圾数据收集不能确定以最佳顺序查找哈希。哈希可以保留引用,直至通过结束。
在大多数 Avamar Server 环境中,两个垃圾数据收集传递可以舒适地保持“稳定状态”容量。
垃圾数据收集将执行传递,直至其用完,或通过完成而不删除任何数据。
手动垃圾数据收集
不应要求对 Avamar Server 进行微管理。计划程序旨在自动运行维护任务。如果 Avamar 容量较高,请参阅《Avamar 操作最佳做法指南》和 《Avamar:容量管理概念和培训。
在 极少数 情况下,运行垃圾数据收集 可能有助于 缓解 GSAN“用户容量”高到系统进入只读模式的严重问题。
在这些情况下,将手动运行垃圾数据收集,以将容量级别降至低于只读阈值。这允许运行备份窗口。
自动垃圾数据收集可以照常继续工作。
在考虑手动垃圾数据收集之前,Avamar 支持应全面调查并了解情况。
在进行此类调查后,如果未经 L2 支持工程师的授权,则 绝不 应请求支持在系统上运行手动垃圾数据收集。
请参阅 Avamar — 关于手动垃圾数据收集的使用。