网络存储系统中的流量控制方法

文档序号:7660237阅读:376来源:国知局
专利名称:网络存储系统中的流量控制方法
技术领域
本发明涉及网络存储领域,具体涉及网络存储技术中的存储区域网络 (StorageAreaNetwork-SAN)领域。
(二)
背景技术
网络存储系统中的流量控制分别是由iSCSI层的Maxburstlength参数和 TCP/IP层的拥塞窗口 (congestion window)共同决定的。两者都按照网络拥塞 的状况来调整自身的大小,但两者的敏感度不同。TCP拥塞窗口通过是否有包丢 失来感应网络的变化,从而相应的增大或减小拥塞窗口; Maxburstlength参数 在写过程中通过从数据发出时刻到R2T的返回时刻的延迟来了解网络状况,由延 迟的变化来相应的增大或减小参数。它们的变化趋势基本是一致的,但如图1所 示,TCP层在iSCSI层的下层,能更快了解网络变化,所以TCP层对网络的变化 响应迅速。当拥塞窗口随网络拥塞状况变化时,由于TCP/IP层与iSCSI层没有 交互,Maxburstlength不能同步变化,而有一个时间差。这个时间差即为从拥 塞窗口大小的改变到相应的Maxburstlength参数的改变的时间间隔。在这段时 间差里如果是拥塞情况发生,Maxburstlength参数不变,Maxburstlength从 数据发出到R2T的返回的延迟将增大,而且在应用层一直占用资源,应用层的资 源利用率降低;如果网络状况变好,Maxburstlength参数不变,网络利用率将 降低。
网络存储技术的应用是为了提高存储系统的性能,可用性和可管理性。改进 其性能仍然是目前存储技术研究的热点。有多种提高网络存储系统性能的方法, 如使用高速网络,改进存储数据分布算法,改进缓存算法等。由于在目前的系统 中,iSCSI层和TCP/IP层是独立的,不能进行交互,所以没有与本发明类似的 改进性能的方法。
(三)

