存储链路的选择方法及装置与流程

文档序号:11147789阅读:772来源:国知局
存储链路的选择方法及装置与制造工艺

本发明涉及数据通信领域,具体而言,涉及一种存储链路的选择方法及装置。



背景技术:

现有技术中,在服务器连接存储设备的过程中,需要在服务器和存储设备之间建立多条存储链路,为承载存储数据传送提供网络支持,基于可靠性冗余和提高带宽考虑,服务器上一般会用多个光纤卡连接多条光纤,然后建立多个存储链路连接。进一步地,采用单条存储链路传输数据时,选择其中一个存储链路作为主存储链路进行数据传输,其他备选存储链路作为备份冗余;采用多条存储链路同时传输数据时,数据可以同时在多条存储链路上同时传输,以提供负载均衡支持。

具体地,在单个光纤传输数据时,数据传输只在一个存储链路上进行,其他光纤上通过存储心跳数据包测试存储链路是否连通,但这种方式只能保证备选存储链路的连通性,无法测量其他存储链路的性能,而且在存储链路切换时不能做到链路优选。因此,基于单个链路进行数据传输限制了其他存储链路的带宽利用率。

另外,在多条存储链路同时传输方案中,如果各条存储链路存在性能差异很大的情况时,将会引起存储数据严重乱序,因此有选择地进行多条存储链路同时传输势在必行。进一步地,在多条存储链路同时传输时,当前正在进行数据传输的存储链路的时延、带宽和误码率的性能指标很容易进行测量,但是在未进行数据传输的存储链路中,存储链路性能的测量显得困难,也即是存储数据传输中单条存储链路传输和多条存储链路同时传输中对备选存储链路的状态不能进行准确预测。

针对上述无法准确选取备选存储链路的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种存储链路的选择方法及装置,以至少解决无法准确选取备选存储链路的技术问题。

根据本发明实施例的一个方面,提供了一种存储链路的选择方法,包括:确定发送端与接收端之间的多条存储链路;通过每条所述存储链路向所述接收端发送心跳数据包;接收所述接收端基于所述心跳数据包向所述发送端返回的心跳确认数据包;根据所述心跳确认数据包的状态确定所述存储链路中所有可到达的备选存储链路;计算每条所述备选存储链路的链路评价值;根据所述链路评价值确定所述备选存储链路中的可选择的链路。

进一步地,根据所述心跳确认数据包的状态确定所述存储链路中所有可到达的备选存储链路包括:根据所述心跳确认数据包的状态,检测存储链路是否发生丢包;在检测出所述存储链路未发生丢包的情况下,检测通过所述存储链路返回的所述心跳确认数据包是否乱序;在检测出所述存储链路返回的所述心跳确认数据包未乱序的情况下,确定所述存储链路为可到达的备选存储链路。

进一步地,检测存储链路是否发生丢包包括:在所述发送端接收到所述心跳确认数据包后,检测超时定时器是否超过预定值;在检测出所述超时定时器超过所述预定值的情况下,确定所述存储链路发生丢包。

进一步地,检测通过所述存储链路返回的所述心跳确认数据包是否乱序包括:检测所述发送端是否在接收到第一心跳确认数据包之前收到第二心跳确认数据包;在检测出所述发送端在接收到第一心跳确认数据包之前收到第二心跳确认数据包的情况下,确定所述心跳确认数据包乱序。

进一步地,计算每条可到达的所述备选存储链路的链路评价值包括:通过第一公式计算所述备选存储链路的链路评价值,其中,所述第一公式为:

其中,Ei为第i条可到达的所述备选存储链路的链路评价值,RTTpri是主存储链路的时延,Bpri是主存储链路的带宽,Epri是主存储链路的误码率,是第i条可到达的所述备选存储链路的时延,是第i条可到达的所述备选存储链路的带宽,是第i条可到达的所述备选存储链路的误码率,α,β以及γ分别为链路评价参数,且0≤α≤1,0≤β≤1,0≤γ≦1,α+β+γ=1。

