一种升级硬盘扩展器的方法及系统、一种硬盘扩展器的制造方法

文档序号:10552627阅读:185来源:国知局
一种升级硬盘扩展器的方法及系统、一种硬盘扩展器的制造方法
【专利摘要】本发明提供了一种升级硬盘扩展器的方法及系统、一种硬盘扩展器,该方法,包括:上级硬盘扩展器根据升级数据生成至少一个WRITE BUFFER命令;所述上级硬盘扩展器将所述至少一个WRITE BUFFER命令发给下级的待升级的硬盘扩展器,以使下级的待升级的硬盘扩展器从接收到的至少一个WRITE BUFFER命令中解析出升级数据,根据所述升级数据进行升级。本发明提供了一种升级硬盘扩展器的方法及系统、一种硬盘扩展器,能够提高对硬盘扩展器进行升级的效率。
【专利说明】
一种升级硬盘扩展器的方法及系统、一种硬盘扩展器
技术领域
[0001]本发明涉及计算机技术领域,特别涉及一种升级硬盘扩展器的方法及系统、一种硬盘扩展器。
【背景技术】
[0002]存储系统中的Expander (硬盘扩展器)是用于硬盘扩展的控制器,通过Expander进行多级级联,可以扩展更多的硬盘。在使用Expander的过程中需要对Expander进行固件升级。
[0003]现有技术中,对Expander进行升级主要是通过人工升级,通过外部设备将升级数据导入到Expander中。当有多个Expander时,需要通过人工将升级数据分别导入到待升级的Expander中。
[0004]通过上述描述可见,现有技术中的对Expander的升级需要逐个对待升级的Expander通过人工进行升级数据的导入,升级的效率较低。

【发明内容】

