資源描述:
《淺析io處理過(guò)程與存儲(chǔ)性能的關(guān)系》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、淺析I/O處理過(guò)程與存儲(chǔ)性能的關(guān)系“性能”這個(gè)詞可以說(shuō)伴隨著整個(gè)IT行業(yè)的發(fā)展,每次新的技術(shù)出現(xiàn),從硬件到軟件大多數(shù)情況下都圍繞著性能提升而展開(kāi)。"摩爾定理〃指出CPU的處理速度每18個(gè)月會(huì)翻一番,但是進(jìn)入21世紀(jì)的第二個(gè)十年來(lái),似乎它的速度慢了下來(lái)。但是IT行業(yè)的各個(gè)行業(yè)領(lǐng)導(dǎo)者們,還是不斷在計(jì)算機(jī)的性能尋求突破,繼續(xù)挑戰(zhàn)物理極限。細(xì)看存儲(chǔ)行業(yè),每款新的存儲(chǔ)產(chǎn)品的推出,也圍繞著如何更快、更好的服務(wù)前端服務(wù)器的I/O請(qǐng)求為中心。本文從I/O(Block)的流向介紹,試圖解讀整個(gè)I/O流與存儲(chǔ)性能之間的些許聯(lián)系。本文作為一篇存儲(chǔ)基礎(chǔ)的介紹文章,幫助讀者了解
2、看似簡(jiǎn)單的數(shù)據(jù)讀寫(xiě)中的更多細(xì)節(jié)。更多信息存儲(chǔ)I/O流與存儲(chǔ)性能:存儲(chǔ)I/O(后文簡(jiǎn)稱I/O)的處理過(guò)程就是計(jì)算機(jī)在存儲(chǔ)器上讀取數(shù)據(jù)和寫(xiě)入數(shù)據(jù)的過(guò)程。這種存儲(chǔ)器可以是非持久性存儲(chǔ)(RAM),也可以是類似硬盤(pán)的持久性存儲(chǔ)。一個(gè)完整的I/O可以理解為一個(gè)數(shù)據(jù)單元完成從發(fā)起端到接收端的雙向的過(guò)程。在企業(yè)級(jí)的存儲(chǔ)環(huán)境屮,在這個(gè)過(guò)程會(huì)經(jīng)過(guò)多個(gè)節(jié)點(diǎn),而每個(gè)節(jié)點(diǎn)中都會(huì)使用不同的數(shù)據(jù)傳輸協(xié)議。一個(gè)完整的I/O在每個(gè)不同節(jié)點(diǎn)間的傳輸,可能會(huì)被拆分成多個(gè)1/0,然后從一個(gè)節(jié)點(diǎn)傳輸?shù)搅硗庖粋€(gè)節(jié)點(diǎn),最后再經(jīng)歷相同的過(guò)程返回源端。下閣演示了一個(gè)文件在經(jīng)過(guò)整個(gè)I/O路徑屮每個(gè)節(jié)點(diǎn)所
3、進(jìn)行的變化(以EMCSymmetrix存儲(chǔ)陣列為例).?1File6Blocks12Frames6Blocks2Slots4Writes(FileSystem)(HBA>(Fibre)(FA)(Cache!(DA)aw整個(gè)I/O流經(jīng)歷一下幾個(gè)節(jié)點(diǎn):?FileSystem-文件系統(tǒng)會(huì)根掘文件與Block的映射關(guān)系,通過(guò)FileSystemManager將文件劃分為多個(gè)Block,請(qǐng)求發(fā)送給HBA。?HBA-HBA執(zhí)行對(duì)這一系列的更小的工作單元進(jìn)行操作,將這部分I/O轉(zhuǎn)換為FibreChannel協(xié)議,包裝成不超過(guò)2KB的Frame傳輸?shù)较乱粋€(gè)連接節(jié)點(diǎn)FC
4、Switch。?FCSwitch-FCSwitch會(huì)通過(guò)FCFabric網(wǎng)絡(luò)將這些Frame發(fā)送到存儲(chǔ)系統(tǒng)的前端口(FrontAdapter)。?StorageFA-存儲(chǔ)前端口會(huì)將這些FC的Frame重新封裝成和HBA初始發(fā)送I/O—致,然后FA會(huì)將數(shù)據(jù)傳輸?shù)疥惲芯彺?StorageArrayCache)?StorageArrayCache-陣列緩存處理I/O通常有兩種情況:1.直接返回?cái)?shù)據(jù)己經(jīng)寫(xiě)入的訊號(hào)給HBA,這種叫作回寫(xiě),也是大多數(shù)存儲(chǔ)陣列處理的方式。2.數(shù)裾寫(xiě)入緩存然后再刷新到物理磁盤(pán),叫做寫(xiě)透。I/O存放在緩存中以后,交由后端控制器(Disk
5、Adapter)繼續(xù)處理,完成后再返回?cái)?shù)據(jù)已經(jīng)寫(xiě)入的訊號(hào)給HBA。?DiskAdapter-上述兩種方式,最后都會(huì)將I/O最后寫(xiě)入到物理磁盤(pán)中。這個(gè)過(guò)程巾后端DiskAdapter擰制,根據(jù)后端物理磁盤(pán)的RAID級(jí)別的不同,一個(gè)I/O會(huì)變成兩個(gè)或者多個(gè)實(shí)際的I/O。根據(jù)上述的I/O流向的來(lái)看,一個(gè)完整的I/O傳輸,經(jīng)過(guò)的會(huì)消耗時(shí)間的節(jié)點(diǎn)可以概括為以下幾個(gè):?CPU-RAM,完成主機(jī)文件系統(tǒng)到HBA的操作。?HBA-FA,完成在光纖M絡(luò)中的傳輸過(guò)程。?FA-Cache,存儲(chǔ)前端卡將數(shù)據(jù)寫(xiě)入到緩存的吋間。?DA-Drive,存儲(chǔ)后端卡將數(shù)據(jù)從緩存寫(xiě)入到物理
6、磁盤(pán)的時(shí)間。下而的表屮根裾不同階段的數(shù)裾訪問(wèn)時(shí)間做了一個(gè)比較,一個(gè)8KB的I/O完成整個(gè)I/O流向的大概耗時(shí)。(表中的耗時(shí)根據(jù)每秒的傳輸數(shù)據(jù)整除獲得,例如HBA到FA的速度有102,400KB/秒除以8KB得到78ps)。根據(jù)表中的數(shù)據(jù)顯而易見(jiàn),I/O從主機(jī)的文件系統(tǒng)開(kāi)始傳輸?shù)酱鎯?chǔ)陣列的緩存在整個(gè)這個(gè)I/O占比很小,由于機(jī)械硬盤(pán)的限制,最大的耗時(shí)還是在DA到物理磁盤(pán)的時(shí)間。如果使用閃存盤(pán),那這個(gè)數(shù)據(jù)會(huì)大幅縮小,但是與其他幾個(gè)節(jié)點(diǎn)的傳輸時(shí)間相比,占比還是比較大的。8KBI/O的傳輸耗時(shí)(單位:ys)擴(kuò)大1,000,000耗時(shí)CPU到RAM的傳輸,166M
7、Hz64位總線6ps6secHBA到FA,100MB/秒速率78pis1min18secFA至ljCache(SymmetrixDMXDirector2.5GHz)26ps26secDA到物理磁盤(pán),73GB15,000rpm,Seek3.6ms,latency2.0ms5,700ps1hr35min可以看到,存儲(chǔ)陣列的緩存在整個(gè)I/O流屮所起到的作用是至關(guān)重要。緩存的處理效率與大小,直接影響到I/O處理的速度。而然,在實(shí)際的環(huán)境中,即使存儲(chǔ)陣列的緩存工作得當(dāng),主機(jī)的I/O也不會(huì)達(dá)到lOOps也就是0.1ms的水平,通常在l-3ms左右,就會(huì)認(rèn)為I/O處
8、理處于比較高性能的模式。原因就是因?yàn)榱硗鈨蓚€(gè)因素"數(shù)據(jù)頭處理〃和"并發(fā)"。1.“數(shù)據(jù)頭處理“由