分布式阵列属性

分布式阵列的属性会决定阵列的配置属性。

分布式阵列配置可创建大型内部 MDisk。 这些阵列(可包含 4 - 128 个驱动器)还包含用于在驱动器发生故障后保持冗余的重建区域。 如果系统上提供的驱动器不足(例如,在少于四个闪存驱动器的配置中),那么无法配置分布式阵列。 分布式 RAID 阵列可解决非分布式阵列配置中的重建瓶颈问题,这是因为重建区域分布在阵列中的所有驱动器中。 重建写工作负载分布在所有驱动器中,而不仅仅是分布在单个备用驱动器中,因此,阵列上的重建速度更快。 分布式阵列中不需要在发生故障前处于空闲状态的独立驱动器。 备用容量分布在特定重建区域(分布在所有成员驱动器中)中,而不是将一个或多个驱动器分配为备用驱动器。 可以更快地将数据复制到重建区域,并可以更迅速地恢复冗余。 此外,随着重建工作的推进,由于要将所有可用驱动器用于每个卷扩展数据块,因此池的性能更加稳定。 在更换发生故障的驱动器后,会将数据从分布式备用容量中复制回驱动器。 与“热备用”驱动器不同,将在驱动器中未用作重建区域的其他部分上处理读/写请求。 重建区域的数量取决于阵列的宽度。 重建区域的大小将决定在无降级风险的前提下分布式阵列可以恢复故障驱动器的次数。 例如,使用 RAID 6 驱动器的分布式阵列可以处理两个并发故障。 在重建发生故障的驱动器后,阵列可再容许两个驱动器故障。 如果所有重建区域都用于恢复数据,那么阵列会在下一次驱动器发生故障时降级。 在完成阵列配置之前,请验证您的型号是否支持分布式阵列。

支持的 RAID 级别

对于分布式阵列,系统支持以下 RAID 级别:

分布式 RAID 5
分布式 RAID 5 阵列将数据条带分割给成员驱动器,其中每个条带上有一个奇偶性校验条。 这些分布式阵列可以支持 4 到 128 个驱动器。 RAID 5 分布式阵列只允许一个成员驱动器发生故障。
分布式 RAID 6
分布式 RAID 6 阵列将数据条带分割给成员驱动器,其中每个条带上有两个奇偶性校验条。 这些分布式阵列可以支持 6 到 128 个驱动器。 RAID 6 分布式阵列可容许任意两个并发成员驱动器发生故障。

分布式阵列示例

分布式阵列(RAID 6 级别) 显示配置了 RAID 6 的分布式阵列示例;阵列中的所有驱动器均处于活动状态。 重建区域分布于所有驱动器中,驱动器计数包括所有的驱动器。
  • 1 活动驱动器
  • 2 重建区域,分布于所有驱动器中
  • 3 驱动器计数,包括所有的驱动器
  • 4 数据条带(显示了两个条带)
  • 5 条带宽度
  • 6 组,等于条带宽度乘以驱动器计数
  • 7 阵列中的其他组(未显示)
Figure 1. 分布式阵列(RAID 6 级别)
此图显示配置了 RAID 6 级别的分布式阵列示例。
包含故障驱动器的分布式阵列(RAID 6 级别) 显示了包含故障驱动器的分布式阵列。 为恢复数据,将从多个驱动器读取数据。 然后会将恢复的数据写入到重建区域,这些区域分布于阵列中的所有驱动器上。 剩余重建区域分布于所有驱动器中。
  • 1 发生故障的驱动器
  • 2 重建区域,分布于所有驱动器中
  • 3 剩余重建区域在每个剩余驱动器中循环
  • 4 阵列中的其他组(未显示)
Figure 2. 包含故障驱动器的分布式阵列(RAID 6 级别)
此图显示配置了 RAID 6 级别的分布式阵列示例,其中具有一个发生故障的驱动器。

阵列宽度

阵列宽度(也称为 驱动器计数)指示分布式阵列中驱动器的总数。 此总数包括用于数据容量和奇偶性校验的驱动器数量,以及用于恢复数据的重建区域的数量。

重建区域

重建区域是分布式阵列中保留的磁盘容量,用于在驱动器发生故障后重新生成数据;它不提供可用容量。 与非分布式阵列不同,此重建区域分布于阵列中的所有驱动器上。 随着数据在回拷过程中的重建,重建区域有助于提高分布式阵列的性能,因为所有卷都会执行 I/O 请求。

条带和条带宽度

条带(也可称为冗余单元)是可以处理的最小数据量。 对于分布式阵列,条带大小可以为 128 或 256 KiB。

条带宽度指示在驱动器发生故障后重新生成数据时一次可以写入的数据的条带数。 该值也称为冗余单元宽度。 在分布式阵列(RAID 6 级别) 中,阵列的条带宽度是 5。

驱动器种类

