數(shù)據(jù)存儲(chǔ)已經(jīng)成為企業(yè)應(yīng)用中的一個(gè)薄弱環(huán)節(jié),如果廠商不重視這方面的話,這項(xiàng)技術(shù)將面臨著脫節(jié)的危險(xiǎn)。I/O棧沒有與硅芯片的升級(jí)更新保持一直步伐,最終它將有可能被像相變內(nèi)存(承諾提供對(duì)數(shù)據(jù)的自由訪問)這樣的新技術(shù)所取代。
問題很簡(jiǎn)單:內(nèi)存帶寬和CPU性能的增長(zhǎng)速度遠(yuǎn)遠(yuǎn)高于磁盤和總線性能以及磁盤通道速度的增長(zhǎng),再加上I/O接口(POSIX)的限制,結(jié)果只能是隨著時(shí)間推移I/O瓶頸越來越嚴(yán)重。
回顧過去五年存儲(chǔ)領(lǐng)域不同板塊的性能增長(zhǎng),我們可以看到一些明顯的趨勢(shì):
·內(nèi)存帶寬:Intel提供的內(nèi)存帶寬從2004年的4.3 GB/s增長(zhǎng)了9.3倍到現(xiàn)在的40 GB/s,AMD提供的內(nèi)存帶寬也從5.3 GB/s增長(zhǎng)了4.8倍到25.6 GB/s。
·CPU性能:根據(jù)摩爾定律,晶體管數(shù)量每18個(gè)月就會(huì)翻一番,那么這就意味著性能至少要增加10倍多(而事實(shí)并非如此)。
·PCIe總線:PCI總線的性能從2004年每個(gè)通道的250 MB/s增長(zhǎng)到2008年每通道500 MB/s,明年有望超過1 GB/s,增長(zhǎng)2倍(很快將達(dá)到4倍)。
·每磁盤通道速度:從4Gb光纖通道到6Gb SAS增長(zhǎng)了50%。
·SATA磁盤性能從68 MB/s增長(zhǎng)到84 MB/s,而光纖通道/SAS從125 MB/s增長(zhǎng)到194 MB/s,光纖通道/SAS的增長(zhǎng)速度近似于每磁盤通道速度,而SATA只增長(zhǎng)了大約24%。
·磁盤密度:光纖通道/SAS的磁盤密度翻了一番,從300GB增長(zhǎng)到600GB,而SATA則從250GB增長(zhǎng)到2TB,增長(zhǎng)了8倍。
正如你所看到的,磁盤通道速度和性能以及PCIe總線落后于CPU和內(nèi)存帶寬性能。這意味著,訪問數(shù)據(jù)的速度遠(yuǎn)遠(yuǎn)跟不上處理數(shù)據(jù)的速度,POSIX無法判斷什么是重要的,或者無法定義服務(wù)質(zhì)量,隨著其他選擇的出現(xiàn),可能影響存儲(chǔ)網(wǎng)絡(luò)性能的問題也涌現(xiàn)出來。
數(shù)據(jù)訪問速度在系統(tǒng)中的任何位置都沒有提高,不管是PCIe、存儲(chǔ)通道還是磁盤驅(qū)動(dòng)器。唯一的例外就是固態(tài)盤,尤其是SLC固態(tài)盤。五年前沒有哪項(xiàng)技術(shù)能夠與這些驅(qū)動(dòng)器匹敵,但是它仍然受到通道速度(目前為6Gb SAS或者每通道768 MB/s)的限制。
POSIX:?jiǎn)栴}的一方面
我看到的一個(gè)問題是,在應(yīng)用和存儲(chǔ)之間我們有一個(gè)最小界面。我們所擁有的是標(biāo)準(zhǔn)POSIX控制,打開、讀取、寫入和關(guān)閉以及其他一些系統(tǒng)調(diào)用命令。沒有方法提供關(guān)于文件使用情況的信息;例如,你可能希望得到一個(gè)表明文件將被連續(xù)讀取的提示,或者關(guān)于一個(gè)文件可能被復(fù)寫的提示??赡軙?huì)有很多潛在的提示,但卻沒有一個(gè)提供這些文件提示的標(biāo)準(zhǔn)方式,盡管有些文件系統(tǒng)使用非標(biāo)準(zhǔn)的方法,但是接口只是問題的一個(gè)方面。真正的問題是,存儲(chǔ)性能遠(yuǎn)遠(yuǎn)落后于系統(tǒng)性能,這使得存儲(chǔ)更難以使用,從而讓它不再適用于實(shí)際使用。我認(rèn)為性能落后是有很多原因的,不過其中有幾個(gè)比較主要的:
·設(shè)計(jì)內(nèi)存的PCIe總線接口是很困難并耗費(fèi)成本的一件事,而且將很多PCIe與內(nèi)存連接會(huì)大幅度提高系統(tǒng)的成本
·因?yàn)镻CIe總線性能與CPU和內(nèi)存升級(jí)更新是不同步的,那么為什么我們需要更高的通道性能呢?
·磁盤驅(qū)動(dòng)器接口使用的技術(shù)和通道是一樣的,因此通道的性能不會(huì)提高太多
這個(gè)問題困擾了我很長(zhǎng)時(shí)間。我總是不斷問自己,為什么這個(gè)情況沒有改變,最后我總是得出相同的原因:在存儲(chǔ)方面提高性能是很難又耗費(fèi)成本的。在這里或者那里作出一個(gè)變動(dòng)并不能改變整個(gè)數(shù)據(jù)路徑的性能。簡(jiǎn)單的瓶頸分析就可以證明這一點(diǎn),因?yàn)榧词垢淖兞怂校绻┑粢粋€(gè)組件意味著仍然存在瓶頸。從PCIe總線到設(shè)備,再到這之間的一切(包括軟件界面)都需要通過改變來提升性能。沒有哪家廠商可以做到這一切。沒有人會(huì)搭建一個(gè)非標(biāo)準(zhǔn)的環(huán)境,因?yàn)樵O(shè)計(jì)成本太高,而市場(chǎng)規(guī)模太小。
現(xiàn)在有很多廠商開發(fā)基于PCIe閃存的存儲(chǔ)設(shè)備,這種設(shè)備解決了通道接口問題和一些性能問題。至少?gòu)哪壳皝砜?,這種設(shè)備的成本對(duì)于消費(fèi)級(jí)市場(chǎng)來說過高了,而消費(fèi)市場(chǎng)是否青睞這種技術(shù)決定著是否向存儲(chǔ)市場(chǎng)擴(kuò)展。即使是這種設(shè)備,PCIe總線仍然是一個(gè)性能瓶頸,這方面現(xiàn)在以及未來都不太可能有太大的改善。
有一項(xiàng)技術(shù)所要求的帶寬遠(yuǎn)遠(yuǎn)超過了PCIe,那就是固態(tài)盤。目前固態(tài)盤的讀取速度超過500MB/s,大約是一個(gè)SAS通道的65%;對(duì)于SATA驅(qū)動(dòng)器來說,它的峰值性能可以達(dá)到105MB/s,大約是SATA通道的14%,對(duì)于SAS驅(qū)動(dòng)器來說,它的峰值性能可以達(dá)到194MB/s,大約是SAS通道的25%?,F(xiàn)在最底線是,它不會(huì)占用太多的磁盤驅(qū)動(dòng)器用于一個(gè)SAS驅(qū)動(dòng)器。在光纖通道問世早期,也就是1998年,一個(gè)雙光纖通道環(huán)可以支持9個(gè)磁盤驅(qū)動(dòng)器的I/O?,F(xiàn)在,企業(yè)驅(qū)動(dòng)器的2個(gè)6Gb SAS通道可以支持少量SAS驅(qū)動(dòng)器,所以一直沒有太大改善?,F(xiàn)在我們剛剛達(dá)到6Gb SAS技術(shù)水平,大多數(shù)RAID系統(tǒng)仍然使用的是3Gb技術(shù),這意味著使用目前最快的SAS驅(qū)動(dòng)器可以支持大約1.9個(gè)驅(qū)動(dòng)器。