關(guān)于固態(tài)存儲(chǔ):那些不得不說的事兒

責(zé)任編輯:editor008

2014-11-17 09:54:09

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

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

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

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

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

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

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

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

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

從存儲(chǔ)瓶頸入手

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

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

基于陣列的閃存

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

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

服務(wù)器端的閃存

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

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

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

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

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

是否分層

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

閃存緩存

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

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

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

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

MLC和SLC之爭(zhēng):還那么重要么

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

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

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

多大的閃存才夠用

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

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

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

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

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

D1Net評(píng)論:

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

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

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