作者将本文同时发布到:EMC中文支持论坛 https://community.emc.com/community/support/chinese/generaldiscussion/blog/2013/05/19/symmetrix-gk%E7%9B%98%E4%BB%8B%E7%BB%8D
使用和配置过Symmetrix的工程师都知道,在Symmetrix中,有一类特殊的卷(volume),它们的大小只有3M左右,它们被EMC工程师称为GK盘。那么GK盘到底有什么作用?我们怎么来配置和使用呢?这里,我们通过Q&A的方式来简单介绍一下GK盘。
Q:什么是GK盘?
A:GK盘全称叫Gatekeeper盘,通俗来讲,它充当了一个通讯媒介作用,主要用来帮助Symmetrix管理软件和Symmetrix内部微码进行通讯。最主要的GK盘使用者就是Solutions Enabler。这个软件和Symmetrix之间通讯用的是带内方式,就是说,和Symmetrix进行数据交换都是用特殊的SCSI命令通过主机的HBA卡发送和接收,根据SCSI协议,SCSI命令中必须要有一个访问的目标卷,所以这里,管理软件就借用了GK盘来作为SCSI命令中的目标卷来访问Symmetrix。
Q:GK盘是一种特殊的盘吗?一定是3M大小吗?
A:在Symmetrix内部,GK卷和其他所有的数据卷没什么两样。从GK盘的作用上,我们也知道了管理软件只是需要一个盘号填在SCSI命令中来访问Symmetrix,因此,实际上对GK盘的大小是没有要求的,任何大小的盘都可以被选为GK盘的。但多年使用的习惯使我们把GK盘的大小定在了3 Cyl(DMX3之前的Symmetrix用的是6 Cyl),大约3M左右。而且,现在Solutions Enabler软件也会把3 Cyl大小的盘优先选为GK盘。
Q:主机需要多少GK盘?
A:对这个问题的回答,我们要加上“It depends..."。GK盘的多少一方面取决于主机上是否安装了Solutions Enabler这类管理软件,另一方面也和是否需要进行SRDF操作等有关。一般来说,如果主机只是用Solutions Enabler做简单的管理,而不是专门的SRDF管理机的话,6个GK盘就够了。但如果主机要进行很多SRDF操作的话,就要多分一些GK盘,有时需要达到20几个。
Q:GK盘可以是Thin盘吗?
A:这里,我们依然要加上“It depends...”。如果是VMAX,微码版本达到5876,而且Solutions Enabler是7.4以上版本,那么Thin盘是可以作为GK盘来使用的。而且,这个Thin盘根本不用bind到pool里面。
Q:GK盘可以共享吗?
A:虽然没有在操作层面上禁止,但是GK盘是不能在主机之间共享的。不同的主机应该要有不同的GK盘,即使在某些Cluster环境下,不同主机看到了相同的几个GK盘,也应该让不同的主机使用不同的GK盘。不同的主机争抢同一块GK盘可能会产生不能预知的后果。通行做法,不同GK盘分配给不同的FA端口。
Q:GK盘可以是被Format吗?
A:GK盘很小,主机一般不会把它们作为数据盘来用。但是,我们经常被问到的问题是如果不小心format了GK盘,会有问题吗?回答是,放心,不会有问题的。GK盘的用处决定了我们不关心这个盘里面有些什么数据,也不会修改里面的数据。我们需要的只是GK盘的SCSI address。所以,format GK盘没必要但无害。
Q:GK盘可以被multipath吗?
A:目前为止,只支持EMC的powerpath软件对GK盘的管理。如果主机上安装了其他多路径软件,需要在多路径软件的设置里把GK盘剔除出来。
Q:主机没有GK盘会有什么后果?
A:GK盘既然是给管理软件来使用的,那么如果主机上没有装管理软件,当然就不需要GK盘了。但如果使用了Solutions Enabler但没有分配GK盘,那就有很严重的后果啦。没有GK盘,Solutions Enabler会把一个数据盘用作为GK盘来访问symmetrix。Solutions Enabler对GK盘的使用是独占性的,这就会造成这个数据盘在被用作GK盘的时候被锁住,正常的读写就不能进行了。在这方面,我们是有过惨痛教训的。有用户就因为这个问题而导致应用程序异常。
Q:Solutions Enabler到底怎么来选择GK盘呢?有什么办法来可以进行控制吗?
A:Solutions Enabler缺省是按照预设的优先级来选择GK盘的,优先级从高到低这样排列的:
大小小于10 cyl的盘。
不是RDF属性,也不是meta卷。
R1属性的盘。
R2属性的盘。
VCM/ACLX属性的盘。
除了缺省的优先级,Solutions Enabler还提供了两个参数来限制对GK盘的选择,分别叫做gkselect和gkavoid。实际上,这是两个文件。文件里面的每一行都记录一个硬盘的设备名(physical device)。如果硬盘名出现在gkselect文件里,那么只有在gkselect文件里的盘才会被选为GK盘。另一方面,所有出现在gkavoid文件里的盘都不会被选为GK盘。如果硬盘名既出现在gkselect文件里,又出现在gkavoid文件里,那么结果就是gkavoid胜,这个盘不会被选为GK盘。那么是不是把所有的数据盘都放在gkavoid里面就安全了呢?那也不一定,现在一台主机连接成百上千块盘的情况已经很常见了,如果把所有数据盘都放在gkavoid里面,那么势必每次Solutions Enabler在选择GK盘时,都要花时间去确保选择的GK盘不是gkavoid里面的盘,有可能会造成主机性能的下降。反过来,如果我们没有在gkselect文件里面放了足够的盘,那么就会造成GK盘不够而不能完成Solutions Enabler操作。
只有在gkselect文件不存在或者为空时,才会启动预设优先级机制来选择GK盘。所以,GK盘的选择顺序是gkavoid > gkselect > 缺省机制。
Q:我怎么知道GK盘的使用情况?
A:Solutions Enabler提供了两条命令来显示目前GK盘的使用情况:
第一条命令:
stordaemon action storapid �Ccmd show -gk_stats �Csid xxx
aix1:/> stordaemon action storapid -cmd show -gk_stats -sid 76
G A T E K E E P E R S T A T I S T I C S
Symmetrix ID: 000290300676
Total Paths Unique Paths ----------- ------------ Pdevs 293 100 GK Candidates 65 8 Dedicated GKs 18 6 VCM/ACLX devs 2 1
Pdevs in gkavoid 0 Pdevs in gkselect 0
Max Available GKs 51 Num Open GKs 1
Gatekeeper Utilization Current 0 % Past Minute 0 % Past 5 Minutes 0 % Past 15 Minutes 0 % Since Midnight 0 % Since Starting 0 %
Highwater Open Gatekeepers 3 Time of Highwater 05/15/2013 12:30:18
Gatekeeper Utilization 6 % Time of Highwater 05/15/2013 12:30:44
Gatekeeper Timeouts Since starting 0 Past Minute 0 Time of last timeout N/A |
在上面的输出中:
”Dedicated GK”是大小为3M左右的盘的数量。
“Num Open GKs”是目前正在使用的GK盘数量。
“Highwater”下面的”Open Gatekeepers”是曾经出现过的最多使用的GK盘数量。
另一条命令是:
stordaemon action storapid �Ccmd show �Cgk_pdevs �Csid xxx
这条命令显示目前所有GK盘的状态,”OPN”表示正在被使用的GK盘。
Aix1:/> stordaemon action storapid �Ccmd show �Cgk_pdevs �Csid 76
S Y M M E T R I X G A T E K E E P E R S
-------------------------------------------------------------------- Symmetrix ID: 000290300676 GK Select : Disabled GK Use : Legacy --------------------------------------------------------------------
Flags Children PdevName ASDCV (count) State ---------------------------------------- ----- -------- ----- /dev/rhdisk141 ....X CLS /dev/rhdisk353 ....X CLS /dev/rhdiskpower97 ..... CLS /dev/rhdiskpower98 ..... CLS /dev/rhdiskpower133 ..X.. OPN /dev/rhdiskpower215 ..X.. CLS /dev/rhdiskpower216 ..X.. CLS /dev/rhdiskpower217 ..X.. CLS /dev/rhdiskpower218 ..X.. CLS /dev/rhdiskpower220 ..... CLS
Legend:
Flags: In gk(A)void file : X = True, . = False In gk(S)elect file : X = True, . = False Is a (D)edicated GK: X = True, . = False Is a (C)hild device: X = True, . = False Is a (V)CM/ACLX dev: X = True, . = False
State: OPN = Device is open as a gatekeeper INV = Device is invalid CLS = Device is closed |