一种升级方法、系统和控制器转让专利

申请号 : CN201010120326.X

文献号 : CN101894052B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张粤

申请人 : 华为数字技术(成都)有限公司

摘要 :

本发明实施例公开了一种升级方法、系统和控制器,通过第一控制器接收主机输入输出IO请求,确认第二控制器业务处理是否正常,当确认第二控制器业务处理正常时,将接收到的所述IO请求转发给所述第二控制器处理,升级所述第一控制器,达到了系统升级过程中,不中断业务处理的技术效果。

权利要求 :

1.一种升级方法,其特征在于,所述升级方法包括:第一控制器接收主机输入输出IO请求;

确认第二控制器业务处理是否正常,其中,所述第一控制器和所述第二控制器分别接收来自主机的IO请求;

当确认所述第二控制器业务处理正常时,将接收到的所述IO请求转发给所述第二控制器处理;

升级所述第一控制器。

2.根据权利要求1所述的方法,其特征在于,所述方法,还包括:当所述第一控制器升级完成后,所述第一控制器停止向所述第二控制器转发主机IO请求,以由所述第一控制器继续处理主机IO请求。

3.根据权利要求1所述的方法,其特征在于,所述确认第二控制器业务处理是否正常,包括:向所述第二控制器发送转发通告信息,所述转发通告信息用于指示所述第一控制器将把主机IO请求转发给所述第二控制器处理;

接收来自所述第二控制器的转发确认信息,根据所述转发确认信息确认所述第二控制器业务处理是否正常。

4.根据权利要求1至3中任意一项所述的方法,其特征在于,所述将接收到的所述IO请求转发给所述第二控制器处理,包括:将所述第一控制器接收到的主机IO请求转发给所述第二控制器处理;

接收来自所述第二控制器的确认信息和数据,并将所述确认信息和数据转发给主机。

5.根据权利要求2所述的方法,其特征在于,所述第一控制器停止向所述第二控制器转发主机IO请求之前,所述方法还包括:所述第一控制器判断所述第二控制器是否可以将业务交由所述第一控制器继续处理。

6.一种升级装置,其特征在于,所述升级装置包括:接收模块,用于使第一控制器接收主机输入输出IO请求;

确认模块,用于确认第二控制器业务处理是否正常,其中,所述第一控制器和所述第二控制器分别接收来自主机的IO请求;

业务转发模块,用于当确认所述第二控制器业务处理正常时,将接收到的所述IO请求转发给所述第二控制器处理;

业务升级模块,用于升级所述第一控制器。

7.根据权利要求6所述的装置,其特征在于,所述装置,还包括:终止转发模块,用于当所述第一控制器升级完成后,所述第一控制器停止向所述第二控制器转发主机IO请求,以由所述第一控制器继续处理主机IO请求。

8.根据权利要求6所述的装置,其特征在于,所述确认模块包括:通告单元,用于向所述第二控制器发送转发通告信息,所述转发通告信息用于指示所述第一控制器将把主机IO请求转发给所述第二控制器处理;

接收单元,用于接收来自所述第二控制器的转发确认信息,根据所述转发确认信息确认所述第二控制器业务处理是否正常。

9.根据权利要求6至8中任意一项所述的装置,其特征在于,所述业务转发模块,包括:第一转发单元,用于将所述第一控制器接收到的主机IO请求转发给所述第二控制器处理;

第二转发单元,用于接收来自所述第二控制器的确认信息和数据,并将所述确认信息和数据转发给主机。

10.根据权利要求7所述的装置,其特征在于,所述升级装置还包括:判断模块,用于使所述第一控制器判断所述第二控制器是否可以将业务交由所述第一控制器继续处理。

说明书 :

一种升级方法、系统和控制器

技术领域

[0001] 本发明涉及通信领域,尤其涉及一种升级方法、装置和系统。

背景技术

