在過去十幾年中,,CPU的性能提升了100倍以上,而傳統(tǒng)的HDD硬盤(Hard Disk Drive)才提升了1.5倍不到,,這種不均衡的計算存儲技術(shù)發(fā)展,極大地影響了IT系統(tǒng)整體性能的提升,。直到固態(tài)硬盤SSD(Solid State Drive)被發(fā)明出來,,其性能有了顛覆性的提升,才解決了存儲的瓶頸問題,。然而,,SSD作為一項新技術(shù),仍然存在一些固有的缺陷,,如何充分發(fā)揮SSD的優(yōu)勢,,是一個值得研究的方向。下面從性能,、持久性,、使用成本等方面對此話題做一些探討。
一,、如何充分發(fā)揮出SSD的性能
首先,,我們來看看傳統(tǒng)HDD的使用方式:
1. 協(xié)議一般都采用SAS,、SATA接口;
2. Linux的IO調(diào)度需要用電梯算法來對IO進行重排以優(yōu)化磁頭的路徑,;
3. 企業(yè)級存儲通常使用Raid卡做數(shù)據(jù)保護,。
在接口協(xié)議方面,隨著SSD的發(fā)明,,NVMe協(xié)議應(yīng)運而生,。相較于SAS、SATA的單隊列機制,,NVMe最多可以有65535個隊列,,并且直接采用PCIe接口,消除了鏈路和協(xié)議瓶頸,。
在控制卡生態(tài)方面,,各大廠商也紛紛推出自己的NVMe控制卡芯片,,有PMC(現(xiàn)屬于Microchip),、LSI、Marvel,、Intel,、慧榮以及國內(nèi)的得瑞等,技術(shù)也已經(jīng)非常成熟,。
在Linux 驅(qū)動和IO協(xié)議棧方面,,也做了相應(yīng)的優(yōu)化,如下圖所示,,NVMe驅(qū)動可以直接繞過那些傳統(tǒng)的,、專為HDD設(shè)計的調(diào)度層,大大縮短了處理路徑,。
到目前為止,,為了充分發(fā)揮SSD的性能,上面提到的三個傳統(tǒng)HDD的問題中前兩個已經(jīng)得到了解決,,然而在企業(yè)級市場上,,基于NVMe的Raid始終沒有太好的方案。傳統(tǒng)企業(yè)最廣泛使用的Raid5/Raid6數(shù)據(jù)保護機制(N+1, N+2),,通常是把數(shù)據(jù)條帶化分片,,然后計算出冗余的Parity Code(奇偶校驗碼),將數(shù)據(jù)存放到多塊硬盤,,寫入新數(shù)據(jù)通常是一種“讀改寫”的機制,。這種機制本身就成為了性能瓶頸,并且“讀改寫”對SSD的使用壽命有很大的損耗,。另外,,因為NVMe協(xié)議把控制卡放到了NVMe盤的內(nèi)部,,IO都由NVMe盤內(nèi)部的DMA模塊來完成,這就給基于NVMe的Raid卡設(shè)計帶來了更大的困難,。目前市場上這類Raid控制卡可用方案也很少,,并且性能上也無法發(fā)揮出NVMe的優(yōu)勢,因此沒能被廣泛使用,。
基于目前這種狀況,,很多企業(yè)級存儲方案仍然在使用SAS/SATA的SSD加傳統(tǒng)的Raid卡,這種方式又會出現(xiàn)前面已經(jīng)解決的兩個問題,,SSD的性能得不到充分發(fā)揮,。
然而,這樣的情況也在發(fā)生改變,,由Lightbits Labs發(fā)明的NVMe over TCP(NVMe/TCP)存儲集群解決方案就對這個問題做了很好的處理,。該解決方案通過自主研發(fā)的一塊數(shù)據(jù)加速卡,采用Erasure Code(糾刪碼)機制可以做到超過1M IOPS的隨機寫性能,,并且可以避免“讀改寫”帶來的使用壽命損耗,。另外,Lightbits提出了Elastic Raid機制,,該機制提供彈性的N+1保護(類似于Raid5),,相較于傳統(tǒng)的Raid5需要熱備盤或者需要及時替換損壞盤,該機制在一塊硬盤發(fā)生損壞之后能自動平衡形成新的保護,。比如一個節(jié)點內(nèi)原先有10塊盤,,采用9+1的保護,當(dāng)某塊盤損壞后,,系統(tǒng)會自動切換成8+1的保護狀態(tài),,并且把原先的數(shù)據(jù)再平衡到新的保護狀態(tài),從而在可維護和數(shù)據(jù)安全性方面實現(xiàn)了大幅提升,。此外,,該數(shù)據(jù)加速卡還能做到100Gb的線速壓縮,顯著提高了可用容量,,進而能大幅降低系統(tǒng)使用成本,。
二、如何提升NVMe盤的持久性
目前使用最廣泛的SSD是基于NAND顆粒的,,而NAND一個與生俱來的問題就是持久性(endurance),。并且隨著技術(shù)的發(fā)展,NAND的密度也越來越高,,最新一代已經(jīng)到了QLC(4bits per Cell),,同時每個Cell可被擦寫的次數(shù)也在減少(1K P/E Cycles)。發(fā)展趨勢如下圖所示,。
另外,,對NAND的使用有一個特點,,就是可擦的最小單位比較大,如下圖所示,,寫的時候可以4KB為單位往里面寫,,但是擦的時候(比如修改原有數(shù)據(jù))卻只能以256KB為顆粒來操作(不同的SSD大小不一樣,但原理都一樣),。這就容易形成空洞而觸發(fā)SSD的GC(Garbage collection)數(shù)據(jù)搬移,,進而導(dǎo)致所謂的寫放大現(xiàn)象,對盤的持久性會產(chǎn)生進一步影響,。
在企業(yè)級存儲中,,通常使用Raid5/6這種“讀改寫”的機制,會對盤的寫操作數(shù)量進一步放大,,一般使用場景下大約是直接寫入方式的2倍損耗,。此外,很多Raid5還會啟動Journal機制,,對盤的使用壽命會進一步損耗,。
最后,對于最新的QLC來說,,使用中還需要考慮另一個因素——Indirection Unit (IU),。比如有些QLC盤使用 16KB的IU,,如果要寫入較小的IO,,也會觸發(fā)內(nèi)部“讀改寫”,對使用壽命又多一重損傷,。
由此可以看出,,基于NAND的SSD還是比較嬌弱的。不過,,只要能正確地使用,,還是可以避免這些問題。比如以某常用的QLC盤為例,,通過如下兩組關(guān)于性能和持久性相關(guān)的參數(shù)可以看出,,在持久性上順序?qū)懯请S機寫的5倍,而性能更是26倍:
l 順序?qū)?nbsp;0.9 DWPD, 隨機4K寫0.18 DWPD,;
l 順序?qū)?nbsp;1600 MB/s, 隨機4K寫15K IOPS(60MB/s),。
通過上面的分析發(fā)現(xiàn),能把盤使用在一個最佳的工作狀態(tài)至關(guān)重要,。好消息是目前一些先進的解決方案,,比如Lightbits的全NVMe集群存儲解決方案就可以解決這個問題。該方案通過把隨機IO變成順序IO的方式,,以及獨有的Elastic Raid技術(shù)避免了Raid“讀改寫”的弊端,,從而能大幅提高盤的持久性及隨機性能,。
三、如何降低使用成本
由于SSD相對于HDD而言是一項新技術(shù),,再加上產(chǎn)業(yè)的生產(chǎn)規(guī)模和需求量的矛盾,,目前價格相比HDD仍然偏高。那么如何降低SSD使用成本就變得非常重要,。
降低使用成本最重要的一環(huán)就是要把SSD充分使用起來,,無論是容量還是性能。不過就目前而言,,大多數(shù)NVMe盤都是直接插在應(yīng)用服務(wù)器上使用,,而這種方式非常容易造成大量的容量和性能浪費,因為只有這臺服務(wù)器上的應(yīng)用才能使用它,。根據(jù)調(diào)研發(fā)現(xiàn),,使用這種DAS(Direct Attached Storage,直連式存儲)方式,,SSD的利用率大概在15%-25%,。
針對這個問題比較好的解決方法是近幾年來市場上被廣泛接受的“解耦合”架構(gòu)。解耦合之后,,把所有的NVMe盤變成一個大的存儲資源池,,應(yīng)用服務(wù)器用多少就拿多少,只要控制總數(shù)量夠用就行,,可以非常容易地將利用率推到80%,。另外,因為資源集中起來,,可以有更多的手段和方法用于降低成本,,比如壓縮。例如,,平均應(yīng)用數(shù)據(jù)壓縮比在2:1,,就相當(dāng)于多了一倍的可用容量,也相當(dāng)于每GB價格降了一半,。當(dāng)然壓縮本身也會帶來一些問題,,比如壓縮本身比較費CPU,另外很多存儲解決方案在開啟壓縮之后性能就會大大降低,。
針對壓縮方面的問題,,Lightbits的NVMe/TCP集群存儲解決方案可以通過存儲加速卡來予以解決。該卡可以做到100Gb的線速壓縮能力,,并且不消耗CPU,,不增加延遲。利用這樣的解決方案,壓縮功能幾乎沒有額外的成本,。此外,,正如前面在介紹提高持久性時所提到的,Lightbits解決方案能提高使用壽命并支持使用QLC盤,,從整個使用周期來看,,在使用成本方面也會有非常大的降低??偟膩碚f,,通過解耦合提高使用效率,壓縮提高可用容量,,優(yōu)化提高使用壽命或啟用QLC,,經(jīng)過這樣的重重提升,SSD的使用成本可以得到極大的控制,。
以上從性能,、持久性、使用成本三個方面分析了如何用好SSD盤,,可以看到要用好NVMe SSD盤還是不容易的,。因此,對一般用戶而言,,選擇一個好的存儲解決方案就至關(guān)重要,。為此,以色列創(chuàng)新公司Lightbits以充分發(fā)揮NVMe盤的最大價值為使命,,發(fā)明了NVMe/TCP協(xié)議,,并推出了新一代的全NVMe集群存儲解決方案,可以幫助使用者輕松地將SSD盤用好,。