发明内容
本发明的目的在于提供一种能够提高网络存储系统的性能和网络吞吐量的 网络存储系统中的流量控制方法。
本发明的目的是这样实现的-
在iSCSI层和TCP/IP层增加一个交互机制,使iSCSI层的Maxburstlength 与TCP/IP层的拥塞窗口同步变化,拥塞窗口增大的时候,Maxburstlength的值 也跟着变大,拥塞窗口减小的时候,Maxburstlength的值也跟着减小。
读过程
1、 启动端向目标端发出读请求;
2、 目标端向启动端发送Maxburstsize长度的数据和t的值;
3、 启动端首先将己读数据的长度自加上Maxburstsize的值,然后判断目标 端已发送的数据长度是否等于要求读的数据长度;
4、 重复第2步操作;
5、 直到在第3步中,判断出目标端已发送的数据长度等于要求读的数据长 度,程序退出;
写过程
6、 启动端向目标端发出写请求;
7、 目标端向启动端请求Maxburstsize长度的数据,并发送R2T命令和t的
值;
8、 在R2T对应函数体中,启动端调用TCP/IP层的拥塞窗口参数,与t值进 行比较;
9、 目标端收到后,再向启动端请求Maxburstsize长度的数据,并发出STATUS 状态命令和t的值;
10、 启动端调用STATUS对应的函数,判断启动端已写的数据长度是否等于 要求写的数据长度,如果小于要求写的数据长度,则向目标端发送Maxburstsize 长度的数据和t值;
11、 重复第7步的操作,直到在第10步中,判断出启动端已发送的数据长 度等于要求写的数据长度,程序退出。
本发明还可以包括
第1步中所述的启动端向目标端发出读请求的读请求命令包括读命令标识、 要求读的数据长度以及一变量t的初值。
第3步中所述的判断目标端已发送的数据长度是否等于要求读的数据长度
为如果小于要求读的数据长度,启动端调用TCP/IP层的拥塞窗口参数,与t
值进行比较,如果当前拥塞窗口值大于t值,就将Maxburstsize值增大到原来的 两倍,如果当前拥塞窗口值小于t值,就将Maxburstsize值减小到原来的1/2, 如果当前拥塞窗口值等于t值,则维持当前Maxburstsize值不变,然后将当前 Maxburstsize值赋值给t,启动端向目标端请求发送Maxburstsize长度的数据,并 向目标端传送t值。
第6步中所述的启动端向目标端发出写请求的写请求命令包括写命令标识、 要求写的数据长度以及一变量t的初值。
第8步中所述的启动端调用TCP/IP层的拥塞窗口参数与t值进行比较为 如果当前拥塞窗口值大于t值,就将Maxburstsize值增大到原来的两倍,如果当 前拥塞窗口值小于t值,就将Maxburstsize值减小到原来的1/2,如果当前拥塞 窗口值等于t值,则维持当前Maxburstsize值不变,将已写数据的长度自加上 Maxburstsize的值,然后将当前Maxburstsize值赋值给t,启动端向目标端发送 Maxburstsize长度的数据,并向目标端传送t值。
在网络存储系统中,流控制机制分别是iSCSI层的Maxburstlength参数 和TCP层的拥塞窗口。 iSCSI层的Maxburstlength参数
启动端(ini tiator)和目标端(target )协商关于在一个Data-In或Date-Out iSCSI序列中的最大数据负载。 一个序列包含一个或多个连续的Data-in或 Date-Out PDU,每个序列的结束用F位来标明。Maxburstlength决定了负载数 据PDU序列的长度。
读过程中,在一个输入序列最后的Data-in PDU后面可以紧跟着下一个序列 的第一个Data-In PDU的开始,没有启动端到目标端方向的R2T PDU应答。
写过程中,在从启动端(initiator)发送数据到目标端(target)时,在下 一个Date-Out序列开始发送前,前一个序列的结尾需要由目标端发送一个R2T PDU到启动端,来表明前一个序列数据发送成功。
所以Maxburstlength参数的变化对于写性能有显著的影响,而对于读性能 影响不大。
TCP/IP层的拥塞窗口TCP拥塞窗口对一个TCP发送方能向网络中发送的流量的速率进行限制。TCP 拥塞控制算法包括三个主要部分加性增(additive-increase)与乘性减 (multiplicative-decrease),慢启动(slow start)以及对超时事件作出反应。 加性增,乘性减
没有丢包事件发生时,TCP发送方每经过一个往返时延(RTT),也就是每收 到一个ACK后将拥塞窗口增加大约一个MSS (MSS又叫最大报文段长度,定义了 TOU中的以字节计算的最大有效载荷)。当出现丢包事件时,就将当前的拥塞窗 口值减半。
慢启动
当一个TCP连接开始时,拥塞窗口的值初始置为一个MSS, TCP发送方以很
慢的速率(因此叫"慢启动")开始发送,但是在发生丢包事件之前,以指数的
速度快速增加其发送速率。 对超时事件的反应
因超时而检测到的丢包事件所作出的反应与对收到3个冗余ACK而检测到的 丢包事件作出的反应是不同的。收到3个冗余ACK后,TCP将拥塞窗口减小一半, 然后线形增长。但是超时事件发生时,TCP发送方进入一个慢启动阶段,即将拥 塞窗口设置为1MSS,然后窗口大小以指数速度增长。拥塞窗口将持续以指数速 度增长,直到拥塞窗口达到超时事件前窗口值的一半为止。此后,拥塞窗口以线 形速度增长,就像收到3个冗余ACK—样动作。
综上所述,TCP拥塞算法是这样运行的
当拥塞窗口小于阈值(Threshold)(意味着网络的可能容量,它会根据检测 到丢包的情况做相应的调整)时,发送方处于慢启动阶段,拥塞窗口以指数速率 快速增长。
当拥塞窗口超过阈值时,发送方进入避免拥塞阶段,拥塞窗口以线性速度增长。
当有3个冗余ACK的丢包事件发生时,阈值被设置成当前拥塞窗口的一半, 拥塞窗口被设置成阈值。
当由超时导致的丢包事件发生时,阈值被设置成当前拥塞窗口的一半,拥塞 窗口被设置成IMSS。
本发明提出一种改进10数据传输性能的方法,可以提高10数据的网络传输 效率,从而提高整个网络存储系统的性能。
它是一种针对iSCSI层和tcp/ip层的一种交互方法,当TCP/IP感知网络拥 塞状况的变化时,iSCSI层的Maxburstlength参数随TCP/IP的拥塞窗口同步变 化。
(四)


