Cuddletech系列VERITAS教程之二
sd disk02-01 vol01-01 disk02 0 17678493 1/0 c2t1d0 ENA sd disk03-01 vol01-01 disk03 0 17678493 2/0 c2t2d0 ENA sd disk04-01 vol01-01 disk04 0 17678493 3/0 c2t6d0 ENA # # vxvol start vol01 # vxprint -hrt Disk group: rootdg
DG NAME NCONFIG NLOG MINORS GROUP-ID DM NAME DEVICE TYPE PRIVLEN PUBLEN STATE V NAME USETYPE KSTATE STATE LENGTH READPOL PREFPLEX PL NAME VOLUME KSTATE STATE LENGTH LAYOUT NCOL/WID MODE SD NAME PLEX DISK DISKOFFS LENGTH [COL/]OFF DEVICE MODE SV NAME PLEX VOLNAME NVOLLAYR LENGTH [COL/]OFF AM/NM MODE
dg rootdg default default 0 952738334.1025.nexus6
dm disk01 c2t0d0s2 sliced 3590 17678493 - dm disk02 c2t1d0s2 sliced 3590 17678493 - dm disk03 c2t2d0s2 sliced 3590 17678493 - dm disk04 c2t6d0s2 sliced 3590 17678493 -
v vol01 fsgen ENABLED ACTIVE 70713885 ROUND - pl vol01-01 vol01 ENABLED ACTIVE 70714077 STRIPE 4/64 RW sd disk01-01 vol01-01 disk01 0 17678493 0/0 c2t0d0 ENA sd disk02-01 vol01-01 disk02 0 17678493 1/0 c2t1d0 ENA sd disk03-01 vol01-01 disk03 0 17678493 2/0 c2t2d0 ENA sd disk04-01 vol01-01 disk04 0 17678493 3/0 c2t6d0 ENA #
OK!看起来怎么样?一切都和第一课里我们创建简单RAID的时候很像。只有一个也是唯一不同的地方……就是用VxMake命令创建plex。让我们解析这一行。我用的是下面这一行:
# vxmake plex vol01-01 layout=stripe ncolumn=4 stwidth=32k \ sd=disk01-01,disk02-01,disk03-01,disk04-01
这行命令看起来很恐怖吧,但很容易搞懂的。如果你读过我的第一篇教程(RAID理论),应该已经看出点什么来了。我们来分析一下吧……语法如下:
vxmake plex <plexname> layout=<layout> ncolumn=<#> stwidth=<width> sd=<subdisk>,<subdisk>,....
是的,vxmake就是我们所用的命令。我们希望用这个命令来创建“plex”。“plexname”是新建plex的名字,可以任意命名。“layout”指定plex的layout类型,也就是通常你所认为的“RAID”类型。Veritas支持多种layout类型,其中最常用的三种是concat,stripe和raid5。concat就是指简单(Simple)RAID。stripe是指RAID 0。raid5也就是RAID 5啦。我们正用stripe来构建一个RAID 0的volume。“ncolumn”指该volume中的column数量。同时,需要指出的是,在我们这个例子中每个subdisk就是一个column(实际上,一个column可以包含多个subdisks-参照下面的边注)。我们的例子中,我们要使用4个subdisks,因此ncolumn指定为4。下一个,“stwidth”指stripe的宽度。我们将使用32k的宽度。最后,“sd=”后面跟着一个被选择组成plex的subdisk的清单。使用选项“sd=”, vxmake就可以把subdisks联合(associate)起来,而不需要我们用“vxsd”命令手工联合。
现在,让我们来讨论一下两个概念:“ncolumn”和“stwidth”。记得我们为什么要stripe数据吗?我们希望数据被分布到4块磁盘中去,因此,4块磁盘同时分享数据负载。为了达到这个目标,我们必须指定veritas如何分割数据。把数据分成多个小块,小块的大小由“stwidth”指定。然后按照顺序把数据一块一块的写到不同的磁盘中去(也就是column上),这些磁盘的数量就由“ncolumn”指定。因此,在我们的新plex中,当我们往volume中写数据时,第一个32k数据将被写入到disk01-01。第二个32k数据将被写道disk02-01。第三块数据会写入disk03-01。第四块数据会写入disk04-01。第五个32k数据又写入disk01-01中,依此类推。我们就是这样不停地将数据缠绕在各个column(subdisk)上,均匀地分割数据负载。据此,一个128k的文件将分开保存在四个磁盘中。再一次说明,stwidth是指一次性写入一个column的数据块大小,之后,开始往下一个column写数据。Column是指plex中column的数量。 |