[0005]本发明实施例提供了一种升级硬盘扩展器的方法及系统、一种硬盘扩展器,能够提高对硬盘扩展器进行升级的效率。
[0006]第一方面,本发明实施例提供了一种升级硬盘扩展器的方法,包括:
[0007]SI:上级硬盘扩展器根据升级数据生成至少一个WRITE BUFFER命令;
[0008]S2:所述上级硬盘扩展器将所述至少一个WRITE BUFFER命令发给下级的待升级的硬盘扩展器,以使下级的待升级的硬盘扩展器从接收到的至少一个WRITE BUFFER命令中解析出升级数据,根据所述升级数据进行升级。
[0009]进一步地,在所述SI之前,还包括:
[0010]所述上级硬盘扩展器获取下级的当前硬盘扩展器的版本号;
[0011]所述上级硬盘扩展器根据获取的版本号,判断下级的当前硬盘扩展器是否需要升级,如果是,则将下级的当前硬盘扩展器作为下级的待升级的硬盘扩展器。
[0012]进一步地,该方法还包括:
[0013]所述上级硬盘扩展器在确定所述待升级的硬盘扩展器接收完所述升级数据后,在所述待升级的硬盘扩展器的存储所述升级数据的FLASH区域中设置最新标志,并清除所述待升级的硬盘扩展器的正在运行的FLASH区域中的最新标志,以使所述待升级的硬盘扩展器从设置有最新标志的FLASH区域启动。
[0014]进一步地,所述SI,包括:
[0015]所述上级硬盘扩展器将所述升级数据分成预设数量个数据块,根据每个数据块生成对应的WRITE BUFFER命令。
[0016]第二方面,本发明实施例提供了一种硬盘扩展器,包括:
[0017]生成单元,用于根据升级数据生成至少一个WRITE BUFFER命令;
[0018]升级单元,用于将所述至少一个WRITE BUFFER命令发给下级的待升级的硬盘扩展器,以使下级的待升级的硬盘扩展器从接收到的至少一个WRITE BUFFER命令中解析出升级数据,根据所述升级数据进行升级。
[0019]进一步地,还包括:
[0020]获取单元,用于获取下级的当前硬盘扩展器的版本号;
[0021]判断单元,用于根据获取的版本号,判断下级的当前硬盘扩展器是否需要升级,如果是,则将下级的当前硬盘扩展器作为下级的待升级的硬盘扩展器。
[0022]进一步地,还包括:
[0023]标识单元,用于在确定所述待升级的硬盘扩展器接收完所述升级数据后,在所述待升级的硬盘扩展器的存储所述升级数据的FLASH区域中设置最新标志,并清除所述待升级的硬盘扩展器的正在运行的FLASH区域中的最新标志,以使所述待升级的硬盘扩展器从设置有最新标志的FLASH区域启动。
[0024]进一步地,所述生成单元,用于将所述升级数据分成预设数量个数据块,根据每个数据块生成对应的WRITE BUFFER命令。
[0025]第三方面,本发明实施例提供了一种升级硬盘扩展器的系统,包括:
[0026]如权利要求第二方面中任一的硬盘扩展器,以及下级的待升级的硬盘扩展器;
[0027]所述待升级的硬盘扩展器,用于接收所述至少一个WRITE BUFFER命令,从所述至少一个WRITE BUFFER命令中解析出升级数据,根据所述升级数据完成升级。
[0028]进一步地,所述待升级的硬盘扩展器,还用于确定当前没有运行的FLASH区域,将接收到的升级数据保存在当前没有运行的FLASH区域中。
[0029]在本发明实施例中,上级硬盘扩展器根据升级数据生成至少一个WRITE BUFFER命令,并将至少一个WRITE BUFFER命令发送给下级的待升级的硬盘扩展器,实现了自动将升级数据导入到待升级的硬盘扩展器中,无需通过外部设备进行人工导入,提高了对硬盘扩展器进行升级的效率。
【附图说明】
[0030]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0031]图1是本发明一实施例提供的一种升级硬盘扩展器的方法的流程图;
[0032]图2是本发明一实施例提供的另一种升级硬盘扩展器的方法的流程图;
[0033]图3是本发明一实施例提供的一种硬盘扩展器的示意图;
[0034]图4是本发明一实施例提供的一种升级硬盘扩展器的系统的示意图。
【具体实施方式】
[0035]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0036]如图1所示,本发明实施例提供了一种升级硬盘扩展器的方法,该方法可以包括以下步骤:
[0037]SI:上级硬盘扩展器根据升级数据生成至少一个WRITE BUFFER命令;
[0038]S2:所述上级硬盘扩展器将所述至少一个WRITE BUFFER命令发给下级的待升级的硬盘扩展器,以使下级的待升级的硬盘扩展器从接收到的至少一个WRITE BUFFER命令中解析出升级数据,根据所述升级数据进行升级。
[0039]在本发明实施例中,上级硬盘扩展器根据升级数据生成至少一个WRITE BUFFER命令,并将至少一个WRITE BUFFER命令发送给下级的待升级的硬盘扩展器,实现了自动将升级数据导入到待升级的硬盘扩展器中,无需通过外部设备进行人工导入,提高了对硬盘扩展器进行升级的效率。
[0040]确定下级的硬盘扩展器是否需要升级可以通过版本号来实现,在一种可能的实现方式中,在所述SI之前,还包括:
[0041]所述上级硬盘扩展器获取下级的当前硬盘扩展器的版本号;
[0042]所述上级硬盘扩展器根据获取的版本号,判断下级的当前硬盘扩展器是否需要升级,如果是,则将下级的当前硬盘扩展器作为下级的待升级的硬盘扩展器。
[0043]为了便于在下次启动时能够从升级后的版本启动,在一种可能的实现方式中,该方法还包括:
[0044]所述上级硬盘扩展器在确定所述待升级的硬盘扩展器接收完所述升级数据后,在所述待升级的硬盘扩展器的存储所述升级数据的FLASH区域中设置最新标志,并清除正在运行的FLASH区域中的最新标志,以使所述待升级的硬盘扩展器从设置有最新标志的FLASH区域启动。
[0045]在该实现方式中,待升级的硬盘扩展器从升级后的版本启动,完成升级。
[0046]由于上级硬盘扩展器与下级的硬盘扩展器之间每次传输的数据量有限,因此,将升级数据分块进行传输。在一种可能的实现方式中,所述SI,包括:
[0047]所述上级硬盘扩展器将所述升级数据分成预设数量个数据块,根据每个数据块生成对应的WRITE BUFFER命令。
[0048]具体地,上级硬盘扩展器读取自己的FLASH区域,从FLASH头中获知升级数据的大小,根据每次传递的数据量的大小,将升级数据划分N份,发起N次数据传递,将全部的升级数据传输给下级的硬盘扩展器。例如:可以设置每次传递的数据量为512个字节。另外,下级的待升级的硬盘扩展器每成功接收到一个WRITE BUFFER命令,向上级硬盘扩展器返回接收成功的响应,上级硬盘扩展器接收到成功接收的响应后,继续发送下一个WRITE BUFFER命令。
[0049]其中,WRITEBUFFER命令包括:
[0050]MODE字段,0x02,代表数据读写;
[0051 ] BUFFER ID,刷新的目标区域,代表FLASH区域;
[0052]BUFFER OFFSET,本次携带数据块的FLASH偏移;
[0053]BUFFER LENGTH,本次携带的数据块大小;
[0054]Data-Out Buffer,本次携带的数据块。
[0055]下级的待升级的硬盘扩展器识别BUFFEROFFSET字段,根据BUFFER OFFSET字段中的FLASH偏移,确定FLASH区域的刷新起始位置;下级的待升级的硬盘扩展器读取Data-OutBuffer,获得数据块,从刷新起始位置将Data-Out Buffer的数据块写到选定的FLASH区域中。
[0056]在本发明实施例中,Expander I为Expander 2的上级硬盘扩展器、Expander 2为Expander I的下级硬盘扩展器。Expander I和Expander 2均有两个FLASH区域,分别是FLASH区域A和FLASH区域B。
[0057]如图2所示,本发明实施例提供了一种升级硬盘扩展器的方法,该方法可以包括以下步骤:
[0058]步骤201:ExpanderI获取Expander 2的版本号。
[0059]对于每个Expander可以进行如下配置:
[0060]在Expander的每个FLASH区域中有FLASH头,FLASH头中包含FLASH大小、版本号、最新标志等,Expander开机后检查FLASH区域的最新标志,哪个FLASH区域中有最新标志,则从哪个FLASH区域启动;另一个区域作为备份可以进行固件升级。
[0061 ] Expander I可以从Expander 2的FLASH区域的FLASH头中获取版本号。
[0062]另外,该步骤的触发可以通过两种方式来实现:
[0063]其一是半自动升级模式。由用户在系统下发送SES(Small Computer SystemInterface Enclosure Services,小型计算机系统接口机箱服务)命令发起上级Expander对下级Expander的自动升级,上级Expander收到SES命令后,给其下级的Expander逐个发送SES命令获取版本号。
[0064]其二是全自动升级模式。每个Expander检测自身是否级联下级Expander,如果存在下级Expander则启动定时器,定期向下级Expander发送SES命令获取下级Expander的版本号。
[0065]由于全自动升级模式需要定期向下级Expander发送SES命令获取版本号,所以占用一定的SAS资源,因此,可以提供SES命令用来进行模式切换,默认处于半自动升级模式。
[0066]步骤202:Expander I根据Expander 2的版本号,判断Expander 2是否需要升级,如果是,则执行步骤203,否则,结束当前流程。
[0067]具体地,ExpanderI将获取的版本号与自身的版本号进行比较,如果获取的Expander 2的版本号比自身的版本号低,则Expander 2需要升级。
[0068]步骤203: Expander I将升级数据分成预设数量个数据块,根据每个数据块生成对应的WRITE BUFFER命令。
[0069]步骤204:ExpanderI将生成的WRITE BUFFER命令分别发给Expander 2。
[0070]具体地,ExpanderI向Expander 2发当前的WRITE BUFFER命令;Expander 2接收到后,返回是否成功接收的响应;如果Expander I接收到成功接收的响应,则继续发下一条WRITE BUFFER命令,如果Expander I接收到没有成功接收的响应,则可以重新发送当前的WRITE BUFFER命令。直到成功发送完所有的升级数据,结束发送。
[0071]步骤205 = Expander 2确定当前没有运行的FLASH区域,接收每条WRITE BUFFER命令,从接收到的每条WRITE BUFFER命令中解析出数据块,并根据每条WRITE BUFFER命令将对应的数据块存储到当前没有运行的FLASH区域的对应位置中,根据接收到的所有升级数据进行升级。
[0072]步骤206:ExpanderI在确定所述待升级的硬盘扩展器接收完所述升级数据后,在Expander 2的存储升级数据的FLASH区域中设置最新标志,并清除Expander 2的正在运行的FLASH区域中的最新标志,通过SES命令重启Expander 2。
[0073]步骤207 = Expander 2根据SES命令从设置有最新标志的FLASH区域启动。
[0074]步骤208:Expander I获取Expander 2的版本号,根据该版本号确定Expander 2是否升级成功。
[0075]在本发明实施例中,上级Expander与下级Expander通过SSP(SAS Serial SCSIPr o t o cο I)协议进行通信,通过S SP协议的WRI TE BUFFER命令将升级数据升级到下级Expander0
[0076]在本发明实施例中,当多个Expander级联时,可以确定出第一级的Expander,对第一级的Expander进行升级,其他的Expander,可以根据本发明实施例提供的方法进行升级。其中,对第一级的Expander进行升级时,可以通过带外方式或SES命令对第一级的Expander进行升级。具体的,通过SES命令进行升级是指:将升级数据拷贝第一级的Expander所对应的存储设备的操作系统中,操作系统通过SES命令将升级数据烧录到第一级的Expander中。
[0077]在本发明实施例中,当一个上级Expander对应多个下级Expander时,每个下级Expander均可以通过本发明实施例提供的方法进行升级。
[0078]如图3所示,本发明实施例提供的一种硬盘扩展器,包括:
[0079]生成单元301,用于根据升级数据生成至少一个WRITE BUFFER命令;
[0080]升级单元302,用于将所述至少一个WRITE BUFFER命令发给下级的待升级的硬盘扩展器,以使下级的待升级的硬盘扩展器从接收到的至少一个WRITE BUFFER命令中解析出升级数据,根据所述升级数据进行升级。
[0081 ]在一种可能的实现方式中,该硬盘扩展器还包括:
[0082]获取单元,用于获取下级的当前硬盘扩展器的版本号;
[0083]判断单元,用于根据获取的版本号,判断下级的当前硬盘扩展器是否需要升级,如果是,则将下级的当前硬盘扩展器作为下级的待升级的硬盘扩展器。
[0084]在一种可能的实现方式中,该硬盘扩展器还包括:
[0085]标识单元,用于在确定所述待升级的硬盘扩展器接收完所述升级数据后,在所述待升级的硬盘扩展器的存储所述升级数据的FLASH区域中设置最新标志,并清除所述待升级的硬盘扩展器的正在运行的FLASH区域中的最新标志,以使所述待升级的硬盘扩展器从设置有最新标志的FLASH区域启动。
[0086]在一种可能的实现方式中,所述生成单元,用于将所述升级数据分成预设数量个数据块,根据每个数据块生成对应的WRITE BUFFER命令。
[0087]参见图4,本发明实施例提供的一种升级硬盘扩展器的系统,包括:
[0088]上述的任一的硬盘扩展器401,以及下级的待升级的硬盘扩展器402;
[0089]所述待升级的硬盘扩展器402,用于接收所述至少一个WRITE BUFFER命令,从所述至少一个WRITE BUFFER命令中解析出升级数据,根据所述升级数据完成升级。
[0090]在一种可能的实现方式中,所述待升级的硬盘扩展器,还用于确定当前没有运行的FLASH区域,将接收到的升级数据保存在当前没有运行的FLASH区域中。
[0091]上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
[0092]本发明实施例提供的,至少具有如下有益效果:
[0093]1、在本发明实施例中,上级硬盘扩展器根据升级数据生成至少一个WRITE BUFFER命令,并将至少一个WRITE BUFFER命令发送给下级的待升级的硬盘扩展器,实现了自动将升级数据导入到待升级的硬盘扩展器中,无需通过外部设备进行人工导入,提高了对硬盘扩展器进行升级的效率。
[0094]2、在本发明实施例中,上级硬盘扩展器通过WRITE BUFFER命令将升级数据传递给下级的待升级的硬盘扩展器,无需通过人工逐个升级,降低里工作量,并且避免了的漏掉某个待升级的硬盘扩展器。
[0095]需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
[0096]本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
[0097]最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
【主权项】
1.一种升级硬盘扩展器的方法,其特征在于,包括: SI:上级硬盘扩展器根据升级数据生成至少一个WRITE BUFFER命令; S2:所述上级硬盘扩展器将所述至少一个WRITE BUFFER命令发给下级的待升级的硬盘扩展器,以使下级的待升级的硬盘扩展器从接收到的至少一个WRITE BUFFER命令中解析出升级数据,根据所述升级数据进行升级。2.根据权利要求1所述的方法,其特征在于,在所述SI之前,还包括: 所述上级硬盘扩展器获取下级的当前硬盘扩展器的版本号; 所述上级硬盘扩展器根据获取的版本号,判断下级的当前硬盘扩展器是否需要升级,如果是,则将下级的当前硬盘扩展器作为下级的待升级的硬盘扩展器。3.根据权利要求1所述的方法,其特征在于,还包括: 所述上级硬盘扩展器在确定所述待升级的硬盘扩展器接收完所述升级数据后,在所述待升级的硬盘扩展器的存储所述升级数据的FLASH区域中设置最新标志,并清除所述待升级的硬盘扩展器的正在运行的FLASH区域中的最新标志,以使所述待升级的硬盘扩展器从设置有最新标志的FLASH区域启动。4.根据权利要求1-3中任一所述的方法,其特征在于,所述SI,包括: 所述上级硬盘扩展器将所述升级数据分成预设数量个数据块,根据每个数据块生成对应的WRITE BUFFER命令。5.一种硬盘扩展器,其特征在于,包括: 生成单元,用于根据升级数据生成至少一个WRITE BUFFER命令; 升级单元,用于将所述至少一个WRITE BUFFER命令发给下级的待升级的硬盘扩展器,以使下级的待升级的硬盘扩展器从接收到的至少一个WRITE BUFFER命令中解析出升级数据,根据所述升级数据进行升级。6.根据权利要求5所述的硬盘扩展器,其特征在于,还包括: 获取单元,用于获取下级的当前硬盘扩展器的版本号; 判断单元,用于根据获取的版本号,判断下级的当前硬盘扩展器是否需要升级,如果是,则将下级的当前硬盘扩展器作为下级的待升级的硬盘扩展器。7.根据权利要求5所述的硬盘扩展器,其特征在于,还包括: 标识单元,用于在确定所述待升级的硬盘扩展器接收完所述升级数据后,在所述待升级的硬盘扩展器的存储所述升级数据的FLASH区域中设置最新标志,并清除所述待升级的硬盘扩展器的正在运行的FLASH区域中的最新标志,以使所述待升级的硬盘扩展器从设置有最新标志的FLASH区域启动。8.根据权利要求5-7中任一所述的硬盘扩展器,其特征在于,所述生成单元,用于将所述升级数据分成预设数量个数据块,根据每个数据块生成对应的WRITE BUFFER命令。9.一种升级硬盘扩展器的系统,其特征在于,包括: 如权利要求5-8中任一的硬盘扩展器,以及下级的待升级的硬盘扩展器; 所述待升级的硬盘扩展器,用于接收所述至少一个WRITE BUFFER命令,从所述至少一个WRITE BUFFER命令中解析出升级数据,根据所述升级数据完成升级。10.根据权利要求9所述的系统,其特征在于,包括: 所述待升级的硬盘扩展器,还用于确定当前没有运行的FLASH区域,将接收到的升级数 据保存在当前没有运行的FLASH区域中。
【文档编号】G06F3/06GK105912264SQ201610202534
【公开日】2016年8月31日
【申请日】2016年4月1日
【发明人】王兴隆, 乔英良, 班华堂
【申请人】浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1