进一步地,根据每条所述可到达的备选存储链路的链路评价值确定所述备选存储链路中的可选择的链路包括:设置入选存储链路集合,其中所述入选存储链路集合为空集;计算可到达的存储链路的链路选择评价值;判断所述链路选择评价值是否大于等于存储链路选择评价参考值;在所述链路选择评价值大于等于所述存储链路选择评价参考值时,将对应的存储链路加入所述入选存储链路集合。

进一步地,计算可到达的存储链路的所述链路选择评价值包括:通过第二公式计算所述链路选择评价值,其中,所述第二公式为:其中,θi为第i条可到达的所述备选存储链路的所述链路选择评价值,Ei为第i条可到达的所述备选存储链路的所述链路评价值,Ebest为所有可到达的所述备选存储链路的所述链路评价值的最大值。

根据本发明实施例的另一方面,还提供了一种存储链路的选择装置,包括:第一确定单元,用于确定发送端与接收端之间的多条存储链路;发送单元,用于通过每条所述存储链路向所述接收端发送心跳数据包;接收单元,用于接收所述接收端基于所述心跳数据包向所述发送端返回的心跳确认数据包;第二确定单元,用于根据所述心跳确认数据包的状态确定所述存储链路中所有可到达的备选存储链路;计算单元,用于计算每条所述备选存储链路的链路评价值;第三确定单元,用于根据所述链路评价值确定所述备选存储链路中的可选择的链路。

进一步地,所述第二确定单元包括:第一检测模块,用于根据所述心跳确认数据包的状态,检测存储链路是否发生丢包;第二检测模块,用于在检测出所述存储链路未发生丢包的情况下,检测通过所述存储链路返回的所述心跳确认数据包是否乱序;确定模块,用于在检测出所述存储链路返回的所述心跳确认数据包未乱序的情况下,确定所述存储链路为可到达的备选存储链路。

进一步地,所述第一检测模块包括:第一检测子模块,用于在所述发送端接收到所述心跳确认数据包后,检测超时定时器是否超过预定值;第一确定子模块,用于在检测出所述超时定时器超过所述预定值的情况下,确定所述存储链路发生丢包。

进一步地,所述第二检测模块包括:第二检测子模块,用于检测所述发送端是否在接收到第一心跳确认数据包之前收到第二心跳确认数据包;第二确定子模块,用于在检测出所述发送端在接收到第一心跳确认数据包之前收到第二心跳确认数据包的情况下,确定所述心跳确认数据包乱序。

进一步地,所述计算单元包括:计算模块,用于通过第一公式计算所述备选存储链路的链路评价值,其中,所述第一公式为:其中,Ei为第i条可到达的所述备选存储链路的链路评价值,RTTpri是主存储链路的时延,Bpri是主存储链路的带宽,Epri是主存储链路的误码率,是第i条可到达的所述备选存储链路的时延,是第i条可到达的所述备选存储链路的带宽,是第i条可到达的所述备选存储链路的误码率,α,β以及γ分别为链路评价参数,且0≤α≤1,0≤β≤1,0≤γ≦1,α+β+γ=1。

进一步地,所述第三确定单元包括:设置模块,用于设置入选存储链路集合,其中所述入选存储链路集合为空集;第一计算子模块,用于计算可到达的存储链路的链路选择评价值;判断模块,用于判断所述链路选择评价值是否大于等于存储链路选择评价参考值;加入模块,用于在所述链路选择评价值大于等于所述存储链路选择评价参考值时,将对应的存储链路加入所述入选存储链路集合。

进一步地,所述计算子模块包括:第二计算子模块,用于通过第二公式计算所述链路选择评价值,其中,所述第二公式为:其中,θi为第i条可到达的所述备选存储链路的所述链路选择评价值,Ei为第i条可到达的所述备选存储链路的所述链路评价值,Ebest为所有可到达的所述备选存储链路的所述链路评价值的最大值。

