傳統(tǒng)應(yīng)用模式下閃存性能瓶頸
如果你只是將閃存當(dāng)一種新的媒質(zhì),如同磁帶和磁盤一樣的媒質(zhì),如果在應(yīng)用過程中當(dāng)作之前媒質(zhì)的使用方式,那么實際上存儲技術(shù)就只是前進(jìn)了一小步。
閃存本身消除了傳統(tǒng)磁盤由于緩慢旋轉(zhuǎn)所造成的部分延遲,但卻并沒有解決從CPU獲取關(guān)鍵數(shù)據(jù)過程所造成的延遲。
使用錯誤的存儲通道將關(guān)鍵過程數(shù)據(jù)存儲在遠(yuǎn)離服務(wù)器CPU的閃存陣列中,導(dǎo)致應(yīng)用程序和數(shù)據(jù)庫請求超時。
這樣只能達(dá)到很小的性能增益效果,除了要采購更多的硬件之外,企業(yè)還必須增加復(fù)雜和昂貴的存儲區(qū)域網(wǎng)絡(luò)基礎(chǔ)設(shè)施,包括主機(jī)總線適配器、交換機(jī)和單片陣列。
最為重要的是,這些架構(gòu)仍沿用的是傳統(tǒng)的存儲架構(gòu),還有RAID、SATA/SAS控制器-所有已優(yōu)化的傳統(tǒng)旋轉(zhuǎn)磁盤,但沒有NAND閃存芯片。圖2顯示的是傳統(tǒng)的存儲層。
全新的PCIe接口將讓閃存發(fā)揮巨大潛力
越來越多的固態(tài)硬盤供應(yīng)商已經(jīng)認(rèn)識到這點,實現(xiàn)SSD性能提高的關(guān)鍵因素是將閃存靠近CPU。他們正研發(fā)使用主機(jī)PCIe端口的設(shè)備,以消除目前翻譯層的局限。
然而,現(xiàn)在一些設(shè)備的基礎(chǔ)性能是通過將閃存放置在最初是為磁盤設(shè)計的SATA或SAS控制器下所獲得的,這些協(xié)議和數(shù)據(jù)處理機(jī)制,并不適用于閃存,也沒有對閃存做任何的優(yōu)化,這就好像把一臺高性能的汽車引擎安裝在一輛已經(jīng)有25個年頭的老爺車上。
同樣的事情還發(fā)生在RAID控制器上,其最初的設(shè)計目的是為了聚合多個磁盤的性能,以避免單個磁盤故障所造成的數(shù)據(jù)丟失。對于傳統(tǒng)的旋轉(zhuǎn)媒質(zhì)而言,RAID機(jī)制性能優(yōu)越。但是,但這些機(jī)制并不能與NAND閃存相適應(yīng),因為其造成了太多的延遲。
最好的方法就是將閃存放置在服務(wù)器內(nèi)部,并采用PCIe接入,拋開傳統(tǒng)的存儲技術(shù),使用一個新的、劃時代的架構(gòu)以給NAND閃存和主機(jī)內(nèi)存提供一個最直接、最方便以及最低延遲的通道。
請記住,CPU從來沒有從存儲系統(tǒng)中讀取任何數(shù)據(jù),這一切都必須首先通過系統(tǒng)內(nèi)存。在一過程中,主機(jī)PCIe閃存設(shè)備像磁盤一樣存儲應(yīng)用程序或數(shù)據(jù)庫數(shù)據(jù),但實際上,它們通過直接內(nèi)存訪問或DMA向系統(tǒng)內(nèi)存提供數(shù)據(jù)。這樣能有效保證數(shù)據(jù)存儲與CPU處理處于最低延遲狀態(tài)。
通過讓服務(wù)器CPU不受限制地訪問閃存,主機(jī)PCIe可將應(yīng)用程序和數(shù)據(jù)庫的性能提升10倍以上。這種方法和其他固態(tài)產(chǎn)品之間最大的區(qū)別是明顯改善 了應(yīng)用程序的吞吐量,而不只是媒質(zhì)本身的性能。沒有傳統(tǒng)存儲協(xié)議的服務(wù)器數(shù)據(jù)位置將使應(yīng)用程序能夠充分利用服務(wù)器的CPU,而不是強迫它們等待服務(wù)器的訪 問速度。如圖3所示。
圖3:主機(jī)PCIe NAND閃存給應(yīng)用程序和數(shù)據(jù)庫提供更低的延遲
將閃存作為磁盤或高速緩存
主機(jī)PCIe NAND閃存設(shè)備可用作磁盤驅(qū)動器或高速緩存設(shè)備。與傳統(tǒng)的基于磁盤的系統(tǒng)相比,都有明顯的性能優(yōu)勢。
在磁盤模式下,NAND閃存PCIe設(shè)備可像傳統(tǒng)磁盤一樣存儲數(shù)據(jù),這是將整個數(shù)據(jù)集放置在一個或多個PCIe設(shè)備上的數(shù)據(jù)庫的最佳選擇。NAND 閃存PCIe設(shè)備可以聚合主機(jī)操作系統(tǒng)軟件或內(nèi)置卷管理功能,如Oracle的自動存儲管理(ASM)。NAND閃存PCIe設(shè)備也可作為本地的大容量存 儲空間使用,其可在單個服務(wù)器內(nèi)存儲超過10TB的數(shù)據(jù),充足的容量幾乎涵蓋了大部分市場。即使整個數(shù)據(jù)集不能存儲在閃存中,大多數(shù)的數(shù)據(jù)庫允許將諸如索 引或“熱”數(shù)據(jù)之類的活躍文件以手動的方式放置在一個特定的位置進(jìn)行存儲。
在緩存模式下,PCIe NAND閃存可在不改變現(xiàn)有的外部存儲基礎(chǔ)設(shè)施前提下,緩存頻繁存取的數(shù)據(jù)。對已部署的基于子系統(tǒng)的數(shù)據(jù)保護(hù)和恢復(fù)機(jī)制而言,這是最適合的選擇。
緩存每個服務(wù)器內(nèi)的本地頻繁存取數(shù)據(jù)以保證活躍數(shù)據(jù)的最大性能,并同時保留現(xiàn)有的數(shù)據(jù)存儲。這種組合對于I/O密集型裸機(jī)或虛擬環(huán)境應(yīng)用來說,是最 佳選擇。在許多情況下,虛擬環(huán)境常常遭遇I/O性能不足,或者以極高的成本才能獲得高I/O。在PCIe設(shè)備上緩存虛擬機(jī)頻繁訪問的數(shù)據(jù)可以緩解這種痛 苦。
閃存技術(shù)為提升企業(yè)應(yīng)用程序和數(shù)據(jù)庫速度帶來了很多的好處。但如果只是將閃存當(dāng)作一種新的磁盤驅(qū)動器的話,企業(yè)將不能發(fā)揮其潛在的性能。采用主機(jī)PCIe的方式,放棄傳統(tǒng)的存儲協(xié)議和關(guān)鍵位置過程數(shù)據(jù)以更貼近CPU,以最大限度減少延遲,實現(xiàn)閃存對企業(yè)的承諾。