7.4.4 FCIP性能调整

    FCIP性能调整参数包括:

    ·TCP超时

    ·TCP重传

    ·TCP应答

    ·MTU尺寸

    ·流控制

    ·数据包整形

    ·FCIP写加速

    ·FCIP磁带加速

    ·FCIP压缩

    ·IP QoS

    以下小节将以带IPS模块的MDS交换机作为这些性能调整参数的样例平台。

    说明:以下小节中提到的MDS交换机术语均值带有IPS模块的MDS交换机。

    TCP超时

    TCP超时指令定义了TCP连接来验证FICP链路工作是否正常的时间间隔,以确保FCIP链路故障能够被迅速探测到,即便此链路处于空闲状态。如果该TCP连接的空闲时间超过了规定的时间,将发送TCP指令包以验证该连接是否正常。MDS交换机调用“tcp keepalive-timeout”命令设置指令的超时范围(1~7200秒,默认60秒),以秒为单位。如果连接在规定的间隔内是闲置的,系统将以每秒1次的速度发送8个指令探测器,如果8个探测器都没有收到回复而连接也始终保持闲置状态,就会自动关闭这条FCIP链路。代码清单7.1展示了TCP超时指令配置模板的一个样例。

    代码清单7.1 TCP超时指令配置模板

    7.4.4 FCIP性能调整 - 图1

    TCP重传

    TCP凭借在收到数据段后发送应答消息来保证系统可靠性。但是,数据片段和应答消息都有可能丢失,TCP通过数据发送中的重传超时机制来解决这个问题。如果时间期限已到,还未收到数据应答消息,TCP将重传这些数据。有两个参数用来确定TCP是否继续或终止数据发送:

    ·TCP最小重传时间

    ·TCP最大重传次数

    “tcp minimum-retransmit-time”命令规定了TCP在重传之前的最大等待时间,最长不超过5000ms,最短不低于200ms,默认值为200ms。“tcp max-retransmissions”命令定义了在TCP决定关掉某个连接前,数据包最多可以被重传的次数,最少1次,最多8次,默认值为4次。代码清单7.2给出了一个TCP重传超时配置模板的样例。

    代码清单7.2 TCP重传超时配置模板

    7.4.4 FCIP性能调整 - 图2

    说明:如果遇到“脏”WAN链路,可以在FCIP配置文件中将“tcp max-retransmissions”值设为“1”,以加速flap探测,不用使用该命令时要非常小心。

    TCP应答

    通常情况下,TCP使用累加应答机制,因此只有有序数据片段才能收到应答。如果发生包丢失的情况,接收方即使成功接收了后续片段也不会返回应答,因此,当发生包丢失现象时,发送者无法了解当前窗口中正在传送的数据有哪些已经正确接收了。这样一来,发送方就只能在探测到重传超时后重传自丢失包开始的所有数据片段,这会导致系统将重传已经成功发送了的数据片段,从而产生不必要的网络带宽占用。重传超时同时也会使得拥塞控制窗口尺寸产生很大缩减,导致后继传输速度比之前要慢。

    接收方可以使用有选择地应答(SACK)机制,来有选择地对包丢失后收到的数据段进行应答,而发送方在收到这样的应答消息后,就能够只重传那些真正丢失了的数据片段。“tcp sack-enable”命令能激活SACK(默认为激活状态)。

    MTU尺寸

    最大传输单元(Maximum Transmission Unit,MTU)尺寸,有两难:

    ·MTU尺寸太大,如果遇到无法处理大尺寸包的下行流设备,就会导致包重传。

    ·MTU尺寸太小,包头数目增多,应答消息也随之增多,都会占用带宽。

    FC帧的最大尺寸为2148,可以使用标准以太网MTU尺寸1518对FC帧进行划分。也可以使用巨帧,则FCIP有效负载可以提高到一个完整尺寸FC帧,而不需要将帧分割成小的片段。不过,如果要真正应用这样的方案,由FCIP连接的MDS交换机间整个IP基础设施都必须支持巨帧。

    路径MTU(Path MTU,PMTU)是FCIP链路端点间的IP网络的最小MTU,TCP可以采用PMTU发现(PMTU discovery,PMTUD)机制动态确定PMTU的尺寸,并调整相应的最大TCP片段。理想情况下,PMTUD要和巨帧一起使用,MDS交换机将重启超时设为默认的3600秒,就能激活PMTUD,也可以调用“tcp pmtu-enable”命令激活(默认为激活状态)。

    流控制

    FCIP隧道的流控制与本地FC相比有少许不同,尽管它们都负责FC网络传输,但是它们不使用BBCredit,因此也不受BB_Credit的局限。相反,会采用TCP流控制,一种借助端到端的滑动窗口实现流控制的机制。窗口的大小决定了是否能够达到理想吞吐量或维持现有数据流。在FC网络中,除了FCIP跳,每一跳都用到了BB_Credit,FC流控制将在FCIP隧道的VE端口终止。

    MDS交换机使用最大带宽参数、最小可得带宽参数以及动态测量到的往返时间自动计算自动计算得出理想的TCP窗口的尺寸,默认设置如下:

    ·最大带宽=1 Gbps

    ·最小可得带宽=500Mbps

    ·往返时延(RTT)=1ms

    TCP最大窗口尺寸(Maximum Window Size,MWS)由(最大带宽/8)×RTT×0.9375+4-KB得到。

    数据包整形

    FC传输具有突发性,传统TCP会放大这样的突发性。如果使用传统TCP,网络必须要能通过交换机和路由的缓冲区消化这些突发流量,如果在传输结点没有足够的缓存空间,就会发生丢包。为了降低丢包概率,MDS上的FCIP TCP实现方案使用数据包整形技术以降低离开GE接口的TCP流量的突发性。

    当正确配置完包整形,GE接口发送的包就能获得足够的空间,就不需要或只需要极少缓存就能在FCIP链路中的中转结点间直接转发。由于采用了每包整形以及TCP拥塞窗口监控(Congestion Window Monitoring,CWM)机制,TCP就不容易再超过下行流设备的处理能力,从而降低了丢包概率。

    配置包整形时,需要知道最小可得带宽(由下行流路径决定),作为TCP慢启动的阈值。包整形器会将这一阈值放大到1个RTT,然后,MDS FCIP TCP栈将使用线性拥塞控制,以每RTT两个片段的速率增大吞吐量,直到达到MWS。如果发生拥塞,拥塞控制窗口会缩小到最小可得带宽那么大,恢复快慢与最小可得带宽配置成比例。也即,最小可得带宽参数决定了FCIP能够有多主动,如果参数值较大,将使得FCIP更主动,如果参数值较小,FCIP将变得更平均。

    说明:整形器只在空闲期后的首个RTT时段有效,在首个RTT后,返回应答记载了以后包的发送时间。

    说明:如果FCIP路径拥有1Gbps(或更多)可得指定点到点带宽,发送者就可以以千兆速度发送数据,而无须担心超过下行流路由或交换机的缓存能力。

    要保证包整形器能正确工作,配置要求包括:

    ·最小可得带宽至少为最大带宽的1/20

    ·必须激活SACK

    在配置包整形时,了解FCIP可得的最大和最小带宽非常重要,如果能够正确选择最小可得带宽,就很少会产生下行流路由和交换机溢出。代码清单7.3展示了一个简单的包整形配置模板。

    代码清单7.3 包整形配置模板

    7.4.4 FCIP性能调整 - 图3

    FCIP写加速

    常规的SCSI FC协议(FC Protocol,FCP)写操作需要在发起主机和目标阵列或磁带间往返两次完成:

    ·第1轮:发起者启动一个SCSI写命令(FCP_WRITE),目标调用FCP传输就绪命令(FCP transfer-ready command,FCP_XFER_RDY)进行应答。

    ·第2轮:发起者根据之前在就绪命令中指明的参数发送数据帧,如果I/O正确完成,目标将回应一个SCSI状态应答(FCP_RSP)帧。

    两次往返增加了延时,如果应用I/O操作能力有限,例如磁带备份,这一问题将更加突出。使用FCIP写加速,可以减少每次SCSI FCP写操作的FCIP WAN往返次数。

    FCIP写加速属于SCSI协议池机制,它能够缩短SCSI写I/O以及复制写I/O操作的时间,从而提高应用性能。FCIP写加速欺骗了XFER_RDY:

    1.当发起者发起一个SCSI FCP写命令后,MDS交换机(目标到发起者的代理)将会立刻向发起者返回一个FCP_XFER_RDY。

    2.发起者可以立刻通过FCIIP隧道向目标传送数据,数据由远程MDS交换机(发起者到目标的代理)接收并缓存。

    3.在远程终端,目标并没有意识到写加速,响应FCP_XFER_RDY,远程MDS交换机将不会允许这个应答通过WAN返回。

    4.当远程MDS交换机收到FCP_XFER_RDY时,将允许数据发送到目标。

    5.所有数据都接收完毕后,目标回应一个FCP_RSP应答或状态,确认操作已经完成(例如,FC Exchange)。

    FCIP可以将常规FCP_WRITE操作两次往返减少到1次,它允许主机(发起者)无须等待WAN返回XFER_RDY的较长延时,就能发送待写入的数据。

    说明:发起者/目标这样的MDS交换机代理将更改FC头包的OX_ID和RX_ID域,并创建一个新的RX_ID,但是这会违背原始的FC CRC校验,因此,如果与新的RX_ID产生冲突时,就需要重新创建一个新的FC CRC。

    图7-18顶部展示了一个不带写加速的常规SCSI写操作,而底部图展示的是带写加速的SCSI写操作。

    7.4.4 FCIP性能调整 - 图4

    图 7-18 FCIP写加速前后

    代码清单7.4给出了一个FCIP写加速配置模板样例。

    代码清单7.4 FCIP写加速配置模板

    7.4.4 FCIP性能调整 - 图5

    FCIP磁带加速

    有限缓存是磁带设备的通用问题,经常不足以应对WAN时延。即便有了写加速,每个设备也仅能支持一个高效I/O操作,仅有写操作加速无法保证磁带流,它可以将一个写I/O缩短到只有全部RTT的一半,但是发起者在发送下一条FCP_WRITE指令前,仍然需要等待FCP_RSP。如果时延太高导致磁带设备未能及时收到下一数据块,将使得磁带设备不得不停下来并倒放磁带。因此而产生的“擦鞋效应”不仅仅增加了设备完成备份任务的时间,同时也潜在地降低了磁带设备的使用周期。

    FCIP磁带加速是对写加速的强化操作,可以扩展MDS交换机上磁带缓存,同时还带有流量控制机制,能够避免缓冲区溢出。图7-19展示一个写加速中的FCIP磁带加速样例。备份服务器发起一个到磁带库设备的写命令,本地MDS交换机对命令进行缓存,并且以代理身份发出一个XFER_RDY告知主机(实际的备份服务器)以开始数据传送。收到数据后,本地MDS交换机会将数据放入缓冲区,全部数据缓存完毕后,它会代理发送一个正常的STATUS消息,以表示SCSI写操作已成功完成。当主机收到这一消息后,会启动下一个SCSI写操作。与写加速不同,磁带加速通过代理发送STATUS消息和XFER_RDY,支持写命令的本地应答,与不带加速的磁带相比,强化(有磁带加速的写操作)后,在相同的时间段,能够通过FCIP隧道发送更多的数据。远程MDS交换机将命令和数据都放入缓存,数据转发前监听来自磁带设备的XFER_RDY消息,以赶上备份服务器的速度。

    7.4.4 FCIP性能调整 - 图6

    图 7-19 FCIP有磁带加速的写操作

    说明:有磁带加速的写操作要求WRITE FILEMARKS操作以点对点而非代理模式进行,以维护写数据的一致性。WRITE FILEMARKS操作对缓冲区的数据和磁带库数据进行同步标识,当磁带介质故障被返回到备份服务器时,远程MDS交换机也会自动重试磁带忙错误。

    WAN上进行数据恢复和从磁带设备读数据的应用所面临的性能问题各不相同。图7-20展示了一个应用FCIP磁带加速的写操作样例。恢复服务器向磁带库设备发起读操作,在整个恢复过程中,在磁带终端的远程MDS交换机,在等待更多来自主机(恢复服务器)的SCSI读操作同时,也会向磁带设备发出自己的SCSI读操作,并将提前读得的数据放入本地MDS交换机的缓冲区内,然后再根据收到的主机依次发出的SCSI写操作顺序,将已缓存的数据发送回主机。

    7.4.4 FCIP性能调整 - 图7

    图 7-20 FCIP有磁带加速的写操作

    通过提前获取数据并保持磁带正常移动,FCIP磁带读加速显著改善了WAN上磁带读写的效率。代码清单7.5展示了一个FCIP磁带加速配置模板样例。

    代码清单7.5 FCIP磁带加速配置模板

    7.4.4 FCIP性能调整 - 图8

    磁带写加速需要首先激活写加速,默认流控制缓冲区使用自动方式,优化处理时会综合考虑WAN时延和磁带速度等因素,用户也可以自己定义流控制缓冲区尺寸(64-12,288KB)。

    说明:磁带加速时,当远程MDS交换机积累一定缓冲数据后,本地MDS交换机将会对主机写操作实施流控制,不再代理XFER_RDY,只有当完成了一个写操作,缓冲区中某些数据被释放后,本地MDS才会继续启动代理。

    FCIP压缩

    压缩能够提高慢速WAN链路的整体吞吐量。MDS交换机支持IP有效负载压缩,采用Lempel-Ziv-Stac(IPPCP LZS)无损数据压缩算法。IPPCP LZS压缩内容包括IP的TCP头以及剩余的有效负载,有效负载中嵌套了FCIP帧,IPPCP LZS只对有效负载进行处理,IP头保持不变。这种特殊的IP包一样可以通过IP网络传输,同时仍然可以基于IP头部域信息完成ACL和QoS处理。IPPCP LZS算法的压缩效果依据数据流的数据类型而定,一般情况能达到2:1的压缩率。

    可以使用下列任意一种模式配置FCIP压缩:

    ·模式1:对高带宽链路(>25Mbps)采用快速压缩模式

    ·模式2:对中低带宽链路(10~25Mbps)采用普通速度压缩模式

    ·模式3:对低带宽链路(<10Mbps)采用高度压缩模式

    ·自动(默认模式):根据链路带宽,选择合适的压缩模式(自FCIP配置文件中TCP参数可得带宽信息)。

    代码清单7.6展示了一个FCIP压缩配置模板样例。

    代码清单7.6 FCIP压缩配置模板

    7.4.4 FCIP性能调整 - 图9

    WAN加速(参见第4章)使用了重复数据删除技术,它能提供比LZS更高的压缩效率,只要可能,就应该优先以上压缩模式而使用。

    IP QoS

    MDS交换机通过对FCIP控制传输及数据传输中进行分类和优先级实现了QoS,采用了RFC2474和RFC2475标准定义的DiffServ模型,QoS参数采用差分服务代码点(Differentiated Services Code Point,DSCP)的值给每个IP包进行如下标记:

    ·将控制DSCP值用于所有控制TCP连接中的FCIP帧标记;

    ·将数据DSCP值用于所有数据TCP连接中的FCIP帧标记;

    ·如果FCIP隧道只有一种TCP连接,则将数据DSCP值用于TCP连接中所有包标记。

    代码清单7.7展示了一个FCIP IP QoS配置模板样例。

    代码清单7.7 FCIP IP QoS配置样例

    7.4.4 FCIP性能调整 - 图10