選擇閃存存儲的理由并不總是顯而易見的

責(zé)任編輯:editor03

2014-11-14 09:44:46

摘自:中關(guān)村在線

固態(tài)存儲所展現(xiàn)出的高性能對于用戶的應(yīng)用程序來說無疑是很有吸引力的,不過你仍然得判斷將其部署在何處、所需要的具體容量以及其使用模式。

固態(tài)存儲所展現(xiàn)出的高性能對于用戶的應(yīng)用程序來說無疑是很有吸引力的,不過你仍然得判斷將其部署在何處、所需要的具體容量以及其使用模式。

閃存存儲可以被視為是解決應(yīng)用程序性能問題的一條捷徑,不過決定購買何種類型的閃存,以及用何種方式在哪里部署,這些都不是簡單的問題。

你不能靠著照搬某一套理論或數(shù)據(jù)統(tǒng)計表來判斷選擇什么類型的固態(tài)存儲,部署位置以及所需的具體容量。這關(guān)系到對實際環(huán)境的具體分析,明確你所希望藉由閃存存儲解決的問題。尤其是,你必須判斷哪里才是性能瓶頸,實際工作負(fù)載如何,以及需要多大的性能改進(jìn)空間。此外,你同時還得兼顧到現(xiàn)實環(huán)境中的各項限制因素。

選擇閃存存儲的理由并不總是顯而易見的

想象一下你擁有一張矩陣圖,在一個坐標(biāo)軸上顯示出具體的應(yīng)用個案,比如虛擬桌面基礎(chǔ)架構(gòu)(VDI)、服務(wù)器虛擬化、大數(shù)據(jù)分析等等,并在另一個上面標(biāo)識出理想的閃存選項,這實在非常美妙。不過這卻是近乎不可能的事情,因為即便在同一應(yīng)用環(huán)境下也有太多的變量,并且這些變量之間又會互相影響。

舉例來看,存儲瓶頸的具體位置通常決定了在什么地方部署閃存技術(shù)(例如在主機(jī)端或是磁盤陣列端),但存儲瓶頸和具體的使用案例關(guān)系并不大,但卻和現(xiàn)有的存儲基礎(chǔ)架構(gòu)戚戚相關(guān)。不管怎樣,部署位置的判斷可以影響到所使用的閃存類型(固態(tài)存儲驅(qū)動器或是閃存插卡,如PCIe的插卡),以及將其部署為緩存或單獨的存儲層。閃存的部署類型又決定了所需的容量(分層模式會比閃存模式需要更多容量),而成本和預(yù)算又會對容量產(chǎn)生限制。

而諸如使用哪一種閃存存儲技術(shù)的問題在當(dāng)前已經(jīng)不再像幾年前那樣重要了。不過其它的因素,比如數(shù)據(jù)風(fēng)險,需要高可用性或快速的數(shù)據(jù)增長量或許會影響到所有的使用場合。因此除了關(guān)注于使用場合和數(shù)據(jù)參數(shù)表,判斷閃存存儲更好的選擇方式是著眼于當(dāng)前的實際環(huán)境,這是首先必須清晰明確的問題。

從存儲瓶頸入手

固態(tài)存儲通常通過提升服務(wù)器的數(shù)據(jù)處理速度來解決應(yīng)用程序的性能問題。從本質(zhì)上看,在存儲基礎(chǔ)架構(gòu)的某一環(huán)節(jié)必定會存在著瓶頸,而分析找到瓶頸所在就是確定解決方案的第一步。

如果閃存能夠成為一種準(zhǔn)確解決方案,下述各項資源的一項或者數(shù)項通常不會顯示出很高的使用率:主機(jī)處理器、主機(jī)內(nèi)存、存儲系統(tǒng)的處理器或網(wǎng)絡(luò)帶寬。要找出哪一項資源較為緊張需要在一段時間內(nèi)監(jiān)控其使用率,并將其和應(yīng)用程序的性能進(jìn)行比較。假如主機(jī)處理器近乎滿負(fù)荷運作,那么存儲通常不是瓶頸,應(yīng)當(dāng)著力解決計算資源和應(yīng)用程序體系架構(gòu)方面的問題。但是假如在應(yīng)用程序運行很慢的一段時間內(nèi)主機(jī)處理器利用率很低(假設(shè)說低于40%),這就很好地反映出存儲基礎(chǔ)架構(gòu)的某處存在著瓶頸。

基于陣列的閃存

如果一臺存儲陣列的控制器一直處于“游手好閑”的狀態(tài),這就表明存儲系統(tǒng)正在等待磁盤驅(qū)動器(存儲介質(zhì)固有的問題),因此這時在存儲陣列中增加固態(tài)存儲便是一種有用的方案。不過,假如陣列并沒有設(shè)計支持閃存,那么增加固態(tài)存儲或許沒什么效果,因為這時裝滿固態(tài)存儲的驅(qū)動器托架可能會將存儲控制器變?yōu)樾碌钠款i。

