Data Domain:可清理大小是估计值
Summary: 对于 Data Domain 系统中显示的“可清理 GiB”值,经常会出现混淆,并且对于运行清理时将恢复的空间量存在不正确的预期
Instructions
对于 Data Domain 系统上显示的“可清理 GiB”值,经常会出现混淆,并且对于运行清理时将恢复的空间量存在不正确的预期。
给出的“可清理 GiB”数值仅为估计值,由于在开发 Data Domain 文件系统时要进行技术选择,因此无法获得通过运行清理将恢复多少空间的准确值。
以下是对可清理空间的估计值与实际回收空间有很大差异的简要解释。但是,此处未考虑其他因素,这些因素可能会使估计值和运行干净时实际释放的磁盘空间量相差很大
当 Data Domain 系统接收数据时,将计算压缩后值并将其存储为每个文件的静态数据。“Cleanable”值只是自上次运行 DD 清理到完成以来所有已删除文件的压缩后值的总和。
如果已删除文件的文件分段已用于对尚未删除的其他文件中的数据进行重复数据消除,则“可清理”值将变得不准确。只要有单个文件引用现有的唯一段,DD 清理过程就不会考虑回收这些段。因此,即使一个文件的压缩后数据被添加到“可清理 GiB”计数器中,就好像它的所有唯一段都即将被释放一样,但一些(或许多)可能不会被其他文件重用。
显示此效果的更详细示例如下:
假设您有 5 个文件,一个接一个地添加到 Data Domain 系统中,其中以前没有其他数据。
由于第一个 100GB 文件包含所有唯一数据,因此其压缩率为 1 倍(假设第一个文件本身没有任何冗余)。第 2 个至第 5 个文件能够在添加时针对第 1 个文件的数据和每个较旧的文件进行重复数据消除,由于要对其进行重复数据消除的文件不断增加,因此每个文件都获得了不断增加的重复数据消除。
File 1: precomp: 100 GB postcomp: 100 GB compression ratio: 1x File 2: precomp: 100 GB postcomp: 50 GB compression ratio: 2x File 3: precomp: 100 GB postcomp: 25 GB compression ratio: 4x File 4: precomp: 100 GB postcomp: 25 GB compression ratio: 4x File 5: precomp: 100 GB postcomp: 1 GB compression ratio: 100x Resource Size GiB Used GiB Avail GiB Use% Cleanable GiB* ---------------- --------- --------- --------- ---- -------------- /backup: pre-comp - 500 - - - /backup: post-comp 1000 201 799 20% 0 ---------------- --------- --------- --------- ---- --------------
例 1.从 /backup 中删除前 3 个文件后的状态:
Resource Size GiB Used GiB Avail GiB Use% Cleanable GiB* ---------------- --------- --------- --------- ---- -------------- /backup: pre-comp - 200 - - - /backup: post-comp 1000 201 799 20% 175 ---------------- --------- --------- --------- ---- --------------
如果在此之后运行清理,则可能能够回收 125 个,而不是全部 175 个可清理数据。这是因为最后 2 个文件与文件 1-3 共享段。 清理不会恢复另外 50 GB 的空间,因为文件 3-5 仍在使用这些数据段。
示例 2:使用与示例 1 相同的起点,假设删除了文件 1,然后对整个 /backup 文件夹(即所有 5 个文件)执行快速复制,然后删除文件 2-4。
Resource Size GiB Used GiB Avail GiB Use% Cleanable GiB* ---------------- --------- --------- --------- ---- -------------- /backup: pre-comp - 800 - - - /backup: post-comp 1000 201 799 20% 200 ---------------- --------- --------- --------- ---- --------------
预压缩的“大小 GiB”数字是 (500-100)=400*2=800,为 500 表示 5 个原始文件,减去 100 表示删除文件 1 得到 400 GiB。 接下来,400 GiB 乘以 2,这是由于对剩余的所有 4 个文件执行快速拷贝。
请注意,使用的压缩后空间仍然相同,因为文件复制仅添加了少量空间,包括指向原始数据的元数据指针。尽管删除了文件 1,但空间使用量没有变化,因为尚未运行“filesys clean start”(以启动清理)。
清洁后,我们将看到:
Resource Size GiB Used GiB Avail GiB Use% Cleanable GiB* ---------------- --------- --------- --------- ---- -------------- /backup: pre-comp - 800 - - - /backup: post-comp 1000 176 824 18% 0 ---------------- --------- --------- --------- ---- --------------
请注意,尽管显示 200 GB 是可清理的,但实际上只有 25 GB 被清理。“Cleanable GiB”显示为 200,因为文件 1 到 4 的“post-comp”文件大小加起来为 200GB。 仅删除了“File 1”,即 100 GB,但其他 4 个文件仍在使用其中 75 GB(由于重复数据消除)。
这可能看起来很奇怪,因为“文件 2”到“文件 4”也被删除了,但请记住,尽管系统会将“文件 2”到“文件 4”显示为已删除,但这些文件的实际数据段无法删除,因为这些文件已被快速复制到另一个文件夹。 只有在也删除了所有快速拷贝版本后,才能通过清理完全恢复空间。
由于可清理 GiB 只是一个“估计值”,可能并不准确,甚至有时它可能反映出与 Data Domain 的物理容量相同或相同的大小。
如果由于可清理 GiB 显示与“/data: post-comp”接近或相同的值,导致 DDFS 空间使用率接近 100%,这可能会导致混淆是允许运行计划的 DDFS 清理还是手动运行。
为了有更好、更可靠的方法来估计运行时清理将回收的磁盘空间量,从 DDOS 7.7.x 开始,现在可以从 CLI 确定活动层上下一个 GC 能够回收的实际“Total Cleanable-Space”。这是 CLI 的摘要:
# filesys cleanable-space calculate Cleanable space calculation started. Use 'filesys cleanable-space watch' to monitor progress.
该过程将执行与常规 GC 相同的过程,经历阶段 1 到 4,但跳过阶段 5(复制),该阶段将有效地复制转发容器以回收死磁盘空间。因此,完成清理阶段 1 到 4 所需的时间与常规 GC 花费的时间一样长,以返回值,因此这不是为了获得更新的估计值而定期运行的,而是仅在需要时运行的。换言之,“filesys cleanable-space calculate”将在活动层中运行 GC,只是跳过它回收空间的部分。
可以按如下方式监视过程:
# filesys cleanable-space watch Beginning 'filesys cleanable-space calculation' monitoring. Use Control-C to stop monitoring. Cleaning: phase 1 of 4 (pre-merge) 100.0% complete, 96233 GiB free; time: phase 0:02:07, total 0:02:07 Cleaning: phase 2 of 4 (pre-analysis) 100.0% complete, 96233 GiB free; time: phase 0:06:51, total 0:08:59 Cleaning: phase 3 of 4 (pre-enumeration) 100.0% complete, 96233 GiB free; time: phase 0:00:20, total 0:09:20 Cleaning: phase 4 of 4 (pre-select) 100.0% complete, 96233 GiB free; time: phase 0:00:25, total 0:09:46
完成后,可以访问可清理的测量结果:
# filesys cleanable-space status Cleanable space on active tier is 94649698202 bytes. Last calculated on 2023/08/25 03:29:51 Cleanable space calculation finished at 2023/08/25 03:29:51.
在上面的示例测试中,如果要立即运行 DD GC,它将释放 94649698202 字节。这是 88.1 GiB,而在计算时,DD 使用的实验室中“df”报告的估计值为 41.9 GiB。当然,随着对文件系统进行更改(新备份、更多删除、创建快照和过期快照等),计算将会结束。
如果需要,可以使用以下命令停止上述进程:
# filesys cleanable-space stop The 'filesys cleanable-space stop' command stops calculating cleanable space in the system. Are you sure? (yes|no) [no]: yes ok, proceeding. # filesys cleanable-space status Cleanable space on active tier is 2607064 bytes. Last calculated on 2021/06/27 23:23:05 Cleanable space calculation started at 2021/06/27 23:27:58 and was aborted at 2021/06/27 23:28:19. Cleaning was aborted by user.
请注意,此 CLI 仅适用于 DD 活动层。没有等效的流程来计算 DD 云单元的可清理数据,它有自己的估计值,但存在与上述相同的不确定性。