现在,越来越多的企业逐渐开始集中、统一管理存储系统来更好的支持服务器虚拟化以及私有云环境。特别是他们还实施了基于iSCSI的 SAN,一般来说这是缺乏性能可预见性的。这种情况最终导致企业在需要更多的保证应用程序性能时无法同时来确保SAN QoS。那么如果网络和存储部门能够通过使用传统的TCP/IP 流量整形方法,在优化管理的同时,还能够确保iSCSI SAN流量又会如何呢?
记得在San Jose举行的LISA 2010会议上,Oslo大学的J. Bjorgeengen和Oslo 大学学院的H. Haugerud就对此做了研究,并发表了题为《使用TCP/IP流量整形实现iSCSI服务的可预见性》的论文,介绍了通过调节iSCSI目标服务器的流量,实现流量优化的方法。
作者首先介绍了整合存储系统的概念,在整合存储系统中,虚拟磁盘依赖于硬件优先的共享存储系统,相较于本地存储单元,它更不可靠。因此,优化工作量对控制资源使用率以及确保SAN QoS非常重要。这样做是为了调节流量从而实现工作量优化,并可以通过实际需求动态调节以达到最初目的。作者建议使用读写两种需求的流量调节 ,并通过线性微积分控制的方法来做出具体决策。
调节流量溢出,或有查看需求,这是一种比较简单的情况,有改写等类似需求时,情况就比较复杂了。最常见的流入流量整形形式是流入流量监控,这时只要带宽不够就会发生丢包。使用这种方法,然后通过拥塞控制机制将发包率调整到某个能够避免丢包的速率。但由于数据包会重新发送,这样就会导致无效的网络链接利用,这种方法对SAN QoS来说也就没有多大作用,而且这种方法会浪费发送端在接受者决定改变带宽时作出适应所耗费的大量时间。
相反,作者提出了一种不同的流量调节方法来满足这些限制。
作者在论文中表示“该方式介绍了一种存在可变量的附加延迟系统,这样数据包送回到发送端时就会适当延迟。通过对所有流出数据包包括有效负载的数据包做延迟后,就可以非常容易地满足查看需求。流出的ACK数据包,包括有效负载数据包在被延迟后,就可以在不发生丢包的情况下满足类似于改写等的需求。通过使用Linux流量控制,数据包就可以根据Iptables码分配不同延迟要求的数据包,从而得到真实有用的延迟” 。
何时才是运用流量调节的最佳时机
流量调节必须是以系统性能可用性为基础的。但是系统性能可用性是依赖于速率、工作量的模式等,它不是一个固定不变的常量。作者建议可通过计算用户的响应时间来决定资源的饱和程度。“响应时间的指数加权移动平均数(EWMA)需要在它作为控制机制输入信号前应用。”作者写道。