在本发明实施例中,在确定发送端与接收端之间的多个存储链路之后,发送端通过每个存储链路向接收端发送心跳数据包,当发送端接收到接收端基于心跳数据包向发送端返回的心跳确认数据包时,根据心跳确认数据包的状态确定存储链路中所有可到达的备选存储链路,然后计算每条备选存储链路的链路评价值,并根据每条可到达的备选存储链路的链路评价值确定备选存储链路中的可选择的链路。在上述实施例中,在不改变存储链路控制流程的基础上,使用存储心跳数据包机制对时延、带宽和误码率的性能指标进行测量,从而准确测量存储链路的性能,进而解决了现有技术中无法准确选取备选存储链路的问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种存储链路的选择方法的流程图;

图2是根据本发明实施例的一种存储链路的选择装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例,提供了一种存储链路选择方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的存储链路的选择方法,如图1所示,该方法包括如下步骤:

步骤S102,确定发送端与接收端之间的多条存储链路;

步骤S104,通过每条存储链路向接收端发送心跳数据包;

步骤S106,接收该接收端基于心跳数据包向发送端返回的心跳确认数据包;

步骤S108,根据心跳确认数据包的状态确定存储链路中所有可到达的备选存储链路;

步骤S110,计算每条备选存储链路的链路评价值;

步骤S112,根据链路评价值确定备选存储链路中的可选择的链路。

通过上述步骤,在确定发送端与接收端之间的多个存储链路之后,发送端通过每个存储链路向接收端发送心跳数据包,当发送端接收到接收端基于心跳数据包向发送端返回的心跳确认数据包时,根据心跳确认数据包的状态确定存储链路中所有可到达的备选存储链路,然后计算每条备选存储链路的链路评价值,并根据每条可到达的备选存储链路的链路评价值确定备选存储链路中的可选择的链路。在上述实施例中,在不改变存储链路控制流程的基础上,使用存储心跳数据包机制对时延、带宽和误码率的性能指标进行测量,从而准确测量存储链路的性能,既能在单个光纤传输数据时实现存储链路切换时的链路优选,提高存储链路的带宽利用率,同时又避免了在多条存储链路同时传输方案中,各条存储链路在性能差异很大时引起存储数据乱序的问题,进而解决了现有技术中无法准确选取备选存储链路的问题。

在步骤S104提供的技术方案中,通过每条存储链路向接收端发送心跳数据包,其中,心跳数据包一般是用来判断对方(设备、进程或其他网元)是否正常运行,通常采用定时发送简单的通讯包,如果在预定的时间内未收到对方的响应,则判断对方已经收到。具体地,心跳数据包是在客户端和服务器之间定时通知对方自己状态的一个自己定义的命令字,按照一定时间间隔发送,类似于心跳,所以叫做心跳包。

一种可选地,在执行步骤S102之前,初始化参数,该参数包括设定主存储链路的时延初值、带宽初值和误码率初值,设定每条可达到的备选存储链路的时延初值、带宽初值和误码率初值,设定丢失错误阈值和存储链路选择评价参考值。

进一步地,根据心跳确认数据包的状态确定存储链路中所有可到达的备选存储链路包括:根据心跳确认数据包的状态,检测存储链路是否发生丢包;在检测出存储链路未发生丢包的情况下,检测通过存储链路返回的心跳确认数据包是否乱序;在检测出存储链路返回的心跳确认数据包未乱序的情况下,确定存储链路为可到达的备选存储链路。

进一步地,检测存储链路是否发生丢包包括:在发送端接收到心跳确认数据包后,检测超时定时器是否超过预定值;在检测出超时定时器超过预定值的情况下,确定存储链路发生丢包。

具体地,任意选取一条存储链路,发送端在所选存储链路上分别连续发送2个相同的心跳数据包,同时针对每个心跳数据包,在所选存储链路上启动1个定时器,接收端在所选存储链路上收到2个心跳数据包后,针对每个心跳数据包,通过所选存储链路向发送端发送1个心跳确认数据包,发送端接收到2个心跳确认数据包后,检测所选存储链路的2个定时器,如果任意1个定时器超时,则认为所选存储链路发生丢包(即,数据包丢失)。

