一种自适应的光纤通道存储扩展流量控制方法
技术领域
本发明涉及一种自适应的光纤通道存储扩展流量控制方法。
背景技术
灾难恢复和业务连续的重要性越来越被重视。有研究指出,一次48小时的存储系统中断可使一个数据密集企业倒闭,因此,远程存储网络扩展的需求日益递增。另外,存储资源和数据中心的整合、存储网络外包等应用也带动了存储网络扩展的需求。存储网络扩展即利用城域网或广域网MAN/WAN (Metropolitan Area Network/ Wide Area Network)扩展存储区域网SAN (Storage Area Network)的距离。信息技术标准国际委员会(INCITS)制定了存储扩展主干标准FC_BB,存储网络工业协会(SNIA)提出了多站点块存储扩展模型。存储扩展已成为存储领域新的研究与应用热点,已经有许多国际知名存储公司已研制出各自的存储扩展产品。
目前主流存储扩展方式包括基于IP、基于WDM(Wavelength Division Multiplexing)和基于SONET的存储扩展。存储扩展网关同时支持光纤通道FC(Fibre Channel,光纤通道)协议和相应的MAN/WAN协议,网关将存储扩展网络的流量控制划分成3个域,分别是网关与SAN之间的两个基于信用(Credit)的FC流量控制域和扩展网关之间的MAN/WAN流量控制域。现有的存储扩展标准未提供多种流量控制协议之间的同步机制,当MAN/WAN发生拥塞时将导致大量FC帧缓存于发送网关并导致其排队时延增加,当时延超过FC协议的超时门限值时,会引发FC帧序列(包含多个FC帧)的重传,大大降低存储扩展的性能。因此,需要对有有光纤通道存储扩展流量控制方法进行优化,以提高存储扩展性能及存储扩展对实时应用的适应性。
发明内容
为了解决传统存储扩展网关流量控制方法的不足,本发明提供一种的具有自适应性的光纤通道存储扩展流量控制方法的设计方案。
一种自适应的光纤通道存储扩展流量控制方法,包括以下步骤:(1)初始化步骤;(2)从缓冲区队列头中取出一个光纤通道帧,按广域网的协议格式进行封装,使用改进存储扩展流量控制协议通过存储扩展网关的广域网接口转发封装后的数据帧;(3)接收光纤通道帧。所述改进存储扩展流量控制协议包括存储扩展流量控制步骤以及缓冲区门限自适应调整步骤。
具体的,所述初始化步骤包括:设置Q_length=0; Q_low =2;Q_high =8; H_count=0;F_high=0;L_count = 2; add_length=0;其中,Q_length为接收端缓存队列的长度;Q_low为低门限值;Q_high为高门限值;F_high为队列高门限触发标志,当队列长度大于Q_high时置1,H_count为零时清零;H_count为当Q_length > Q_high期间网关停止Credit更新的次数;L_count为当F_high =1且Q_length < Q_Low期间,接收端每转发或处理一个FC帧所发出的Credit更新信号的数量;add_length为队列增减性标志,大于零时表示队列长度在增加,反之表示队列长度在减小。
更具体的,所述初始化步骤还包括,测量存储区域网络SAN与直接相连的存储扩展网关之间链路的单程往返时延 。
更具体的,所述存储扩展流量控制步骤包括:
(1)若缓冲区队列非空,则从缓冲区队列头中取出一个光纤通道帧,Q_length自减1,否则等待;
(2)当Q_length ≤ Q_high 且F_high = 0时,存储扩展网关按照光纤通道协议向与之直接连接的光纤通道设备发送1个Credit更新信号;
(3)当Q_length ≥ Q_high 时,F_high = 1,H_count 自增1,存储扩展网关不向与之直接连接的光纤通道设备发送Credit更新信号;
(4) 当Q_length < Q_low 且F_high = 1时,若L_count ≤ H_count,则存储扩展网关向与之直接连接的光纤通道设备发送L_count个Credit更新信号,同时H_count = H_count - L_count +1;若L_count > H_count,则存储扩展网关向与之直接连接的光纤通道设备发送H_count个Credit更新信号,然后将H_count置0。
更具体的,所述缓冲区门限自适应调整步骤包括:
(1)当从从缓冲区队列头中取出一个光纤通道帧后,add_length自减1;
(2)测量存储扩展网关向广域网端口转发数据帧的速率v;
(3) ,其中,表示向上取整;
(4)当add_length > 0时,若Q_high ≤ Q_low,则Q_high = Q_low +1,反之Q_high = Q_high - 1;
(5)当add_length ≤ 0时,若Q_high = Q_high +1。
更具体的,所述接收光纤通道帧的步骤为:
(1)若无新光纤通道帧到达,则等待;
(2)将新光纤通道帧插入存储扩展网关的发送缓冲区队列尾部;
(3)Q_length自增1,add_length自增1。
综上所述,本发明具有以下有益效果:(1)通过设置网关缓存数据队列的高、低门限值Q_high和Q_low,并根据实际队列长度与Q_high和Q_low的关系调整存储扩展网关与SAN之间FC流量控制协议中Credit的更新频率,有效降低FC帧的在网关中排队时延,提高存储扩展性能,并降低FC序列超时重传的概率;(2)根据存储扩展网关转发FC帧的能力调整存储扩展网关发送缓冲区低队列门限值Q_low,这样,当网关中发送缓冲区内保存的FC帧数量过少时,加快存储扩展网关与SAN之间Credit的更新频率,以增加接收端缓冲队列中FC帧的数量,以充分利用存储扩展网络的链路带宽;(3)利用队列增减性标志add_length调整存储扩展网关发送缓冲区队列高门限值Q_high的大小,便可以延缓或加快停发Credit更新信号的时间,从而能够灵活增加或降低接收方缓存队列的长度,使存储扩展网关的性能得到提升。
附图说明
图1为存储扩展网关流量控制模型示意图;
图2为存储扩展网关中的缓冲区结构示意图;
图3为第一仿真实验结果示意图;
图4为第二仿真实验结果示意图;
图5为第三仿真实验结果示意图。
具体实施方式
为了让本领域的技术人员能够更好地了解本发明的技术方案,下面结合附图对本发明作进一步的阐述。
本发明揭示了一种自适应的光纤通道存储扩展流量控制方法(下称本发明方法)。
存储扩展网关流量控制模型如图1所示,存储扩展网关将存储扩展网络的流量控制划分成三个域,分别是存储扩展网关与SAN之间的两个基于Credit(信用)的FC流量控制域,即图中的SAN1和存储扩展网关1之间以及SAN2和存储扩展网关2之间的两个FC流量控制域,和存储扩展网关之间的MAN/WAN流量控制域。其中存储扩展网关中的缓冲区结构示意图如图2所示。
本发明所述的流量控制方法的实现,首先需先进行初始化步骤,将各个标志位初始化,设置Q_length=0; Q_low =2;Q_high =8; H_count=0;F_high=0;L_count = 2; add_length=0;并同时测量存储区域网络SAN与直接相连的存储扩展网关之间链路的单程往返时延。
初始化步骤结束后就能够进行正常的通信,并通过流量控制进行的收发FC帧发,步骤如下:
(1)若缓冲区队列非空,则从缓冲区队列头中取出一个光纤通道帧,Q_length自减1,否则等待; (2)当Q_length ≤ Q_high 且F_high = 0时,存储扩展网关按照光纤通道协议向与之直接连接的光纤通道设备发送1个Credit更新信号;(3)当Q_length ≥ Q_high 时,F_high = 1,H_count 自增1,存储扩展网关不向与之直接连接的光纤通道设备发送Credit更新信号;(4) 当Q_length < Q_low 且F_high = 1时,若L_count ≤ H_count,则存储扩展网关向与之直接连接的光纤通道设备发送L_count个Credit更新信号,同时H_count = H_count - L_count +1;若L_count > H_count,则存储扩展网关向与之直接连接的光纤通道设备发送H_count个Credit更新信号,然后将H_count置0。
然而,上述的流量控制方式还不是很完善,为了使流量控制方法能更好提高存储扩展性能及存储扩展对实时应用的适应性,流量控制的方式引入了缓冲区门限自适应调整步骤,包括:(1)当从从缓冲区队列头中取出一个光纤通道帧后,add_length自减1;(2)测量存储扩展网关向广域网端口转发数据帧的速率v;(3) ,其中,表示向上取整;(4)当add_length > 0时,若Q_high ≤ Q_low,则Q_high = Q_low +1,反之Q_high = Q_high - 1;(5)当add_length ≤ 0时,若Q_high = Q_high +1。
另一方面,扩展网关还需接收光纤通道帧,其步骤为:
(1)若无新光纤通道帧到达,则等待;(2)将新光纤通道帧插入存储扩展网关的发送缓冲区队列尾部;(3)Q_length自增1,add_length自增1。
在实际的仿真实验中,本发明方法与标准光纤通道流量控制协议Credit更新特性的对比如图3所示(其中标号a为标准光纤通道流量控制协议,标号b为本发明方法),其仿真结果表明,本发明方法能使发送方Credit维持在比较低的状态,从而可以减少存储扩展网关中缓存FC帧的数量,降低其排队时延。
本发明方法与固定设置队列高、低门限值时,FC帧在存储扩展网关中排队时延的对比结果如图4所示。在这五种情况下,自适应算法的排队时延最短,时间大约在1.5秒左右,而且自适应算法中排队时延长的稳定性也最好。图中所示的ch后面的数字表示固定设置的高门限值,cl后面的数字表示固定设置的低门限值,如ch8cl6表示固定设置的高、低门限值分别为8和6。
图5为本发明方法与固定设置高、低门限值时对存储扩展网关发送性能的影响。仿真结果表明,本发明方法并未影响存储扩展网关于通过广域网转发FC帧的速率。
本实施例只是本发明的较优实施方式,需要说明的是,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些改变和变形都应属于本发明所附的权利要求的保护范围。