作者将本文同时发布到: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盘?

AGK盘全称叫Gatekeeper盘,通俗来讲,它充当了一个通讯媒介作用,主要用来帮助Symmetrix管理软件和Symmetrix内部微码进行通讯。最主要的GK盘使用者就是Solutions Enabler。这个软件和Symmetrix之间通讯用的是带内方式,就是说,和Symmetrix进行数据交换都是用特殊的SCSI命令通过主机的HBA卡发送和接收,根据SCSI协议,SCSI命令中必须要有一个访问的目标卷,所以这里,管理软件就借用了GK盘来作为SCSI命令中的目标卷来访问Symmetrix

QGK盘是一种特殊的盘吗?一定是3M大小吗?

A:在Symmetrix内部,GK卷和其他所有的数据卷没什么两样。从GK盘的作用上,我们也知道了管理软件只是需要一个盘号填在SCSI命令中来访问Symmetrix,因此,实际上对GK盘的大小是没有要求的,任何大小的盘都可以被选为GK盘的。但多年使用的习惯使我们把GK盘的大小定在了3 CylDMX3之前的Symmetrix用的是6 Cyl),大约3M左右。而且,现在Solutions Enabler软件也会把3 Cyl大小的盘优先选为GK盘。


Q:主机需要多少GK盘?

A:对这个问题的回答,我们要加上“It depends..."GK盘的多少一方面取决于主机上是否安装了Solutions Enabler这类管理软件,另一方面也和是否需要进行SRDF操作等有关。一般来说,如果主机只是用Solutions Enabler做简单的管理,而不是专门的SRDF管理机的话,6GK盘就够了。但如果主机要进行很多SRDF操作的话,就要多分一些GK盘,有时需要达到20几个。


QGK盘可以是Thin盘吗?

A:这里,我们依然要加上“It depends...”。如果是VMAX,微码版本达到5876,而且Solutions Enabler7.4以上版本,那么Thin盘是可以作为GK盘来使用的。而且,这个Thin盘根本不用bindpool里面。


QGK盘可以共享吗?

A:虽然没有在操作层面上禁止,但是GK盘是不能在主机之间共享的。不同的主机应该要有不同的GK盘,即使在某些Cluster环境下,不同主机看到了相同的几个GK盘,也应该让不同的主机使用不同的GK盘。不同的主机争抢同一块GK盘可能会产生不能预知的后果。通行做法,不同GK盘分配给不同的FA端口。


QGK盘可以是被Format吗?

AGK盘很小,主机一般不会把它们作为数据盘来用。但是,我们经常被问到的问题是如果不小心formatGK盘,会有问题吗?回答是,放心,不会有问题的。GK盘的用处决定了我们不关心这个盘里面有些什么数据,也不会修改里面的数据。我们需要的只是GK盘的SCSI address。所以,format GK盘没必要但无害。


QGK盘可以被multipath吗?

A:目前为止,只支持EMCpowerpath软件对GK盘的管理。如果主机上安装了其他多路径软件,需要在多路径软件的设置里把GK盘剔除出来。


Q:主机没有GK盘会有什么后果?

AGK盘既然是给管理软件来使用的,那么如果主机上没有装管理软件,当然就不需要GK盘了。但如果使用了Solutions Enabler但没有分配GK盘,那就有很严重的后果啦。没有GK盘,Solutions Enabler会把一个数据盘用作为GK盘来访问symmetrixSolutions EnablerGK盘的使用是独占性的,这就会造成这个数据盘在被用作GK盘的时候被锁住,正常的读写就不能进行了。在这方面,我们是有过惨痛教训的。有用户就因为这个问题而导致应用程序异常。


QSolutions Enabler到底怎么来选择GK盘呢?有什么办法来可以进行控制吗?

ASolutions Enabler缺省是按照预设的优先级来选择GK盘的,优先级从高到低这样排列的:

  1. 大小小于10 cyl的盘。

  2. 不是RDF属性,也不是meta卷。

  3. R1属性的盘。

  4. R2属性的盘。

  5. VCM/ACLX属性的盘。

除了缺省的优先级,Solutions Enabler还提供了两个参数来限制对GK盘的选择,分别叫做gkselectgkavoid。实际上,这是两个文件。文件里面的每一行都记录一个硬盘的设备名(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盘的使用情况?

ASolutions Enabler提供了两条命令来显示目前GK盘的使用情况:

第一条命令:

stordaemon action storapid –cmd show -gk_stats –sid 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 –cmd show –gk_pdevs –sid xxx

这条命令显示目前所有GK盘的状态,”OPN”表示正在被使用的GK盘。

Aix1:/> stordaemon action storapid –cmd show –gk_pdevs –sid 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