图4-7也显示出在左侧和右侧的扩展的连接路径。路径从一个交换机行进到下一个disk enclosure的交换机。由于扩展以这种线性方式完成,更多enclosure的添加是完全非中断性的。
-^4M/BrN|)]Vm~0RAID-5是RAID保护当中最常用的格式。
c+p/?5M6^WF,j0RAID-5原理DOIT博客"B*s'ST%_&SS
DS8000支持RAID-5阵列。RAID-5横跨多个硬盘驱动器散布卷数据加上校验数据的方法。RAID-5提供了更快速的性能通过条带化数据横跨一组DDM。数据保护通过每个条带数据生成校验信息。如果一个阵列的成员失效,通过使用校验数据再次生成它的内容。
)E
X9c
`D0DS8000 RAID-5的实现DOIT博客-UL3CUR ]
在一台DS8000里,一个RAID-5阵列建立在一个array site上,将包含7或8块硬盘,依赖于array site是否提供一块spare盘。1个7硬盘的阵列有效的使用一块硬盘用于校验,所以它被归类于一个6+P阵列(P是校验)。只有7块硬盘形成一个6+P阵列的原因是在array site的8块硬盘被用于建立阵列时使用一块被用盘。因而归类于一个6+P+S的array site(S是spare)。一个8硬盘的阵列也可以有效的使用1块硬盘用于校验,提供了一个7+P阵列。DOIT博客:|9BHUW6geG
硬盘失效
tx'M'@1vqZ2`0当一个RAID-5阵列中的一个硬盘驱动器模块失效,DA开始一个重构数据的操作从失效硬盘到spare盘。被使用的spare盘将根据一种巧妙的算法看spare盘的位置、大小和失效DDM的位置选择。重建的执行通过读取阵列中剩余的每个条带上相应的数据和校验值,履行一个异或exclusive-OR操作来再造数据,然后写入这些数据到spare盘。DOIT博客4c8h_;gG5Vr0HX
当数据重建进行中时,DA能够继续服务于读和写请求。这里也许有可能有一些性能的下降,当spare操作进行的时候,因为一些DA和交换式网络资源被用于重构。由于DS8000基于交换式结构,这种影响被降至最小。另外,任何对失效硬盘的数据读请求需要从阵列中的其他硬盘中读取,于是DA执行一个重建数据的操作。DOIT博客nvbrOfD
RAID-5阵列的性能在数据重建完成后恢复正常。spare需要花费的时间是不定的,依赖于失效DDM的大小和阵列的负载,交换式网络以及DA。使用arrays across loops AAL能够提高重建速度和降低重建的影响。
ROo i x*Eh#}0RAID-10不像RAID-5那样经常被使用,主要原因是需要为每一个有效GB容量提供更大的原始容量。DOIT博客4B??
VS@}#u6Y_
RAID-10原理DOIT博客4xvLJT!s!{ F(smw%J
RAID-10通过组合RAID-0和RAID-1提供了高可用性。RAID-0优越的性能表现通过条带化卷,数据一次横跨多个硬盘驱动器实现。RAID-1提供了硬盘镜像,在两个硬盘驱动器之间复制数据。通过结合RAID-0和RAID-1的特性,RAID-10提供了第二级错误容忍度的优化。在RAID-1阵列中数据被条带化横跨一半的硬盘。同样的数据也被条带化跨越另一半的硬盘,建立一个镜像。如果在每个镜像对里面一块硬盘可用的话,访问数据会被保存。RAID-10提供了比RAID-5更快速数据读取和写,因为它不需要去管理校验。然而,一组DDM中一半的用于保存数据,另一半用于数据镜像。RAID-10硬盘组比RAID-5硬盘组具有更少的可用空间。
#@&hqlYv;d(ZP2h0DS8000中RAID-10的实现
D&O6sXR(v ^0在DS8000上,RAID的实现是使用6或8块硬盘。如果spare盘存在于array site上,那么6块硬盘被用于形成两个3块硬盘的RAID-0阵列之间的镜像。如果spare盘没有在array site上,那么8块硬盘被用于形成两个4块硬盘的RAID-0阵列之间的镜像。
"RNXv8_"ob3E M0硬盘失效DOIT博客'o&^P} Uz:f4V F
当一个RAID-10中的DDM失效,控制器开始一个重建操作从失效硬盘到热备盘。被使用的spare盘将根据一种巧妙的算法看spare盘的位置、大小和失效DDM的位置选择。记住一个RAID-10阵列式RAID-0阵列镜像得来的。当RAID-0阵列中的一块硬盘失效时,我们能够重建失效的硬盘,通过读取在另一个RAID-0阵列中等值硬盘的数据。DOIT博客:rye0H9H${ O R
当数据重构时,DA能继续服务于从主机到阵列的读和写请求。这里也许有可能有一些性能的下降,当spare操作进行的时候,因为一些DA和交换式网络资源被用于重构。由于DS8000基于交换式结构,这种影响被降至最小。对失效硬盘数据的读请求将不会受到影响,因为它们能被从好的RAID-1阵列直接取到。DOIT博客1d _-yi'p5kyO
写操作将不会被影响。RAID-10阵列的性能将恢复正常,当数据在spare设备上重构完成时。spare需要花费的时间是不定的,依赖于失效DDM的大小和阵列的负载。
3e,|\O{vQ'g0AAL
%X;kX+K\h:T,r0DS8000采用AAL(arrays across loops)技术。对于AAL,一个array site是实际被分成2半。一半site位于一个DA对上的第一个硬盘环路上,另一半位于那个DA对上的第二个硬盘环路。它主要用于实现最大的性能。因此,RAID-10种,我们能够利用AAL的先进性提供一个高等级的冗余。DS8000 RAS代码有意的保证一个RAID-0阵列被维护在由一对DA建立的2个环路上。这意味着在一个环路完全失效的极端情况下,DS8000也不会失去访问RAID-10阵列的能力。这是因为党一个RAID-0阵列离弦,另一个仍能服务于硬盘I/O。
[(PNh'_0当DS8000上一个array site被创建后,DS8000微码规定这个site中必须含有spare盘。前4个array site中通常为每个DA对提供一个spare盘,每个环路中将有2个spare盘。通常情况下,每个DA对将有4个spare盘。
xk*|?jl4@0在ESS800上,spare盘的创建规定是每一种DDM类型在一个SSA环路中有4块。这意味着在一个特殊的SSA环路中有可能有12块spare盘,如果在一个SSA环路中有3种不同的硬盘的话。对于DS8000不是这样的。最小值是1个spare盘被创建在每个array site,直到符合以下的条件:
3o5b];d'U\ fU0Ü 一个最小值是每个DA对有4块spare盘DOIT博客 i?gS)T gKM/Ke
Ü 一个最小值是在一个DA对上最大容量的array site有4块spare盘
uwH&UJ.qe ^'cd,l0Ü 在一个DA对上,spare盘容量和转速大于或等于指定容量的最快速的array site的最小值是2块
IVnRHAv%O(WA0spare盘漂移
H;WJ!hK9m5G)ASV0DS8000的spare盘可以执行一个聪明的漂移技术。在ESS 800上,spare盘漂移。这意味着当一块DDM失效,它所包含的数据被重建在spare盘上时,那么当硬盘复位后,复位的硬盘自动变为备用。数据不再迁移到另一块DDM上,譬如失效DDM的原始位置。换句话说,ESS 800没有布置修复处理。
P\5RW GY!b;G0DS8000微码也可以选择允许热备盘保留它移动了的位置,但是它也许改为选择移动spare到一个更佳的位置。这将改善spare盘横跨DA对、环路和enclosures的平衡。这能够更好的将当前一个阵列的成员DDM转换为备用。这样DDM上的数据在后台被迁移到一块已经存在的spare盘上。迁移这个步骤不会失效硬盘,尽管它减少了DS8000中可用的spare盘数量直到迁移进程结束。DOIT博客+ae7n2u6f0y[
一个聪明的进程将被用来保证更大或更快的DDM总是用于spare。这更加优越,因为如果我们重建了一块146G DDM上的内容到一块300G DDM,于是300G DDM有大约一半的容量因为不需要而被浪费。这里的问题是失效的146GB DDM将被一块新的146G DDM替换。所以,DS8000微码将很可能迁移数据到最近被替换的146G DDM上。当这个进程完成,146G DDM将重新加入阵列,300G DDM将再次变为备用。另一个例子是,如果我们失效了一块73G 15k RPM DDM迁移到一块146G 10k RPM DDM。这意味着数据现在迁移到了一个低速的DDM,但是复位的DDM将是同失效的硬盘一样的DDM。这意味着阵列运行在混合的RPM下。这不是令人满意的。再一次,一个聪明的数据迁移将执行将相配的spare盘变为可用的进程。DOIT博客-ncP/Nr3I
热插拔DDMDOIT博客R:wQ;Jr!m
替换失效的硬盘不会影响DS8000的运转,因为所有的硬盘驱动器都是热插拔的。因为事实是每个硬盘插入一个开关,相关的移出或替换一块硬盘没有环路破坏。另外,这里没有潜在的LIP(loop initialization process)。DOIT博客USLr-BGB6h?
4.6.5预故障诊断Predictive Failure Analysis®(PFA)
DS8000使用的硬盘结合了PFA,并且能够预测某些错误的形式通过保持内部的读和写的统计表。如果错误等级超过了预先确定的极限值,硬盘将被推荐替换。因为这个硬盘还没有失效,数据能够被立即拷贝到一块spare盘上。这避免了使用RAID恢复来重构所有数据到spare盘。DOIT博客C8z1sQ%R$j
P6f%J)y-C