Data Domain:Data Domain Restorer (DDR) 上的长期保留/云层清理/垃圾数据收集的简介

Summary: 本文介绍了使用云/长期保留 (LTR) 功能对 Data Domain Restorer (DDR) 上配置的云层进行清理/垃圾数据收集的情况

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

Data Domain Operating System (DDOS) 6.0 引入了一项称为云保留或长期保留 (LTR) 的新功能。此功能允许将云提供商提供的第二层基于对象的存储添加到具有相关 CLOUD_CAPACITY 许可证的 Data Domain Restorer (DDR) 的某些模型中。

在使用 LTR 的系统上,DDR 接收的文件最初会写入活动层(本地连接的存储)。接着,数据移动策略/期限阈值将在每个 mtree 的基础上进行配置,以便某些需要长期保留的文件稍后由数据移动进程(定期安排的任务)从活动层迁移到云层。

云层中的文件可以照常进行删除,但云/对象存储上的相关空间不会立即遭到回收使用。要从云中删除多余的数据,必须清理云层。

云层的结构:

云层被细分为“云单元”。请注意:
  • 云层最多可以包含两个云单元
  • 每个云单元的大小可以与特定 DDR 模型支持的最大活动层大小相同
  • 每个云单元可由不同的对象存储提供商提供
例如:

# cloud unit list
Name                      Profile        Status
-----------------------   ------------   ------
B-unit                    LTR-ECS-Ben    Active <=== ECS provider
cloud-unit-virtustream1   virtustream1   Active <=== Virtustream provider
-----------------------   ------------   ------


云清理的基本概念:
  • 每次运行期间,云清理只针对单个云单元运行 - 为了确定要清理的云单元,您可在 DDFS 日志 (/ddr/var/log/debug/ddfs.info) 中找到以下消息 - 在此案例中,将清理 cloud-unit-virtustream1 云单元:
08/12 13:25:07.551 (tid 0x7f22991eb880): gc: Physical Cleaning will run on partition: cloud-unit-virtustream1, select_flags:  none, usr: SCHEDULED CLOUD-GC, asm: Yes

遗憾的是,对于正在进行的云单元清理,目前无法通过 Data Domain 命令行 shell (DDSH) 获得此信息。
  • 如果系统配置了多个云单元,则每次运行云清理时,云清理都会对这些单元进行循环清理,尝试清理单个单元
  • 云清理可手动启动,也可通过计划自动启动 - 要手动启动,请使用以下命令:
# cloud clean start [cloud unit name]
  • 活动层清理和云清理无法并行运行(因为两者在 DDFS 中使用相同的内存结构)
  • 如果活动层清理正在运行中(以手动方式启动或通过其计划启动),您试图启动云清理,则将会出错,即:
# cloud clean start cloudunit2
Failed to start: activer tier cleaning is currently running. Use 'filesys clean watch' to monitor its progress.
  • 如果云清理已自动启动(即,通过其计划启动),而您又启动了活动层清理,则云单元清理将中止,以使活动层清理可以运行。DDFS 日志中的以下内容表明了这一点:
08/12 13:25:24.532 (tid 0x7f2277e9d210): gc_asm_start: Abort scheduled cloud-GC
  • 如果您已手动启动云清理,并试图启动活动层清理,则活动层清理将无法启动 - 云清理会一直运行到完成,即:
# filesys clean start
**** Cleaning cannot start since Cloud tier cleaning is in progress. Use 'cloud clean watch' to monitor progress.
  • 要让云清理启动,云单元必须经历了至少 1% 的数据“流失”(即,当前云单元上 >= 1% 的数据必须被视为多余的数据,因此可以删除)。如果情况不是这样,则在您手动启动云清理时,命令行上将显示以下内容:
# cloud clean start cloudunit2
**** Failed to start: cloud unit "cloudunit2" does not have sufficient cleanable data.

此外,如果您以手动方式或通过其计划启动云清理,则 DDFS 日志中将显示以下内容:
 
07/26 15:38:58.496 (tid 0x7f7a450fd340): gc: cp: cloudunit2 has 0% churn, minimum churn needed to run gc: 1%
07/26 15:38:58.496 (tid 0x7f7a450fd340): gc: cp: cloudunit2 does not have sufficient churn for GC to run
  • 如果系统包含两个云单元,并且第一个单元的计划清理由于某种原因(例如流失不足)而失败,则清理将自动尝试针对第二个单元启动(即,无需等待下一次计划的云清理运行,就可以清理第二个单元)
  • 您可以对云清理进行限制(类似于活动层清理),以确定在系统面临其他重要工作负载(即,接收/恢复/复制)时应采取的操作。
与活动层清理一样,您可将限制设置为 0 到 100 之间的百分比:

0%:云清理会快速将资源释放给其他工作负载,因此运行速度可能会很慢,但对整体系统性能的影响最小
100%:云清理不会将资源释放给其他工作负载,因此可以尽可能快地运行,但可能会对整体系统性能造成重大影响

云清理限制已设置为默认值 50%:

# cloud clean throttle show
Cloud tier cleaning throttle is set to 50 percent


要修改限制,您可以使用以下命令 - 请注意,在您更改限制后,新的限制值会立即生效,不需要重新启动 DDFS 或云清理:

