在iSCSI中運(yùn)用TCP/IP流量整形
現(xiàn)在,越來越多的企業(yè)逐漸開始集中、統(tǒng)一管理存儲系統(tǒng)來更好的支持服務(wù)器虛擬化以及私有云環(huán)境。特別是他們還實(shí)施了基于iSCSI的 SAN,一般來說這是缺乏性能可預(yù)見性的。這種情況最終導(dǎo)致企業(yè)在需要更多的保證應(yīng)用程序性能時無法同時來確保SAN QoS。那么如果網(wǎng)絡(luò)和存儲部門能夠通過使用傳統(tǒng)的TCP/IP 流量整形方法,在優(yōu)化管理的同時,還能夠確保iSCSI SAN流量又會如何呢?
記得在San Jose舉行的LISA 2010會議上,Oslo大學(xué)的J. Bjorgeengen和Oslo 大學(xué)學(xué)院的H. Haugerud就對此做了研究,并發(fā)表了題為《使用TCP/IP流量整形實(shí)現(xiàn)iSCSI服務(wù)的可預(yù)見性》的論文,介紹了通過調(diào)節(jié)iSCSI目標(biāo)服務(wù)器的流量,實(shí)現(xiàn)流量優(yōu)化的方法。
作者首先介紹了整合存儲系統(tǒng)的概念,在整合存儲系統(tǒng)中,虛擬磁盤依賴于硬件優(yōu)先的共享存儲系統(tǒng),相較于本地存儲單元,它更不可靠。因此,優(yōu)化工作量對控制資源使用率以及確保SAN QoS非常重要。這樣做是為了調(diào)節(jié)流量從而實(shí)現(xiàn)工作量優(yōu)化,并可以通過實(shí)際需求動態(tài)調(diào)節(jié)以達(dá)到最初目的。作者建議使用讀寫兩種需求的流量調(diào)節(jié) ,并通過線性微積分控制的方法來做出具體決策。
調(diào)節(jié)流量溢出,或有查看需求,這是一種比較簡單的情況,有改寫等類似需求時,情況就比較復(fù)雜了。最常見的流入流量整形形式是流入流量監(jiān)控,這時只要帶寬不夠就會發(fā)生丟包。使用這種方法,然后通過擁塞控制機(jī)制將發(fā)包率調(diào)整到某個能夠避免丟包的速率。但由于數(shù)據(jù)包會重新發(fā)送,這樣就會導(dǎo)致無效的網(wǎng)絡(luò)鏈接利用,這種方法對SAN QoS來說也就沒有多大作用,而且這種方法會浪費(fèi)發(fā)送端在接受者決定改變帶寬時作出適應(yīng)所耗費(fèi)的大量時間。
相反,作者提出了一種不同的流量調(diào)節(jié)方法來滿足這些限制。
作者在論文中表示“該方式介紹了一種存在可變量的附加延遲系統(tǒng),這樣數(shù)據(jù)包送回到發(fā)送端時就會適當(dāng)延遲。通過對所有流出數(shù)據(jù)包包括有效負(fù)載的數(shù)據(jù)包做延遲后,就可以非常容易地滿足查看需求。流出的ACK數(shù)據(jù)包,包括有效負(fù)載數(shù)據(jù)包在被延遲后,就可以在不發(fā)生丟包的情況下滿足類似于改寫等的需求。通過使用Linux流量控制,數(shù)據(jù)包就可以根據(jù)Iptables碼分配不同延遲要求的數(shù)據(jù)包,從而得到真實(shí)有用的延遲” 。
何時才是運(yùn)用流量調(diào)節(jié)的最佳時機(jī)
流量調(diào)節(jié)必須是以系統(tǒng)性能可用性為基礎(chǔ)的。但是系統(tǒng)性能可用性是依賴于速率、工作量的模式等,它不是一個固定不變的常量。作者建議可通過計算用戶的響應(yīng)時間來決定資源的飽和程度。“響應(yīng)時間的指數(shù)加權(quán)移動平均數(shù)(EWMA)需要在它作為控制機(jī)制輸入信號前應(yīng)用。”作者寫道。