分布式 RAID 阵列属性
分布式 RAID 阵列的属性确定阵列的配置属性。
分布式 RAID 阵列配置会创建大规模内部 MDisk。 存在不同类型的分布式 RAID 阵列。 分布式 RAID 5 阵列可以包含 少 作为 4 驱动器 最初,而分布式 RAID 6 阵列可以包含 少 作为 6 驱动器 最初。 它们都可以 扩展至 ,最多包含 128 个驱动器。 NVMe 驱动器的分布式 RAID 6 阵列支持最多 48 个驱动器的阵列扩展,最多具有 4 个分布式重建区域 (取决于驱动器技术)。 另一方面,分布式 RAID 1 阵列只能包含 2-6 驱动器最初可扩展至最多 16 个相同容量的驱动器。
分布式 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 活动驱动器
- 2 将数据直接复制到更换的驱动器
分布式 RAID 阵列的示例 具有重建区域
阵列宽度
阵列宽度(也称为 驱动器计数) 指示分布式 RAID 阵列中的驱动器总数。 此总数包括用于数据容量和奇偶性校验的驱动器数 (如果有奇偶性校验条,例如在分布式 RAID 6 中) 以及用于恢复数据冗余的 重建区域 (如果存在)。
重建区域
就地重建
条带和条带宽度
条带(也可称为冗余单元)是可处理的最小数据量。 分布式 RAID 阵列条带大小为 256 KiB。
条带宽度 指示在驱动器发生故障后 重建 数据时一次可以写入的数据 条带 数。 该值也称为冗余单元宽度。 在 图 4中,数组的条带宽度为 5。
驱动器类
- 块大小
- 指示驱动器类的块大小。 有效块大小为 512 或 4096 字节。
- 容量
- 指示驱动器类的容量。
- I/O 组
- 指示与驱动器类关联的 I/O 组名
- RPM 速度
- 指示驱动器类的速度。 有效 RPM 速度可以为 7.2 K、10 K 或 15 K。对于 SSD,该值为空。
- 技术
- 指示驱动器种类的技术。 支持以下技术类型:
要更换分布式 RAID 阵列中发生故障的成员驱动器,系统可以使用与发生故障的驱动器具有相同驱动器类的另一个驱动器。 系统还可以从高级驱动器种类中选择驱动器。 例如,两个驱动器种类可以包含技术类型相同但数据容量不同的驱动器。 在这种情况下,高级驱动器种类是包含更高容量驱动器的驱动器种类。
要显示有关系统上可用的所有驱动器类的信息,请使用 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 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 阵列中的重建区域再次可用。