在iSCSI中運用TCP/IP流量整形
現在,越來越多的企業逐漸開始集中、統一管理存儲系統來更好的支持服務器虛擬化以及私有云環境。特別是他們還實施了基于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)需要在它作為控制機制輸入信號前應用。”作者寫道。