# cloud clean throttle set 75
Cloud tier cleaning throttle set to 75 percent

计划云清理:

在 DDOS 6.0 及更高版本中,活动层清理的计划方式未更改 - 默认情况下,活动层清理计划在每周星期二 0600 运行一次,即:

# filesys clean show schedule
Filesystem cleaning is scheduled to run "Tue" at "0600".


默认情况下,云清理计划在每 4 次调用计划的活动层清理后运行一次。要显示云清理计划,应使用以下命令:

# cloud clean frequency show
Cloud tier cleaning frequency is set to run after every 4 active tier cleaning cycles.


因此,在采用默认配置的系统上,云清理将每 4 周启动一次 - 如果系统有两个云单元,则每个单元将每 8 周清理一次。

要更改云清理频率,可以使用以下命令:

# cloud clean frequency set 2
Cloud tier cleaning frequency is set to run after every 2 active tier cleaning cycles.


要将云清理重置为每 4 次活动层清理后运行一次的默认计划,可以使用以下命令:

# cloud clean frequency reset
Cloud tier cleaning frequency is reset to default (every 4 active tier cleaning cycles).


请注意,云清理计划不包括手动启动的活动层清理周期。因此,在上述系统上,即使每天手动运行活动层清理,云层清理也只会每 4 周启动一次。

此外,您还可以使用以下命令完全禁用计划的云清理:

# cloud clean frequency set never
Cloud tier cleaning frequency is set to "never".


在这种情况下,云清理仅在手动启动时才运行。

要停止当前正在运行的云清理,可以使用以下命令:

# cloud clean stop

要确定上次运行云清理的时间,可以使用以下命令:

# cloud clean status
Cloud tier cleaning finished at 2016/08/01 20:54:43.


云清理算法:

云清理将使用与活动层配置相同的清理算法。在 DDOS 6.0(及更高版本)中,这默认采用完美物理垃圾数据收集 (PPGC),但您可以通过系统参数将其更改为物理垃圾数据收集 (PGC)。

请注意,不应禁用物理垃圾数据收集,因为使用传统/完整清理算法清理云单元可能会导致 DDFS 崩溃/重新启动

当清理开始时,用于云清理的算法会显示在 DDFS 日志中,即:

06/28 10:51:56.960 (tid 0x7fc5bccb2d50): gc: gc_start_intern: Algorithm selected: Physical Cleaning <=== PPGC or PGC
07/27 12:21:18.224 (tid 0x7f92b8cfe7e0): gc: gc_start_intern: Algorithm selected: Full Cleaning <=== Traditional GC


请注意,从上述输出中无法区分 PPGC 或 PGC - 由于清理运行的阶段数量,所使用的具体算法是显而易见的 - 一般来说:

传统/完整 GC:10 个阶段
PGC:12 个阶段
PPGC:6 个阶段

有关更改系统上使用的清理算法的更多信息,请联系您的签约支持提供商

活动层清理拷贝阶段和云层清理拷贝阶段之间的区别:

清理拷贝阶段是以物理方式删除 DDR 上的多余数据/回收空间的阶段。请注意,在活动层和云层中,拷贝阶段的运行方式有所不同:

活动层:
  • 写入 DDR 活动层的数据包含在 4.5 Mb 容器中
  • 默认情况下,仅当容器包含 <= 92% 的“实时”(即,主动引用的)数据时,清理才会考虑对该容器进行“拷贝”
  • 实时数据将从容器中提取出来,并写入到文件系统末尾的新容器(与来自其他拷贝容器的实时数据一起)
  • 磁盘上索引会更新,以反映保存实时数据的新容器
  • 然后删除原始容器(同时保存实时数据和无效数据),并使底层磁盘空间可供使用

云层:
  • 写入 DDR 云层的数据在结构上不同 - 单个数据块(64 Kb 压缩区域)写入云单元,而不是放置在 4.5 Mb 容器中(提醒:对于 DDOS 6.1.2.0 及更高版本,存储在云单元中的对象会更大,请参阅 Data Domain:云层的大对象大小以了解详细信息)
  • 云清理不会从现有压缩区域提取实时数据并将其拷贝转发出去,而是只会考虑删除仅包含无效数据的压缩区域
因此,如果压缩区域包含仍然有效(由文件引用)的非常少量的数据,则它不会遭到删除,而压缩区域内的无效数据也不会从磁盘中删除掉(即,压缩区域使用的空间都不会被回收)

标记为要删除的压缩区域由云清理异步处理 - 因此,即使云清理完成操作,云单元上的可用空间也可能会继续增加

这种差异是由于在云存储上读取/写入大量数据所涉及的固有成本造成的,但这确实意味着云单元空间可能会人为地填满(即,包含大量压缩区域,每个压缩区域都包含非常少量的实时数据,从而阻止删除)。

如果发生这种情况,您可以设置系统参数,强制对云单元进行“碎片整理”,这将复制转发来自现有压缩区域的实时数据,以将实时数据整合到尽可能少的压缩区域中,从而释放空间。

有关运行“碎片整理”的更多信息,请联系您的签约支持提供商。

Affected Products

Data Domain

Products

Data Domain
Article Properties
Article Number: 000019165
Article Type: How To
Last Modified: 25 Jul 2025
Version:  3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.