CN101808119A - 一种多存储阵列负载均衡的方法和设备 - Google Patents
一种多存储阵列负载均衡的方法和设备 Download PDFInfo
- Publication number
- CN101808119A CN101808119A CN201010117621A CN201010117621A CN101808119A CN 101808119 A CN101808119 A CN 101808119A CN 201010117621 A CN201010117621 A CN 201010117621A CN 201010117621 A CN201010117621 A CN 201010117621A CN 101808119 A CN101808119 A CN 101808119A
- Authority
- CN
- China
- Prior art keywords
- target
- initiator
- state information
- agent
- resource state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种多存储阵列负载均衡的方法和设备,应用于进行通信的客户端Initiator和存储设备Target组成的存储系统中,所述Initiator和Target之间通过存储设备代理设备Target Agent建立连接,所述方法包括以下步骤:所述Target Agent动态获取Target的资源状态信息;当接收到所述Initiator的资源查询请求时,所述Target Agent根据所述Target的资源状态信息为所述Initiator分配匹配的Target;所述Target Agent将所述匹配的Target的信息发送给所述Initiator,使所述Initiator与所述匹配的Target建立连接。通过本发明,实现了动态调整Target的负载,进行负载均衡。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种基于权值的多存储阵列负载均衡的方法和设备。
背景技术
在网络存储领域,一般通过iSCSI协议(Internet Small Computer SystemInterface,互联网小型计算机系统接口)完成客户端和IP-SAN(Storage AreaNetwork,存储区域网络)间的数据传输。具体地,SCSI(Small Computer SystemInterface,小型计算机系统接口)结构基于客户端/服务器模式,通常应用环境是:设备互相靠近,并且由SCSI总线连接。iSCSI通过在SCSI数据包外封装TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)协议,使SCSI数据包可以在IP网络中传输。
如图1所示,当客户端(启动器Initiator)通过IP网络实现与存储设备(目标器Target)间进行大量数据的存储传输时,客户端(如Initiator)的SCSI数据包先被封装成iSCSI的PDU(Protocol Data Unit,协议数据单元),然后封装相应的网络协议发送到网络的另一端存储设备(如Target),再依次解封装还原成最初的SCSI数据包。存储设备通过不同的RAID(Redundant Array ofIndependent Disk,独立冗余磁盘阵列)方式来对外提供同时多路读写IO(Input/Output,输出/输入)服务。
然而,进一步如图2所示,当存储设备高负载运行或者不可用时,基于iSCSI协议的客户端Initiator无法从该存储设备上获得其请求的服务,在此情况下,不得不等待重新连接该存储设备Target或者在支持iSNS(Internet StroageName Service,互联网存储名称服务)的情况下,向其他存储设备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和SLP(Service Location Protocol,服务定位协议)等。以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之间通过存储设备代理设备Target Agent建立连接,所述方法包括以下步骤:
所述Target Agent动态获取Target的资源状态信息;
当接收到所述Initiator的资源查询请求时,所述Target Agent根据所述Target的资源状态信息为所述Initiator分配匹配的Target;
所述Target Agent将所述匹配的Target的信息发送给所述Initiator,使所述Initiator与所述匹配的Target建立连接。
其中,所述Target Agent动态获取Target的资源状态信息包括:
所述Target Agent获取所述Target周期上报的资源状态信息;或
所述Target Agent获取所述Target检测到自身资源状态信息发生变化后主动上报的资源状态信息。
其中,所述Target Agent根据所述Target的资源状态信息为所述Initiator分配匹配的Target包括:
所述Target Agent将所述Target的资源状态信息存储到配置的Target资源状态列表;
所述Target Agent查询所述Target资源状态列表,根据所述Target资源状态列表中Target的资源状态信息为所述Initiator分配匹配的Target,所述资源状态信息具体为Target的位置信息、负载信息和其他附加信息,其中所述负载信息包括权值和/或空闲容量和/或空闲iSCSI连接数。
其中,还包括:
所述Target Agent动态获取Initiator的资源状态信息。
其中,还包括:
所述Target Agent检测Target的资源状态信息;当检测到所述Target的负载超过预设的负载门限时,所述Target Agent根据与所述Target连接的Initiator的资源状态信息,选择对应的Initiator并中断所述Target与所述对应的Initiator的连接,同时调整该Target的负载信息;和/或
当所述Target Agent与Target的资源状态信息传输中断时,所述TargetAgent根据预先配置的Initiator与Target的对应关系获知与所述Target连接的Initiator,并为与所述Target连接的Initiator重新分配Target。
本发明提供一种存储设备代理设备Target Agent,应用于包括客户端Initiator和存储设备Target组成的存储系统中,所述Initiator和Target之间通过所述Target Agent建立连接,所述Target Agent包括:
收发模块,用于获取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的负载信息。
其中,所述匹配模块还用于:
当所述Target Agent与Target的资源状态信息传输中断时,根据预先配置的Initiator与Target的对应关系获知与所述Target连接的Initiator,并为与所述Target连接的Initiator重新分配Target。
本发明具有以下优点:通过Target Agent动态获取Target的资源状态信息,并根据该资源状态信息为Initiator分配匹配的Target,使Initiator与Target之间建立连接,从而实现了动态调整Target的负载,进行负载均衡。此外,还可以通过Target Agent动态获取Initiator的资源状态信息,对不同的Initiator实现差异化服务。
附图说明
图1为现有技术中iSCSI协议应用场景示意图;
图2为现有技术中存储设备高负载运行或者不可用;
图3为现有技术中大规模城域或广域视频监控应用场景;
图4为本发明中的一种多存储阵列负载均衡的方法流程图;
图5为本发明中的一种多存储阵列负载均衡的方法流程图;
图6为本发明的Target Agent为Initiator分配匹配的Target的过程的流程图;
图7为本发明中的另一种多存储阵列负载均衡的方法流程图;
图8为本发明中的权值的计算方式;
图9为本发明中的Target Agent为Initiator重新分配匹配的Target的过程的流程图;
图10为本发明中的Target Agent中断Target与对应的Initiator的连接的过程的流程图;
图11为本发明中的一种Target Agent的结构示意图。
具体实施方式
本发明的核心思想是:通过在IP存储网络中设置一Target Agent(存储设备代理设备),利用该Target Agent动态获取各存储设备Target的资源状态信息,并根据动态获取的各存储设备Target的资源状态信息为IP存储网络中的客户端Initiator分配匹配的存储设备Target,使Initiator与Target之间建立连接。
本发明提供一种多存储阵列负载均衡的方法,应用于进行通信的客户端Initiator和存储设备Target组成的存储系统中,所述Initiator和Target之间通过存储设备代理设备Target Agent建立连接,如图4所示,所述方法具体包括以下步骤:
步骤401、所述TargetAgent动态获取Target的资源状态信息。
步骤402、当接收到所述Initiator的资源查询请求时,所述Target Agent根据所述Target的资源状态信息为所述Initiator分配匹配的Target。
步骤403、所述Target Agent将所述匹配的Target的信息发送给所述Initiator,使所述Initiator与所述匹配的Target建立连接。
为了更加清楚的说明本发明提供的技术方案,下面结合具体的应用场景,对本发明提供的负载均衡的方法进行详细介绍。
本发明提供的负载均衡的方法,应用于IP存储网络中,其中,该IP存储网络包括存储设备代理设备Target Agent、存储设备Target以及客户端Initiator,Target Agent为客户端Initiator分配存储设备Target,以使Initiator建立与所分配的Target之间的连接。
如图5所示,本发明应用场景提供的负载均衡的方法包括以下步骤:
步骤501、存储设备Target存储并维护自身的资源状态信息。
具体的,该资源状态信息包括但不限于:Target的位置信息、负载信息和其他附加信息(例如,Target所在SAN资源的设备信息)。其中,该位置信息包括但不限于:该Target的IP地址、端口和iSCSI节点名称;该负载信息包括但不限于:该Target的空闲容量、空闲iSCSI连接数和表示该Target读写情况(例如,可以为读写的繁忙程度,用于表示该Target的负载情况)的权值等。当然,该负载信息并不限于此,凡是基于Target负载情况的信息均属于本发明的保护范围。
需要说明的是,上述表示该Target负载情况的权值的获取方式包括但不限于:根据权值信息计算该Target的权值,具体如公式(1):
通过公式(1)可以看出,该权值信息中至少包含以下信息:
(1)S:Target所在的实体设备(IP-SAN)的IOPS值(I/O per second,每秒读写操作次数),即该Target自身每秒能够进行读操作和写操作的次数,表示该Target的访问能力,通常选取该IOPS值为100;当然,实际应用中,也可以选择其他数值作为该IOPS值;
(2)P:Target自身的优先级,由于多个Target可能在同一个实体设备上,当至少两个Target需要进行读或写操作时,对不同Target的操作请求按照各自的优先级(P的取值,例如为1~8(该数值可以根据实际需要进行调整)级,数值越高,优先级越高)进行处理;
(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将权值信息发送给Target Agent,由Target Agent根据权值信息获取权值,且Target Agent无需将所获取的权值发送给对应的Target。
步骤502、Target向Target Agent发送自身的资源状态信息。
具体的,Target至少可以通过以下方式中的任意一种方式向Target Agent发送自身的资源状态信息:
(1)Target根据预设的周期向Target Agent上报资源状态信息。其中,该Target可以通过专用消息或者非专用消息(例如,Target向TargetAgent发送的资源注册消息)携带该资源状态信息向Target Agent发送。
(2)Target经触发向Target Agent上报资源状态信息,该触发事件可以为Target检测到自身资源状态信息发生变化、或者Target接收到资源状态信息查询请求等,触发事件的具体表现形式不应视为对本发明保护范围的限制。
通过上述两种方式上报的资源状态信息中所包括的具体信息可以由Target Agent指定,或由Target Agent与Target协商而定,可以上报所有资源状态信息;或者上报发生改变的资源状态信息以及必要的资源状态信息(例如IP地址、端口和节点名称等位置信息);或者上报发生改变的资源状态信息以及必要的资源状态信息,并将未发生改变的资源状态信息设置成预设标识。
对于其他的携带方式,本发明中不再详加赘述。
本发明中,以在资源注册消息中携带所有资源状态信息为例进行说明。此时,该资源注册消息的格式如表1所示:
表1、资源注册消息
在表1中,Register(注册)为消息关键字,表示该消息的类型。IP地址、端口以及iSCSI节点名称为Target的位置信息。权值为Target的负载信息,例如:该Target权值为102。设备信息为Target的附加信息,表示该Target所在SAN资源的设备信息。
需要说明的是,表1所示的资源注册消息仅为一种优选的实施方式,任何形式上的改变不影响本发明的保护范围,凡是能够承载资源注册消息的形式均属于本发明的保护范围。
步骤503、Target Agent维护各个Target的资源状态信息。
具体地,当Target Agent获取到资源状态信息后,将资源状态信息更新到本地配置的Target资源状态列表。Target资源状态列表用于存储各个Target的资源状态信息,一个Target对应一条存储条目,具体格式如表2所示。其中,表2所示的Target资源状态列表仅是本发明一种优选的实施方式,凡是能够实现资源状态信息维护功能的方式均属于本发明的保护范围,如任何形式上的改变(将列表更改为对应关系等)或资源状态信息的改变(资源状态信息的个数改变,格式改变等)等。
表2、Target资源状态列表
序号 | iSCSI节点名称 | IP地址 | 端口 | 权值 | 设备信息 |
1 | Target-b | … | … | … | … |
2 | Target-c | … | … | … | … |
优选地,Target资源状态列表中每一个Target的存储条目可以按照条目中的某一信息(例如,权值的高低)或多个信息(例如:权值的高低和空闲容量的大小)排列存储。当然,也可以按照其他顺排列存储,此处不再赘述。
为了更加清楚的说明本步骤中Target Agent维护从Target获取的资源状态信息的过程,下面对该过程进行进一步介绍,该过程包括以下步骤:
(1)、Target Agent从资源状态信息中提取Target的iSCSI节点名称。
(2)、Target Agent从本地维护的Target资源状态列表中查询是否存在该“iSCSI节点名称”。如果未查询到该“iSCSI节点名称”,转到步骤(3)。如果查询到该“iSCSI节点名称”,转到步骤(4)。
(3)、Target Agent在Target资源状态列表中添加与该“iSCSI节点名称”对应的存储条目。
(4)、Target Agent根据所接收的资源状态信息更新Target资源状态列表。
需要注意的是,在上述过程中,TargetAgent能够维护各个Target的资源状态信息,而当Target Agent需要根据各个Target的资源状态信息为Initiator分配匹配的Target时,该方法还可以包括以下步骤:
步骤504、Initiator向Target Agent发送资源查询请求。
具体的,当Initiator需要与Target建立iSCSI连接时,Initiator需要向TargetAgent发送资源查询请求,以获取匹配的Target。其中,资源查询请求的格式如表3所示。
表3、资源查询请求
1 | Query |
2 | IP地址 |
3 | 端口 |
4 | iSCSI节点名称 |
其中,Query表示该消息的消息关键字,表示该消息为资源查询消息;IP地址、端口和iSCSI节点名称为Initiator的位置信息。
需要说明的是,上述资源查询请求消息中携带的信息只是一种优选的实施方式,凡是可以实现对Target Agent资源查询功能的方式均属于本发明的保护范围,例如:资源查询请求消息中还携带Initiator自身的资源状态信息(Initiator的权值),或Initiator对所分配的匹配的Target的要求,例如:Initiator对所分配的匹配的Target的空闲iSCSI连接数的要求。
步骤505、Target Agent根据各个Target的资源状态信息为Initiator分配匹配的Target。
为了清楚的阐述本步骤,以图6所示的Target Agent为Initiator分配匹配的Target的过程为例进行进一步的说明,具体包括以下步骤:
步骤5051、Target Agent获取分配准则。其中,该分配准则可以由TargetAgent设置,或者,Target Agent与Initiator和/或Target约定。
具体地,分配准则可以根据负载均衡的目的从Target资源状态列表中的资源状态信息中提取,例如:如果负载均衡的目的为平衡各个Target的繁忙程度,则根据资源状态信息中的权值提取出权值最低准则,即从Target资源状态列表中选择权值最低的Target分配给Initiator。当然,凡是根据负载均衡的目的所提取的分配准则均属于本发明的保护范围,例如:空闲容量最大准则和空闲iSCSI连接数最大准则等。
需要说明的是,各种分配准则可以独立使用,也可以配合使用。此外,对于不同的Initiator,Target Agent可使用相同的分配准则,也可使用不同的分配准则,且分配准则可事先约定,或在资源查询请求中携带。
本发明中以分配准则为权值最低准则为例进行说明。
步骤5052、Target Agent根据分配准则,查询Target资源状态列表,获取匹配的Target的信息。
具体地,Target Agent查询Target资源状态列表中各个Target的权值信息,从Target资源状态列表中选择权值最低的Target作为匹配的Target,并获取该匹配的Target的信息。其中,Target的信息为该Target的位置信息,包括:Target的IP地址,端口和iSCSI节点名称,以使Initiator根据该信息与匹配的Target建立连接。
优选地,将分配准则与Target资源状态列表中Target的存储条目的排列顺序相结合,以便在分配时快速选择到匹配的Target。例如:当分配准则为权值最低准则时,Target Agent按照Target的权值由低到高的顺序将Target资源状态列表中Target的存储条目进行排列与存储,此时权值最低的Target对应的存储条目为Target资源状态列表中的第一条存储条目。当Target Agent为Initiator分配匹配的Target时,可直接读取第一条存储条目对应Target,该Target即为匹配的Target。当然,也可以按照权值由高到低的顺序对存储条目进行排列与存储。
进一步地,Target Agent为Target设置权值门限。Target Agent从Target资源状态列表中选择匹配的Target时,判断Target的权值是否高于预设的权值门限;当Target的权值高于权值门限时,表示该Target的负载已经达到门限,继续为该Target添加负载,会使该Target的性能下降,此时Target Agent不再为该Target分配Initiator,直到该Target的权值低于权值门限。Target Agent通过对Target设置权值门限,以均衡各个Target的负载,提高系统整体性能。该方法同样适用于其他分配准则。
需要说明的是,Target Agent为Initiator所分配匹配的Target可以为一个,也可以为多个,以供Initiator选择。
步骤5053、Target Agent向Initiator发送资源查询响应,该资源查询响应中携带所分配的匹配的Target的信息,即该Target的位置信息。
其中,资源查询响应的格式如表4所示。
表4、资源查询响应
3 | 端口 |
4 | iSCSI节点名称 |
表4所示的资源查询响应的信息格式与表3所示的资源查询请求的格式类似,其中Query表示该消息的消息关键字(当然,也可有别于资源查询请求的关键字而设置为“Query OK”等),IP地址、端口和iSCSI节点名称为该匹配的Target的位置信息。
步骤506、Initiator获取由Target Agent分配的匹配的Target的信息。
步骤507、Initiator与该Target的信息所对应的Target建立iSCSI连接。
具体地,Initiator根据Target的信息,与该Target的信息所对应的Target发送iSCSI连接请求。Target接收Initiator的iSCSI连接请求,与Initiator建立iSCSI连接,并向Initiator发送iSCSI连接响应。
需要说明的是,当Target与新的Initiator建立iSCSI连接时,Target的资源状态信息会发生改变,而由于Target通过资源注册消息周期性地向TargetAgent上报资源状态信息,因此Target Agent将根据该连接更新Target资源状态列表,并当Target资源状态列表为按顺序排列存储时,根据更新后的资源状态信息进行队列调整。
需要说明的是,通过使用上述的处理过程,即可以实现Initiator与所分配的匹配的Target的连接,但是,在实际应用中,如果当Initiator和与该Initiator建立iSCSI连接的Target的连接中断(例如:Initiator与Target的iSCSI连接故障)时,Initiator则重新向Target Agent发送资源查询请求,使TargetAgent根据Target的资源状态列表重新为该Initiator分配匹配的Target(例如:Target-b),从而该Initiator与Target-b建立连接,其中具体过程与步骤504~步骤507类似,均为资源查询、资源分配和iSCSI连接建立的流程,此处不再赘述。
需要注意的是,上述的处理过程是针对Target Agent仅维护Target侧的资源状态信息的情况,而在实际应用中,Target Agent还可以同时维护Initiator侧的资源状态信息和Target侧的资源状态信息,该Target Agent获取并维护Initiator的资源状态信息的方式与上述获取并维护Target的资源状态信息相似,此处不再详加赘述。似,此处不再详加赘述。
本发明还提供一种多存储阵列负载均衡的方法,应用于Initiator与Target建立连接之后,如图7所示,该方法包括以下步骤:
步骤701、Target Agent建立并维护Initiator与Target的对应关系。
具体的,Target Agent根据为各个Initiator所分配的Target获取Initiator与Target的对应关系,并以排序表的形式存储和维护,该排序表与Target资源状态列表和Initiator资源状态列表关联,该排序表中携带的内容如表5所示。
需要说明的是,排序表仅为本发明一种优选的排序方式,凡是实现维护Target和Initiator的对应关系的方式均属于本发明的保护范围。
表5、排序表
Target IP地址 | 相同IP地址Target的权值和 | Target名称 | Targer所在设备信息 | Target权值 | Initiator名称 | Initiator权值 | Initiator所在设备信息 |
由于在实际应用中,多个Target可能会有相同的IP地址,该Target Agent可以将具有相同IP地址的多个Target作为Target Host,并可以使用该TargetHost为Initiator分配Target。如图8所示,此时,各个具有相同IP地址的Target将作为该Target Host的下属子节点,且每一个Target与和自身建立连接的Initiator关联。
在这种情况下,该Target Host的权值为上述各个具有相同IP地址的各个Target的权值的总和;而各个Target的权值通过上述步骤502获取,所以能够得到各个Target的权值以及Target Host的权值。
可以看出,在表5中,Target IP地址即用于标识Target Host,相同IP地址Target的权值和即可以表示Target Host的权值,对于表5中的其他字段,在此不再详加赘述。
步骤702、Target Agent与具有建立连接的Initiator的Target的资源状态信息传输中断时,Target Agent根据Initiator与Target的对应关系获知与该Target
具体地,为了更加清楚地说明本步骤,如图9所示,该过程进一步包括以下步骤:
步骤7021、Target-a与Target Agent之间的资源状态信息传输中断。
Target与Target Agent之间的资源状态信息传输方式为:(1)Target向TargetAgent周期性上报资源状态信息,或(2)Target经触发向Target Agent上报资源状态信息。
若采用第一种方式,则Target Agent在上报时间到来时未接收到Target-a的上报时,判断与Target-a的资源状态信息传输中断;
若采用第二种方式,则Target Agent在预设的时间段(该预设的时间段由Target Agent根据经验值,或需求配置)内未收到Target-a的上报;或TargetAgent向Target主动发起资源状态信息查询但未收到响应时,判断与Target-a的资源状态信息传输中断。
需要说明的是,此时Initiator与Target-a的iSCSI连接可能发生故障,也可能未发生故障,但并不影响本发明方案的实施。
步骤7022、Target Agent通过Initiator与Target的对应关系判断是否存在已与Target-a建立iSCSI连接的Initiator。
具体地,TargetAgent通过查询如表5所示的排序表,判断是否存在已与Target-a建立iSCSI连接的Initiator:当判断存在已与Target-a建立iSCSI连接的Initiator时,转到步骤7024;当判断不存在已与Target-a建立iSCSI连接的Initiator时,结束该流程。
步骤7023、Target Agent获取已与Target-a建立iSCSI连接的Initiator(例如:Initiator-a)。
步骤7024、Target Agent为已与Target-a建立iSCSI连接的Initiator重新分配Target,使Initiator-a与新分配的匹配的Target建立iSCSI连接。
为了更加清楚地说明本步骤,下面将对本步骤中Target Agent为Initiator-a重新分配Target,使Initiator-a与新分配的匹配的Target建立iSCSI连接的过程进行进一步介绍,该过程包括以下步骤:
(1)、Target Agent根据Target资源状态列表为Initiator-a分配新的匹配的Target(例如,Target-b)。
需要说明的是,TargetAgent也可以根据排序表进行分配,其原理类似,此处不再赘述。
(2)、TargetAgent向Initiator-a发送资源重定向请求,该资源重定向请求中携带Target-b的信息。
(3)、Initiator-a与Target-b建立iSCSI连接。
(4)、Initiator-a向Target Agent返回资源重定向响应。
当与Target Agent发生资源状态信息传输中断的Target-a再次向TargetAgent发起资源注册请求时,如果Target Agent已将Target-a从Target资源状态列表中删除,则Target-a将作为新的资源重新进行注册;如果Target Agent仅将Target-a的状态标识置为不可用,则修改其状态标识为可用,并初始化其权值,即设置其权值为0。
需要说明的是,当Target主动下线时,可以预先向Target Agent发送反注册消息,使Target Agent为与该Target连接的Initiator重新分配其他在线的Target。
步骤703、Target Agent通过Target资源状态列表检测到Target的负载超过预设的负载门限时,Target Agent根据与该Target连接的Initiator的资源状态信息,选择对应的Initiator并中断该Target与对应的Initiator的连接。
为了更加清楚地说明本步骤,如图10所示,该过程进一步包括以下步骤:
步骤7031、Target Agent检测Target资源状态信息中的负载信息是否超过预设的负载门限。
其中,负载超过预设的负载门限包括:Target的权值高于预设的权值门限,或Target的空闲容量低于预设的空闲容量门限等,凡是表征Target负载状态的信息均属于本发明的保护范围。
具体地,当检测到任意一个Target(例如:Target-a)的负载超过预设的负载门限时,转到步骤7032。
步骤7032、Target Agent获取与Target-a连接的Initiator(例如:Initiator-a和Initiator-b)。
具体地,Target Agent通过查询排序表中Target与Initiator的对应关系,获取与Target-a连接的Initiator-a和Initiator-b。
步骤7033、Target Agent查询Initiator资源状态列表,选择对应的Initiator(例如:Initiator-a)并中断Target与该对应的Initiator的iSCSI连接。
Initiator的资源状态信息与Target的资源状态信息类似,包含有Initiator自身的优先级信息。具体地,本步骤中选择对应的Initiator可以为选择与该Target建立iSCSI连接的Initiator中优先级最低的Initiator,或优先级低于优先级门限的Initiator(此时,存在优先级高于优先级门限的Initiator),并中断对应的Initiator与该Target的iSCSI连接,其中中断方式包括但不限于以下两种方式中的任意一种:(1)Target Agent通知对应的Initiator中断与Target的连接,并丢弃该Initiator。(2)Target Agent为对应的Initiator重新分配Target,并通过资源重定向请求发送给该Initiator,使该Initiator与重新分配的Target建立连接。需要说明的是,本发明中按照优先级选择对应的Initiator仅为一种优选的实施方式,凡是根据负载均衡的需求选择对应的Initiator的方式均属于本发明的保护范围。
通过上述负载均衡的方法,以确保优先级高的Initiator的数据传输,从而实现对不同的Initiator的差异化服务。
需要说明的是,上述步骤702和步骤703无先后顺序。
本发明提供一种存储设备代理设备Target Agent,应用于包括客户端Initiator和存储设备Target组成的存储系统中,所述Initiator和Target之间通过所述Target Agent建立连接,如图11所示,所述Target Agent 1100包括:
收发模块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。当所述Target Agent与Target的资源状态信息传输中断时,匹配模块1130还可以根据预先配置的Initiator与Target的对应关系获知与所述Target连接的Initiator,并为与所述Target连接的Initiator重新分配Target,同时调整该Target的负载信息。
检测模块1140,与存储模块1120连接,用于检测Target的负载是否超过预设的负载门限。
中断模块1150,与检测模块1140和存储模块1120连接,用于当检测到所述Target的负载超过预设的负载门限时,根据与所述Target连接的Initiator的资源状态信息,选择对应的Initiator并中断所述Target与所述对应的Initiator的连接。
本发明具有以下优点:通过Target Agent动态获取Target的资源状态信息,并根据该资源状态信息为Initiator分配匹配的Target,使Initiator与Target之间建立连接,从而实现了动态调整Target的负载,进行负载均衡。此外,还可以通过Target Agent动态获取Initiator的资源状态信息,对不同的Initiator实现差异化服务。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (11)
1.一种多存储阵列负载均衡的方法,应用于进行通信的客户端Initiator和存储设备Target组成的存储系统中,其特征在于,所述Initiator和Target之间通过存储设备代理设备Target Agent建立连接,所述方法包括以下步骤:
所述Target Agent动态获取Target的资源状态信息;
当接收到所述Initiator的资源查询请求时,所述Target Agent根据所述Target的资源状态信息为所述Initiator分配匹配的Target;
所述Target Agent将所述匹配的Target的信息发送给所述Initiator,使所述Initiator与所述匹配的Target建立连接。
2.如权利要求1所述的方法,其特征在于,所述Target Agent动态获取Target的资源状态信息包括:
所述Target Agent获取所述Target周期上报的资源状态信息;或
所述Target Agent获取所述Target检测到自身资源状态信息发生变化后主动上报的资源状态信息。
3.如权利要求1所述的方法,其特征在于,所述Target Agent根据所述Target的资源状态信息为所述Initiator分配匹配的Target包括:
所述Target Agent将所述Target的资源状态信息存储到配置的Target资源状态列表;
所述Target Agent查询所述Target资源状态列表,根据所述Target资源状态列表中Target的资源状态信息为所述Initiator分配匹配的Target,所述资源状态信息具体为Target的位置信息、负载信息和其他附加信息,其中所述负载信息包括权值和/或空闲容量和/或空闲iSCSI连接数。
4.如权利要求1-3中任一项所述的方法,其特征在于,还包括:
所述Target Agent动态获取Initiator的资源状态信息。
5.如权利要求4中所述的方法,其特征在于,还包括:
所述Target Agent检测Target的资源状态信息;当检测到所述Target的负载超过预设的负载门限时,所述Target Agent根据与所述Target连接的Initiator的资源状态信息,选择对应的Initiator并中断所述Target与所述对应的Initiator的连接,同时调整该Target的负载信息;和/或
当所述Target Agent与Target的资源状态信息传输中断时,所述TargetAgent根据预先配置的Initiator与Target的对应关系获知与所述Target连接的Initiator,并为与所述Target连接的Initiator重新分配Target。
6.一种存储设备代理设备Target Agent,应用于包括客户端Initiator和存储设备Target组成的存储系统中,其特征在于,所述Initiator和Target之间通过所述Target Agent建立连接,所述Target Agent包括:
收发模块,用于获取Target上报的资源状态信息,并接收所述Initiator的资源查询请求,将与所述Initiator匹配的Target的信息发送给所述Initiator;
存储模块,与所述收发模块连接,用于存储所述收发模块获取的Target的资源状态信息;
匹配模块,与所述收发模块和存储模块连接,用于根据所述Target的资源状态信息为所述Initiator分配匹配的Target。
7.如权利要求6所述的Target Agent,其特征在于,所述收发模块具体用于:
获取所述Target周期上报的资源状态信息;或
获取所述Target检测到自身资源状态信息发生变化后主动上报的资源状态信息。
8.如权利要求6所述的Target Agent,其特征在于,
所述存储模块具体用于:将所述Target的资源状态信息存储到配置的Target资源状态列表,所述Target的资源状态信息具体为Target的位置信息、负载信息和其他附加信息,其中所述负载信息具体包括权值和/或空闲容量和/或空闲iSCSI连接数;
所述匹配模块具体用于:查询所述Target资源状态列表,根据所述Target资源状态列表中所述Target的资源状态信息为所述Initiator分配匹配的Target。
9.如权利要求6-8中任一项所述的Target Agent,其特征在于,
所述收发模块还用于:动态获取Initiator的资源状态信息。
10.如权利要求9中所述的Target Agent,其特征在于,还包括:
检测模块,与所述存储模块连接,用于检测Target的负载是否超过预设的负载门限;
中断模块,与所述检测模块和存储模块连接,用于当检测到所述Target的负载超过预设的负载门限时,根据与所述Target连接的Initiator的资源状态信息,选择对应的Initiator并中断所述Target与所述对应的Initiator的连接,同时调整该Target的负载信息。
11.如权利要求9所述的Target Agent,其特征在于,所述匹配模块还用于:
当所述Target Agent与Target的资源状态信息传输中断时,根据预先配置的Initiator与Target的对应关系获知与所述Target连接的Initiator,并为与所述Target连接的Initiator重新分配Target。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010117621A CN101808119A (zh) | 2010-03-04 | 2010-03-04 | 一种多存储阵列负载均衡的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010117621A CN101808119A (zh) | 2010-03-04 | 2010-03-04 | 一种多存储阵列负载均衡的方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101808119A true CN101808119A (zh) | 2010-08-18 |
Family
ID=42609738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010117621A Pending CN101808119A (zh) | 2010-03-04 | 2010-03-04 | 一种多存储阵列负载均衡的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101808119A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102487404A (zh) * | 2010-12-03 | 2012-06-06 | 英业达集团(天津)电子技术有限公司 | 映像文件服务器的负载均衡方法 |
CN103188161A (zh) * | 2011-12-30 | 2013-07-03 | 中国移动通信集团公司 | 分布式数据加载调度方法与系统 |
CN103365781A (zh) * | 2012-03-29 | 2013-10-23 | 国际商业机器公司 | 用于动态地重新配置存储系统的方法和设备 |
CN105357026A (zh) * | 2015-09-24 | 2016-02-24 | 华为技术有限公司 | 一种资源信息收集方法和计算节点 |
CN105743960A (zh) * | 2015-07-20 | 2016-07-06 | 浪潮(北京)电子信息产业有限公司 | 会话连接的管理方法和装置 |
CN107025072A (zh) * | 2017-04-11 | 2017-08-08 | 广东浪潮大数据研究有限公司 | 一种基于iscsi协议的数据读写的方法、相关装置与系统 |
CN108366087A (zh) * | 2017-12-26 | 2018-08-03 | 创新科存储技术(深圳)有限公司 | 一种基于分布式文件系统的iscsi服务实现方法和装置 |
CN109474700A (zh) * | 2018-12-18 | 2019-03-15 | 创新科存储技术有限公司 | iSCSI客户端的接入方法、存储介质、客户端和存储节点 |
WO2020029978A1 (zh) * | 2018-08-06 | 2020-02-13 | 杭州海康威视系统技术有限公司 | 分配存储设备的方法、装置、设备及存储介质 |
CN112948128A (zh) * | 2021-03-30 | 2021-06-11 | 华云数据控股集团有限公司 | Target端的选择方法、系统及计算机可读介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040151188A1 (en) * | 2003-01-31 | 2004-08-05 | Brocade Communications Systems, Inc. | Method and apparatus for providing virtual ports with attached virtual devices in a storage area network |
CN1842038A (zh) * | 2005-03-31 | 2006-10-04 | 富士通株式会社 | 服务装置、客户端连接目的地切换控制法和可读存储介质 |
CN1972311A (zh) * | 2006-12-08 | 2007-05-30 | 华中科技大学 | 一种基于集群均衡负载的流媒体服务器系统 |
CN101252591A (zh) * | 2008-04-03 | 2008-08-27 | 中国科学技术大学 | 实现上下行数据分离的方法和装置 |
CN101340327A (zh) * | 2008-08-21 | 2009-01-07 | 腾讯科技(深圳)有限公司 | 实现网络服务器负载均衡的方法、系统和域名解析服务器 |
-
2010
- 2010-03-04 CN CN201010117621A patent/CN101808119A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040151188A1 (en) * | 2003-01-31 | 2004-08-05 | Brocade Communications Systems, Inc. | Method and apparatus for providing virtual ports with attached virtual devices in a storage area network |
CN1842038A (zh) * | 2005-03-31 | 2006-10-04 | 富士通株式会社 | 服务装置、客户端连接目的地切换控制法和可读存储介质 |
CN1972311A (zh) * | 2006-12-08 | 2007-05-30 | 华中科技大学 | 一种基于集群均衡负载的流媒体服务器系统 |
CN101252591A (zh) * | 2008-04-03 | 2008-08-27 | 中国科学技术大学 | 实现上下行数据分离的方法和装置 |
CN101340327A (zh) * | 2008-08-21 | 2009-01-07 | 腾讯科技(深圳)有限公司 | 实现网络服务器负载均衡的方法、系统和域名解析服务器 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102487404A (zh) * | 2010-12-03 | 2012-06-06 | 英业达集团(天津)电子技术有限公司 | 映像文件服务器的负载均衡方法 |
CN103188161A (zh) * | 2011-12-30 | 2013-07-03 | 中国移动通信集团公司 | 分布式数据加载调度方法与系统 |
CN103188161B (zh) * | 2011-12-30 | 2017-11-21 | 中国移动通信集团公司 | 分布式数据加载调度方法与系统 |
CN103365781A (zh) * | 2012-03-29 | 2013-10-23 | 国际商业机器公司 | 用于动态地重新配置存储系统的方法和设备 |
US9229849B2 (en) | 2012-03-29 | 2016-01-05 | International Business Machines Corporation | Dynamic reconfiguration of storage system |
CN103365781B (zh) * | 2012-03-29 | 2016-05-04 | 国际商业机器公司 | 用于动态地重新配置存储系统的方法和设备 |
US9389798B2 (en) | 2012-03-29 | 2016-07-12 | International Business Machines Corporation | Dynamic reconfiguration of storage system |
CN105743960A (zh) * | 2015-07-20 | 2016-07-06 | 浪潮(北京)电子信息产业有限公司 | 会话连接的管理方法和装置 |
CN105743960B (zh) * | 2015-07-20 | 2019-09-06 | 浪潮(北京)电子信息产业有限公司 | 会话连接的管理方法和装置 |
CN105357026B (zh) * | 2015-09-24 | 2019-07-23 | 华为技术有限公司 | 一种资源信息收集方法和计算节点 |
CN105357026A (zh) * | 2015-09-24 | 2016-02-24 | 华为技术有限公司 | 一种资源信息收集方法和计算节点 |
CN107025072A (zh) * | 2017-04-11 | 2017-08-08 | 广东浪潮大数据研究有限公司 | 一种基于iscsi协议的数据读写的方法、相关装置与系统 |
CN108366087A (zh) * | 2017-12-26 | 2018-08-03 | 创新科存储技术(深圳)有限公司 | 一种基于分布式文件系统的iscsi服务实现方法和装置 |
CN108366087B (zh) * | 2017-12-26 | 2021-03-05 | 深圳创新科技术有限公司 | 一种基于分布式文件系统的iscsi服务实现方法和装置 |
WO2020029978A1 (zh) * | 2018-08-06 | 2020-02-13 | 杭州海康威视系统技术有限公司 | 分配存储设备的方法、装置、设备及存储介质 |
CN110809130A (zh) * | 2018-08-06 | 2020-02-18 | 杭州海康威视系统技术有限公司 | 分配存储设备的方法和装置 |
CN110809130B (zh) * | 2018-08-06 | 2020-10-30 | 杭州海康威视系统技术有限公司 | 分配存储设备的方法和装置 |
CN109474700A (zh) * | 2018-12-18 | 2019-03-15 | 创新科存储技术有限公司 | iSCSI客户端的接入方法、存储介质、客户端和存储节点 |
CN109474700B (zh) * | 2018-12-18 | 2021-09-24 | 创新科技术有限公司 | iSCSI客户端的接入方法、存储介质、客户端和存储节点 |
CN112948128A (zh) * | 2021-03-30 | 2021-06-11 | 华云数据控股集团有限公司 | Target端的选择方法、系统及计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101808119A (zh) | 一种多存储阵列负载均衡的方法和设备 | |
CN100389392C (zh) | 一种集群系统中实现负载均衡的方法、系统和存储控制器 | |
US10523748B2 (en) | Managing health status of network devices in a distributed global server load balancing system | |
CN102075556B (zh) | 一种具备大规模负载能力的服务架构设计方法 | |
CN109933431B (zh) | 一种智能的客户端负载均衡方法及系统 | |
CN107078969A (zh) | 实现负载均衡的计算机设备、系统和方法 | |
US20130007253A1 (en) | Method, system and corresponding device for load balancing | |
CN102025630A (zh) | 负载均衡方法及负载均衡系统 | |
JP5645216B2 (ja) | クラスタデータ処理のための方法及び装置 | |
CN109510878B (zh) | 一种长连接会话保持方法和装置 | |
CN102281190A (zh) | 负载均衡装置组网方法以及服务器、客户端接入方法 | |
CN103458013A (zh) | 一种流媒体服务器集群负载均衡系统及均衡方法 | |
CN110830574B (zh) | 一种基于docker容器实现内网负载均衡的方法 | |
CN103312593B (zh) | 一种消息分发系统及方法 | |
CN107426323A (zh) | 一种基于分布式的资源服务与可视化监控系统及方法 | |
CN112311907B (zh) | 一种arp请求响应方法、负载均衡设备及相关装置 | |
CA2916265A1 (en) | Producer system partitioning among leasing agent systems | |
US9992140B2 (en) | Electronic apparatus, server, and control method of system | |
EP2439881B1 (en) | Cluster system and request message distribution method for processing multi-node transaction | |
CN108009018A (zh) | 一种负载调整方法、装置及系统 | |
CN113326100A (zh) | 一种集群管理方法、装置、设备及计算机存储介质 | |
CN113163008A (zh) | 网络服务系统的连接智能管理方法、装置及其相关设备 | |
JP2013092867A (ja) | サービス提供システム、ファイル更新方法、および分散管理装置 | |
CN103685055B (zh) | 电力系统跨区隔离数据均衡传输方法及跨区隔离器 | |
CN107094175A (zh) | 一种实现网间互通的服务器部署结构及互通方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100818 |