[0002] 随着通信业务的发展,经常需要将通信系统的软件或数据升级到新版本,现有技术中,通信系统升级的时候,一般都是整个主机的软件一起升级,需要先中断当前的处理的业务,升级完成之后,再继续处理业务。以升级存储阵列的控制器为例,控制器一般包括业务处理单元和主机接口单元,当升级控制器的业务处理单元时,需要暂停控制器的业务处理以完成业务处理单元的升级任务,如果升级程序还需要升级主机接口单元,还需要完成主机接口单元的升级任务。
[0003] 发明人发现,现有技术中的系统升级方法,由于需要暂停控制器的业务处理,将导致业务中断过长时间,无法保证业务的持续性,造成系统不稳定。

发明内容

[0004] 本发明实施例提供了一种升级方法、装置和系统,实现系统升级过程中不中断业务。
[0005] 本发明实施例的目的是通过以下技术方案实现的:
[0006] 一种升级方法,所述升级方法包括:
[0007] 第一控制器接收主机输入输出IO请求;
[0008] 确认第二控制器业务处理是否正常;
[0009] 当确认所述第二控制器业务处理正常时,将接收到的所述IO请求转发给所述第二控制器处理;
[0010] 升级所述第一控制器。
[0011] 一种控制器,所述控制器包括:
[0012] 接收模块,用于接收主机输入输出IO请求;
[0013] 确认模块,用于确认对端控制器业务处理是否正常;
[0014] 业务转发模块,用于当对端控制器业务处理正常时,将所述接收模块接收到的所述主机IO请求转发给所述对端控制器处理;
[0015] 业务升级模块,用于升级所述控制器。
[0016] 一种升级系统,所述系统包括至少两个控制器,
[0017] 其中,第一控制器接收主机输入输出IO请求;当所述第二控制器业务处理正常时,将所述第一控制器接收到的主机输入输出IO请求转发给所述第二控制器处理;升级所述第一控制器;
[0018] 第二控制器,用于处理所述第一控制器转发过来的业务。
[0019] 本发明实施例中,通过第一控制器接收主机输入输出IO请求,确认第二控制器业务处理是否正常,当确认第二控制器业务处理正常时,将接收到的所述IO请求转发给所述第二控制器103处理,升级所述第一控制器,实现控制器升级过程中,不中断处理业务,保证了主机IO请求的及时处理,提高了系统稳定性。

附图说明

[0020] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0021] 图1为本发明实施例中的结构示意图;
[0022] 图2为本发明实施例中升级方法的流程图;
[0023] 图3为本发明实施例中读数据操作的流程图;
[0024] 图4为本发明实施例中写数据操作的流程图;
[0025] 图5为本发明实施例中另一种升级方法的流程图;
[0026] 图6为本发明实施例中一种控制器的结构示意图;
[0027] 图7为本发明实施例中一种升级系统的结构示意图。

具体实施方式

