一个array创建在一个array site上。形成一个array意味着定义了一个特殊的RAID类型。支持RAID类型有RAID-5和RAID-10(详见4.6.2,“RAID-5概述”和4.6.3,“RAID-10概述”)。可以为每个array site可以选择一个RAID类型。为一个array选择RAID类型的过程也被叫做定义一个array。DOIT博客(p2B[R/}0T
注意:在现在的DS8000中,一个array被定义使用一个array site。DOIT博客#O k
N9l#S.L7?`d/p |
DOIT博客}+|`zc-Bd;i4Kp8I
依据DS8000 spare算法,array site有0到2个spare盘。未来在第6章中详细描述,“IBM TotalStorage DS8000 model概述”。DOIT博客$dC$Ipk'\A?-L
图5-4显示了RAID-5阵列中创建一个spare的过程,也叫做一个6+P+S阵列(6块DDM保存数据,一块DDM保存校验数据,一块一盘作为spare盘)。根据RAID-5的机制,在这个例子中,校验数据平均分布到所有的7块硬盘上。
]6y?
JW0在图5-4右边的的D1、D2、D3等,代表阵列中一组在每块硬盘中包含的条带化数据。例如,如果1GB数据写入,它将被分布在阵列中所有的硬盘上。
d+b*w8Xp
MIZ0
6yi}:A
S_E+R0
DOIT博客H1b e
JW
x|:n&v
图5-4一个array的创建
9E{a1\y0因此,一个array site形成一个array,当array能够被每个DA对的一个DA访问,它被一个DA管理。哪个适配卡和哪个服务器管理这个array将在后面的配置路径中定义。DOIT博客2O2m|%G F[5FnP
RANK是IBM DS8000和DS6000中的一个新的逻辑概念。DOIT博客$I v@4~ ~#I1?
RANK的名字是由DS Storage Manager所自动指定的,例如R1、R2、R3等等,可以把已经定义好的array加入到RANK当中。必须增加一个array到一个rank。
:f
?+\ZCZ
p0注意:在现在的DS8000中,一个rank建立在使用一个array上。 /`XXL;k1\Uk9Q0 |
#R,{"YT$i*]
|4pH&t0每个rank可用的空间将被划分到extent。Extent是逻辑卷的积木。一个extent跨越一个array被条带化,如图5-5所示,并且在图5-6中的小方格表示出。
O#F{*gA2WJ1T.E0形成一个rank的过程要做两件事情:
pZ4M.KhoR0Ü array被格式化成FB(开放系统)或CKD(zSeries)数据。这决定了阵列上每块硬盘的一个条带包含的数据的大小。
T7o \^LOn0Ü 把array分成一个个相同容量的extent,extent的大小取决于该extent的类型,是FB还是CKD。DOIT博客|c9pbkO _4B
一个FB rank使用1GB的extent大小(1GB等于230字节)。
:Kc,B~.{0在zSeries环境中不使用gigabyte,反而以3390卷大小替代。一个3390 Model 3三倍于Model 1的大小,一个Model 1有1113个cylinder,大小为0.94GB。CKD rank的extent大小所以是一个3990 Model 1或者称为1113个cylinder。
7K-n \9Ie,Z/~ O{x0一个extent是创建一个LUN或者一个CKD卷时的最小的物理分配单元,会在后面详细讨论。定义CKD卷必须是一个cylinder的整数倍,而定义FB LUN必须是128个logical blocks(64K bytes)的整数倍。然而,如果定义的容量不是一个extent的整数倍,那么最后一个extent中未用的容量空间就浪费了。例如,定义一个cylinder CKD卷,1113个cylinder被分配但是1112个cylinder被浪费了。DOIT博客Z"rA%P
jq4d!l
图5-5显示了一个array格式化为1GB extent的FB数据的例子(rank中的正方形表示extent由来自不同DDM的很多block组成)。
rw*ssy7e+tg(B2M0DOIT博客2bo3K MaI
DOIT博客%vO6OF9n*~}A
图5-5由1GB extent形成一个FB rank
ljn#F%{0