进一步地,检测通过存储链路返回的心跳确认数据包是否乱序包括:检测发送端是否在接收到第一心跳确认数据包之前收到第二心跳确认数据包;在检测出发送端在接收到第一心跳确认数据包之前收到第二心跳确认数据包的情况下,确定心跳确认数据包乱序。

可选地,检测存储链路没有发生丢包的情况下,在判断接收到的2个心跳确认数据包是否为乱序的心跳确认数据包,如果接收到的2个心跳确认数据包是乱序的心跳确认数据包,则丢弃接收到的2个心跳确认数据包,不改变备选存储链路。

进一步地,计算每条可到达的备选存储链路的链路评价值包括:通过第一公式计算备选存储链路的链路评价值,其中,第一公式为:其中,Ei为第i条可到达的备选存储链路的链路评价值,RTTpri是主存储链路的时延,Bpri是主存储链路的带宽,Epri是主存储链路的误码率,是第i条可到达的备选存储链路的时延,是第i条可到达的备选存储链路的带宽,是第i条可到达的备选存储链路的误码率,α,β以及γ分别为链路评价参数,且0≤α≤1,0≤β≤1,0≤γ1,α+β+γ=1。

具体地,可到达的备选存储链路的时延可以利用下述公式计算:其中,是第i条可到达的备选存储链路的时延,RTTi1和RTTi2是第i条可到达的备选存储链路上发送端接收到的心跳确认数据包HeartBeatACKi1和HeartBeatACKi2的时间和发送端发送的心跳数据包HeartBeati1和HeartBeati2的时间间隔,其中,i为正整数,可选地,i=1,2,...,n,n为可到达的备选存储链路的总数。可到达的备选存储链路的带宽可以利用公式(2)计算:其中,是第i条可到达的备选存储链路的带宽,tinterval是发送端接收到的2个心跳确认数据包HeartBeatACKi1和HeartBeatACKi2的时间间隔,S是发送端发送的心跳数据包的大小。

进一步地,根据每条可到达的备选存储链路的链路评价值确定备选存储链路中的可选择的链路包括:设置入选存储链路集合,其中入选存储链路集合为空集;计算可到达的存储链路的链路选择评价值;判断链路选择评价值是否大于等于存储链路选择评价参考值;在链路选择评价值大于等于存储链路选择评价参考值时,将对应的存储链路加入入选存储链路集合。

一种可选地实施例中,在出现丢包的情况下,发送端丢弃在此之后该备选存储链路收到的当前心跳数据包的心跳确认数据包,并使心跳确认数据包丢失次数加1;判断心跳确认数据包丢失次数与丢失错误阈值之间的大小,当心跳确认数据包丢失次数大于丢失错误阈值时,则将该备选存储链路标记为不可到达的备选存储链路,选取一条未曾被选取过的备选存储链路,返回执行步骤S104;否则,不改变备选存储链路,并返回执行步骤S104。

在未出现丢包的情况下,判断接收到的2个心跳确认数据包是否为乱序的心跳确认数据包,如果接收到的2个心跳确认数据包是乱序的心跳确认数据包,则丢弃接收到的2个心跳确认数据包,不改变备选存储链路,返回执行步骤S104;否则,将该备选存储链路标记为可到达的备选存储链路,计算该可到达的备选存储链路的时延、带宽和误码率;判断是否已经计算出所有可到达的备选存储链路的时延、带宽和误码率,如果已经计算出所有可到达的备选存储链路的时延、带宽和误码率,则计算每条可达的备选存储链路的链路评价值以及所有可到达的备选存储链路的链路评价值的最大值;否则,选取一条未曾被选取的备选存储链路,返回执行步骤S104。在计算每条可到达的备选存储链路的链路评价值以及所有可到达的备选存储链路的链路评价值的最大值之后,根据每条可到达的备选存储链路的链路评价值确定可选择的链路。

