蔡昭权,胡 辉,秦磊华,曹建忠
(1.惠州学院 教育技术中心,广东 惠州516007;2.华中科技大学 计算机科学与技术学院,湖北 武汉430074;3.惠州学院 电子科学系,广东 惠州516007)
光纤通道存储区域网(fiber channel storage area network,FC SAN)以其具有的高性能、易扩展、高可靠等优点,已成为主流网络存储技术之一,并广泛应用于各类数据中心,以满足企业日益增长的信息对大容量、高性能存储系统的需求。然而,数据丢失的风险随着存储容量的增加而增加,为了降低由于多种原因导致的数据丢失风险,提高数据和应用系统的可用性,人们正在研究基于高速广域网的SAN 互联,即存储距离扩展[1]。研究表明,存储距离扩展后所带来的距离因素不仅会降低FC 流量控制协议的性能,而且还可能增加FC 帧的排队时延[2-4],文献[5]提出了一种改进的存储扩展流量控制方法,该方法通过固定设置扩展网关缓存队列的高、低门限值,并根据队列的实际长度与高、低门限值的关系,调整Credit更新的频率。文献[5]的研究结果表明:队列高门限值是影响队列排队时延的主要因素,而低门限值则是影响接收节点输出链路利用率的主要因素;合理设置队列的高、低门限值可在不降低输出链路利用率的情况下,降低数据的排队时延。
文献[5]的研究工作建立在固定设置接收端队列高、低门限值的基础上,所设置的门限值未进行优化。笔者在文献[5-9]研究工作的基础上,提出了一种自适应的FC 存储扩展流量控制方法。一方面,根据存储扩展网关中队列的长度与设定的队列高、低门限值之间的关系调整FC 流量控制协议Credit 更新的频率;另一方面,根据队列长度的变化调整队列高门限值,并根据接收端服务率调整队列低门限值。
算法中用到的相关变量说明如下: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 更新信号的数量;μ 为发送端发送FC 帧的速率;v 为接收端处理或转发FC 帧的速率;Credit_countn为n 时刻发送端可用的Credit 值;M 为发送标志,M=1 时发送方可继续发送FC 帧,M =0 停止发送;LFC为FC 帧长;k为Credit 分段更新控制函数;Δt 为发送端与接收端之间链路的单程传播时延;add_length 为描述队列增、减特性,大于零时表示队列长度在增加,反之表示队列长度在减小。
假定存储扩展链路发送以全速发送FC 帧和Credit 更新信号,则笔者所设计的FC 流量控制算法原理如下:
(1)Credit 更新算法。
式中:kvn-1Δt/LFC为Δt 时间内发送方新增的Credit 值;MμnΔt/LFC为Δt 时间内发送方由于发送FC 帧而消耗掉的Credit 值,两者的差值即为Δt时间内发送方Credit_Count 的变化量。
其中分段控制函数k 为:
发送标志M 的控制函数为:
即发送方有充足的Credit 时,M =1,可继续发送FC 帧;反之,发送方没有充足的Credit,M =0,停止发送FC 帧。
(2)队列低、高门限值自适应控制。队列低门限值自适控制函数为:
式中:[vnΔt/LFC]为在Δt 时间内接收方端处理或转发的FC 帧数量。当接收缓存队列中FC 帧数量少于该值时,接收端的处理或转发FC 帧的能力由于没有足够的FC 帧而得不到充分发挥,从而导致处理效率降低。因此,当Q_length <Q_Low 时,若F_high 为1,则可加快Credit 的更新频率,以增加接收端缓冲队列中FC 帧的数量。
队列高门限值的自适应控制函数为:
从式(5)可知,队列高门限值的改变受队列增、减特性变量add_length 控制。当add_lenght <0 时,表明接收端缓存队列中FC 帧的数量在减少,此时,增加Q_Hight 的值可延缓停发Credit 更新信号的时间,发送方由于及时得到了更多的Credit 更新信号而发送更多的FC 帧,增加接收方缓存队列的长度。反之,当add_lenght >0 时,表明接收端缓存队列中FC 帧的数量在增加,此时,降低Q_Hight 的值将加快停发Credit 更新信号的进程,发送方由于不能及时得到更多的Credit 更新信号而减少FC 帧的发送,从而降低接收方缓存队列的长度。需要注意的是,Q_Hight 值不能降低到小于等于Q_Low 的值。笔者取高门限值的增、减步长为1。
笔者基于OPNET10.0[10-11]参照文献[5-9]中的建模方法,并对其中部分模块中的算法进行修改,得到自适应流量控制算法的仿真模型。部分仿真环境参数如表1 所示。
表1 仿真环境参数设置
为便于比较笔者提出的自适应算法的效果,建立了5 个仿真场景,设置不同的队列高、低门限值,如表2 所示。
表2 仿真场景及其门限值
其中场景ch100ch0 以缓存的上限和0 分别作为高、低门限值,其执行的是标准的FC 流量控制协议,设置该场景的目的是便于与笔者提出的自适应流量控制算法进行比较[12]。
(1)自适应流量控制算法的Credit 特性。对表2 中的所有场景进行仿真,研究自适应算法的Credit 特性,仿真结果与FC 流量控制协议的比较如图1 所示,与文献[5]提出的改进流量控制协议的比较如图2 所示。
从图1 和图2 可以看出自适应流量控制算法中Credit 更新具有下列特性:①与标准的FC 流量控制算法相比,自适应流量控制算法中Credit_Count 也长期处于较低值(如图1 所示),因此,缓存在接收端缓冲区中FC 帧的数量就相对较少;②从图2 可看出,与文献[5]提出的改进算法相比,自适应算法中Credit_Count 具有更好的平稳性。
图1 与标准FC 流量控制协议的比较
图2 与文献[5]提出的改进流量控制协议的比较
(2)自适应流量控制算法对接收端队列长度的影响。图3 所示的仿真结果展示了自适应流量控制算法与其他流量控制算法对接收端队列长度的影响。
从图3 所示的仿真结果可以看出,自适应流量控制算法下,接收端队列具有下列特性:①与其他算法相比,自适应算法下接收端队列长度最短。通过对仿真数据的放大分析发现,大部分仿真时间内,自适应流量控制算法中队列的长度在4 个FC帧左右变动,而ch8cl5、ch6cl3、ch13cl3 和ch100cl0等仿真场景中队列长度的值分别在7、6、12 和22个FC 帧左右变化;②从图3 可明显看出,自适应流量控制算法中队列长度的平稳性最好。
(3)自适应流量控制算法对排队时延的影响。图4 所示的仿真结果展示了自适应流量控制算法与其他流量控制算法对FC 帧在接收端缓存队列中排队时延的影响。
图3 自适应算法与其他算法对队列长度影响的对比
图4 自适应算法与其他算法对排队时延影响的对比
如图4 所示,5 种情况下,自适应算法的排队时延最短,时间大约在1.5 s 左右。不仅如此,通过对比还发现,自适应算法中排队时延长的稳定性也最好。
(4)自适应流量控制算法对接收端处理效率的影响。为对比不同算法对接收端处理FC 帧效率的影响,对每一种算法中接收端在仿真期间所转发或处理的FC 帧的总数进行记数。最后的统计结果如图5 所示。
图5 自适应算法与其他算法对接收端处理效率的对比
图5 所示的仿真结果表明,5 种情况下在接收端处理的FC 帧总数均在4 000 个FC 帧左右。由此可见,自适应流量控制算法并未影响接收端处理FC 帧的效率。
(1)与文献[5]提出的算法相比,笔者提出的自适应流量控制算法在不降低接收端处理效率的前提下,能更有效降低接收缓存中FC 帧的队列长度和排队时延,从而更有利于提高存储扩展的性能和降低FC 序列超时重传的概率。
(2)自适应流量控制算法根据队列长度变化和接收端处理能力,自适应调整用于控制Credit更新特性的高、低门限值,算法的稳定性好。
(3)与文献[5]相同,笔者提出的自适应流量控制算法在存储扩展网关处实施,对源端和目的FC 设备透明。
[1] SIEGEL E,TERRILL B. Extending the SAN over the WAN[J].IT Architect,2005,20(11):14-16.
[2] ANSI INCITS 414-2006.Fibre Channel-Backbone-3(FC-BB-3)[EB/OL].[2012-11-07]. http://www.t11.org/ftp/t11/ pub/fc/bb-3/03-764v0.pfd.
[3] TELIKEPALLI R,DRWIGGA T,YAN J. Storage area network extension solutions and their performance assessment[J]. IEEE Communications Magazine,2004,42(4):56-62.
[4] 林强,熊华钢,张其善. 强实时约束条件下光纤通道交换网络消息集优化[J]. 电子学报,2006,34(2):344-347.
[5] LING Q,XIONG H G,ZHANG Q S. Optimization design of message set for switch fabric under hard real time constraints[J].Acta Electronica Sinica,2006,34(2):344-347.
[6] 秦磊华,周敬利,余胜生.一种改进的光纤通道存储扩展流量控制算法[J]. 电子学报,2009,37(10):2343-2347.
[7] QIN L H,ZHOU J L,YU S S.An improved flow control mechanism for FC-SAN storage extension[J]. Acta Electronica Sinica,2009,37(10):2343-2347.
[8] 蔡昭权,秦磊华,罗伟,等. 光纤通道流量控制的OPNET 仿真模型设计[J]. 计算机工程,2011,37(8):102-104.
[9] 刘炜.FCIP 跨层流量控制的设计与实现[D].武汉:华中科技大学图书馆,2011.
[10]秦磊华,苏彦君,张宗平.光纤通道存储区域网扩展研究[J].计算机工程,2008,24(33):109-111.
[11]李馨,叶明.OPNET Modeler 网络建模与仿真[M].西安:西安电子科技大学出版社,2006:54-87.
[12]蔡昭权,秦磊华.光纤通道流量控制协议性能分析与应用[J].通信技术,2008,41(5):111-115.