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