分布式 RAID 阵列属性

分布式 RAID 阵列包含重建区域,这些区域用于在驱动器发生故障后维持冗余。

所有分布式 RAID 阵列都是如此,只有 2 个驱动器的分布式 RAID 1 阵列除外。 如果系统上没有足够的可用驱动器,那么无法配置分布式 RAID 阵列。 分布式 RAID 阵列解决了 非分布式 RAID 阵列配置中的重建瓶颈,因为重建区域分布在阵列中的所有驱动器上。

重建写工作负载分布在所有驱动器上,而不仅仅是将导致阵列上的重建速度更快的单一备用驱动器上。 分布式 RAID 阵列不再需要处于空闲状态的单独驱动器,直到发生故障为止。 并不会分配一个或多个驱动器作为备用驱动器,备用容量会分布在所有成员驱动器中的特定重建区域上。 数据可以更快地复制到重建区域,且冗余能更迅速地复原。 此外,随着重建进度的推进,因为要为每个卷扩展数据块使用所有可用的驱动器,池的性能将更加始终如一。 更换故障驱动器后,数据将从分布式重建区域中复制回驱动器。 与“热备用”驱动器不同,将在驱动器中未用作重建区域的其他部分中处理读/写请求。 重建区域的数量基于分布式 RAID 阵列的宽度以及成员驱动器的技术。

例如,使用 RAID 6 驱动器的分布式 RAID 阵列可以处理两个并发驱动器故障。 在重建两个发生故障的驱动器之后,阵列可以再次容忍另外两个驱动器发生故障。 如果使用所有重建区域,那么阵列会在下一次驱动器发生故障时降级。

由与 RAID 5 或 RAID 6 阵列相同的底层驱动器组成的分布式 RAID 1 阵列的有效容量通常小于后者的有效容量。 但是,虽然在容量方面,分布式 RAID 5 和 6 通常更好,但在性能方面,RAID 1 对于某些工作负载可能更好。

支持的 RAID 级别

系统支持分布式 RAID 阵列的以下 RAID 级别:

分布式 RAID 1
分布式 RAID 1 阵列由两个镜像条带组成,这些条带分布在所有成员驱动器中。 当存在重建区域时,分布式 RAID 1 阵列可以容忍单个发生故障的成员驱动器。 如果分布式 RAID 1 阵列中的成员驱动器发生故障,包含两个成员驱动器,或者重建区域不再可用,那么阵列将降级。 与分布式 RAID 5 和 6 不同,分布式 RAID 1 不包含任何奇偶校验条。为了恢复降级分布式存储阵列的冗余,使用了就地重建过程,将数据直接重建回被替换的成员驱动器。 只有两个成员硬盘的 退化的分布式 RAID 阵列 使用 就地重建 进程恢复冗余,将数据直接复制到被替换的成员硬盘中。
分布式 RAID 5
分布式 RAID 5 阵列将数据条带分割给成员驱动器,其中每个条带上有一个奇偶性校验条。 这些分布式 RAID 阵列可支持 4 - 128 块硬盘。 RAID 5 分布式阵列只允许一个成员驱动器发生故障。 为了恢复已降级的分布式 RAID 阵列的冗余, 就地重建 过程用于将数据 (或奇偶性) 直接重构回已更换的成员驱动器。
分布式 RAID 6
分布式 RAID 6 阵列将数据条带分割给成员驱动器,其中每个条带上有两个奇偶性校验条。 分布式 RAID 6 阵列可容许任意两个成员驱动器同时发生故障。 为了恢复已降级的分布式 RAID 阵列的冗余, 就地重建 过程用于将数据 (或奇偶性) 直接重构回已更换的成员驱动器。

没有重建区域的分布式 RAID 阵列示例

注: 当此示例显示 2 成员驱动器存储阵列 (具有分布式 RAID 1) 时,如果成员驱动器未能达到没有可用的重建区域的程度,那么 任何分布式存储阵列 中都会发生相同的就地重建过程。 在这些情况下,将数据重构(而非复制)到更换的驱动器。
图 1。 无重建区域的两个成员驱动器存储阵列
该图显示仅具有两个成员驱动器的活动分布式 RAID 1 级别的示例。
图 1 显示了一个分布式 RAID 阵列的示例,该阵列有两个成员驱动器,没有重建区域;阵列中的两个驱动器都处于活动状态。
  • 1 (最小值) 两个活动驱动器和条带宽度
  • 2 Pack ,深度为两条