为增强分布式阵列的性能,所有驱动器都必须来自于相同或高级驱动器种类。 每个驱动器种类都用其 drive_class_id 来标识。 系统使用以下信息来确定每个驱动器的驱动器种类:
块大小
指示驱动器类的块大小。 有效块大小为 512 或 4096。
容量
指示驱动器类的容量。
I/O 组
指示与驱动器类关联的 I/O 组名
RPM 速度
指示驱动器类的速度。 有效 RPM 速度可以为 7.2 K、10 K 或 15 K。对于 SSD,该值为空。
技术
指示驱动器种类的技术。 支持以下技术类型:
0 层闪存
0 层闪存驱动器是高性能闪存驱动器,可处理读写操作并提供比企业级或近线驱动器更快的数据访问速度。 对于大部分 0 层闪存驱动器,在使用这些驱动器时,系统将监视磨损级别并在驱动器要更换时发出警告。使用 NVMe 体系结构的驱动器被视为 0 层闪存驱动器。
1 层闪存
1 层闪存驱动器是低开销闪存驱动器,通常容量较大但性能略低,并具有写耐力特征。 在使用这些驱动器时,系统将监视磨损级别并在驱动器要更换时发出警告。
企业磁盘
企业磁盘是为性能优化的磁盘驱动器。
近线磁盘
近线磁盘是为容量优化的磁盘驱动器。
传输协议
指示驱动器的传输协议。 可能的值包括 SAS 或 NVMe 协议。
压缩
指示驱动器是否为自压缩驱动器。 只有在使用 NVMe 作为传输协议的系统上才支持自压缩驱动器。
物理容量
对于压缩驱动器,该值表示驱动器上的总物理容量。该值可能小于容量值表示的逻辑容量。

对于非压缩驱动器,物理容量与逻辑容量相同。

要更换分布式阵列中发生故障的成员驱动器,系统可以使用其驱动器种类与故障驱动器相同的其他驱动器。 系统还可以从高级驱动器种类中选择驱动器。 例如,两个驱动器种类可以包含技术类型相同但数据容量不同的驱动器。 在这种情况下,高级驱动器种类是包含更高容量驱动器的驱动器种类。

要显示有关系统上可用的所有驱动器种类的信息,请使用 lsdriveclass 命令。 lsdriveclass 命令的示例输出 显示了系统上的四个驱动器类。 驱动器种类 209 包含容量为 278.9 GB 的驱动器;驱动器种类 337 包含容量为 558.4 GB 的驱动器。 虽然驱动器有同样的 RPM 速度、技术类型和块大小,但是驱动器种类 337 被认为要优于驱动器种类 209。

lsdriveclass 命令的示例输出

id  RPM   capacity IO_group_id IO_group_name tech_type block_size candidate_count superior_count total_count
1   10000 418.7GB  0           io_grp0       sas_hdd   512        0               0              2
129 10000 278.9GB  0           io_grp0       sas_hdd   512        0               0              5
209 15000 278.9GB  2           io_grp2       sas_hdd   4096       2               5              2
337 15000 558.4GB  3           io_grp3       sas_hdd   4096       3               3              3

写入缓慢优先级设置

在冗余阵列执行读写 I/O 操作时,阵列的性能受到最慢成员驱动器性能的约束。 在驱动器执行内部 ERP 流程时,如果 SAS 网络不稳定或者向阵列施 加的工作量过大,成员驱动器的性能可能远低于正常情况。 在这种情况下,提供冗余的阵列可以接受短暂中断冗余,以避免对慢速组件执行读写操 作。 映射到性能低下驱动器的写入会被落实到其他拷贝或对等卷,从而以良好状态完成(假定无其他故障)。 当成员驱动器恢复运行之后,写入条带的后台进程将会恢复冗余(该进程在成员变慢时被标记为异步)。

此技术由分布式阵列的 slow_write_priority 属性设置来控制,在创建阵列时该属性的 缺省值为 latency。 在设置为 latency 时,允许阵列变为异步状态以力图消除低下的成员性能。 您可以使用 charray 命令将 slow_write_priority 属性更改为 redundancy。 在设置为 redundancy 时,不允许阵列出现不同步情况。 但是,阵列可以通过将读取返还给冗余路径中的慢速组件来避免读取性能下降。

在阵列使用 latency 方式,或者尝试避免读取处于 redundancy 方式的某个组件时,系统将定期评估驱动器,以评估其何时可以重新成为系统的可靠部分。 如果驱动器从不提供良好性能或者在阵列中导致太多性能故障,系统将认为硬件发生故障,以避免持续受到性能低下驱动器的影响。 仅当系统找不出对驱动器性能较差的其他解释时,才会认为硬件故障。

分布式驱动器更换

如果驱动器上的故障指示灯点亮,那么驱动器被标记为发生故障,并且在分布式阵列中不再使用。 当系统检测到故障驱动器已被更换时,它会自动从阵列配置中移除发生故障的硬件。 如果新驱动器合适(例如,在相同的驱动器种类中),系统将开始回拷操作,使重建区域在分布式阵列中可用。