在扩展 Data Domain File System 的容量后,Data Domain Operating System 不支持跨存储主动重新平衡数据

Summary: 本文说明,在 Data Domain Restorer (DDR) 上扩展 Data Domain File System (DDFS) 后,Data Domain Operating System (DDOS) 中没有内置的支持用于跨存储对数据进行重新平衡

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 Restorer (DDR) 型号的容量可以通过向系统添加外部存储机柜盘架(ES30、DS60),然后将 Data Domain File System (DDFS) 扩展到这些机柜盘架来增加。执行此操作时:
  • 新机柜盘架已通过物理方式连接(通过线缆连接并通电)
  • Data Domain Operating System (DDOS) 重新扫描存储以确定是否存在新的机柜盘架
  • 然后,这些新的机柜盘架将添加到 DDR 内的存储层(活动层或特定归档单元)
  • 然后,可以在线扩展此层,而无需中断 DDFS
  • 写入该存储层的任何新数据都会跨现有盘架和新盘架写入
  • 但是,现有盘架上的数据不会跨新机柜盘架进行重新平衡
进一步解释如下:
  • 在 DDOS 中,数据存储单元是一个 4.5 Mb 的“容器”
  • 在 4.5 Mb 容器创建时,它们会以轮询方式在相应层归档单元中的所有机柜盘架上写入
  • 将其他机柜盘架添加到层归档单元时,除了现有机柜外,DDFS 还会开始向这些新添加的机柜写入新的 4.5 Mb 容器(在轮询容器写入时,新机柜包括在内)
  • 但是,DDOS 不会进行任何特定尝试(或提供任何特定功能)将层中的现有容器从现有盘架机柜迁移到新的盘架机柜
这意味着,添加盘架机柜可能会使连接的存储之间产生数据“不平衡”。例如:
  • 一开始,DDR 的活动层中只有一个机柜,并且已用空间达 90%
  • 将一个额外的机柜添加到活动层,并且将 DDFS 扩展到此机柜
  • 现在,新创建的 4.5 Mb 容器的写入跨现有机柜和新机柜进行轮询
  • 这会使现有机柜缺少可用空间,而新添加的机柜几乎是空的
在这种情况下,许多存储阵列允许管理员跨连接的机柜重新平衡数据,主动将一些数据从现有机柜迁移到新添加的机柜,以确保所有机柜的已用容量大致相等。但请注意,DDOS 不提供此功能,并且由于 DDFS 的设计,也不需要这个功能,因为数据的重新平衡会随着时间的推移自然发生。

数据重新平衡通过两个操作来进行:
  • 垃圾数据收集清理
  • 局部性修复
下面将详细讨论这两个操作以及它们如何导致数据的自动重新平衡。

垃圾数据收集清理

垃圾数据收集清理 (GC) 是在 DDR 上定期运行的计划活动(默认情况下每周针对活动层运行一次,并且当需要针对归档单元运行时,假定空间回收已启用)。当它运行时,它会:
  • 确定层归档单元中的哪些物理数据是“活动”(被文件系统中的一个或多个文件或快照等对象使用)或“非活动”(未被任何对象引用,因此对系统来说是多余的)
  • 确定保存层归档单元中大多数“非活动”数据的 4.5 Mb 容器
  • 读取这些 4.5 Mb 容器并提取其中包含的任何“活动”数据,然后将这些数据“复制转发”到新创建的 4.5 Mb 容器中,这些容器会跨层归档单元的所有盘架写入
  • 删除旧的 4.5 Mb 容器,从而删除它们包含的非活动数据并释放磁盘上的空间以供重复使用
当 GC 在存在任何形式的数据不平衡的系统上运行时,预计大多数旧数据(因此也是大多数非活动数据)将保存在层归档单元内较旧的盘架机柜中。因此,被读取、复制转发和删除的大多数容器都位于较旧的盘架机柜上。但是,新创建的容器在层中的所有盘架之间以轮询形式写入。因此,GC 释放的大部分空间位于较旧的盘架上,而新近占用的空间则分布在所有盘架上。

