提高iSCSI会话传输速率的方法、系统和发起端装置的制作方法

文档序号:7698575阅读:456来源:国知局
专利名称:提高iSCSI会话传输速率的方法、系统和发起端装置的制作方法
技术领域
本发明涉及基于因特网的小型计算机系统接口 (iSCSI, internet Small Computer System Interface )协议4支术领域,特别涉及一种提高iSCSI会话传 输速率的方法、系统和发起端装置。
背景技术
iSCSI协议是一种传输协议,硬件编码器通过iSCSI协议与存储设备通 信,进行数据传输。iSCSI协议的实现可以在IP网络上应用SCSI的功能, 充分利用了现有的IP网络的成熟性和普及性等优势,允许用户通过TCP/IP 网络来构建存储区域网(SAN, Storage Area Network),为企业4是供了直接 访问存储设备的能力。
iSCSI协议的发起端(Initiator)和目标端(Target)之间的通信由一个 或多个iSCSI连接完成,iSCSI连接通过发送iSCSI协议数据单元(iSCSI PDU )来传输lt据。连接一个Initiator和Target的所有iSCSI连接构成一个 iSCSI会话(iSCSI Session ),每个iSCSI连接可以被加入iSCSI会话或者乂人 iSCSI会话中移出。
由于iSCSI协议是承载在TCP协议之上的,在建立iSCSI连接之前首先 需要建立TCP连接。基于IP的iSCSI传输完全依赖于TCP连接,对于通过 一个TCP连接传送的任何iSCSI请求,相应的响应和/或其他相关的iSCSI PDU必须经由同一个TCP连接来发送。
TCP协议具备经受时延确认的机制,即接收端在接收到数据时并不立即 发送ACK消息,而是将ACK消息推迟,并与下一个需要沿该方向发送的数 据一起发送。TCP协议的经受时延确认机制对TCP连接的传输速率造成影响,具体体现于如下/>式
<formula>formula see original document page 6</formula>
其中,环回时间(RTT, Round-Trip Time )表示从发送端发送数据开始, 到发送端收到来自接收端的确认消息之间的时间; P表示数据包丟失率;
由上述公式可见,TCP协议的经受时延确认机制直接导致RTT的增大, 由于RTT与TCP连接的传输速率成反比,进而导致TCP连接的传输速率降 低。
由于iSCSI连接的建立完全依赖于TCP连接,因此,iSCSI连接的传输 速率也受上述公式的影响,即由TCP协议的经受时延确认机制导致iSCSI 连接的传输速率下降。进一步地,由于iSCSI会话由iSCSI连接组成,最终 导致iSCSI会话的传输速率下降。

发明内容
本发明实施例提出一种提高iSCSI会话传输速率的方法,能够提高 iSCSI会话的传输速率,有效地提高iSCSI的传输呑吐量。
本发明实施例还提出一种提高iSCSI会话传输速率的系统和发起端装 置,能够提高iSCSI会话的传输速率,有效地提高iSCSI的传输吞吐量。
本发明实施例的技术方案是这样实现的
一种提高iSCSI会话传输速率的方法,包括
周期性地获取iSCSI会话中 一个iSCSI连接的RTT,判断该RTT是否超过 预先设定的门限值,当超过门限值时,重新建立一个iSCSI连接,将所述重新 建立的iSCSI连接加入所述iSCSI会话中。
一种提高iSCSI会话传输速率的系统,包括发起端装置和目标端装置; 发起端装置,用于周期性地获取iSCSI会话中一个iSCSI连接的RTT,判 断该RTT是否超过预先设定的门限值,当超过门限值时,重新建立一个发起端装置和目标端装置之间的iSCSI连接,将所述重新建立的iSCSI连接加入所述 iSCSI会话中。
一种提高iSCSI会话传输速率的发起端装置,包括
RTT监控模块,用于周期性地获取iSCSI会话中一个iSCSI连接的RTT, 判断该RTT是否超过预先设定的门限值,当超过门限值时,命令iSCSI会话维 持模块建立新的iSCSI连接;
iSCSI会话维持模块,用于根据RTT监控模块的命令建立iSCSI连接,将 该iSCSI连接中加入iSCSI会话中。
可见,本发明提出的提高iSCSI会话传输速率的方法、系统和发起端装置, 实时地获取iSCSI连接上数据传输的RTT值,当iSCSI连接的RTT值过大而影 响数据传输速率时,在当前iSCSI会话中增加iSCSI连接,实现负载的有效分 担,从而提高iSCSI会话的传输速率。