图 2 显示了一个带有两个成员驱动器的分布式 RAID 阵列,其中包含一个故障驱动器。 为恢复数据,数据将条带从活动驱动器拷贝到新驱动器或先前发生故障的驱动器。
  • 1 活动驱动器
  • 2 发生故障的驱动器
图 2。 具有发生故障的驱动器的两个成员驱动器存储阵列
此图显示具有故障驱动器的 2 成员驱动器分布式 RAID 阵列的示例。
图 3 显示了就地重建过程,新数据被直接复制到被替换的硬盘中。
  • 1 活动驱动器
  • 2 将数据直接复制到更换的驱动器
图 3。 两个成员驱动器上的就地重建进程
此图显示了如何将数据直接复制到两个成员驱动器上的已更换驱动器的示例。

分布式 RAID 阵列的示例 具有重建区域

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

阵列宽度

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

重建区域

重建区域 是分布式 RAID 阵列中保留的驱动器容量,用于在驱动器发生故障后重建数据; 它不提供可用容量。 与非分布式 RAID 阵列不同, 重建区域分布在阵列中的所有硬盘上。 在 copyback 过程中重建数据时,重建区域会提高分布式 RAID 阵列的性能,因为所有成员驱动器都会执行 I/O 请求。
注: 只有两个成员驱动器的 分布式 RAID 1 系统不包含重建区域。

就地重建

在没有可用重建区域时执行的分布式 RAID 阵列进程,这会导致阵列降级。 就地重建过程通过使用原始数据分发将数据直接回拷或重构到已更换的成员驱动器中来复原数据冗余。
注: 并非所有分布式 RAID 阵列存储系统都可能支持 就地重建 过程。 有关更多信息,请参阅 支持的 RAID 级别

条带和条带宽度

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

条带宽度 指示在驱动器发生故障后重建数据时一次可写入的数据条带数。 该值也称为冗余单元宽度。 在 图 4 中,数组的条带宽度为 5。

驱动器类

要增强分布式 RAID 阵列的性能,所有驱动器都必须来自同一或高级 驱动器类。 每个驱动器种类都用其 drive_class_id 来标识。 系统使用以下信息来确定每个驱动器的驱动器种类:
块大小
指示驱动器类的块大小。 有效块大小为 512 或 4096 字节
容量
指示驱动器类的容量。
I/O 组
指示与驱动器类关联的 I/O 组名
RPM 速度
指示驱动器类的速度。 有效 RPM 速度可以为 7.2 K、10 K 或 15 K。对于 SSD,该值为空。
技术
指示驱动器种类的技术。 支持以下技术类型:
存储类内存
“存储类内存”驱动器使用持久内存技术,可提高当前闪存存储设备技术的耐久性以及缩短等待时间。 所有 SCM 驱动器均使用 NVMe 体系结构。
0 层闪存
0 层闪存驱动器是高性能闪存驱动器,可处理读写操作并提供比企业或近线驱动器更快的数据访问。 对于大部分 0 层闪存驱动器,系统将监视磨损级别并在驱动器要更换时发出警告。 某些 NVMe 连接的驱动器(例如 IBM FlashCore® Module 驱动器)会被视为 0 层闪存驱动器。
1 层闪存
1 层闪存驱动器是低开销闪存驱动器,通常容量较大但性能略低,并具有写耐力特征。 系统将监视磨损级别并在驱动器要更换时发出警告。
企业磁盘
企业磁盘是为性能优化的磁盘驱动器。
近线磁盘
近线磁盘是为容量优化的磁盘驱动器。

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

要显示系统中可用的所有硬盘类别信息,请使用 lsdriveclass 命令。 lsdriveclass 命令的输出示例显示了系统中的 4 个驱动器类别。 驱动器类别 2 包含容量为 744.7 GB 的驱动器;驱动器类别 3 包含容量为 1.7 TB 的驱动器。 虽然硬盘的技术类型和块大小相同,但 3 级硬盘被认为优于 2 级硬盘。

lsdriveclass 命令的示例输出

id RPM   capacity IO_group_id IO_group_name tech_type       block_size candidate_count superior_count total_count transport_protocol compressed
0        7.0TB    0           io_grp0       tier0_flash     4096       6               6              6           nvme               no
1        20.0TB   0           io_grp0       tier0_flash     512        2               2              8           nvme               yes
2        744.7GB  0           io_grp0       tier0_flash     512        2               2              2           sas                no
3        1.7TB    0           io_grp0       tier1_flash     512        2               2              2           sas                no

写入缓慢优先级设置

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

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

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

分布式 RAID 阵列成员驱动器更换

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