可选地,计算可到达的存储链路的链路选择评价值包括:通过第二公式计算链路选择评价值,其中,第二公式为:其中,θi为第i条可到达的备选存储链路的链路选择评价值,Ei为第i条可到达的备选存储链路的链路评价值,Ebest为所有可到达的备选存储链路的链路评价值的最大值。

所述计算该可到达的备选存储链路的时延利用公式其中,是第i条可到达的备选存储链路的时延,RTTi1和RTTi2分别是第i条可到达的备选存储链路上发送端接收到的心跳确认数据包的时间和与之对应的发送端发送的心跳数据包的时间间隔,i=1,2,...,n,n为可到达的备选存储链路的总数。

所述计算该可到达的备选存储链路的带宽利用公式其中,是第i条可到达的备选存储链路的带宽,tinterval是发送端接收到的2个心跳确认数据包的时间间隔,S是发送端发送的心跳数据包的大小。

所述计算每条可到达的备选存储链路的链路评价值利用公式其中,Ei为第i条可到达的备选存储链路的链路评价值,RTTpri是主存储链路的时延,Bpri是主存储链路的带宽,是第i条可到达的备选存储链路的时延,是第i条可到达的备选存储链路的带宽,α和β分别为链路评价参数,且0≤α≤1,0≤β≤1,0≤γ1,α+β+γ=1。

上述实施例中,所述根据每条可到达的备选存储链路的链路评价值确定可选择的链路包括:

设定入选存储链路集合为空集;

根据公式计算每条可到达的备选存储链路的链路选择评价值,根据公式计算主存储链路的链路选择评价值;其中,θi为第i条可到达的备选存储链路的链路选择评价值,Ei为第i条可到达的备选存储链路的链路评价值,Ebest为所有可到达的备选存储链路的链路评价值的最大值。

判断每条可到达的备选存储链路的链路选择评价值与存储链路选择评价参考值的大小,当可到达的备选存储链路的链路选择评价值大于等于存储链路选择评价参考值时,将该可到达的备选存储链路加入入选存储链路集合;判断主存储链路的链路选择评价值与存储链路选择评价参考值的大小,当主存储链路的链路选择评价值大于等于存储链路选择评价参考值时,将主存储链路加入入选存储链路集合。

将入选存储链路集合中链路选择评价值最大的链路设置为主存储链路,此时入选存储链路集合中的链路即为可选择的链路。

本发明使用心跳机制对备选存储链路的性能进行准确测量,其能够在不改变存储分组格式和控制流程的基础上为存储的链路切换和多条存储链路同时传输的链路选择提供支持。

下面对本申请的一个可选的实施例进行详细描述:

步骤1:初始化参数。

本实施例中设定存储多链路中共有三条存储链路pathi,i=0,1,2;其中一条存储链路设定为主存储链路(path0)进行数据传输;备选存储链路有两条,分别为备选存储链路1(path1)和备选存储链路2(path2)。设定主存储链路时延初值RTTpri,init、带宽初值Bpri,init和误码率初值Epri,init;设定备选存储链路path1的时延初值带宽初值和误码率初值设定备选存储链路path2的时延初值带宽初值和误码率初值设定丢失错误阈值Lostthre和链路选择评价参考值θthr

步骤2:任意选取一条备选存储链路,如备选存储链路pathi,i=1,2。

步骤3:发送端在备选存储链路pathi上分别连续发送2个相同的心跳数据包HeartBeati1和HeartBeati2,心跳数据包的大小为S。同时针对每个心跳数据包,在该备选存储链路上分别启动超时定时器Timer1和Timer2

步骤4:接收端在链路pathi上收到心跳数据包HeartBeati1后,立即经过链路pathi向发送端发送心跳确认数据包HeartBeatACKi1;接收端在链路pathi上收到心跳数据包HeartBeati2后,立即经过链路pathi向发送端发送心跳确认数据包HeartBeatACKi2

