阵列属性

非分布式阵列的一个键属性是指阵列中的某些驱动器指定为“备用驱动器”。在非分布式阵列配置中,备用驱动器仅在阵列中的其他驱动器发生故障时使用。

一个非分布式阵列可包含 2-16 个驱动器;若干阵列可以为池形成容量。为实现冗余,在其他任何驱动器发生故障时,都将分配备用驱动器(“热备件”)以执行读/写操作。 在其他时间内,备用驱动器处于闲置状态,不会为系统处理请求。 当阵列中的成员驱动器发生故障时,数据只能以备用驱动器写入数据的速度恢复到备用驱动器。因为此瓶颈原因,重建数据可能会花费几个小时,因为系统要尝试均衡主机和重建工作负载。因此,其余成员驱动器上的负载可能会明显增加。在整个时间内,到重建阵列的 I/O 的等待时间受到影响。因为卷数据分割到多个 MDisk 上,因此重建驱动器期间,所有卷都将受影响。

阵列示例

Figure 1 显示配置了 RAID 6 级别的阵列示例。此阵列包含 5 个活动驱动器和 2 个备用驱动器。
  • 1 活动驱动器
  • 2 备用驱动器;两个驱动器均不活动
  • 3 数据条带,由个别数据条带组成
  • 4 条带宽度,等于阵列宽度;只有活动驱动器才包括在条带宽度中
Figure 1. 非分布式阵列(RAID 6 级别)
该图显示配置了 RAID 6 级别的非分布式阵列的示例;所有驱动器均处于活动状态。
Figure 2 显示了包含故障驱动器的阵列。从所有剩余的活动驱动器读取数据。然后将所有恢复的数据写入 1 个备用驱动器中。在此过程中,其他备用驱动器仍未使用,处于空闲状态。
  • 1 发生故障的驱动器
  • 2 剩余的活动驱动器,从中读取恢复的数据
  • 3 恢复的数据被写入 1 个备用驱动器
  • 4 其余备用驱动器仍未使用,处于空闲状态
Figure 2. 包含故障驱动器的非分布式阵列(RAID 6 级别)
该图显示配置了 RAID 6 级别的非分布式阵列的示例。一个驱动器发生了故障。

支持的 RAID 级别

系统支持以下 RAID 级别:RAID 0、RAID 1、RAID 5、RAID 6 和 RAID 10。

RAID 0
RAID 0 阵列不具有冗余且不支持热备用接管。
RAID 1
RAID 1 提供磁盘镜像,用于在两个驱动器之间拷贝数据。RAID 1 阵列在内部与两个成员的 RAID 10 阵列相同。
RAID 5
RAID 5 阵列会在成员驱动器上对数据进行条带分割,其中每个条带上有 1 个奇偶性校验条。RAID 5 阵列具有比 RAID 10 阵列自动精简配置更高的单冗余,但是性能会受一定影响。 RAID 5 阵列可容许一个成员驱动器发生故障。
RAID 6
RAID 6 阵列会在成员驱动器上对数据进行条带分割,其中每个条带上有 2 个奇偶性校验条。RAID 6 阵列可容许任意两个并发成员驱动器发生故障。
RAID 10
RAID 10 阵列将数据条带分割给驱动器镜像对。RAID 10 阵列具有单冗余。镜像对独立重新构建。 每对中的一个成员可同时处于重新构建或缺失状态。RAID 10 将 RAID 0 和 RAID 1 的功能相结合。

Table 1 对 RAID 级别的特征进行了比较。

Table 1. RAID 级别比较
级别 驱动器计数 (DC)1 近似阵列容量 冗余2
RAID 0 1 - 8 DC * DS3 None
RAID 1 2 DS 1
RAID 5 3 - 16 (DC - 1) * DS 1
RAID 6 5 - 16 小于 (DC - 2) * DS 2
RAID 10 2 - 16,偶数 (DC/2) * DS 14
  1. 管理 GUI 中,无法创建所有大小的阵列,这是因为大小取决于驱动器的配置方式。
  2. 冗余表示阵列可容许的驱动器故障数。 在某些情况下,阵列可容许多个驱动器发生故障。有关详细信息,请参阅驱动器故障和冗余
  3. DS 表示驱动器大小。
  4. 介于 1 和 MC/2 之间。

阵列初始化

当创建了阵列时,阵列成员会通过后台初始化过程相互同步。在此过程中,阵列可用于 I/O。由于成员驱动器发生故障,初始化对可用性没有任何影响。

驱动器故障和冗余

如果阵列具有必要的冗余,那么在驱动器发生故障或无法使用驱动器时,会从阵列中卸下该驱动器。如果合适的备用驱动器可用,那么会将其引入到阵列中,然后该驱动器会开始同步。

各阵列具有一组目标,描述了各阵列成员的首选位置和性能。如果驱动器发生故 障,那么驱动器故障和热备用接管的顺序可导致阵列处于不平衡状态,即阵列中可能包含与这些目标不匹配的成员。当相应的驱动器可用时,系统会自动重新平衡此类阵列。

重新平衡通过使用并发交换来实现,后者会在驱动器之间迁移数据而不影响冗余。

您可以手动启动交换,并且还可以更新阵列目标以促进配置更改。

备用驱动器保护和目标

每个阵列成员都由一组有效匹配的备用驱动器保护。这些备用驱动器中的一些比其他备用驱动器更适合。例如,一些备用驱动器可能会使阵列性能和/或可用性降低。对于每个阵列成员,正常的备用驱动器都处于联机状态,并且与阵列成员在同一个链上。良好的备用驱动器具有以下特征之一:
  • 成员目标容量、性能和位置完全匹配。
  • 性能匹配;备用驱动器具有相同或更大容量,并具有相同或更佳性能。
良好的备用驱动器还具有以下特征之一:
  • 使用 spare 的驱动器。
  • 在交换完成时,指定成为热备用驱动器的并发交换旧驱动器。

阵列命令具有一个名为 spare_protection 的属性,您可以用于指定阵列成员的正常备件数量。阵列属性 spare_protection_min 是阵列成员备用保护的最小数。

阵列属性 spare_goal 是保护每个阵列成员所需的正常备用驱动器数。在创建阵列时设置该属性,并且可以使用 charray 命令进行更改。

如果保护阵列成员的良好备用驱动器数低于阵列备用目标,那么您将收到事件错误 084300。

写入缓慢优先级设置

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

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

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

驱动器脱机递增重建

当内部 RAID 阵列中的驱动器脱机时,系统将尝试避免执行热备用接管。在 60 秒的周期内,驱动器会标记在何处执行新的写入操作。如果驱动器再次联机,那么将在发生写入的位置完成“递增重建”,而不是完整的组件重建。 无论阵列的 slow_write_priority 设置如何,此技术都将发生,因为需要避免备用接管以维护最高的系统可用性。

驱动器更换

故障指示灯点亮的驱动器表示该驱动器已标记为发生故障,不再供系统使用。当系统检测到已更换了这种发生故障的 驱动器时,会将驱动器更换件重新配置为备用驱动器。被更换的故障驱动器会自动从配置中除去。然后,会使用新的备用驱动器实现系统的阵列成员资格目标。