同樣地,如果控制器利用率已近飽和,將固態(tài)存儲盤放入存儲系統(tǒng)也沒有什么用處。假如網(wǎng)絡(luò)并不是問題,那么更好的解決方案應(yīng)當(dāng)是投資購買另一臺支持固態(tài)存儲盤的存儲系統(tǒng),比如混合陣列或全閃存陣列。但假如網(wǎng)絡(luò)帶寬有局限性,或者你無法購買另一臺存儲系統(tǒng),那么另一種可供選擇的方案是在主機(jī)服務(wù)器上安裝閃存存儲。

第2頁:服務(wù)器端的閃存

服務(wù)器端的閃存

主機(jī)服務(wù)器端的閃存可以是驅(qū)動器形式的固態(tài)存儲盤(SATA或SAS接口)、PCIe的閃存卡或者甚至是通過雙列直插式存儲模塊(DIMM)和存儲總線相連的閃存。這些方式都使得閃存的性能更接近應(yīng)用程序的處理器而非網(wǎng)絡(luò)附加的存儲陣列,從而通過降低延遲提供了更好的存儲性能。照以往經(jīng)驗看,固態(tài)存儲盤是這三種形式中最為經(jīng)濟(jì)的,PCIe卡提供比固態(tài)存儲更好的性能,不過通常來講每GB的開銷也更大。不過現(xiàn)在將閃存放置于DIMM中的新形式提供了另一種低延遲的方式,這或許會開啟一些全新的應(yīng)用模式。

假如一款應(yīng)用程序可以從閃存緩存或服務(wù)器的閃存層中獲取數(shù)據(jù),就不必再通過網(wǎng)絡(luò)來索取數(shù)據(jù)。

第一款DIMM形式的閃存驅(qū)動器邏輯上并沒有連接到內(nèi)存總線,而是連入主板上的閑置SATA端口。這些產(chǎn)品的主要賣點在于其容量,由于許多小型的刀片服務(wù)器只有為數(shù)極少的SATA驅(qū)動器槽位,但卻會有未經(jīng)使用的內(nèi)存插槽。而近來,開始出現(xiàn)閃存模塊邏輯和內(nèi)存總線相連,提供相比PCIe閃存更低的延遲,但仍然利用空閑的DIMM插槽。這種“內(nèi)存通道”技術(shù)剛剛起步,不過配以非易失性DIMM(NVDIMM)技術(shù),代表著另一種令人振奮的服務(wù)器端閃存應(yīng)用。

網(wǎng)絡(luò)傳輸

將固態(tài)存儲部署在服務(wù)器端而非網(wǎng)絡(luò)附加存儲系統(tǒng)端還有一些好處,即降低SAN網(wǎng)絡(luò)傳輸。假如一款應(yīng)用程序可以從閃存緩存或服務(wù)器的閃存層中獲取數(shù)據(jù),就不必再通過網(wǎng)絡(luò)來索取數(shù)據(jù)。從而降低共享存儲陣列的工作負(fù)載并將更多資源釋放支持其他的服務(wù)器。因此網(wǎng)絡(luò)傳輸量的降低使得服務(wù)器端閃存相比購買另一臺共享存儲系統(tǒng)成為一種更佳選擇。

是否分層

一旦決定了部署的位置,存儲類型的選擇(固態(tài)存儲實際使用方式)也需要被確定下來。除了全閃存陣列,閃存的實現(xiàn)方式關(guān)鍵體現(xiàn)在將最適合的數(shù)據(jù)在其被使用之前放入閃存中,并在后臺持續(xù)保持這種狀態(tài)。從本質(zhì)上看,分層技術(shù)為最關(guān)鍵的數(shù)據(jù)集和數(shù)據(jù)子集創(chuàng)建了一塊高速存儲區(qū)域,比如數(shù)據(jù)庫索引或變更日志,并基于業(yè)已選定策略填滿閃存。分層通常比緩存需要更大的閃存容量,因此如果你的預(yù)算或物理空間有限時這往往不是最佳選擇。緩存技術(shù)或許是這種場景下更好的選擇,不過仍需個案分析。

閃存緩存

緩存軟件通常包含在存儲系統(tǒng)的特性之中,這種部署方式可以最大化傳統(tǒng)存儲陣列中的閃存容量。如果這種功能可用的話,其可以發(fā)揮很大的作用,因為對于使用者而言它完全透明,而且通常只需很少的配置工作。緩存技術(shù)同時還適用于安裝在主機(jī)服務(wù)器端的PCIe閃存卡。

閃存技術(shù)的另一種使用場景還可以是一款獨立的軟件,運用于加速某一臺特定服務(wù)器上的應(yīng)用。這樣的解決方案提供了更大的靈活性,可以使用任何供應(yīng)商的閃存產(chǎn)品,并支持不同的閃存形式(PCIe、固態(tài)存儲盤或DIMM)。有一些甚至能夠支持連接在一起的閃存卷,從而使得新加入的固態(tài)存儲盤透明無縫地整合到現(xiàn)有部署環(huán)境之中。