图1为本发明方法实施例流程图2为本发明方法实施例中获取iSCSl连接的RTT的实现流程图; 图3为本发明实施例发起端装置的结构示意图。
具体实施例方式
本发明的设计思想是当iSCSI会话的初始iSCSI连接建立成功,进4亍iSCSI PDU的传输时,周期性地获取初始iSCSI连接的RTT并判断RTT是否超过预 期的可接受范围,直至判断出超过时,说明由于受TCP协议经受时延确认机制 的影响使得整个iSCSI会话的传输速率过低,此时立即增加新的iSCSI连接。
增加新的iSCSI连接后,如果整个iSCSI会话的传输速率提高,说明网络 带宽还有富余,这种情况下可以在iSCSI连接的RTT超过预期的可接受范围时 再次增加iSCSI连接;如果整个iSCSI会话的传输速率没有提高,说明已经达 到了网络带宽的极限值,使新增加的iSCSI连接由于没有空闲的网络带宽供其
7使用而无法起到负载分担的效果,这种情况下结束本流程。
本发明提出的提高iSCSI会话传输速率的方法可以包括
周期性地获取iSCSI会话中 一个iSCSI连接的RTT,判断该RTT是否超过 预先设定的门限值,当超过门限值时,重新建立一个iSCSI连接,将所述重新 建立的iSCSI连接加入所述iSCSI会话中。
针对iSCSI会话仅包含一个初始iSCSI连接的情况,上述获取iSCSI会话中 一个iSCSI连接的RTT可以具体为获取iSCSI会话中初始iSCSI连接的RTT。
针对iSCSI会话中包含多个iSCSI连接的情况,上述获取iSCSI会话中 一个 iSCSI连接的RTT可以具体为获取iSCSI会话中任意一个iSCSI连接的RTT;
获取iSCSI会话中任意一个iSCSI连接的RTT之前可以进一步包括判断 所述iSCSI会话的传输速率是否允许提高,如果允许提高,则继续执行所述获 取iSCSI会话中任意一个iSCSI连接的RTT的步骤;如果不允许提高,则结束 当前流程。
上述方法中,判断iSCSI会话的传输速率是否允许提高的方式可以具体为 将加入新的iSCSI连接之后的iSCSI会话的传输速率与加入新的iSCSI连接之 前的iSCSI会话的传输速率进行比较,当加入后的传输速率大于加入前的传输 速率时,则判定所述iSCSI会话的传输速率允许提高。
以下参照附图1详细介绍本发明。参见图1,图1为本发明方法实施例流 程图。本发明提出的提高iSCSI会话传输速率的方法包括
步骤101:建立iSCSI会话的初始iSCSI连接。
步骤102:周期性地获取初始iSCSI连接的RTT,并判断该RTT是否超过 预先设定的门限值,直至RTT超过预先设定的门限值时,执行步骤103;此处 预先设定的门限值可以为RTT预期的可接受范围。
步骤103:建立新的iSCSI连接。 ■
步骤104:将新的iSCSI连接加入到iSCSI会话中。
上述方法中,步骤104之后可以进一步包括
步骤105:判断iSCSI会话的传输速率是否允许提高,如果允许提高,则执行步骤106;否则结束本方法流程。在本步骤中,判断iSCSI会话的传输速率 是否允许提高的方式为将加入新的iSCSI连接之后的iSCSI会话的传输速率 与加入新的iSCSI连接之前的iSCSI会话的传输速率进行比较,当加入后的传 输速率大于加入前的传输速率时,则判定iSCSI会话的传输速率允许提高。其 中,iSCSI会话的传输速率可以通过在发起端装置计算特定时长内发送的字节 数来获得。
步骤106:周期性地获取iSCSI会话中任意一个iSCSI连接的RTT,并判断 该RTT是否超过所述预先设定的门限值(由于同一个iSCSI会话中每个iSCSI 连接的RTT相差无几,因此可以采用其中任意一个iSCSI连接的RTT来作判 断),直至RTT超过预先设定的门卩艮值时,返回执行步骤103。本步骤中,预先 设定的门限值可以为RTT预期的可接受范围。
从上述过程可见,当iSCSI会话中增加新的iSCSI连接后,如果整个iSCSI 会话的传输速率没有提高,说明此时网络带宽已经饱和,再增加iSCSI会话也 不会起到负载分担的效果,这种情况下就不再计算iSCSI连接的RTT、也不再 增加新的iSCSl连接。这样既可以在一个iSCSI会话中利用多个iSCSI连接进 行负载分担,又不会无谓地增加新的iSCSI连接造成浪费,有效地提高了 iSCSI 会话的传输速率。
在本发明中,可以通过iSCSI协议中已经定义的NOP-Out PDU及NOP-Out PDU周期性地进行时间信息的交互,实时地获取iSCSI连接的RTT。具体过程 参见图2,图2为本发明方法实施例中获取iSCSI连接的RTT的实现流程图。
步骤201:发起端装置采用iSCSI连接向目标端装置发送NOP-Out PDU, 所述NOP-Out PDU包含表示发起端发送NOP-Out PDU时刻的时间戳Al;
步骤202:目标端装置接收NOP-Out PDU,生成对应的NOP-In PDU,NOP-In PDU包含时间戳Al ,在NOP-In PDU中增加表示目标端装置接收NOP-Out PDU 时刻的时间戳B1;
步骤203:目标端装置采用发起端装置所采用的iSCSI连接发送NOP-In PDU时,在NOP-In PDU中增加表示目标端装置发送NOP-In PDU时刻的时间戳B2;
步骤204:发起端装置接收该NOP-In PDU,记录接收该NOP-In PDU的时 刻A2;
至此,发起端装置有足够的信息计算该iSCSI连接的RTT,即 RTT = B1-A1+A2-B2
上述方法中,时间戳可以采用NOP-In PDU或NOP-Out PDU中的保留 (reserve)字段进行封装。
本发明实施例还提出 一种提高iSCSI会话传输速率的系统,包括发起端 装置和目标端装置;
发起端装置,用于周期性地获取iSCSI会话中一个iSCSI连接的RTT,判 断该RTT是否超过预先设定的门限值,当超过门限值时,重新建立一个发起端 装置和目标端装置之间的iSCSI连接,将所述重新建立的iSCSI连接加入所述 iSCSI会话中。
上述系统中,发起端装置获取iSCSI会话中一个iSCSI连接的RTT可以为 获取iSCSI会话中初始iSCSI连接的RTT。
上述系统中,发起端装置获取iSCSI会话中 一个iSCSI连接的RTT还可以 为获取iSCSI会话中任意一个iSCSI连接的RTT;
发起端装置还可以用于,判断iSCSI会话的传输速率是否允许提高,当允 许提高时,继续执行所述获取iSCSI会话中任意一个iSCSI连接的RTT的步骤。
本发明实施例还提出一种提高iSCSI会话传输速率的发起端装置,参见图 3,图3为本发明实施例发起端装置的结构示意图,包括
RTT监控模块301 ,用于周期性地获取iSCSI会话中 一个iSCSI连接的RTT, 判断该RTT是否超过预先设定的门限值,当超过门限值时,命令iSCSI会话维 持模块302建立新的iSCSI连接; .
iSCSI会话维持模块302,用于根据RTT监控模块301的命令建立iSCSI 连接,将该iSCSI连接中加入iSCSI会话中。
上述发起端装置还可以包括
10iSCSI会话速率监控模块303,用于判断iSCSI会话的传输速率是否允许提 高,当允许提高时,命令RTT监控模块301获取iSCSI会话中任意一个iSCSI 连接的RTT。
上述发起端装置中,RTT监控模块可以包括
NOP-Out PDU发送模块,用于采用iSCSI连接向目标端装置发送NOP-Out PDU,所述NOP-Out PDU包含表示发起端装置发送NOP-Out PDU时刻的时间 戳Al;
NO -In PDU接收模块,用于接收所述NOP-Out PDU对应的NOP-In PDU, 记录NOP-In PDU的接收时刻A2;获取NOP-In PDU中所包含的表示发起端装 置发送NOP-Out PDU时刻的时间戳Al 、表示目标端装置接收NOP-Out PDU 时刻的时间戳Bl和表示目标端装置发送NOP-In PDU时刻的时间戳B2; RTT计算模块,用于采用RTT = Bl-Al +A2-B2计算iSCSI连接的RTT。 综上所述,本发明提出的提高iSCSI会话传输速率的方法、系统和发起端 装置,利用iSCSI协议中已定义的NOP-Out/-In PDU进行时间信息的封装,以 便实时地获取iSCSI连接上数据传输的RTT值。当iSCST连接的RTT值较大而 影响数据传输速率时,在当前iSCSI会话中增加iSCSI连接,实现负载的有效 分担从而提高iSCSI会话的传输速率。同时,本发明在iSCSI会话中每增加新 的iSCSI连接后,即对iSCSI会话的传输速率进行监测,保证每一次iSCSI连 接的增加都能有效地提高iSCSI会话的传输速率。当iSCSI会话的传输速率不 再增加时,立即停止对RTT值的计算,有效节省系统资源,避免无谓地增加多 余的iSCSI连接。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本 发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在 本发明保护的范围之内。
li
权利要求
1、一种提高基于因特网的小型计算机系统接口iSCSI会话传输速率的方法,其特征在于,所述方法包括周期性地获取iSCSI会话中一个iSCSI连接的环回时间RTT,判断该RTT是否超过预先设定的门限值,当超过门限值时,重新建立一个iSCSI连接,将所述重新建立的iSCSI连接加入所述iSCSI会话中。
2、 根据权利要求1所述的方法,其特征在于,所述获取iSCSI会话中一个 iSCSI连接的RTT为获取iSCSI会话中初始iSCSI连接的RTT。
3、 根据权利要求1所述的方法,其特征在于,所述获取iSCSI会话中一个 iSCSI连接的RTT为获取iSCSI会话中任意一个iSCSI连接的RTT;所述获取iSCSI会话中任意一个iSCSI连接的RTT之前进一步包括判断 所述iSCSI会话的传输速率是否允许提高,如果允许提高,则继续执行所述获 取iSCSI会话中任意一个iSCSI连接的RTT的步骤;如果不允许提高,则结束 当前流程。
4、 根据权利要求3所述的方法,其特征在于,所述判断iSCSI会话的传输 速率是否允许提高为将加入新的iSCSI连接之后的iSCSI会话的传输速率与 加入新的iSCSI连接之前的iSCSI会话的传输速率进行比较,当加入后的传输 速率大于加入前的传输速率时,判定所述iSCSI会话的传输速率允许提高。
5、 根据权利要求1至4中任意一项所述的方法,其特征在于,获取iSCSI 连接的RTT的方式为发起端装置采用iSCSI连接向目标端装置发送NOP-Out 协议数据单元PDU,所述NOP-Out PDU包含表示发起端装置发送NOP-Out PDU时刻的时间戳A1;目标端装置接收所述NOP-Out PDU,生成对应的NOP-In PDU,所述NOP-In PDU包含时间戳Al,在NOP-In PDU中增加表示目标端接收NOP-Out PDU时 刻的时间戳B1;目标端装置釆用所述iSCSI连接发送所述NOP-In PDU,在NOP-In PDU中增加表示目标端发送NOP-In PDU时刻的时间戳B2;发起端装置接收所述NOP-In PDU,记录发起端装置接收NOP-In PDU的时 刻A2,釆用RTT = Bl-Al+A2-B2计算iSCSI连接的RTT。
6、 一种提高iSCSI会话传输速率的系统,其特征在于,所述系统包括发 起端装置和目标端装置;所述发起端装置,用于周期性地获取iSCSI会话中一个iSCSI连接的RTT, 判断该RTT是否超过预先设定的门限值,当超过门限值时,重新建立一个发起 端装置和目标端装置之间的iSCSI连接,将所迷重新建立的iSCSI连接加入所 述iSCSI会话中。
7、 根据权利要求6所述的系统,其特征在于,所述发起端装置获取iSCSI 会话中 一个iSCSI连接的RTT为获取iSCSI会话中初始iSCSI连接的RTT。
8、 根据权利要求6所述的系统,其特征在于,所述发起端装置获取iSCSI 会话中 一个iSCSI连接的RTT为获取iSCSI会话中任意一个iSCSI连接的RTT;所述发起端装置还用于,判断iSCSI会话的传输速率是否允许提高,当允 许提高时,继续执行所述获取iSCSI会话中任意一个iSCSI连接的RTT的步骤。
9、 一种提高iSCSI会话传输速率的发起端装置,其特征在于,所述发起端 装置包括RTT监控模块,用于周期性地获取iSCSI会话中 一 个iSCSI连接的RTT, 判断该RTT是否超过预先设定的门限值,当超过门限值时,命令iSCSI会话维 持模块建立新的iSCSI连接;iSCSI会话维持模块,用于根据RTT监控模块的命令建立iSCSI连接,将 该iSCSI连接中加入iSCSI会话中。
10、 根据权利要求9所述的发起端装置,其特征在于,所述发起端装置还 包括 -iSCSI会话速率监控模块,用于判断所述iSCSI会话的传输速率是否允许提 高,当允许提高时,命令RTT监控模块获取iSCSI会话中任意一个iSCSI连接 的RTT。
11、根据权利要求9或IO所述的发起端装置,其特征在于,所述RTT监 控模块包括NOP-Out PDU发送模块,用于采用iSCSI连接向目标端装置发送NOP-Out PDU,所述NOP-Out PDU包含表示发起端装置发送NOP-Out PDU时刻的时间 戳Al;NOP-In PDU接收模块,用于接收所述NOP-Out PDU对应的NOP-In PDU, 记录NOP-In PDU的接收时刻A2;获取NOP-In PDU中所包含的表示发起端装 置发送NOP-Out PDU时刻的时间戳Al 、表示目标端装置接收NOP-Out PDU 时刻的时间戳Bl和表示目标端装置发送NOP-In PDU时刻的时间戳B2;RTT计算模块,用于采用RTT = B1-A1+A2-B2计算iSCSI连接的RTT。
全文摘要
本发明提出一种提高基于因特网的小型计算机系统接口(iSCSI)会话传输速率的方法、系统和发起端装置,其中方法包括周期性地获取iSCSI会话中一个iSCSI连接的环回时间(RTT),判断该RTT是否超过预先设定的门限值,当超过门限值时,重新建立一个iSCSI连接,将所述重新建立的iSCSI连接加入所述iSCSI会话中。本发明能够提高iSCSI会话的传输速率。
文档编号H04L29/08GK101483671SQ200910077470
公开日2009年7月15日 申请日期2009年2月12日 优先权日2009年2月12日
发明者迪 周, 飞 夏, 梁晓莎, 佳 苏 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1