扩充scsi机箱新功能的方法

xiaoxiao2020-10-23  12

扩充scsi机箱新功能的方法
【技术领域】
[0001]本发明涉及存储技术领域,尤其涉及一种扩充SCSI机箱新功能的方法。
【背景技术】
[0002]目前的机箱管理(Enclosure Management,EM),在背板的硬件控管上,一般使用 SCSI (Small Computer System Interface,小型计算机系统接口 )机箱服务(SCSIEnclosure Services, SES),通过标准的 SES 标准协议,在序列式 SCSI (Serial AttachedSCSI, SAS)的扩展器(Expander)中设有一个SCSI机箱处理器(SCSI Enclosureprocessor, SEP)来做硬设备监控。SES客户端通过SES标准协议来对扩展器发出SCSI命令,SES标准协议提供了多种的SCSI诊断页面,使其得以透过该些诊断页面通过SES标准协议来回报硬设备状态。SCSI机箱透过固件去达成监控和硬件控管的功能,并透过标准接口(SES诊断页面和控制页面)去执行EM功能。
[0003]传统技术中,SCSI机箱内部芯片已定义好可以执行那些功能,但当我们希望透过SES标准协议来执行未定义的功能时,SCSI机箱即无法执行该未定义的功能,如此于机箱管理应用上有其不便及缺失存在。

【发明内容】