步骤5:发送端接收到2个心跳确认数据包后,检测备选存储链路的定时器,如果某一定时器超时,即Timeri≥3RTTi时(RTTi为前一时刻测量得到的该备选存储链路时延),则认为该链路发生数据包丢失,执行步骤6;否则,执行步骤9。

步骤6:发送端丢弃在此之后该备选存储链路收到的当前心跳数据包的心跳确认数据包,并使心跳确认数据包丢失次数Losti加1。

步骤7:判断心跳确认数据包丢失次数Losti与丢失错误阈值Lostthre之间的大小,当心跳确认数据包丢失次数Losti大于丢失错误阈值Lostthre时,则执行步骤8;否则,不改变备选存储链路,返回步骤3。

步骤8:将该备选存储链路标记为不可到达的备选存储链路,选取一条未曾被选取过的备选存储链路,返回步骤3。

步骤9:判断接收到的2个心跳确认数据包是否为乱序的心跳确认数据包。如果发送端在接收到心跳确认数据包HeartBeatACKi1之前接收到心跳确认数据包HeartBeatACKi2,则说明这2个心跳确认数据包是乱序的心跳确认数据包,丢弃接收到的2个心跳确认数据包,不改变备选存储链路,执行步骤3;否则,执行步骤10。

步骤10:将该备选存储链路标记为可到达的备选存储链路,计算该可到达的备选存储链路的时延、带宽和误码率。

其中,计算该可到达的备选存储链路的时延利用公式其中,是第i条可到达的备选存储链路的时延,RTTi1/RTTi2是第i条可到达的备选存储链路上发送端接收到的心跳确认数据包HeartBeatACKi1/HeartBeatACKi2的时间和发送端发送的心跳数据包HeartBeati1/HeartBeati2的时间间隔,i=1,2,...,n,n为可到达的备选存储链路的总数。

其中,计算可到达的备选存储链路的带宽利用公式其中,是第i条可到达的备选存储链路的带宽,tinterval是发送端接收到的2个心跳确认数据包的HeartBeatACKi1和HeartBeatACKi2的时间间隔,S是发送端发送的心跳数据包的大小。

步骤11:判断是否已经计算出所有可到达的备选存储链路的时延、带宽和误码率,如果已经计算出所有可到达的备选存储链路的时延、带宽和误码率,则执行步骤12;否则,选取一条未曾被选取的备选存储链路,返回步骤3。

对于本实施例,如果备选存储链路path1和备选存储链路path2都是可到达的备选存储链路,则需要计算出备选存储链路path1和备选存储链路path2的时延和带宽。在计算出备选存储链路path1的时延和带宽后,选择出备选存储链路path2,并返回步骤3,依照步骤3-11计算出备选存储链路path2的时延、带宽和误码率。

步骤:12:计算每条可到达的备选存储链路的链路评价值以及所有可到达的备选存储链路的链路评价值的最大值。

计算每条可到达的备选存储链路的链路评价值利用公式其中,Ei为第i条可到达的备选存储链路的链路评价值,RTTpri是主存储链路的时延,Bpri是主存储链路的带宽,是第i条可到达的备选存储链路的时延,是第i条可到达的备选存储链路的带宽,α和β分别为链路评价参数,且0≤α≤1,0≤β≤1,0≤γ1,α+β+γ=1。

计算所有可到达的备选存储链路的链路评价值的最大值利用公式其中n为可到达的备选存储链路的总数。

步骤13:根据每条可到达的备选存储链路的链路评价值确定可选择的链路,可选地,该步骤可以通过如下方案实现:

步骤131:设定入选存储链路集合为空集。

步骤132:根据公式计算每条可到达的备选存储链路的链路选择评价值,根据公式计算主存储链路链路选择评价值;其中,θi为第i条可到达的备选存储链路的链路选择评价值,Ei为第i条可到达的备选存储链路的链路评价值,Ebest为所有可到达的备选存储链路的链路评价值的最大值。

