6pd\heOQ+C0二.为可用性和冗余做考虑
8mr#P6D%sg
_0一个可靠的和冗余的存储网络以SAN的设计开始,这已经超越了这个白皮书的范围。但是,一些存储系统设计方面的问题----例如硬盘和RAID组的选择—--是存储系统理所当然的课题。
?%F2JV&|#~,RLV0%hyNz.mo;Ex0请记住一点,动态的LUN的迁移,使在初始化应用后再改变RAID和硬盘的类型变得可能。DOIT博客R9r1W+` U!e
DOIT博客N'T r1|0_8r8M}1.高可用性的配属
F(t Y#qo1X!`l*w0高度的可用性的配属方法,是定义对应用CLARiiON存储系统的最佳实践。TheEMC CLARiiON Open Systems Configuration Guide概述了配属方法和支持的设备。DOIT博客0]jL m*E1@9\
B'idn&X&[02. RAID-level的考虑DOIT博客L}c!Qx;e~
大部分CLARiiON存储都使用RAID 1/0或者RAID 5组,因为冗余的striped的RAID类型能提供最好的性能和冗余性。RAID 3提供了和RAID 5一样的的冗余性(一个单一校验硬盘)。DOIT博客&z YJY:y/z
Ph*{5[:_-WG:@0A. RAID 5DOIT博客Y5`EG)YqC\
RAID 5最好应用在4-9个硬盘的RAID组里面。更小的组会招致在校验开销上的更高成本。而更大硬盘数的组的主要缺点是在rebuild的时候的数据量的影响。更大的RAID组的rebuild时间会更加长,尽管把大的RAID5组跨越了两个后端的总线上能减小这种影响。Table 5给了对rebuild时间的详细说明。此外,一个更小的组会提供更高层次的可用性,因为显然对比5块硬盘坏2块,10块硬盘坏2块的概率会大得多。
}%y0YSotp0n!^2jk-^
zi~q0对于那些不能接受可能会因为硬盘故障而导致速度减慢的系统,或者数据的完全性是非常重要的,使用RAID 1/0DOIT博客
nG
_sc-c&I
DOIT博客f$MO4?6{,uB. RAID 1/0DOIT博客Myn.e@(SS:YP%h5EN/M
在可用性和冗余性是极为重要的时候,适用RAID 1/0。镜像的RAID比校验配置的冗余性肯定会更加强。此外,一个RAID 1/0只需要两个DAE—--一个对应一个后端总线----这样能让数据的可用性提升到最高可能性级别。“Binding across DAEs”里有更多的信息。最后,Table 5图解了在rebuild情况下Raid 1/0对比Raid 5的优势。DOIT博客k3e@Eq-m
DOIT博客l$?3bU4t
U IoPJ4m%Z5M0DOIT博客vY8J5k%i)i DOIT博客"i/U2L7W_
rk:q7K+J8dut0C. RAID 3
4qyA8Pql9kMR0RAID 3的硬盘组可以用5块或者9块硬盘建立。冗余性跟RAID 5一致。但是,rebuild会更快一些,因为rebuild的代码会从RAID3使用的大的后端request size中得益。DOIT博客
Ot'Nc9o
DOIT博客$Q0](`jlD.热备份(Hot spares)DOIT博客6xtVwdCT
更换的算法如下:最小的热备份硬盘,要跟目标里面选的故障的硬盘的大小一致。第二,把所有的热备份硬盘放在同一个loop里面,因为最好用大小相近的硬盘来代替故障的硬盘。任何不在BCC控制下的硬盘(如2Gb的ATA,必须要有他们自己的热备份硬盘)可以为正常的DAE作为热备份硬盘,所以谨慎地规划LCFC/FC混插的环境,来实现最少为每一种类型的硬盘都安排一个热备份。LCFC可以用来热备FC硬盘,但会有明显的速度的降低。对特定硬盘类型的每两个DAE使用一个热备份的原因是凭经验来做的。他们可以放在除系统硬盘外的任何地方。
q(i+?MY*z%K0DOIT博客+@U4b5T(X&X3.把RAID组通过总线和DAE绑定
)T;@%p2Ou0有对老的基于SCSI的系统的工作经验的工程师,会认为需要在校验RAID组里绑定每一个不同硬盘柜里面的硬盘。当每一个盘柜使用的是一条单独的SCSI总线的时候,就会应用这个方法。为可用性考虑是因为SCSI的故障不再适用于光纤。但是,在绑定硬盘的时候,还是有好几个方面需要我们考虑。DOIT博客t;`{ z4\/VX(Y(I
DOIT博客 kk)`/gP3@9t%@9WA.跨DAE来绑定硬盘DOIT博客7o4_P3C es
h;y2a
当绑定的硬盘跨DAE的时候,在现场的一些科目可能会导致很多的顾虑和疑惑。会有性能方面的提升吗?会有冗余方面的提升吗?在两种情形下,这都取决于RAID的配置;而在不同的情形下,这种区别是轻微的。
:v@-|
F0K@ wE0DOIT博客P$w*z;J&B3vqi校验的硬盘组(RAID3,RAID5)
(Lo*~Oa|^7R&R0绑定校验RAID组,把每一个硬盘放在不同的DAE并不能提升性能。但是,这个方式可以轻微地提升数据的可用性。但是,这是非常的笨拙的方式;如果真的要求非常高的可能性,那么使用RAID1/0。请参考“binding across back-end buses”,这里面会提到。
G;Bgg:w"?5l!rp)Y0DOIT博客pS*q$~Bz4m#z-Ev6O!\RAID 1/0硬盘组
AVjx(w2z0显然把一个RAID 1/0硬盘组绑定在多于两个DAE的时候,性能并不会得到提升,但这也不会有什么负面的影响。DOIT博客5HcrstgC
DOIT博客I^oL`"v;VB.跨后端总线绑定硬盘DOIT博客X9T tgzw\
目前所有的CLARiiON系统除了CX3-20和CX300之外,都有多于绑定在DAE一组的双后端光纤总线。一个硬盘组里的硬盘可以来自一条,两条或者多条总线。标准的联接DAE的方式是把总线交替地跨越他们,像DPE和第一个DAE使用bus 0,下一个DAE使用bus 1,等等。DOIT博客5OIhC3RV"cr
?dHQ%r'?(w-UcHP0校验的硬盘组(RAID3,RAID5)
l\hA jR$M
c1D"]010个或者更多的校验的硬盘组可以从跨两个总线绑定当中得到更多的好处,因为这帮助减少了rebuild的时间。例如,绑定一个10个硬盘的RAID5,把5个硬盘放在一个DAE,另5个方在下一个DAE。
:M6dON ss'j'jb0DOIT博客6`w0gH.A*M:R,y}镜像的硬盘组(RAID1,RAID1/0)
4\*M
r)jW\0跨两条总线绑定镜像的RAID组,可以增加可用性,也会减少rebuild的时间。这个方法确保了在两种(很少出现)情形下的双故障数据下数据的可用性:一个DAE或者冗余后端的总线(双端口故障)。绑定这些硬盘以便让每一个镜像组的primary的硬盘在第一个后端总线,而secondary(镜像)硬盘在第二个后端总线。跨总线的绑定也会有很小但是积极的性能影响。DOIT博客A,|!q7K+aW@
!pd\_k:C0当建立一个RAID组的时候(或者在绑定命令的时候定义一个特定的LUN),使用Navisphere CLI来跨总线绑定。当指派这些硬盘时,Navisphere CLI使用硬盘的排序,以createrg或者bind命令来创建Primary0,Mirror0,Primary1,Mirror1,等等,命令要按这个顺序。硬盘被指派为Bus_Enclosure_Disk型式。以下是一个例子:绑定来自每一个总线的各自硬盘柜里的前两个硬盘:
]0eZ6n-L
b
Hxh
{0Navicli –h <ip address> createrg 55 0_1_0 1_1_0 0_1_1 1_1_1DOIT博客y{!C
\X
#A\{7}7G+H2W0C.通过DPE磁盘绑定
g#JOHV3f0在一个完全停电的情景下,SPS(standby power supply)提供了电池后备电源给SP和系统硬盘。这允许存储系统把写缓存上的内容写入硬盘。
/M|^p*?h1@Q%C0 P)buP UN
f\c%j,h0然而,电力到没有系统盘的存储系统的硬盘柜是无法持续的。当存储系统重启的时候,有着显著I/O的LUN将会被检查,使用后台校验流程,来核实又没有任何在进行中的写只完成了部分。后台的校验是一个相当的慢的过程。DOIT博客T%IUIrl
|
?hZY0但是,如果一个LUN里面的一些硬盘是在系统硬盘(DPE或者第一个DAE,视哪种型号而定)的盘柜和一些硬盘在系统硬盘柜外面的硬盘柜,那么可能会要求rebuild,这是一个对硬盘影响更大的过程。如果影响性能达到一定程度会重启。
{ FMF0V-h9b-D0DOIT博客%s S.h ^$I,{,F8xU为了避免在启动后就rebuild,使用在系统硬盘柜内面或者外面的硬盘,建立硬盘组。如果硬盘组被分开了,遵循以下的方针:
Oe Fi [ lB1\#i:W][@01.不要把RAID 1的硬盘组分布在系统硬盘柜和其他的DAE。DOIT博客q]&W6Y)A
`
2.对于校验的RAID(RAID5,RAID3),确保至少两个硬盘在系统硬盘柜之外。DOIT博客"Nb f6G K`
3.对于RAID 1/0,确保至少一个镜像(primary和secondary硬盘作为一对)是在系统硬盘柜之外。
v2Py.}VM;SU0DOIT博客7e-Wv.m)T6dD.热备份的策略DOIT博客4|a_D$a
FLARE的驱动会为最低数字(LUN的编号)热备份硬盘来扫描故障硬盘所在的总线。如果那个热备份的硬盘有足够的空间来rebuild故障硬盘的空间,他就会被选中。如果不行,FLARE会继续扫描在那个总线上的硬盘列表,然后再到其他总线,最后另一个SP的所有列表中的热备份硬盘,直到找到一个合适的硬盘。
7GZ^\i-U%]0DOIT博客+z"Z?+oOU*Ek^\4.数据复制的持续性DOIT博客1m
S(]L,k"nQ
SnapView,MirrorView和SAN Copy的使用,已经超出了这个白皮书的范围,但持续性这个概念跟可用性是非常相近的,所以还是有理由在这里强调一下。(参考EMC关于这些其他产品的白皮书)
)Z(M(d._p6Sx\\M7W1t [0 U9L6q,fz%r0当使用任何类型(包括备份)的涉及到多个LUN的数据的镜像或者复制时,工程师必须把持续性考虑在内。涉及多个LUN的数据是指那些跨越了多于一个LUN和相互关联的LUN。我们有以下例子:DOIT博客P1]#A
C-@"{C
.关系型数据库的组件:数据目录,日志,TEMP,和RBS
wA}X }9@!L]}0.在主机卷集里的卷(VERITAS,PowerVolume)
X4aBts Lf0.消息数据库的组件
]'wa!i(jV{0.共享的文件系统
+kp$?2\!lG)hY0多个LUN的持续性取决于存储系统中的特定行为。例如,到一个跨越多个LUN组成的数据库的写操作,必须让这些LUN都要保证持续性。三个在存储设计中必须要达到这个要求的情形是:clone fractures,snapshot starts,和mirroring。
DGhR})m0DOIT博客o"x]{j"vMirrorView/A提供了阵列内持续性组,这可以保证有关联的LUN能跟着一致的split而更新。MirrorView/S有一致的fracture。SnapView提供了一致的Clone的split和一致的Snapshot Session的开始。
DOIT博客"g M kF(tsI8U