[0004]基于此,有必要针对传统技术中只能通过扩展器芯片内部已定义的功能对机箱进行管理,机箱管理收到极大限制的问题,提供一种扩充SCSI机箱新功能的方法。
[0005]为实现本发明目的提供的一种扩充SCSI机箱新功能的方法,当SCSI机箱服务客户端要扩充扩展器未定义的新功能时,进行以下步骤:
[0006]S100,SCSI机箱服务客户端将所述新功能的信息编码成一诊断命令,并将该诊断命令写入SCSI机箱服务标准协议中的String out诊断页面;
[0007]S200,SCSI机箱服务客户端传送一诊断页面至SCSI机箱处理器端;
[0008]S300,SCSI机箱处理器端判断所接收的该诊断页面是否为String out诊断页面,若是,解码该诊断命令并产生一新功能定义值,并将所述新功能定义值写入缓存器后返回步骤S200 ;若否,进行步骤S400 ;
[0009]S400,SCSI机箱处理器端判断所接收的该诊断页面是否为String in诊断页面,若是,将所述缓存器中的所述新功能定义值写入该String in诊断页面,并将该Stringin诊断页面传回SCSI机箱服务客户端;若否,产生一错误消息,并将所述错误消息写入该String in诊断页面,并将该String in诊断页面传回SCSI机箱服务客户端。
[0010]作为一种扩充SCSI机箱新功能的方法的可实施方式,其中步骤S100中的诊断命令中至少包含有所述新功能的新功能名称及对应参数。
[0011]作为一种扩充SCSI机箱新功能的方法的可实施方式,其中步骤S200依序传送一String out诊断页面及一 String in诊断页面。
[0012]作为一种扩充SCSI机箱新功能的方法的可实施方式,其中步骤S200透过SCSI机箱服务标准协议进行String out诊断页面及String in诊断页面的传送。
[0013]作为一种扩充SCSI机箱新功能的方法的可实施方式,其中步骤S300更进一步包含:
[0014]S301,当SCSI机箱处理器端判断所接收的该诊断页面为String out诊断页面时,进行步骤S302 ;若否,进行步骤S400 ;
[0015]S302,解码该String out诊断页面中的该诊断命令,获得所述新功能的新功能名称及对应参数;
[0016]S303,执行一默认程序,导入所述对应参数产生对应于该新功能名称的一新功能定义值,并将该新功能定义值存储于一缓存器中,返回步骤S200。
[0017]作为一种扩充SCSI机箱新功能的方法的可实施方式,其中步骤S400更进一步包含:
[0018]S401,当SCSI机箱处理器端判断所接收的诊断页面为String in诊断页面时,进行步骤S402 ;若否,执行步骤S403 ;
[0019]S402、将该缓存器中的该定义值写入该String in诊断页面,并将该String in诊断页面传回SCSI机箱服务客户端;
[0020]S403,产生一个错误消息,并将该错误消息写入该String in诊断页面,并将该String in诊断页面传回SCSI机箱服务客户端。
[0021]本发明的有益效果包括:本发明提供的扩充SCSI机箱新功能的方法,将新功能的信息编码成诊断命令并写入到SES的诊断页面中,并通过SES客户端和SEP端之间的信息通讯完成新功能的定义。之后SEP端在执行SES诊断命令时,因为有了定义好的新功能,便可以直接透过该定义好的功能来执行,再透过String out诊断页面将输出参数回传。
【附图说明】
[0022]图1为本发明一种扩充SCSI机箱新功能的方法的一具体实施例的流程图;
[0023]图2为SES客户端和SEP端之间的执行过程示意图;
[0024]图3为本发明一种扩充SCSI机箱新功能的方法的一具体实施例中步骤S300具体执行过程示意图;
[0025]图4为本发明一种扩充SCSI机箱新功能的方法的一具体实施例中步骤S400具体执行过程示意图;
[0026]图5为扩充SCSI机箱的烧录扩展器SAS地址功能的执行流程图;
[0027]图6为扩充SCSI机箱的机箱排序功能的执行流程图。
【具体实施方式】
[0028]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明的扩充SCSI机箱新功能的方法的【具体实施方式】进行说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0029]本发明一实施例的扩充SCSI机箱新功能的方法,如图1所示,包括以下步骤:
[0030]S100,SCSI机箱服务客户端将所述新功能的信息编码成一诊断命令,并将该诊断命令写入SCSI机箱服务标准协议中的String out诊断页面。
[0031]S200,SCSI机箱服务客户端传送一诊断页面至SCSI机箱处理器端。
[0032]在SES客户端需要新增SES标准协议未定义的功能,即新功能时,可将新功能在SCSI机箱服务客户端,也即SES客户端,编码成诊断命令,并透过SES标准协议发送到SCSI机箱处理器端,也即SEP端。且在编码的过程中可将新功能的新功能名称及对应参数编码到诊断命令中。当然诊断命令中还可以包含新功能的其他信息。
[0033]本发明实施例的方法通过SES客户端和SEP端之间的配合完成,步骤SlOO和步骤S200在SES客户端进行,后面的步骤是由SEP端进行,SEP客户端接收从SES客户端发出的诊断命令,并做处理及回应。其中,SES客户端传输的诊断页面可以是String out诊断页面,也可以是String in诊断页面。因此SEP端接收到SES客户端传输的信息后要按以下步骤执行。
[0034]S300,SCSI机箱处理器端判断所接收的该诊断页面是否为String out诊断页面,若是,解码该诊断命令并根据所述诊断命令产生一新功能定义值,并将所述新功能定义值写入缓存器后返回步骤S200,SES再次发送诊断页码;若否,进行步骤S400。
[0035]S400,SCSI机箱处理器端判断所接收的该诊断页面是否为String in诊断页面,若是,将所述缓存器中的所述新功能定义值写入该String in诊断页面,并将该Stringin诊断页面传回SCSI机箱服务客户端;若否,产生一错误消息,并将所述错误消息写入该String in诊断页面,并将该String in诊断页面传回SCSI机箱服务客户端。如此,因为该新功能定义值已写入SES标准协议的String in诊断页面中(即视为已定义),当SCSI机箱下次运行时,便可顺利执行该新功能。
[0036]此处需要说明的是,产生错误消息后,将错误消息写入到String out诊断页面回传至SCSI机箱服务客户端,告知SES客户端本次新功能添加失败,SES客户端收到该错误消息后,可发送相应的String in诊断页面,也可重新发送包含新功能的信息的String out诊断页面,完成新功能的添加。
[0037]较佳地,步骤S200依序传送一 String out诊断页面及一 String in诊断页面,即首先传送一个String out诊断页面到SEP端,收到SEP端的反馈消息后再传送一个Stringin诊断页面,如此可顺利的完成新功能的增加。
[0038]且本发明的方法中,SES客户端都可以透过SCSI机箱服务标准协议进行Stringout诊断页面及String in诊断页面的传送。
[0039]SES客户端和SEP端之间的具体执行过程如图2所示。简单的介绍为,SES客户端发送String out诊断页面到SEP端,SEP端调用并执行默认程序,并将结果存储到缓存器中,执行完成后返回完成信息(ack)给SES客户端;SES客户端接到完成信息后再发送String in诊断页面到SEP客户端,SEP端将执行默认程序的结果存储到String in诊断页面,并返回,SES客户端解码出String in诊断页面的输出结果。
[0040]SES客户端的执行过程包括:编码新功能的诊断命令,并存储到缓存器中;使用SES标准协议的String out诊断页面发送缓存器中的内容到SEP ;接收到SEP的反馈后,发送String in诊断页面;接收SEP端发送回的缓存器中的内容,解码,并获得缓存器中的结果O
[0041]其中,SES客户端和SEP端的编码及解码的方式如下:(可以采用CSV格式,也可以采用其他格式进行。)
[0042]1.编码:Strin g out: “函数名“,“输入1”,“输入2”,……
[0043]String in: “结果,,,“输出 I”,…
[0044]2.解码:String out:取第一项得到“函数名”,取第二项得到参数1,取第三项得到参数2,......
[0045]String in:去第二项得到输出I,取第三项得到输出2,……。
[0046]如此,SEP端定义并存储新功能,之后SEP端在执行SES客户端的诊断命令时,因为有了定义好的新功能,便可以直接透过该定义好的功能来执行,再透过String in诊断页面将输出参数回传。
[0047]作为一种可实施方式,如图3所示,步骤S300进一步包含以下步骤:
[0048]S301,当SCSI机箱处理器端判断所接收的该诊断页面为String out诊断页面时,进行步骤S302 ;若否,进行步骤S400。
[0049]S302,解码该String out诊断页面中的该诊断命令,获得所述新功能的新功能名称及对应参数。
[0050]S303,执行一默认程序,导入所述对应参数产生对应于该新功能名称的一新功能定义值,并将该新功能定义值存储于一缓存器中,返回步骤S200。
[0051]作为一种可实施方式,如图4所示,步骤S400更进一步包含以下步骤:
[0052]S401,当SCSI机箱处理器端判断所接收的诊断页面为String in诊断页面时,进行步骤S402 ;若否,进行步骤S403 ;
[0053]S402,将该缓存器中的该定义值写入该String in诊断页面,并将该String in诊断页面传回SCSI机箱服务客户端。
[0054]S403,产生一个错误消息,并将该错误消息写入该String in诊断页面,并将该String in诊断页面传回SCSI机箱服务客户端。
[0055]以下结合两个具体实例对本发明的扩充SCSI机箱新功能的方法进行介绍。
[0056]例1:烧录SAS扩展器地址示意
[0057]过程参见图5按以下步骤进行:
[0058]S111,在SES客户端将欲烧录的SAS扩展器的名称及参数编码成一诊断命令,并将该诊断命令写入SES标准协议中的String out诊断页面。其中,该参数为一自定值。
[0059]SI 12,SES客户端传送包含烧录SAS扩展器地址的诊断命令的String out诊断页面至SEP端。
[0060]S113,SEP端接收到SES客户端发送来的诊断页面,并判断出为包含刻录SAS扩展器地址的诊断命令的String out诊断页面。
[0061]SI 14,SEP端解码String out诊断页面中的诊断命令,获得所欲刻录的SAS扩展器的名称及对应参数。
[0062]SI 15,SEP端执行一默认程序(program_sas_address),导入所述对应参数,产生对应于该所欲刻录的SAS扩展器名称的一新功能定义值SAS_ADDRESS,并将该新功能定义值SAS_ADDRESS写入到缓存器中,并等待下一个诊断页面。
[0063]S116,SES客户端发送String in诊断页面到SEP端。
[0064]S117,SEP端判断出所接收到的诊断页面为String in诊断页面,并将缓存器中的新功能定义值SAS_ADDRESS写入到String in诊断页面。
[0065]S118,SEP端将写有新功能定义值SAS_ADDRESS的String in诊断页面传回至SES
客户端。
[0066]经由上述步骤,因为该新功能定义值SAS_ADDRESS已写入SES标准协议的Stringin诊断页面中(即视为已定义),当SCSI机箱下次运行时,便可顺利执行该新功能。如此完成了烧录SAS扩展器地址的新功能的定义。
[0067]例2:排序机箱顺序
[0068]过程参见图6按以下步骤进行:
[0069]S211,在SES客户端将所欲排序的机箱名称及参数编码成一诊断命令,并将该诊断命令写入SES标准协议中的String out诊断页面。其中,该参数为一自定值。
[0070]S212,SES客户端传送包含该诊断命令的String out诊断页面至SEP端。
[0071]S213,SEP端接收到SES客户端发送来的诊断页面,并判断出为包含所欲排序的机箱的诊断命令的String out诊断页面。
[0072]S214,SEP端解码String out诊断页面中的诊断命令,获得所欲排序的机箱的名称及对应参数。
[0073]S215,SEP端执行一默认程序(set_jbod_id),导入所述对应参数,产生对应于该所欲排序的机箱的一新功能定义值(机箱排序值)JB0D_ID,并将该新功能定义值JB0D_ID写入到缓存器中,并等待下一个诊断页面。
[0074]S216,SES客户端发送String in诊断页面到SEP端。
[0075]S217,SEP端判断出所接收到的诊断页面为String in诊断页面,并将缓存器中的新功能定义值JB0D_ID写入到诊断页面。
[0076]S218,SEP端将写有新功能定义值JB0D_ID的String in诊断页面传回至SES客户端。
[0077]每个机箱重复经由上述步骤,而皆赋予一个新功能定义值(机箱排序值),且每个机箱的新功能定义值(机箱排序值)JB0D_ID皆已写入SES标准协议的Stringin诊断页面中(即视为已定义),当SCSI机箱下次运行时,便可顺利依照各个机箱不同的排序值进行机箱排序的动作。如此完成了排序机箱顺序的定义。
[0078]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【主权项】
1.一种扩充SCSI机箱新功能的方法,其特征在于,当SCSI机箱服务客户端要扩充扩展器未定义的新功能时,进行以下步骤: S100,SCSI机箱服务客户端将所述新功能的信息编码成一诊断命令,并将该诊断命令写入SCSI机箱服务标准协议中的String out诊断页面; S200,SCSI机箱服务客户端传送一诊断页面至SCSI机箱处理器端; S300,SCSI机箱处理器端判断所接收的该诊断页面是否为String out诊断页面,若是,解码该诊断命令并产生一新功能定义值,并将所述新功能定义值写入缓存器后返回步骤S200 ;若否,进行步骤S400 ; S400,SCSI机箱处理器端判断所接收的该诊断页面是否为String in诊断页面,若是,将所述缓存器中的所述新功能定义值写入该String in诊断页面,并将该String in诊断页面传回SCSI机箱服务客户端;若否,产生一错误消息,并将该错误消息写入该String in诊断页面,并将该String in诊断页面传回SCSI机箱服务客户端。2.根据权利要求1所述的扩充SCSI机箱新功能的方法,其特征在于,其中步骤SlOO中的诊断命令中至少包含有所述新功能的新功能名称及对应参数。3.根据权利要求1所述的扩充SCSI机箱新功能的方法,其特征在于,其中步骤S200依序传送一 String out诊断页面及一 String in诊断页面。4.根据权利要求1或权利要求3所述的扩充SCSI机箱新功能的方法,其特征在于,其中步骤S200透过SCSI机箱服务标准协议进行String out诊断页面及String in诊断页面的传送。5.根据权利要求2所述的扩充SCSI机箱新功能的方法,其特征在于,其中步骤S300更进一步包含: S301,当SCSI机箱处理器端判断所接收的该诊断页面为String out诊断页面时,进行步骤S302 ;若否,进行步骤S400 ; S302,解码该String out诊断页面中的该诊断命令,获得所述新功能的新功能名称及对应参数; S303,执行一默认程序,导入所述对应参数产生对应于该新功能名称的一新功能定义值,并将该新功能定义值存储于一缓存器中,返回步骤S200。6.根据权利要求1所述的扩充SCSI机箱新功能的方法,其特征在于,其中步骤S400更进一步包含: S401,当SCSI机箱处理器端判断所接收的诊断页面为String in诊断页面时,进行步骤S402 ;若否,进行步骤S403 ;; S402,将该缓存器中的该定义值写入该String in诊断页面,并将该String in诊断页面传回SCSI机箱服务客户端; S403,产生一个错误消息,并将该错误消息写入该String in诊断页面,并将该Stringin诊断页面传回SCSI机箱服务客户端。
【专利摘要】本发明公开了一种扩充SCSI机箱新功能的方法,当SES客户端要扩充新功能时,进行以下步骤:S100,SES客户端将新功能编码成一诊断命令,并写入String out诊断页面;S200,SES客户端传送一诊断页面至SEP处理器端;S300,SEP处理器端判断所接收的该诊断页面是否为String out诊断页面,若是,解码诊断命令产生一新功能定义值并写入缓存器后返回步骤S200;若否,进行步骤S400;S400,SEP处理器端判断所接收的该诊断页面是否为String in诊断页面,若是,将缓存器中的新功能定义值写入String in诊断页面,并传回SES客户端;若否,产生一错误消息,并将该错误消息写入String in诊断页面,并传回SES客户端。
【IPC分类】G06F11/16
【公开号】CN104881337
【申请号】CN201510078716
【发明人】陈杰, 沈伟亮
【申请人】北京飞杰信息技术有限公司
【公开日】2015年9月2日
【申请日】2015年2月13日
转载请注明原文地址:https://www.famiwei.com/read-8138738.html

最新回复(0)