當(dāng)然這其中也有一些潛在的風(fēng)險。相比分層技術(shù)而言,緩存的性能可能更難以預(yù)計,而且緩存中數(shù)據(jù)的高流動性可能也會影響到固態(tài)存儲的使用壽命。寫緩存同樣會有一些風(fēng)險。

緩存解決方案同樣可以適用于服務(wù)器虛擬化、VDI或數(shù)據(jù)庫等解決方案,利用應(yīng)用程序特定數(shù)據(jù)類型和處理流程的知識庫亦可以提升緩存的性能。不過所需要的閃存容量或許是一項重要的決定性因素,即便在類似的使用環(huán)境下也可能產(chǎn)生很大的差別。

MLC和SLC之爭:還那么重要么

當(dāng)閃存第一次登上舞臺時,一項關(guān)鍵的采購指標(biāo)是打算采用哪種閃存技術(shù)。單層式存儲(SLC)更為可靠而快速,但同時也更為昂貴;多層式存儲(MLC)的使用壽命較短,性能也較慢,但每GB單價則低廉很多;企業(yè)級多層式存儲(eMLC)則介于兩者之間。

然而隨著技術(shù),尤其是閃存控制器技術(shù)的發(fā)展,使用哪一類閃存技術(shù)的問題變得不再重要。

故障糾正和其它處理流程提升了可靠性,甚至使得低成本的MLC現(xiàn)在也能夠用于企業(yè)級存儲產(chǎn)品了。有一些則設(shè)計使用SLC甚至DRAM作為寫緩存,來降低對MLC介質(zhì)的影響。最主要的是現(xiàn)在許多有關(guān)采取何種技術(shù)的決定已經(jīng)留給了廠商來決定,由他們來判斷在產(chǎn)品中選擇何種類型的閃存技術(shù)。

多大的閃存才夠用

分層技術(shù)要求要有足夠的閃存來保持完整的應(yīng)用程序,或者至少是最關(guān)鍵的數(shù)據(jù)集合,因而決定這種方式要求的容量較為簡單。不過緩存技術(shù)所使用的容量則難以估量。以經(jīng)驗法則開始也不錯,不過實際環(huán)境測試更有助于判斷閃存容量是否足夠,又不會被浪費。一家閃存和緩存軟件的供應(yīng)商舉過一個十分有意思的例子,客戶是一家大型的電信企業(yè),他們運行著幾個超大型數(shù)據(jù)中心,支持多個VMware集群和成百上千的虛擬機(jī)。即便是在這種定義清晰的虛擬機(jī)環(huán)境中,這家企業(yè)仍然不斷嘗試測試新的緩存部署,先是將5%的主要數(shù)據(jù)遷移到緩存,然后是10%,最后則高達(dá)20%。從中我們可以看出:先從經(jīng)驗主義出發(fā)推測緩存容量,而后再根據(jù)實際環(huán)境中的監(jiān)控進(jìn)行不斷調(diào)整。

數(shù)據(jù)增長量、風(fēng)險和高可用性

在閃存部署決定過程中,還有另外一些和性能無關(guān)的限制因素。其中一項就是現(xiàn)有基礎(chǔ)架構(gòu)所產(chǎn)生的瓶頸需要應(yīng)用閃存加以解決。另一項是風(fēng)險,部分寫緩存模式可能在數(shù)據(jù)安全寫入主存儲區(qū)域之前產(chǎn)生風(fēng)險。在考慮具體的閃存方案之前,可以運用“分散寫閃存”之類的技術(shù)來解決這些風(fēng)險。

如果需要高可用性,那么就意味著閃存上的數(shù)據(jù)必需被共享,可以考慮使用SAN陣列或閃存緩存設(shè)備。當(dāng)然,部分服務(wù)器端的閃存解決方案也可以利用虛擬化軟件來支持故障轉(zhuǎn)移,或者支持本地閃存資源的共享。

數(shù)據(jù)增長預(yù)期也是一項限制因素,可能會排除掉服務(wù)器端的解決方案。在這種情況下,系統(tǒng)必須能夠有足夠的容量并在擴(kuò)展升級的過程中不會影響到系統(tǒng)的在線時間。

打破系統(tǒng)瓶頸

在IT環(huán)境中部署閃存技術(shù)往往受存儲的性能瓶頸所驅(qū)動。找出瓶頸所在便能夠回答第一個問題—閃存的應(yīng)用從何著手?當(dāng)確定了這一點之后,成本、容量、風(fēng)險以及采用緩存還是分層也應(yīng)加以考慮。不過,這些因素常是相互關(guān)聯(lián)的,應(yīng)當(dāng)通盤考慮。閃存部署中的容量問題則往往需要在現(xiàn)實環(huán)境中測試后得出。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號