“性能”這個詞可以說伴隨著整個IT行業(yè)的發(fā)展,每次新的技術(shù)出現(xiàn),從硬件到軟件大多數(shù)情況下都圍繞著性能提升而展開。“摩爾定理”指出CPU的處理速度每18個月會翻一番,但是進入21世紀的第二個十年來,似乎它的速度慢了下來。但是IT行業(yè)的各個行業(yè)領(lǐng)導(dǎo)者們,還是不斷在計算機的性能尋求突破,繼續(xù)挑戰(zhàn)物理極限。細看存儲行業(yè),每款新的存儲產(chǎn)品的推出,也圍繞著如何更快、更好的服務(wù)前端服務(wù)器的I/O請求為中心。本文從I/O(Block)的流向介紹,試圖解讀整個I/O流與存儲性能之間的些許聯(lián)系。本文作為一篇存儲基礎(chǔ)的介紹文章,幫助讀者了解看似簡單的數(shù)據(jù)讀寫中的更多細節(jié)。
存儲I/O流與存儲性能:
存儲I/O(后文簡稱I/O)的處理過程就是計算機在存儲器上讀取數(shù)據(jù)和寫入數(shù)據(jù)的過程。這種存儲器可以是非持久性存儲(RAM),也可以是類似硬盤的持久性存儲。一個完整的I/O可以理解為一個數(shù)據(jù)單元完成從發(fā)起端到接收端的雙向的過程。在企業(yè)級的存儲環(huán)境中,在這個過程會經(jīng)過多個節(jié)點,而每個節(jié)點中都會使用不同的數(shù)據(jù)傳輸協(xié)議。一個完整的I/O在每個不同節(jié)點間的傳輸,可能會被拆分成多個I/O,然后從一個節(jié)點傳輸?shù)搅硗庖粋節(jié)點,最后再經(jīng)歷相同的過程返回源端。
下圖演示了一個文件在經(jīng)過整個I/O路徑中每個節(jié)點所進行的變化(以EMC Symmetrix存儲陣列為例):
圖1 文件在經(jīng)過整個I/O路徑中每個節(jié)點所進行的變化
整個I/O流經(jīng)歷一下幾個節(jié)點:
File System – 文件系統(tǒng)會根據(jù)文件與Block的映射關(guān)系,通過File System Manager將文件劃分為多個Block,請求發(fā)送給HBA。
HBA – HBA執(zhí)行對這一系列的更小的工作單元進行操作,將這部分I/O轉(zhuǎn)換為Fibre Channel協(xié)議,包裝成不超過2KB的Frame傳輸?shù)较乱粋連接節(jié)點FC Switch。
FC Switch – FC Switch會通過FC Fabric網(wǎng)絡(luò)將這些Frame發(fā)送到存儲系統(tǒng)的前端口(Front Adapter)。
Storage FA – 存儲前端口會將這些FC 的Frame重新封裝成和HBA初始發(fā)送I/O一致,然后FA會將數(shù)據(jù)傳輸?shù)疥嚵芯彺妫⊿torage Array Cache)
Storage Array Cache – 陣列緩存處理I/O通常有兩種情況:1.直接返回數(shù)據(jù)已經(jīng)寫入的訊號給HBA,這種叫作回寫,也是大多數(shù)存儲陣列處理的方式。2. 數(shù)據(jù)寫入緩存然后再刷新到物理磁盤,叫做寫透。I/O存放在緩存中以后,交由后端控制器(Disk Adapter)繼續(xù)處理,完成后再返回數(shù)據(jù)已經(jīng)寫入的訊號給HBA。
Disk Adapter – 上述兩種方式,最后都會將I/O最后寫入到物理磁盤中。這個過程由后端Disk Adapter控制,根據(jù)后端物理磁盤的RAID級別的不同,一個I/O會變成兩個或者多個實際的I/O。
根據(jù)上述的I/O流向的來看,一個完整的I/O傳輸,經(jīng)過的會消耗時間的節(jié)點可以概括為以下幾個:
CPU – RAM, 完成主機文件系統(tǒng)到HBA的操作。
HBA – FA,完成在光纖網(wǎng)絡(luò)中的傳輸過程。
FA – Cache,存儲前端卡將數(shù)據(jù)寫入到緩存的時間。
DA – Drive,存儲后端卡將數(shù)據(jù)從緩存寫入到物理磁盤的時間。
下面的表中根據(jù)不同階段的數(shù)據(jù)訪問時間做了一個比較,一個8KB的I/O完成整個I/O流向的大概耗時。(表中的耗時根據(jù)每秒的傳輸數(shù)據(jù)整除獲得,例如HBA到FA的速度有102,400KB/秒除以8KB得到78 μs)。根據(jù)表中的數(shù)據(jù)顯而易見,I/O從主機的文件系統(tǒng)開始傳輸?shù)酱鎯﹃嚵械木彺嬖谡麄這個I/O占比很小,由于機械硬盤的限制,最大的耗時還是在DA到物理磁盤的時間。如果使用閃存盤,那這個數(shù)據(jù)會大幅縮小,但是與其他幾個節(jié)點的傳輸時間相比,占比還是比較大的。
表1 不同階段的數(shù)據(jù)訪問時間比較
可以看到,存儲陣列的緩存在整個I/O流中所起到的作用是至關(guān)重要。緩存的處理效率與大小,直接影響到I/O處理的速度。而然,在實際的環(huán)境中,即使存儲陣列的緩存工作得當(dāng),主機的I/O也不會達到100 μs也就是0.1ms的水平,通常在1-3ms左右,就會認為I/O處理處于比較高性能的模式。原因就是因為另外兩個因素“數(shù)據(jù)頭處理”和“并發(fā)”。
1.“數(shù)據(jù)頭處理“由于I/O流中每個I/O的數(shù)據(jù)組成并不是只包含數(shù)據(jù),如下圖所示,一個I/O除了數(shù)據(jù)以外還包含了Negotiation,Acknowledgement用來負責(zé)在I/O流中的每個節(jié)點傳輸和進行管理的。其中包含和TCP/IP一樣的“Handshaking“信息以及流控制的信息,比如初始化傳輸,結(jié)束通訊等等。Header中則會定義一些例如CRC校驗的信息,保證數(shù)據(jù)的一致性。所有這些數(shù)據(jù)的處理都會耗費一定的處理資源,增加I/O流的耗時。
圖2 數(shù)據(jù)頭處理
2.“并發(fā)“。由于I/O流整個過程中不可能只同時處理一個I/O,所有的I/O在HBA,F(xiàn)C,F(xiàn)A和DA處理的過程中都是已大量并發(fā)的情況下進行。而主要的耗時取決于I/O隊列的等待,雖然存儲陣列會在并發(fā)上進行優(yōu)化。同一個處理Slice的處理還是會一隊列形式進行。如下圖所示,當(dāng)存儲同時面對多個I/O的處理的情況,總會有某個I/O會在整個流的最后出來,而增加I/O的耗時。所以說,在I/O流的每個節(jié)點出現(xiàn)瓶頸,或者短板的時候。I/O的耗時就會增加。
圖3 存儲同時面對多個I/O的處理的情況
綜上所述,I/O流與存儲性能的關(guān)系可以總結(jié)為以下幾點:
完成一個I/O流主要經(jīng)歷過的節(jié)點有HBA,F(xiàn)C網(wǎng)絡(luò),存儲前端口FA,存儲緩存、存儲后端口,物理磁盤。而很個過程中最耗時的是物理磁盤。
存儲陣列的緩存的大小和處理方式直接影響到I/O流的性能,也是定義一個存儲陣列優(yōu)劣的重要指標(biāo)之一。
I/O的處理速度通常會遠離理論值,原因多個并發(fā)量較大而造成的隊列延遲。
優(yōu)化I/O的方式可以從多個節(jié)點入手,而最顯著的效果是提升物理磁盤的速度。因為存儲陣列會把盡可能多的數(shù)據(jù)放入緩存,而當(dāng)緩存用滿以后的數(shù)據(jù)交換則完全取決于物理磁盤的速度。
適當(dāng)選用合適的RAID級別,因為不同的RAID級別的讀寫比例大不相同,可能使得物理磁盤處理耗時幾倍增加。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:淺析I/O處理過程與存儲性能的關(guān)系
本文網(wǎng)址:http://www.ezxoed.cn/html/support/11121511282.html