步骤133:判断每条可到达的备选存储链路的链路选择评价值θi与存储链路选择评价参考值θthr的大小,当可到达的备选存储链路的链路选择评价值θi大于等于存储链路选择评价参考值θthr时,将该可到达的备选存储链路加入入选存储链路集合;判断主存储链路链路选择评价值θ0与存储链路选择评价参考值θthr的大小,当主存储链路的链路选择评价值θ0大于等于存储链路选择评价参考值θthr时,将主存储链路加入入选存储链路集合。其中,0≤θthr≤1.0,在单条存储链路传输中θthr=1.0,在多条存储链路同时传输中,建议取值为θthr=0.5。

步骤134:将入选存储链路集合中存储链路选择评价值最大的存储链路设置为主存储链路,此时入选存储链路集合中的链路即为可选择的链路。

本发明根据存储特有的备选存储链路分组数据传输特点,使用心跳机制进行时延、带宽和误码率测量,在不改变存储数据分组格式和存储链路控制流程的基础上,准确地测量备选存储链路时延、带宽和误码率值,为存储的链路切换和多条存储链路同时传输的链路选择提供支持。

根据本发明实施例的一个方面,提供了一种存储链路的选择装置,该装置包括如图2所示的:第一确定单元21,用于确定发送端与接收端之间的多条存储链路;发送单元22,用于通过每条存储链路向接收端发送心跳数据包;接收单元23,用于接收接收端基于心跳数据包向发送端返回的心跳确认数据包;第二确定单元24,用于根据心跳确认数据包的状态确定存储链路中所有可到达的备选存储链路;计算单元25,用于计算每条备选存储链路的链路评价值;第三确定单元26,用于根据链路评价值确定备选存储链路中的可选择的链路。

进一步地,第二确定单元包括:第一检测模块,用于根据心跳确认数据包的状态,检测存储链路是否发生丢包;第二检测模块,用于在检测出存储链路未发生丢包的情况下,检测通过存储链路返回的心跳确认数据包是否乱序;确定模块,用于在检测出存储链路返回的心跳确认数据包未乱序的情况下,确定存储链路为可到达的备选存储链路。

进一步地,第一检测模块包括:第一检测子模块,用于在发送端接收到心跳确认数据包后,检测超时定时器是否超过预定值;第一确定子模块,用于在检测出超时定时器超过预定值的情况下,确定存储链路发生丢包。

进一步地,第二检测模块包括:第二检测子模块,用于检测发送端是否在接收到第一心跳确认数据包之前收到第二心跳确认数据包;第二确定子模块,用于在检测出发送端在接收到第一心跳确认数据包之前收到第二心跳确认数据包的情况下,确定心跳确认数据包乱序。

进一步地,计算单元包括:计算模块,用于通过第一公式计算备选存储链路的链路评价值,其中,第一公式为:其中,Ei为第i条可到达的备选存储链路的链路评价值,RTTpri是主存储链路的时延,Bpri是主存储链路的带宽,Epri是主存储链路的误码率,是第i条可到达的备选存储链路的时延,是第i条可到达的备选存储链路的带宽,是第i条可到达的备选存储链路的误码率,α,β以及γ分别为链路评价参数,且0≤α≤1,0≤β≤1,0≤γ≦1,α+β+γ=1。

进一步地,第三确定单元包括:设置模块,用于设置入选存储链路集合,其中入选存储链路集合为空集;第一计算子模块,用于计算可到达的存储链路的链路选择评价值;判断模块,用于判断链路选择评价值是否大于等于存储链路选择评价参考值;加入模块,用于在链路选择评价值大于等于存储链路选择评价参考值时,将对应的存储链路加入入选存储链路集合。

进一步地,计算子模块包括:第二计算子模块,用于通过第二公式计算链路选择评价值,其中,第二公式为:其中,θi为第i条可到达的备选存储链路的链路选择评价值,Ei为第i条可到达的备选存储链路的链路评价值,Ebest为所有可到达的备选存储链路的链路评价值的最大值。

述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1