[0028] 为了使本发明实施例的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0029] 为便于说明,下面介绍本发明的一个具体实施例。如图1所示,为本发明实施例的示意图,图中包括:主机101、第一控制器102、第二控制器103和存储阵列104,其中,主机101用于发送主机IO请求给第一控制器102和第二控制器103,以对存储阵列104进行读写,第一控制器102和第二控制器103分别接收来自主机101的主机IO请求对存储阵列104进行读写操作,存储阵列104用于存储数据。
[0030] 本实施例中,第一控制器102和第二控制器103运行过程中,需要进行升级,下面以第一控制器102为例,对升级方法进行详细介绍。
[0031] 第一控制器102的升级流程,具体如图2所述,包括:
[0032] 步骤201、第一控制器接收主机输入输出IO请求;
[0033] 其中,第一控制器为第一控制器102;第二控制器为第二控制器103。
[0034] 步骤202、确认第二控制器业务处理是否正常;
[0035] 步骤203、当确认第二控制器业务处理正常时,所述第一控制器将接收到的主机输入输出IO请求转发给所述第二控制器处理;
[0036] 步骤204、升级所述第一控制器;
[0037] 本发明实施例中,通过第一控制器102接收主机输入输出IO请求,确认第二控制器业务处理是否正常,当确认第二控制器103业务处理正常时,将接收到的所述IO请求转发给所述第二控制器103处理,升级所述第一控制器102,实现控制器升级过程中,不中断处理业务,保证了主机IO请求的及时处理,提高了系统稳定性。
[0038] 本发明实例中,步骤202具体可以包括:
[0039] 第一控制器102向第二控制器103发送转发通告信息,所述转发通告信息用于指示第一控制器102将把主机IO请求转发给第二控制器103处理;
[0040] 接收来自第二控制器103的转发确认信息,所述转发确认信息用于指示第二控制器103业务处理是否正常,例如:在转发确认信息中设定一个特定字段用于指示第二控制器103业务处理是否正常;
[0041] 根据所述转发确认信息,确认第二控制器103业务处理是否正常。
[0042] 另外,当第一控制器102没有在预定时间段内接收到转发确认信息时,确认第二控制器103业务处理不正常,按照现有技术的升级方式进行升级,或寻找其它控制器。
[0043] 本发明实例中,步骤203具体可以包括:
[0044] 当确认第二控制器103业务处理正常时,将第一控制器102接收到得主机IO请求转发给第二控制器103处理;
[0045] 接收来自第二控制器103的确认信息和数据;
[0046] 将所述确认信息和数据转发给主机以指示主机IO请求操作完成。
[0047] 具体地,对于数据写操作来说,如图3所示,为本发明实施例中读数据的操作处理流程,步骤203具体可以包括:
[0048] 步骤301、接收读请求;
[0049] 第一控制器102接收来自主机101的读请求。
[0050] 步骤302、转发读请求;
[0051] 第一控制器102将来自主机101的读请求转发给第二控制器103,以通过第二控制器103读取存储阵列104上的数据。
[0052] 步骤303、接收读数据;
[0053] 第一控制器102接收来自第二控制器103的读数据。
[0054] 步骤304、转发读数据;
[0055] 第一控制器102将读数据转发给主机101
[0056] 步骤305、接收读完成消息;
[0057] 数据读取完成后,第一控制器102接收来自第二控制器103的读完成消息。
[0058] 步骤306、转发读完成消息。
[0059] 第一控制器102将读完成消息转发给主机101,以便让主机101获知数据读取完成。
[0060] 对于数据写操作来说,如图4所示,为本发明实施例中写数据的操作处理流程,步骤203具体可以包括:
[0061] 步骤401、接收写请求;
[0062] 第一控制器102接收来自主机101的写请求。
[0063] 步骤402、转发写请求;
[0064] 第一控制器102将写请求转发给第二控制器103,以通过第二控制器103将数据写到存储阵列104上;
[0065] 步骤403、接收写响应;
[0066] 第一控制器102接收来自第二控制器103的写响应。
[0067] 步骤404、转发写响应;
[0068] 第一控制器102将写响应转发给主机101,以便让主机101获知存储阵列104上已经准备好数据写入空间。
[0069] 步骤405、接收待写入数据;
[0070] 第一控制器102接收来自主机101的待写入数据。
[0071] 步骤406、转发待写入数据;
[0072] 第一控制器102向第二控制器103的转发待写入数据,以便第二控制器103将待写入数据写入到存储阵列104上;
[0073] 步骤407、接收写完成消息;
[0074] 数据写入完成后,第一控制器102接收来自第二控制器103的写完成消息。
[0075] 步骤408、转发写完成消息。
[0076] 第一控制器102将写完成消息转发给主机101,以便让主机101获知数据写入完成。
[0077] 本发明实例中,步骤203之后,还可以包括:
[0078] 判断第二控制器103是否可以将业务处理交由第一控制器102继续处理的步骤;
[0079] 当第一控制器102升级完成后,第一控制器102停止向第二控制器103转发主机IO请求,以由第一控制器102继续处理主机IO请求的步骤。
[0080] 相应地,整个升级方法的流程如图5所示,其中,步骤501至步骤504和步骤201至步骤204相同,在此不再赘述。
[0081] 步骤505,判断第二控制器是否可以将业务处理交由第一控制器继续处理,具体可以包括:
[0082] 第一控制器102向第二控制器103发送停止转发通告信息,所述停止转发通告信息用于指示第一控制器102将停止向第二控制器103转发主机IO请求;
[0083] 接收来自第二控制器103的停止转发确认信息,所述停止转发确认信息用于指示第二控制器103可以停止处理来自第一控制器102的业务。
[0084] 例如:在第一控制器102升级完成后,第二控制器103可能还在处理第一控制器102转发过来的业务,此时需要向第二控制器103发送停止转发通告信息以确认第二控制器103是否已经处理完第一控制器102转发过来的业务,如果未处理完,需要等待第二控制器103处理完第一控制器102转发过来的业务之后,第一控制器102才可以继续处理接收到的业务;如果已处理完,则直接将第一控制器102收到的业务交给第一控制器102处理。
[0085] 步骤506,当所述第一控制器升级完成后,所述第一控制器停止向所述第二控制器转发主机IO请求,以由所述第一控制器继续处理主机IO请求。
[0086] 本发明实施例中,通过步骤505和步骤506,实现了第一控制器升级完成之后,由第一控制器继续处理业务的技术效果。
[0087] 本发明实施例中,第一控制器102和第二控制器103都包括业务处理单元和主机接口单元,其中,业务处理单元用于处理业务,主机接口单元用于与主机101进行通信,当升级程序包括升级业务处理单元和升级主机接口单元时,第一控制器102在升级完业务处理单元之后,可以继续升级主机接口单元。由于升级主机接口单元的时间非常短暂,不会对业务处理造成影响。
[0088] 本发明实施例中,还提供了一种控制器,控制器如图6所示,该控制器包括:
[0089] 接收模块610,用于接收主机输入输出IO请求;
[0090] 确认模块620,用于确认对端控制器业务处理是否正常;
[0091] 业务转发模块630,用于当对端控制器业务处理正常时,将所述接收模块610接收到的所述主机IO请求转发给所述对端控制器处理;
[0092] 业务升级模块640,用于升级所述控制器。
[0093] 其中,上述控制器,还可以包括:
[0094] 处理模块650,用于处理主机IO请求;
[0095] 终止转发模块660,用于当所述业务升级模块640升级完成后,停止向所述对端控制器转发主机IO请求以由所述处理模块650继续处理主机IO请求。
[0096] 其中,所述确认模块620,包括:
[0097] 通告单元621,用于向所述对端控制器发送转发通告信息,所述转发通告信息用于指示所述控制器将把主机IO请求转发给所述对端控制器处理;
[0098] 接收单元622,用于接收来自所述对端控制器的转发确认信息,根据所述确认信息确认所述对端控制器业务处理是否正常,所述转发确认信息用于指示所述对端控制器业务处理是否正常
[0099] 其中,所述业务转发模630块,包括:
[0100] 第一转发单元631,用于将所述控制器接收到的主机IO请求转发给所述对端控制器的业务处理单元处理;
[0101] 第二转发单元632,用于将来自所述对端控制器的主机IO请求确认信息和数据转发给主机。
[0102] 其中,上述控制器,还可以包括:
[0103] 判断模块670,用于判断所述对端控制器是否可以将业务交由所述处理模块650继续处理。
[0104] 本发明实施例中,还提供了一种升级系统,如图7所示,该系统包括至少两个控制器,其中,第一控制器701接收主机输入输出IO请求;当所述第二控制器702业务处理正常时,将所述第一控制器701接收到的主机输入输出IO请求转发给所述第二控制器702处理;升级所述第一控制器701;
[0105] 第二控制器702,用于处理所述第一控制器701转发过来的业务。
[0106] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,上述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0107] 以上对本发明所提供的一种数据访问方法及通信系统以及相关装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,因此,本说明书内容不应理解为对本发明的限制。