一种多存储阵列负载均衡的方法和设备的利记博彩app

文档序号:7742909阅读:851来源:国知局

专利名称::一种多存储阵列负载均衡的方法和设备的利记博彩app
技术领域
:本发明涉及通信
技术领域
,特别是涉及一种基于权值的多存储阵列负载均衡的方法和设备。
背景技术
:在网络存储领域,一般通过iSCSI协议(InternetSmallComputerSystemInterface,互联网小型计算机系统接口)完成客户端和IP-SAN(StorageAreaNetwork,存储区域网络)间的数据传输。具体地,SCSI(SmallComputerSystemInterface,小型计算机系统接口)结构基于客户端/服务器模式,通常应用环境是设备互相靠近,并且由SCSI总线连接。iSCSI通过在SCSI数据包外封装TCP/IP(TransmissionControlProtocol/InternetProtocol,传输控制协议/互联网协议)协议,使SCSI数据包可以在IP网络中传输。如图1所示,当客户端(启动器Initiator)通过IP网络实现与存储设备(目标器Target)间进行大量数据的存储传输时,客户端(如Initiator)的SCSI数据包先被封装成iSCSI的PDU(ProtocolDataUnit,协议数据单元),然后封装相应的网络协议发送到网络的另一端存储设备(如Target),再依次解封装还原成最初的SCSI数据包。存储设备通过不同的RAID(RedundantArrayofIndependentDisk,独立冗余磁盘阵列)方式来对外提供同时多路读写10(Input/Output,输出/输入)服务。然而,进一步如图2所示,当存储设备高负载运行或者不可用时,基于iSCSI协议的客户端Initiator无法从该存储设备上获得其请求的服务,在此情况下,不得不等待重新连接该存储设备Target或者在支持iSNS(InternetStroageNameService,互联网存储名称服务)的情况下,向其他存储设备Target发起连接请求。将上述系统应用于大规模城域或广域视频监控场景中,如图3所示,由于视频存储数据通常根据物理区域分布就近保存在不同物理域的数据中心,编码器实时输出数据,通过iSCSI协议保存在IP-SAN中。但在这种应用模式下,如上所述,当设备负载较高或者出现问题时,同一数据中心以及分布在不同区域数据中心的iSCSI连接将存在负载不均衡的问题。为解决上述问题,现有技术中提供以下三种方案进行负载均衡,具体如下方案一、静态配置预先为客户端Initiator手动配置指定的存储设备Target的位置信息,该位置信息包括=Target的IP地址,TCP端口(通常默认为3260),以及Target的名字等信息,该位置信息存储在客户端Initiator本地,使客户端Initiator通过该位置信息与指定的存储设备Target建立iSCSI连接。通常,为了保证客户端能正常工作,该列表中配置有多个存储设备Target的位置信息。当客户端Initiator与当前存储设备Target的连接中断时,该客户端Initiator从列表中重新选择一个新的存储设备Target并与该新的存储设备Target建立iSCSI连接。方案二、发起会话(SendTargets)客户端Initiator向存储设备Target网关发起会话,从而获得该Target网关的位置信息,如IP地址,TCP端口以及Target的名字等。当客户端Initiator与Target建立iSCSI连接时,数据首先由Initiator发送给该Target网关,再由该Target网关将数据传输到Target,在此过程中,Target网关可以根据各个Target的负载信息进行动态调整。方案三、零配置(如iSNS,SLP,etc.)利用iSCSI所支持的名字发现服务如iSNS^PSLP(ServiceLocationProtocol,服务定位协议)等。以iSNS服务器为例,Initiator和Target均在iSNS服务器端注册,由iSNS服务器来维护Target的IP地址、端口和名字等信息,上述信息为Target的位置信息。当Initiator需要获得当前可用的Target时,只需连接到iSNS服务器,即可获得完整的Target的信息列表,并从该Target的信息列表中选择Target建立iSCSI连接。对于上述现有方案,方案一与方案三的缺陷在于由于该Target的列表中仅包括Target的位置信息,无法获取每一个Target的负载信息,即无法获知所选择的Target是否可用,因此当重新选择的Target不可用时,该Initiator需要再次从列表中依次选择新的Target并与所选择的新的Target建立连接,如此循环,降低了效率。方案二的缺陷在于虽然Target网关可以获取Target的负载信息并根据Target的负载信息进行动态调整,但由于Target网关同时参与iSCSI连接,且所有的数据都要通过该Target网关进行传输,此时若Initiator与该Target网关之间的连接中断,Initiator则无法与该Target网关下的所有Target建立iSCSI连接。
发明内容本发明提供一种多存储阵列负载均衡的方法和设备,用于动态调整IP存储网络中各Target的负载,并进行负载均衡。本发明提供一种多存储阵列负载均衡的方法,应用于进行通信的客户端Initiator和存储设备Target组成的存储系统中,所述Initiator和Target之间通过存储设备代理设备TargetAgent建立连接,所述方法包括以下步骤所述TargetAgent动态获取Target的资源状态信息;当接收到所述Initiator的资源查询请求时,所述TargetAgent根据所述Target的资源状态信息为所述Initiator分配匹配的Target;所述TargetAgent将所述匹配的Target的信息发送给所述Initiator,使所述Initiator与所述匹配的Target建立连接。其中,所述TargetAgent动态获取Target的资源状态信息包括所述TargetAgent获取所述Target周期上报的资源状态信息;或所述TargetAgent获取所述Target检测到自身资源状态信息发生变化后主动上报的资源状态信息。其中,所述TargetAgent根据所述Target的资源状态信息为所述Initiator分配匹配的Target包括所述TargetAgent将所述Target的资源状态信息存储到配置的Target资源状态列表;所述TargetAgent查询所述Target资源状态列表,根据所述Target资源状态列表中Target的资源状态信息为所述Initiator分配匹配的Target,所述资源状态信息具体为Target的位置信息、负载信息和其他附加信息,其中所述负载信息包括权值和/或空闲容量和/或空闲iSCSI连接数。其中,还包括所述TargetAgent动态获取Initiator的资源状态信息。其中,还包括所述TargetAgent检测Target的资源状态信息;当检测到所述Target的负载超过预设的负载门限时,所述TargetAgent根据与所述Target连接的Initiator的资源状态信息,选择对应的Initiator并中断所述Target与所述对应的Initiator的连接,同时调整该Target的负载信息;和/或当所述TargetAgent与Target的资源状态信息传输中断时,所述TargetAgent根据预先配置的Initiator与Target的对应关系获知与所述Target连接的Initiator,并为与所述Target连接的Initiator重新分配Target。本发明提供一种存储设备代理设备TargetAgent,应用于包括客户端Initiator和存储设备Target组成的存储系统中,所述Initiator和Target之间通过所述TargetAgent建立连接,所述TargetAgent包括收发模块,用于获取Target上报的资源状态信息,并接收所述Initiator的资源查询请求,将与所述Initiator匹配的Target的信息发送给所述Initiator;存储模块,与所述收发模块连接,用于存储所述收发模块获取的Target的资源状态信息;匹配模块,与所述收发模块和存储模块连接,用于根据所述Target的资源状态信息为所述Initiator分配匹配的Target。其中,所述收发模块具体用于获取所述Target周期上报的资源状态信息;或获取所述Target检测到自身资源状态信息发生变化后主动上报的资源状态信肩、ο其中,所述存储模块具体用于将所述Target的资源状态信息存储到配置的Target资源状态列表,所述Target的资源状态信息具体为Target的位置信息、负载信息和其他附加信息,其中所述负载信息具体包括权值和/或空闲容量和/或空闲iSCSI连接数;所述匹配模块具体用于查询所述Target资源状态列表,根据所述Target资源状态列表中所述Target的资源状态信息为所述Initiator分配匹配的Target。其中,所述收发模块还用于动态获取Initiator的资源状态信息。其中,还包括检测模块,与所述存储模块连接,用于检测Target的负载是否超过预设的负载门限;中断模块,与所述检测模块和存储模块连接,用于当检测到所述Target的负载超过预设的负载门限时,根据与所述Target连接的Initiator的资源状态信息,选择对应的Initiator并中断所述Target与所述对应的Initiator的连接,同时调整该Target的负载信息其中,所述匹配模块还用于当所述TargetAgent与Target的资源状态信息传输中断时,根据预先配置的Initiator与Target的对应关系获知与所述Target连接的Initiator,并为与所述Target连接的Initiator重新分配Target。本发明具有以下优点通过TargetAgent动态获取Target的资源状态信息,并根据该资源状态信息为Initiator分配匹配的Target,使Initiator与Target之间建立连接,从而实现了动态调整Target的负载,进行负载均衡。此外,还可以通过TargetAgent动态获取Initiator的资源状态信息,对不同的Initiator实现差异化服务。图1为现有技术中iSCSI协议应用场景示意图;图2为现有技术中存储设备高负载运行或者不可用;图3为现有技术中大规模城域或广域视频监控应用场景;图4为本发明中的一种多存储阵列负载均衡的方法流程图;图5为本发明中的一种多存储阵列负载均衡的方法流程图;图6为本发明的TargetAgent为Initiator分配匹配的Target的过程的流程图;图7为本发明中的另一种多存储阵列负载均衡的方法流程图;图8为本发明中的权值的计算方式;图9为本发明中的TargetAgent为Initiator重新分配匹配的Target的过程的流程图;图10为本发明中的TargetAgent中断Target与对应的Initiator的连接的过程的流程图;图11为本发明中的一种TargetAgent的结构示意图。具体实施例方式本发明的核心思想是通过在IP存储网络中设置一TargetAgent(存储设备代理设备),利用该TargetAgent动态获取各存储设备Target的资源状态信息,并根据动态获取的各存储设备Target的资源状态信息为IP存储网络中的客户端Initiator分配匹配的存储设备Target,使Initiator与Target之间建立连接。本发明提供一种多存储阵列负载均衡的方法,应用于进行通信的客户端Initiator和存储设备Target组成的存储系统中,所述Initiator和Target之间通过存储设备代理设备TargetAgent建立连接,如图4所示,所述方法具体包括以下步骤步骤401、所述TargetAgent动态获取Target的资源状态信息。步骤402、当接收到所述Initiator的资源查询请求时,所述TargetAgent根据所述Target的资源状态信息为所述Initiator分配匹配的Target。步骤403、所述TargetAgent将所述匹配的Target的信息发送给所述Initiator,使所述Initiator与所述匹配的Target建立连接。为了更加清楚的说明本发明提供的技术方案,下面结合具体的应用场景,对本发明提供的负载均衡的方法进行详细介绍。本发明提供的负载均衡的方法,应用于IP存储网络中,其中,该IP存储网络包括存储设备代理设备TargetAgent、存储设备Target以及客户端Initiator,TargetAgent为客户端Initiator分配存储设备Target,以使Initiator建立与所分配的Target之间的连接。如图5所示,本发明应用场景提供的负载均衡的方法包括以下步骤步骤501、存储设备Target存储并维护自身的资源状态信息。具体的,该资源状态信息包括但不限于=Target的位置信息、负载信息和其他附加信息(例如,Target所在SAN资源的设备信息)。其中,该位置信息包括但不限于该Target的IP地址、端口和iSCSI节点名称;该负载信息包括但不限于该Target的空闲容量、空闲iSCSI连接数和表示该Target读写情况(例如,可以为读写的繁忙程度,用于表示该Target的负载情况)的权值等。当然,该负载信息并不限于此,凡是基于Target负载情况的信息均属于本发明的保护范围。需要说明的是,上述表示该Target负载情况的权值的获取方式包括但不限于根据权值信息计算该Target的权值,具体如公式(1)Target的权值=(-^^-+-)χΡχ100公式⑴&S+(PwxWt+VrxRt)S+(PwxWt+xxRt)AV通过公式(1)可以看出,该权值信息中至少包含以下信息(I)S:Target所在的实体设备(IP-SAN)的IOPS值(I/Opersecond,每秒读写操作次数),即该Target自身每秒能够进行读操作和写操作的次数,表示该Target的访问能力,通常选取该IOPS值为100;当然,实际应用中,也可以选择其他数值作为该IOPS值;(2)P=Target自身的优先级,由于多个Target可能在同一个实体设备上,当至少两个Target需要进行读或写操作时,对不同Target的操作请求按照各自的优先级(P的取值,例如为18(该数值可以根据实际需要进行调整)级,数值越高,优先级越高)进行处理;(3)Wt在单位时间内的写请求次数,其中该单位时间可以根据实际需要而设置,该写请求次数为该Target在单位时间内实际接收的写请求次数。(4)Rt在单位时间内的读请求次数,其中该单位时间可以根据实际需要而设置,该读请求次数为该Target在单位时间内实际接收的读请求次数。(5)Pw:写请求优先级;(6)Pr读请求优先级。其中,Wt和Rt均为该Target实际的负载情况,例如该Target在10秒内接收了100次读请求和200次写请求;Pw和Pr用于当该Target同时接收到了读请求和写请求,Target根据读写请求的优先级对接收的请求进行处理。需要说明的是,上述的公式(1)仅为根据权值信息获取权值的一种优选实施方式,具体计算形式不影响本发明的保护范围,而且在实际应用中,权值信息中的信息也并不局限于上述信息,还可以为其他的信息,即公式(1)中计算权值的过程可以根据不同的信息变化进行相应的调整,凡是根据权值信息获取权值的方式均属于本发明的保护范围,本发明中不再详加赘述。需要注意的是,上述根据权值信息计算该Target的权值的过程中,可以是Target自身根据权值信息获取权值,也可以由Target将权值信息发送给TargetAgent,由TargetAgent根据权值信息获取权值,且TargetAgent无需将所获取的权值发送给对应的Target。步骤502、Target向TargetAgent发送自身的资源状态信息。具体的,Target至少可以通过以下方式中的任意一种方式向TargetAgent发送自身的资源状态信息(I)Target根据预设的周期向TargetAgent上报资源状态信息。其中,该Target可以通过专用消息或者非专用消息(例如,Target向TargetAgent发送的资源注册消息)携带该资源状态信息向TargetAgent发送。(2)Target经触发向TargetAgent上报资源状态信息,该触发事件可以为Target检测到自身资源状态信息发生变化、或者Target接收到资源状态信息查询请求等,触发事件的具体表现形式不应视为对本发明保护范围的限制。通过上述两种方式上报的资源状态信息中所包括的具体信息可以由TargetAgent指定,或由TargetAgent与Target协商而定,可以上报所有资源状态信息;或者上报发生改变的资源状态信息以及必要的资源状态信息(例如IP地址、端口和节点名称等位置信息);或者上报发生改变的资源状态信息以及必要的资源状态信息,并将未发生改变的资源状态信息设置成预设标识。对于其他的携带方式,本发明中不再详加赘述。本发明中,以在资源注册消息中携带所有资源状态信息为例进行说明。此时,该资源注册消息的格式如表1所示表1、资源注册消息<table>tableseeoriginaldocumentpage9</column></row><table>在表1中,Register(注册)为消息关键字,表示该消息的类型。IP地址、端口以及iSCSI节点名称为Target的位置信息。权值为Target的负载信息,例如该Target权值为102。设备信息为Target的附加信息,表示该Target所在SAN资源的设备信息。需要说明的是,表1所示的资源注册消息仅为一种优选的实施方式,任何形式上的改变不影响本发明的保护范围,凡是能够承载资源注册消息的形式均属于本发明的保护范围。步骤503、TargetAgent维护各个Target的资源状态信息。具体地,当TargetAgent获取到资源状态信息后,将资源状态信息更新到本地配置的Target资源状态列表。Target资源状态列表用于存储各个Target的资源状态信息,一个Target对应一条存储条目,具体格式如表2所示。其中,表2所示的Target资源状态列表仅是本发明一种优选的实施方式,凡是能够实现资源状态信息维护功能的方式均属于本发明的保护范围,如任何形式上的改变(将列表更改为对应关系等)或资源状态信息的改变(资源状态信息的个数改变,格式改变等)等。表2、Target资源状态列表<table>tableseeoriginaldocumentpage10</column></row><table>优选地,Target资源状态列表中每一个Target的存储条目可以按照条目中的某一信息(例如,权值的高低)或多个信息(例如权值的高低和空闲容量的大小)排列存储。当然,也可以按照其他顺排列存储,此处不再赘述。为了更加清楚的说明本步骤中TargetAgent维护从Target获取的资源状态信息的过程,下面对该过程进行进一步介绍,该过程包括以下步骤(1)、TargetAgent从资源状态信息中提取Target的iSCSI节点名称。(2),TargetAgent从本地维护的Target资源状态列表中查询是否存在该“iSCSI节点名称”。如果未查询到该“iSCSI节点名称”,转到步骤(3)。如果查询到该“iSCSI节点名称”,转到步骤(4)。(3)>TargetAgent在Target资源状态列表中添加与该“iSCSI节点名称”对应的存储条目。(4)、TargetAgent根据所接收的资源状态信息更新Target资源状态列表。需要注意的是,在上述过程中,TargetAgent能够维护各个Target的资源状态信息,而当TargetAgent需要根据各个Target的资源状态信息为Initiator分配匹配的Target时,该方法还可以包括以下步骤步骤504、Initiator向TargetAgent发送资源查询请求。具体的,当Initiator需要与Target建立iSCSI连接时,Initiator需要向TargetAgent发送资源查询请求,以获取匹配的Target。其中,资源查询请求的格式如表3所示。表3、资源查询请求<table>tableseeoriginaldocumentpage11</column></row><table>其中,Query表示该消息的消息关键字,表示该消息为资源查询消息;IP地址、端口和iSCSI节点名称为Initiator的位置信息。需要说明的是,上述资源查询请求消息中携带的信息只是一种优选的实施方式,凡是可以实现对TargetAgent资源查询功能的方式均属于本发明的保护范围,例如资源查询请求消息中还携带Initiator自身的资源状态信息(Initiator的权值),或Initiator对所分配的匹配的Target的要求,例如Initiator对所分配的匹配的Target的空闲iSCSI连接数的要求。步骤505、TargetAgent根据各个Target的资源状态信息为Initiator分配匹配的Target。为了清楚的阐述本步骤,以图6所示的TargetAgent为Initiator分配匹配的Target的过程为例进行进一步的说明,具体包括以下步骤步骤5051、TargetAgent获取分配准则。其中,该分配准则可以由TargetAgent设置,或者,TargetAgent与Initiator和/或Target约定。具体地,分配准则可以根据负载均衡的目的从Target资源状态列表中的资源状态信息中提取,例如如果负载均衡的目的为平衡各个Target的繁忙程度,则根据资源状态信息中的权值提取出权值最低准则,即从Target资源状态列表中选择权值最低的Target分配给Initiator。当然,凡是根据负载均衡的目的所提取的分配准则均属于本发明的保护范围,例如空闲容量最大准则和空闲iSCSI连接数最大准则等。需要说明的是,各种分配准则可以独立使用,也可以配合使用。此外,对于不同的Initiator,TargetAgent可使用相同的分配准则,也可使用不同的分配准则,且分配准则可事先约定,或在资源查询请求中携带。本发明中以分配准则为权值最低准则为例进行说明。步骤5052、TargetAgent根据分配准则,查询Target资源状态列表,获取匹配的Target的信息。具体地,TargetAgent查询Target资源状态列表中各个Target的权值信息,从Target资源状态列表中选择权值最低的Target作为匹配的Target,并获取该匹配的Target的信息。其中,Target的信息为该Target的位置信息,包括=Target的IP地址,端口和iSCSI节点名称,以使Initiator根据该信息与匹配的Target建立连接。优选地,将分配准则与Target资源状态列表中Target的存储条目的排列顺序相结合,以便在分配时快速选择到匹配的Target。例如当分配准则为权值最低准则时,TargetAgent按照Target的权值由低到高的顺序将Target资源状态列表中Target的存储条目进行排列与存储,此时权值最低的Target对应的存储条目为Target资源状态列表中的第一条存储条目。当TargetAgent为Initiator分配匹配的Target时,可直接读取第一条存储条目对应Target,该Target即为匹配的Target。当然,也可以按照权值由高到低的顺序对存储条目进行排列与存储。进一步地,TargetAgent为Target设置权值门限。TargetAgent从Target资源状态列表中选择匹配的Target时,判断Target的权值是否高于预设的权值门限;当Target的权值高于权值门限时,表示该Target的负载已经达到门限,继续为该Target添加负载,会使该Target的性能下降,此时TargetAgent不再为该Target分配Initiator,直到该Target的权值低于权值门限。TargetAgent通过对Target设置权值门限,以均衡各个Target的负载,提高系统整体性能。该方法同样适用于其他分配准则。需要说明的是,TargetAgent为Initiator所分配匹配的Target可以为一个,也可以为多个,以供Initiator选择。步骤5053、TargetAgent向Initiator发送资源查询响应,该资源查询响应中携带所分配的匹配的Target的信息,即该Target的位置信息。其中,资源查询响应的格式如表4所示。表4、资源查询响应_ResourceQuery消息1__Query_—2_IP地址一3端口~iSCSI节点名称表4所示的资源查询响应的信息格式与表3所示的资源查询请求的格式类似,其中Query表示该消息的消息关键字(当然,也可有别于资源查询请求的关键字而设置为"Query0K”等),IP地址、端口和iSCSI节点名称为该匹配的Target的位置信息。步骤506、Initiator获取由TargetAgent分配的匹配的Target的信息。步骤507、Initiator与该Target的信息所对应的Target建立iSCSI连接。具体地,Initiator根据Target的信息,与该Target的信息所对应的Target发送iSCSI连接请求。Target接收Initiator的iSCSI连接请求,与Initiator建立iSCSI连接,并向Initiator发送iSCSI连接响应。需要说明的是,当Target与新的Initiator建立iSCSI连接时,Target的资源状态信息会发生改变,而由于Target通过资源注册消息周期性地向TargetAgent上报资源状态信息,因此TargetAgent将根据该连接更新Target资源状态列表,并当Target资源状态列表为按顺序排列存储时,根据更新后的资源状态信息进行队列调整。需要说明的是,通过使用上述的处理过程,即可以实现Initiator与所分配的匹配的Target的连接,但是,在实际应用中,如果当Initiator和与该Initiator建立iSCSI连接的Target的连接中断(例如Initiator与Target的iSCSI连接故障)时,Initiator则重新向TargetAgent发送资源查询请求,使TargetAgent根据Target的资源状态列表重新为该Initiator分配匹配的Target(例如Target_b),从而该Initiator与Target-b建立连接,其中具体过程与步骤504步骤507类似,均为资源查询、资源分配和iSCSI连接建立的流程,此处不再赘述。需要注意的是,上述的处理过程是针对TargetAgent仅维护Target侧的资源状态信息的情况,而在实际应用中,TargetAgent还可以同时维护Initiator侧的资源状态信息和Target侧的资源状态信息,该TargetAgent获取并维护Initiator的资源状态信息的方式与上述获取并维护Target的资源状态信息相似,此处不再详加赘述。似,此处不再详加赘述。本发明还提供一种多存储阵列负载均衡的方法,应用于Initiator与Target建立连接之后,如图7所示,该方法包括以下步骤步骤701、TargetAgent建立并维护Initiator与Target的对应关系。具体的,TargetAgent根据为各个Initiator所分配的Target获取Initiator与Target的对应关系,并以排序表的形式存储和维护,该排序表与Target资源状态列表和Initiator资源状态列表关联,该排序表中携带的内容如表5所示。需要说明的是,排序表仅为本发明一种优选的排序方式,凡是实现维护Target和Initiator的对应关系的方式均属于本发明的保护范围。表5、排序表<table>tableseeoriginaldocumentpage14</column></row><table>由于在实际应用中,多个Target可能会有相同的IP地址,该TargetAgent可以将具有相同IP地址的多个Target作为TargetHost,并可以使用该TargetHost为Initiator分配Target。如图8所示,此时,各个具有相同IP地址的Target将作为该TargetHost的下属子节点,且每一个Target与和自身建立连接的Initiator关联。在这种情况下,该TargetHost的权值为上述各个具有相同IP地址的各个Target的权值的总和;而各个Target的权值通过上述步骤502获取,所以能够得到各个Target的权值以及TargetHost的权值。可以看出,在表5中,TargetIP地址即用于标识TargetHost,相同IP地址Target的权值和即可以表示TargetHost的权值,对于表5中的其他字段,在此不再详加赘述。步骤702、TargetAgent与具有建立连接的Initiator的Target的资源状态信息传输中断时,TargetAgent根据Initiator与Target的对应关系获知与该Target具体地,为了更加清楚地说明本步骤,如图9所示,该过程进一步包括以下步骤步骤7021、Target-a与TargetAgent之间的资源状态信息传输中断。Target与TargetAgent之间的资源状态信息传输方式为(1)Target向TargetAgent周期性上报资源状态信息,或(2)Target经触发向TargetAgent上报资源状态fe息。若采用第一种方式,则TargetAgent在上报时间到来时未接收到Target-a的上报时,判断与Target-a的资源状态信息传输中断;若采用第二种方式,则TargetAgent在预设的时间段(该预设的时间段由TargetAgent根据经验值,或需求配置)内未收到Target-a的上报;或TargetAgent向Target主动发起资源状态信息查询但未收到响应时,判断与Target-a的资源状态信息传输中断。需要说明的是,此时Initiator与Target-a的iSCSI连接可能发生故障,也可能未发生故障,但并不影响本发明方案的实施。步骤7022、TargetAgent通过Initiator与Target的对应关系判断是否存在已与Target-a建立iSCSI连接的Initiator。具体地,TargetAgent通过查询如表5所示的排序表,判断是否存在已与Target-a建立iSCSI连接的Initiator当判断存在已与Target-a建立iSCSI连接的Initiator时,转到步骤7024;当判断不存在已与Target-a建立iSCSI连接的Initiator时,结束该流程。步骤7023、TargetAgent获取已与Target-a建立iSCSI连接的Initiator(例如Initiator-a)。步骤7024、TargetAgent为已与Target-a建立iSCSI连接的Initiator重新分配Target,使Initiator-a与新分配的匹配的Target建立iSCSI连接。为了更加清楚地说明本步骤,下面将对本步骤中TargetAgent为Initiator-a重新分配Target,使Initiator-a与新分配的匹配的Target建立iSCSI连接的过程进行进一步介绍,该过程包括以下步骤(1)、TargetAgent根据Target资源状态列表为Initiator-a分配新的匹配的Target(例如,Target-b)。需要说明的是,TargetAgent也可以根据排序表进行分配,其原理类似,此处不再赘述。(2),TargetAgent向Initiator-a发送资源重定向请求,该资源重定向请求中携带Target-b的信息。(3)、Initiator-a与Target-b建立iSCSI连接。(4)、Initiator-a向TargetAgent返回资源重定向响应。当与TargetAgent发生资源状态信息传输中断的Target-a再次向TargetAgent发起资源注册请求时,如果TargetAgent已将Target-a从Target资源状态列表中删除,则Target-a将作为新的资源重新进行注册;如果TargetAgent仅将Target-a的状态标识置为不可用,则修改其状态标识为可用,并初始化其权值,即设置其权值为0。需要说明的是,当Target主动下线时,可以预先向TargetAgent发送反注册消息,使TargetAgent为与该Target连接的Initiator重新分配其他在线的Target。步骤703、TargetAgent通过Target资源状态列表检测到Target的负载超过预设的负载门限时,TargetAgent根据与该Target连接的Initiator的资源状态信息,选择对应的Initiator并中断该Target与对应的Initiator的连接。为了更加清楚地说明本步骤,如图10所示,该过程进一步包括以下步骤步骤7031、TargetAgent检测Target资源状态信息中的负载信息是否超过预设的负载门限。其中,负载超过预设的负载门限包括Target的权值高于预设的权值门限,或Target的空闲容量低于预设的空闲容量门限等,凡是表征Target负载状态的信息均属于本发明的保护范围。具体地,当检测到任意一个Target(例如Target-a)的负载超过预设的负载门限时,转到步骤7032。步骤7032、TargetAgent获取与Target—a连接的Initiator(例如Initiator_a禾口Initiator-b)。具体地,TargetAgent通过查询排序表中Target与Initiator的对应关系,获取与Target-aInitiator-a禾口Initiator_b0步骤7033、TargetAgent查询Initiator资源状态列表,选择对应的Initiator(例如Initiator-a)并中断Target与该对应的Initiator的iSCSI连接。Initiator的资源状态信息与Target的资源状态信息类似,包含有Initiator自身的优先级信息。具体地,本步骤中选择对应的Initiator可以为选择与该Target建立iSCSI连接的Initiator中优先级最低的Initiator,或优先级低于优先级门限的Initiator(此时,存在优先级高于优先级门限的Initiator),并中断对应的Initiator与该Target的iSCSI连接,其中中断方式包括但不限于以下两种方式中的任意一种(1)TargetAgent通知对应的Initiator中断与Target的连接,并丢弃该Initiator。(2)TargetAgent为对应的Initiator重新分配Target,并通过资源重定向请求发送给该Initiator,使该Initiator与重新分配的Target建立连接。需要说明的是,本发明中按照优先级选择对应的Initiator仅为一种优选的实施方式,凡是根据负载均衡的需求选择对应的Initiator的方式均属于本发明的保护范围。通过上述负载均衡的方法,以确保优先级高的Initiator的数据传输,从而实现对不同的Initiator的差异化服务。需要说明的是,上述步骤702和步骤703无先后顺序。本发明提供一种存储设备代理设备TargetAgent,应用于包括客户端Initiator和存储设备Target组成的存储系统中,所述Initiator和Target之间通过所述TargetAgent建立连接,如图11所示,所述TargetAgent1100包括收发模块1110,用于获取Target上报的资源状态信息,并接收所述Initiator的资源查询请求,将与所述Initiator匹配的Target的信息发送给所述Initiator。具体地,收发模块1110获取所述Target周期上报的资源状态信息;或获取所述Target检测到自身资源状态信息发生变化后主动上报的资源状态信息。收发模块1110还可以动态获取Initiator的资源状态信息。存储模块1120,与收发模块1110连接,用于存储收发模块1110获取的Target的资源状态信息。具体地,存储模块1120将所述Target的资源状态信息存储到配置的Target资源状态列表,所述Target的资源状态信息具体为Target的位置信息、负载信息和其他附加信息,其中所述负载信息具体包括权值和/或空闲容量和/或空闲iSCSI连接数。匹配模块1130,与收发模块1110和存储模块1120连接,用于根据所述Target的资源状态信息为所述Initiator分配匹配的Target。具体地,匹配模块1130查询所述Target资源状态列表,根据所述Target资源状态列表中所述Target的资源状态信息为所述Initiator分配匹配的Target。当所述TargetAgent与Target的资源状态信息传输中断时,匹配模块1130还可以根据预先配置的Initiator与Target的对应关系获知与所述Target连接的Initiator,并为与所述Target连接的Initiator重新分配Target,同时调整该Target的负载信息。检测模块1140,与存储模块1120连接,用于检测Target的负载是否超过预设的负载门限。中断模块1150,与检测模块1140和存储模块1120连接,用于当检测到所述Target的负载超过预设的负载门限时,根据与所述Target连接的Initiator的资源状态信息,选择对应的Initiator并中断所述Target与所述对应的Initiator的连接。本发明具有以下优点通过TargetAgent动态获取Target的资源状态信息,并根据该资源状态信息为Initiator分配匹配的Target,使Initiator与Target之间建立连接,从而实现了动态调整Target的负载,进行负载均衡。此外,还可以通过TargetAgent动态获取Initiator的资源状态信息,对不同的Initiator实现差异化服务。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。权利要求一种多存储阵列负载均衡的方法,应用于进行通信的客户端Initiator和存储设备Target组成的存储系统中,其特征在于,所述Initiator和Target之间通过存储设备代理设备TargetAgent建立连接,所述方法包括以下步骤所述TargetAgent动态获取Target的资源状态信息;当接收到所述Initiator的资源查询请求时,所述TargetAgent根据所述Target的资源状态信息为所述Initiator分配匹配的Target;所述TargetAgent将所述匹配的Target的信息发送给所述Initiator,使所述Initiator与所述匹配的Target建立连接。2.如权利要求1所述的方法,其特征在于,所述TargetAgent动态获取Target的资源状态信息包括所述TargetAgent获取所述Target周期上报的资源状态信息;或所述TargetAgent获取所述Target检测到自身资源状态信息发生变化后主动上报的资源状态信息。3.如权利要求1所述的方法,其特征在于,所述TargetAgent根据所述Target的资源状态信息为所述Initiator分配匹配的Target包括所述TargetAgent将所述Target的资源状态信息存储到配置的Target资源状态列表;所述TargetAgent查询所述Target资源状态列表,根据所述Target资源状态列表中Target的资源状态信息为所述Initiator分配匹配的Target,所述资源状态信息具体为Target的位置信息、负载信息和其他附加信息,其中所述负载信息包括权值和/或空闲容量和/或空闲iSCSI连接数。4.如权利要求1-3中任一项所述的方法,其特征在于,还包括所述TargetAgent动态获取Initiator的资源状态信息。5.如权利要求4中所述的方法,其特征在于,还包括所述TargetAgent检测Target的资源状态信息;当检测到所述Target的负载超过预设的负载门限时,所述TargetAgent根据与所述Target连接的Initiator的资源状态信息,选择对应的Initiator并中断所述Target与所述对应的Initiator的连接,同时调整该Target的负载信息;和/或当所述TargetAgent与Target的资源状态信息传输中断时,所述TargetAgent根据预先配置的Initiator与Target的对应关系获知与所述Target连接的Initiator,并为与所述Target连接的Initiator重新分配Target。6.一种存储设备代理设备TargetAgent,应用于包括客户端Initiator和存储设备Target组成的存储系统中,其特征在于,所述Initiator和Target之间通过所述TargetAgent建立连接,所述TargetAgent包括收发模块,用于获取Target上报的资源状态信息,并接收所述Initiator的资源查询请求,将与所述Initiator匹配的Target的信息发送给所述Initiator;存储模块,与所述收发模块连接,用于存储所述收发模块获取的Target的资源状态信息;匹配模块,与所述收发模块和存储模块连接,用于根据所述Target的资源状态信息为所述Initiator分配匹配的Target。7.如权利要求6所述的TargetAgent,其特征在于,所述收发模块具体用于获取所述Target周期上报的资源状态信息;或获取所述Target检测到自身资源状态信息发生变化后主动上报的资源状态信息。8.如权利要求6所述的TargetAgent,其特征在于,所述存储模块具体用于将所述Target的资源状态信息存储到配置的Target资源状态列表,所述Target的资源状态信息具体为Target的位置信息、负载信息和其他附加信息,其中所述负载信息具体包括权值和/或空闲容量和/或空闲iSCSI连接数;所述匹配模块具体用于查询所述Target资源状态列表,根据所述Target资源状态列表中所述Target的资源状态信息为所述Initiator分配匹配的Target。9.如权利要求6-8中任一项所述的TargetAgent,其特征在于,所述收发模块还用于动态获取Initiator的资源状态信息。10.如权利要求9中所述的TargetAgent,其特征在于,还包括检测模块,与所述存储模块连接,用于检测Target的负载是否超过预设的负载门限;中断模块,与所述检测模块和存储模块连接,用于当检测到所述Target的负载超过预设的负载门限时,根据与所述Target连接的Initiator的资源状态信息,选择对应的Initiator并中断所述Target与所述对应的Initiator的连接,同时调整该Target的负载fn息ο11.如权利要求9所述的TargetAgent,其特征在于,所述匹配模块还用于当所述TargetAgent与Target的资源状态信息传输中断时,根据预先配置的Initiator与Target的对应关系获知与所述Target连接的Initiator,并为与所述Target连接的Initiator重新分配Target。全文摘要本发明公开了一种多存储阵列负载均衡的方法和设备,应用于进行通信的客户端Initiator和存储设备Target组成的存储系统中,所述Initiator和Target之间通过存储设备代理设备TargetAgent建立连接,所述方法包括以下步骤所述TargetAgent动态获取Target的资源状态信息;当接收到所述Initiator的资源查询请求时,所述TargetAgent根据所述Target的资源状态信息为所述Initiator分配匹配的Target;所述TargetAgent将所述匹配的Target的信息发送给所述Initiator,使所述Initiator与所述匹配的Target建立连接。通过本发明,实现了动态调整Target的负载,进行负载均衡。文档编号H04L29/08GK101808119SQ20101011762公开日2010年8月18日申请日期2010年3月4日优先权日2010年3月4日发明者李飞申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1