举个简单的例子:
  • DDR 的活动层包含两个盘架:第一个盘架包含 10000 个 4.5 Mb 容器,而第二个盘架包含 100 个 4.5 Mb 容器(第一个盘架和第二个盘架的容器数量比为 100:1)
  • GC 运行并复制转发第一个盘架上 5000 个容器中的数据
  • 这 5000 个容器内的活动数据导致创建 1000 个新的 4.5 Mb 容器
  • 这 1000 个新的 4.5 Mb 容器跨两个盘架写入
  • GC 完成后,第一个盘架包含 5500 个 4.5 Mb 容器,而第二个盘架包含 600 个容器(第一个盘架和第二个盘架的容器数量比约为 9:1)
  • 在完成一次 GC 运行后,第一个盘架和第二个盘架之间的容器不平衡程度降低到原来的约十分之一,预计在后续的 GC 运行完成后将进一步降低。这意味着经过一段时间,数据会自然地在各盘架之间重新平衡
局部性修复:

当文件写入 DDR 时,将发生以下高层级操作:
  • 文件拆分为大小为 4-12 Kb 的逻辑块(称为段)
  • 检查每个段,以查看它是否已存在于文件写入到的层内的磁盘上
  • 如果该段已存在,则说明它是重复数据,新写入的文件中的段将被替换为指向磁盘上现有数据的指针
  • 如果该段不存在,则说明它是唯一数据,因此它将被封装到新的 4.5 Mb 容器中并写入磁盘
所有文件都具有“局部性”的概念,即该文件引用的数据段在 DDR 磁盘上的连续性。显然,具有较高重复数据消除率(包含大量重复数据)的文件比唯一文件的局部性差,因为在接收时,前者的数据会被替换为指向现有数据的指针,这些现有数据可能分散在相应层归档单元内的容器/磁盘上。

要在 DDR 上实现良好的数据读取性能,文件必须具有良好的“局部性”(其数据在磁盘上比较连续),以便 DDFS 预读算法能够以最佳方式运行。另请注意,DDFS 假定最有可能被读取(用于还原或复制)的文件是给定备份的最新副本。因此,对于某些类型的数据(例如虚拟合成),会执行一个称为“局部性修复”的过程来“优化”新写入文件数据的局部性。局部性修复在运行时会:
  • 检查文件引用的数据,查找在磁盘上数据不连续的部分(显示较差的局部性)
  • 从磁盘读取这些不连续数据,然后将其(作为重复数据)按顺序再次写入到新创建的 4.5 Mb 容器
然后,重复数据的旧(不连续)副本将在下次 GC 运行期间被标识为“非活动”,并从系统中删除。因此:
  • 在存在数据不平衡的系统上,大多数旧的不连续数据存在于存储空间被使用得更多的旧机柜盘架上
  • 当此数据作为重复数据按顺序重写时,会被放入新的 4.5 Mb 容器中,这些容器在相应层中的所有机柜之间轮询
  • 因此,局部性修复所创建的大多数“非活动”(旧的重复数据)存在于存储空间被使用得更多的旧盘架上
  • 当 GC 运行时,它将在存储空间被使用得更多的旧盘架上找到大多数“非活动”数据并将其删除(从而释放这些盘架上的空间),如上文所述
结论

因此,通过正常使用局部性修复和清理 (GC) 功能,DDR 可以随着时间的推移,透明地在所有盘架中对数据进行重新平衡。管理员不需要进行额外操作,这也意味着不需要其他存储阵列上常见的专用数据重新平衡操作功能。因此,为了提高重新平衡发生的速度,需要:
  • 提高 DDR 上数据“周转”的速率
  • 提高在 DDR 上局部修复的数据量
如需进一步讨论其中任一选项,请联系您的签约支持提供商,并引用本文的详细信息。

Affected Products

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