图1是iSCSI协议层次; 图2是iSCSI读过程; 图3是iSCSI写过程;
图4是NS-2模拟iSCSI的类结构图。
(五)
具体实施例方式
下面结合附图举例对本发明做更详细地描述
首先我们在NS-2网络模拟工具上对iSCSI协议进行了模拟。我们主要用到 NS-2中的图4所述的几个类。
我们对NS-2中的应用层A卯lication/TCPAPP类进行了扩展,定义了 Appliation/TCPAPP类的两个方法,分别为initiator-rx和target-rx,用于启 动端(initiator)与目标端(target)之间的命令,状态和数据PDU的通讯。
我们在模拟的iSCSI协议中添加一个功能,即调用TCP/IP层的拥塞窗口参 数,然后通过编写的函数,使得拥塞窗口变化时,Maxburstsize参数值也进行实 时调整。 读过程
1. 启动端向目标端发出读请求。读请求命令包括读命令标识,要求读的数据长 度以及一变量t的初值。
2. 目标端向启动端发送Maxburstsize长度的数据和t的值。
3. 启动端首先将已读数据的长度自加上Maxburstsize的值。然后判断目标端己 发送的数据长度是否等于要求读的数据长度。如果小于要求读的数据长度, 启动端调用TCP/IP层的拥塞窗口参数,与t值进行比较。如果当前拥塞窗口 值大于t值,就将Maxburstsize值增大到原来的两倍;如果当前拥塞窗口值 小于t值,就将Maxburstsize值减小到原来的1/2;如果当前拥塞窗口值等于t值,则维持当前Maxburstsize值不变。然后将当前Maxburstsize值赋值给t, 启动端向目标端请求发送Maxburstsize长度的数据,并向目标端传送t值。
4. 重复第2步操作。
5. 直到在第3歩中,判断出目标端已发送的数据长度等于要求读的数据长度, 程序退出。
写过程
1. 启动端向目标端发出写请求。写请求命令包括写命令标识,要求写的数据长 度以及一变量t的初值。
2. 目标端向启动端请求Maxburstsize长度的数据,并发送R2T命令和t的值。
3. 在R2T对应函数体中,启动端调用TCP/IP层的拥塞窗口参数,与t值进行 比较。如果当前拥塞窗口值大于t值,就将Maxburstsize值增大到原来的两 倍;如果当前拥塞窗口值小于t值,就将Maxburstsize值减小到原来的1/2; 如果当前拥塞窗口值等于t值,则维持当前Maxburstsize值不变。将己写数 据的长度自加上Maxburstsize的值。然后将当前Maxburstsize值赋值给t,启 动端向目标端发送Maxburstsize长度的数据,并向目标端传送t值。
4. 目标端收到后,再向启动端请求Maxburstsize长度的数据,并发出STATUS 状态命令和t的值。
5. 启动端调用STATUS对应的函数,判断启动端已写的数据长度是否等于要求 写的数据长度。如果小于要求写的数据长度,则向目标端发送Maxburstsize 长度的数据和t值。
6. 重复第2步的操作。
7. 直到在第5步中,判断出启动端已发送的数据长度等于要求写的数据长度, 程序退出。
权利要求
1、一种网络存储系统中的流量控制方法,其特征是在iSCSI层和TCP/IP层增加一个交互机制,使iSCSI层的Maxburstlength与TCP/IP层的拥塞窗口同步变化,拥塞窗口增大的时候,Maxburstlength的值也跟着变大,拥塞窗口减小的时候,Maxburstlength的值也跟着减小。
2、 根据权利要求l所述的网络存储系统中的流量控制方法,其特征是 读过程(1) 启动端向目标端发出读请求;(2) 目标端向启动端发送Maxburstsize长度的数据和t的值;(3) 启动端首先将己读数据的长度自加上Maxburstsize的值,然后判断目标 端已发送的数据长度是否等于要求读的数据长度;(4) 重复第2步操作;(5) 直到在第3步中,判断出目标端已发送的数据长度等于要求读的数据长 度,程序退出;写过程(6) 启动端向目标端发出写请求;(7) 目标端向启动端请求Maxburstsize长度的数据,并发送R2T命令和t的值;(8) 在R2T对应函数体中,启动端调用TCP/IP层的拥塞窗口参数,与t值 进行比较;(9) 目标端收到后,再向启动端请求Maxburstsize长度的数据,并发出 STATUS状态命令和t的值;(10) 启动端调用STATUS对应的函数,判断启动端已写的数据长度是否等 于要求写的数据长度,如果小于要求写的数据长度,则向目标端发送 Maxburstsize长度的数据和t值;(11) 重复第7步的操作,直到在第10步中,判断出启动端已发送的数据长度等于要求写的数据长度,程序退出。
3、 根据权利要求2所述的网络存储系统中的流量控制方法,其特征是第 1步中所述的启动端向目标端发出读请求的读请求命令包括读命令标识、要求 读的数据长度以及一变量t的初值。
4、 根据权利要求2所述的网络存储系统中的流量控制方法,其特征是第 3步中所述的判断目标端已发送的数据长度是否等于要求读的数据长度为如 果小于要求读的数据长度,启动端调用TCP/IP层的拥塞窗口参数,与t值进行比较,如果当前拥塞窗口值大于t值,就将Maxburstsize值增大到原来的两倍, 如果当前拥塞窗口值小于t值,就将Maxburstsize值减小到原来的1/2,如果当 前拥塞窗口值等于t值,则维持当前Maxburstsize值不变,然后将当前 Maxburstsize值赋值给t,启动端向目标端请求发送Maxburstsize长度的数据, 并向目标端传送t值。
5、 根据权利要求2所述的网络存储系统中的流量控制方法,其特征是第 6步中所述的启动端向目标端发出写请求的写请求命令包括写命令标识、要求 写的数据长度以及一变量t的初值。
6、 根据权利要求2所述的网络存储系统中的流量控制方法,其特征是第 8步中所述的启动端调用TCP/IP层的拥塞窗口参数与t值进行比较为如果当 前拥塞窗口值大于t值,就将Maxburstsize值增大到原来的两倍,如果当前拥 塞窗口值小于t值,就将Maxburstsize值减小到原来的1/2,如果当前拥塞窗口 值等于t值,则维持当前Maxburstsize值不变,将已写数据的长度自加上 Maxburstsize的值,然后将当前Maxburstsize值赋值给t,启动端向目标端发送 Maxburstsize长度的数据,并向目标端传送t值。
全文摘要
本发明提供的是一种网络存储系统中的流量控制方法。本发明提出一种改进IO数据传输性能的方法,可以提高IO数据的网络传输效率,从而提高整个网络存储系统的性能。它是一种针对iSCSI层和tcp/ip层的一种交互方法,当TCP/IP感知网络拥塞状况的变化时,iSCSI层的Maxburstlength参数随TCP/IP的拥塞窗口同步变化。
文档编号H04L12/54GK101179473SQ20071014468
公开日2008年5月14日 申请日期2007年11月27日 优先权日2007年11月27日
发明者姚念民, 汪劭珍 申请人:哈尔滨工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1