目前,固態(tài)存儲的應(yīng)用正在日漸深入,對于用戶而言,固態(tài)存儲所展現(xiàn)出的高性能對于用戶的應(yīng)用程序來說無疑是很有吸引力的,不過你仍然得判斷將其部署在何處、所需要的具體容量以及其使用模式。
目前,固態(tài)存儲的應(yīng)用正在日漸深入,對于用戶而言,固態(tài)存儲所展現(xiàn)出的高性能對于用戶的應(yīng)用程序來說無疑是很有吸引力的,不過你仍然得判斷將其部署在何處、所需要的具體容量以及其使用模式。
閃存存儲可以被視為是解決應(yīng)用程序性能問題的一條捷徑,不過決定購買何種類型的閃存,以及用何種方式在哪里部署,這些都不是簡單的問題。具體將有以下幾點(diǎn)需求:
第一、選擇閃存存儲的理由并不總是顯而易見的
想象一下你擁有一張矩陣圖,在一個(gè)坐標(biāo)軸上顯示出具體的應(yīng)用個(gè)案,比如虛擬桌面基礎(chǔ)架構(gòu)(VDI)、服務(wù)器虛擬化、大數(shù)據(jù)分析等等,并在另一個(gè)上面標(biāo)識出理想的閃存選項(xiàng),這實(shí)在非常美妙。不過這卻是近乎不可能的事情,因?yàn)榧幢阍谕粦?yīng)用環(huán)境下也有太多的變量,并且這些變量之間又會互相影響。
舉例來看,存儲瓶頸的具體位置通常決定了在什么地方部署閃存技術(shù)(例如在主機(jī)端或是磁盤陣列端),但存儲瓶頸和具體的使用案例關(guān)系并不大,但卻和現(xiàn)有的存儲基礎(chǔ)架構(gòu)戚戚相關(guān)。不管怎樣,部署位置的判斷可以影響到所使用的閃存類型(固態(tài)存儲驅(qū)動器或是閃存插卡,如PCIe的插卡),以及將其部署為緩存或單獨(dú)的存儲層。閃存的部署類型又決定了所需的容量(分層模式會比閃存模式需要更多容量),而成本和預(yù)算又會對容量產(chǎn)生限制。
而諸如使用哪一種閃存存儲技術(shù)的問題在當(dāng)前已經(jīng)不再像幾年前那樣重要了。不過其它的因素,比如數(shù)據(jù)風(fēng)險(xiǎn),需要高可用性或快速的數(shù)據(jù)增長量或許會影響到所有的使用場合。因此除了關(guān)注于使用場合和數(shù)據(jù)參數(shù)表,判斷閃存存儲更好的選擇方式是著眼于當(dāng)前的實(shí)際環(huán)境,這是首先必須清晰明確的問題。
第二、基于陣列的閃存
如果一臺存儲陣列的控制器一直處于“游手好閑”的狀態(tài),這就表明存儲系統(tǒng)正在等待磁盤驅(qū)動器(存儲介質(zhì)固有的問題),因此這時(shí)在存儲陣列中增加固態(tài)存儲便是一種有用的方案。不過,假如陣列并沒有設(shè)計(jì)支持閃存,那么增加固態(tài)存儲或許沒什么效果,因?yàn)檫@時(shí)裝滿固態(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ù)器上安裝閃存存儲。
第三、服務(wù)器端的閃存
主機(jī)服務(wù)器端的閃存可以是驅(qū)動器形式的固態(tài)存儲盤(SATA或SAS接口)、PCIe的閃存卡或者甚至是通過雙列直插式存儲模塊(DIMM)和存儲總線相連的閃存。這些方式都使得閃存的性能更接近應(yīng)用程序的處理器而非網(wǎng)絡(luò)附加的存儲陣列,從而通過降低延遲提供了更好的存儲性能。照以往經(jīng)驗(yàn)看,固態(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)品的主要賣點(diǎ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)存儲通常通過提升服務(wù)器的數(shù)據(jù)處理速度來解決應(yīng)用程序的性能問題。從本質(zhì)上看,在存儲基礎(chǔ)架構(gòu)的某一環(huán)節(jié)必定會存在著瓶頸,而分析找到瓶頸所在就是確定解決方案的第一步。
如果閃存能夠成為一種準(zhǔn)確解決方案,下述各項(xiàng)資源的一項(xiàng)或者數(shù)項(xiàng)通常不會顯示出很高的使用率:主機(jī)處理器、主機(jī)內(nèi)存、存儲系統(tǒng)的處理器或網(wǎng)絡(luò)帶寬。要找出哪一項(xiàng)資源較為緊張需要在一段時(shí)間內(nèi)監(jiān)控其使用率,并將其和應(yīng)用程序的性能進(jìn)行比較。假如主機(jī)處理器近乎滿負(fù)荷運(yùn)作,那么存儲通常不是瓶頸,應(yīng)當(dāng)著力解決計(jì)算資源和應(yīng)用程序體系架構(gòu)方面的問題。但是假如在應(yīng)用程序運(yùn)行很慢的一段時(shí)間內(nèi)主機(jī)處理器利用率很低(假設(shè)說低于40%),這就很好地反映出存儲基礎(chǔ)架構(gòu)的某處存在著瓶頸。
第六、是否分層
一旦決定了部署的位置,存儲類型的選擇(固態(tài)存儲實(shí)際使用方式)也需要被確定下來。除了全閃存陣列,閃存的實(shí)現(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í)這往往不是最佳選擇。緩存技術(shù)或許是這種場景下更好的選擇,不過仍需個(gè)案分析。
第七、MLC和SLC之爭:還那么重要么
當(dāng)閃存第一次登上舞臺時(shí),一項(xiàng)關(guān)鍵的采購指標(biāo)是打算采用哪種閃存技術(shù)。單層式存儲(SLC)更為可靠而快速,但同時(shí)也更為昂貴;多層式存儲(MLC)的使用壽命較短,性能也較慢,但每GB單價(jià)則低廉很多;企業(yè)級多層式存儲(eMLC)則介于兩者之間。
然而隨著技術(shù),尤其是閃存控制器技術(shù)的發(fā)展,使用哪一類閃存技術(shù)的問題變得不再重要。
故障糾正和其它處理流程提升了可靠性,甚至使得低成本的MLC現(xiàn)在也能夠用于企業(yè)級存儲產(chǎn)品了。有一些則設(shè)計(jì)使用SLC甚至DRAM作為寫緩存,來降低對MLC介質(zhì)的影響。最主要的是現(xiàn)在許多有關(guān)采取何種技術(shù)的決定已經(jīng)留給了廠商來決定,由他們來判斷在產(chǎn)品中選擇何種類型的閃存技術(shù)。
第八、多大的閃存才夠用
分層技術(shù)要求要有足夠的閃存來保持完整的應(yīng)用程序,或者至少是最關(guān)鍵的數(shù)據(jù)集合,因而決定這種方式要求的容量較為簡單。不過緩存技術(shù)所使用的容量則難以估量。以經(jīng)驗(yàn)法則開始也不錯(cuò),不過實(shí)際環(huán)境測試更有助于判斷閃存容量是否足夠,又不會被浪費(fèi)。一家閃存和緩存軟件的供應(yīng)商舉過一個(gè)十分有意思的例子,客戶是一家大型的電信企業(yè),他們運(yùn)行著幾個(gè)超大型數(shù)據(jù)中心,支持多個(gè)VMware集群和成百上千的虛擬機(jī)。即便是在這種定義清晰的虛擬機(jī)環(huán)境中,這家企業(yè)仍然不斷嘗試測試新的緩存部署,先是將5%的主要數(shù)據(jù)遷移到緩存,然后是10%,最后則高達(dá)20%。從中我們可以看出:先從經(jīng)驗(yàn)主義出發(fā)推測緩存容量,而后再根據(jù)實(shí)際環(huán)境中的監(jiān)控進(jìn)行不斷調(diào)整。
第九、閃存緩存
緩存軟件通常包含在存儲系統(tǒng)的特性之中,這種部署方式可以最大化傳統(tǒng)存儲陣列中的閃存容量。如果這種功能可用的話,其可以發(fā)揮很大的作用,因?yàn)閷τ谑褂谜叨运耆该?,而且通常只需很少的配置工作。緩存技術(shù)同時(shí)還適用于安裝在主機(jī)服務(wù)器端的PCIe閃存卡。
閃存技術(shù)的另一種使用場景還可以是一款獨(dú)立的軟件,運(yùn)用于加速某一臺特定服務(wù)器上的應(yīng)用。這樣的解決方案提供了更大的靈活性,可以使用任何供應(yīng)商的閃存產(chǎn)品,并支持不同的閃存形式(PCIe、固態(tài)存儲盤或DIMM)。有一些甚至能夠支持連接在一起的閃存卷,從而使得新加入的固態(tài)存儲盤透明無縫地整合到現(xiàn)有部署環(huán)境之中。
當(dāng)然這其中也有一些潛在的風(fēng)險(xiǎn)。相比分層技術(shù)而言,緩存的性能可能更難以預(yù)計(jì),而且緩存中數(shù)據(jù)的高流動性可能也會影響到固態(tài)存儲的使用壽命。寫緩存同樣會有一些風(fēng)險(xiǎn)。
緩存解決方案同樣可以適用于服務(wù)器虛擬化、VDI或數(shù)據(jù)庫等解決方案,利用應(yīng)用程序特定數(shù)據(jù)類型和處理流程的知識庫亦可以提升緩存的性能。不過所需要的閃存容量或許是一項(xiàng)重要的決定性因素,即便在類似的使用環(huán)境下也可能產(chǎn)生很大的差別。
第十、數(shù)據(jù)增長量、風(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ù)安全寫入主存儲區(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ù)增長預(yù)期也是一項(xiàng)限制因素,可能會排除掉服務(wù)器端的解決方案。在這種情況下,系統(tǒng)必須能夠有足夠的容量并在擴(kuò)展升級的過程中不會影響到系統(tǒng)的在線時(shí)間。
固態(tài)存儲的應(yīng)用,需要打破系統(tǒng)瓶頸,在IT環(huán)境中部署閃存技術(shù)往往受存儲的性能瓶頸所驅(qū)動。找出瓶頸所在便能夠回答第一個(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)境中測試后得出。
免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。