《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 解決方案 > 如何用好你的SSD

如何用好你的SSD

2021-03-31
作者:陳定寶,Lightbits Labs解決方案架構(gòu)師
來(lái)源:Lightbits

在過(guò)去十幾年中,CPU的性能提升了100倍以上,而傳統(tǒng)的HDD硬盤(pán)(Hard Disk Drive)才提升了1.5倍不到,這種不均衡的計(jì)算存儲(chǔ)技術(shù)發(fā)展,極大地影響了IT系統(tǒng)整體性能的提升。直到固態(tài)硬盤(pán)SSD(Solid State Drive)被發(fā)明出來(lái),其性能有了顛覆性的提升,才解決了存儲(chǔ)的瓶頸問(wèn)題。然而,SSD作為一項(xiàng)新技術(shù),仍然存在一些固有的缺陷,如何充分發(fā)揮SSD的優(yōu)勢(shì),是一個(gè)值得研究的方向。下面從性能、持久性、使用成本等方面對(duì)此話題做一些探討。

一、如何充分發(fā)揮出SSD的性能

首先,我們來(lái)看看傳統(tǒng)HDD的使用方式:

1. 協(xié)議一般都采用SAS、SATA接口;

2. Linux的IO調(diào)度需要用電梯算法來(lái)對(duì)IO進(jìn)行重排以優(yōu)化磁頭的路徑;

3. 企業(yè)級(jí)存儲(chǔ)通常使用Raid卡做數(shù)據(jù)保護(hù)。

接口協(xié)議方面,隨著SSD的發(fā)明,NVMe協(xié)議應(yīng)運(yùn)而生。相較于SAS、SATA的單隊(duì)列機(jī)制,NVMe最多可以有65535個(gè)隊(duì)列,并且直接采用PCIe接口,消除了鏈路和協(xié)議瓶頸。

在控制卡生態(tài)方面,各大廠商也紛紛推出自己的NVMe控制卡芯片,有PMC(現(xiàn)屬于Microchip)、LSI、Marvel、Intel、慧榮以及國(guó)內(nèi)的得瑞等,技術(shù)也已經(jīng)非常成熟。

在Linux 驅(qū)動(dòng)和IO協(xié)議棧方面,也做了相應(yīng)的優(yōu)化,如下圖所示,NVMe驅(qū)動(dòng)可以直接繞過(guò)那些傳統(tǒng)的、專(zhuān)為HDD設(shè)計(jì)的調(diào)度層,大大縮短了處理路徑。

 

圖片10.png

到目前為止,為了充分發(fā)揮SSD的性能,上面提到的三個(gè)傳統(tǒng)HDD的問(wèn)題中前兩個(gè)已經(jīng)得到了解決,然而在企業(yè)級(jí)市場(chǎng)上,基于NVMe的Raid始終沒(méi)有太好的方案。傳統(tǒng)企業(yè)最廣泛使用的Raid5/Raid6數(shù)據(jù)保護(hù)機(jī)制(N+1, N+2),通常是把數(shù)據(jù)條帶化分片,然后計(jì)算出冗余的Parity Code(奇偶校驗(yàn)碼),將數(shù)據(jù)存放到多塊硬盤(pán),寫(xiě)入新數(shù)據(jù)通常是一種“讀改寫(xiě)”的機(jī)制。這種機(jī)制本身就成為了性能瓶頸,并且“讀改寫(xiě)”對(duì)SSD的使用壽命有很大的損耗。另外,因?yàn)镹VMe協(xié)議把控制卡放到了NVMe盤(pán)的內(nèi)部,IO都由NVMe盤(pán)內(nèi)部的DMA模塊來(lái)完成,這就給基于NVMe的Raid卡設(shè)計(jì)帶來(lái)了更大的困難。目前市場(chǎng)上這類(lèi)Raid控制卡可用方案也很少,并且性能上也無(wú)法發(fā)揮出NVMe的優(yōu)勢(shì),因此沒(méi)能被廣泛使用。

基于目前這種狀況,很多企業(yè)級(jí)存儲(chǔ)方案仍然在使用SAS/SATA的SSD加傳統(tǒng)的Raid卡,這種方式又會(huì)出現(xiàn)前面已經(jīng)解決的兩個(gè)問(wèn)題,SSD的性能得不到充分發(fā)揮。

然而,這樣的情況也在發(fā)生改變,由Lightbits Labs發(fā)明的NVMe over TCP(NVMe/TCP)存儲(chǔ)集群解決方案就對(duì)這個(gè)問(wèn)題做了很好的處理。該解決方案通過(guò)自主研發(fā)的一塊數(shù)據(jù)加速卡,采用Erasure Code(糾刪碼)機(jī)制可以做到超過(guò)1M IOPS的隨機(jī)寫(xiě)性能,并且可以避免“讀改寫(xiě)”帶來(lái)的使用壽命損耗。另外,Lightbits提出了Elastic Raid機(jī)制,該機(jī)制提供彈性的N+1保護(hù)(類(lèi)似于Raid5),相較于傳統(tǒng)的Raid5需要熱備盤(pán)或者需要及時(shí)替換損壞盤(pán),該機(jī)制在一塊硬盤(pán)發(fā)生損壞之后能自動(dòng)平衡形成新的保護(hù)。比如一個(gè)節(jié)點(diǎn)內(nèi)原先有10塊盤(pán),采用9+1的保護(hù),當(dāng)某塊盤(pán)損壞后,系統(tǒng)會(huì)自動(dòng)切換成8+1的保護(hù)狀態(tài),并且把原先的數(shù)據(jù)再平衡到新的保護(hù)狀態(tài),從而在可維護(hù)和數(shù)據(jù)安全性方面實(shí)現(xiàn)了大幅提升。此外,該數(shù)據(jù)加速卡還能做到100Gb的線速壓縮,顯著提高了可用容量,進(jìn)而能大幅降低系統(tǒng)使用成本。

二、如何提升NVMe盤(pán)的持久性

目前使用最廣泛的SSD是基于NAND顆粒的,而NAND一個(gè)與生俱來(lái)的問(wèn)題就是持久性(endurance)。并且隨著技術(shù)的發(fā)展,NAND的密度也越來(lái)越高,最新一代已經(jīng)到了QLC(4bits per Cell),同時(shí)每個(gè)Cell可被擦寫(xiě)的次數(shù)也在減少(1K P/E Cycles)。發(fā)展趨勢(shì)如下圖所示。

 

圖片11.png

另外,對(duì)NAND的使用有一個(gè)特點(diǎn),就是可擦的最小單位比較大,如下圖所示,寫(xiě)的時(shí)候可以4KB為單位往里面寫(xiě),但是擦的時(shí)候(比如修改原有數(shù)據(jù))卻只能以256KB為顆粒來(lái)操作(不同的SSD大小不一樣,但原理都一樣)。這就容易形成空洞而觸發(fā)SSD的GC(Garbage collection)數(shù)據(jù)搬移,進(jìn)而導(dǎo)致所謂的寫(xiě)放大現(xiàn)象,對(duì)盤(pán)的持久性會(huì)產(chǎn)生進(jìn)一步影響。

 

圖片12.png

在企業(yè)級(jí)存儲(chǔ)中,通常使用Raid5/6這種“讀改寫(xiě)”的機(jī)制,會(huì)對(duì)盤(pán)的寫(xiě)操作數(shù)量進(jìn)一步放大,一般使用場(chǎng)景下大約是直接寫(xiě)入方式的2倍損耗。此外,很多Raid5還會(huì)啟動(dòng)Journal機(jī)制,對(duì)盤(pán)的使用壽命會(huì)進(jìn)一步損耗。

最后,對(duì)于最新的QLC來(lái)說(shuō),使用中還需要考慮另一個(gè)因素——Indirection Unit (IU)。比如有些QLC盤(pán)使用 16KB的IU,如果要寫(xiě)入較小的IO,也會(huì)觸發(fā)內(nèi)部“讀改寫(xiě)”,對(duì)使用壽命又多一重?fù)p傷。

由此可以看出,基于NAND的SSD還是比較嬌弱的。不過(guò),只要能正確地使用,還是可以避免這些問(wèn)題。比如以某常用的QLC盤(pán)為例,通過(guò)如下兩組關(guān)于性能和持久性相關(guān)的參數(shù)可以看出,在持久性上順序?qū)懯请S機(jī)寫(xiě)的5倍,而性能更是26倍:

l 順序?qū)?nbsp;0.9 DWPD, 隨機(jī)4K寫(xiě)0.18 DWPD;

l 順序?qū)?nbsp;1600 MB/s, 隨機(jī)4K寫(xiě)15K IOPS(60MB/s)。

通過(guò)上面的分析發(fā)現(xiàn),能把盤(pán)使用在一個(gè)最佳的工作狀態(tài)至關(guān)重要。好消息是目前一些先進(jìn)的解決方案,比如Lightbits的全NVMe集群存儲(chǔ)解決方案就可以解決這個(gè)問(wèn)題。該方案通過(guò)把隨機(jī)IO變成順序IO的方式,以及獨(dú)有的Elastic Raid技術(shù)避免了Raid“讀改寫(xiě)”的弊端,從而能大幅提高盤(pán)的持久性及隨機(jī)性能。

三、如何降低使用成本

由于SSD相對(duì)于HDD而言是一項(xiàng)新技術(shù),再加上產(chǎn)業(yè)的生產(chǎn)規(guī)模和需求量的矛盾,目前價(jià)格相比HDD仍然偏高。那么如何降低SSD使用成本就變得非常重要。

降低使用成本最重要的一環(huán)就是要把SSD充分使用起來(lái),無(wú)論是容量還是性能。不過(guò)就目前而言,大多數(shù)NVMe盤(pán)都是直接插在應(yīng)用服務(wù)器上使用,而這種方式非常容易造成大量的容量和性能浪費(fèi),因?yàn)橹挥羞@臺(tái)服務(wù)器上的應(yīng)用才能使用它。根據(jù)調(diào)研發(fā)現(xiàn),使用這種DAS(Direct Attached Storage,直連式存儲(chǔ))方式,SSD的利用率大概在15%-25%。

針對(duì)這個(gè)問(wèn)題比較好的解決方法是近幾年來(lái)市場(chǎng)上被廣泛接受的“解耦合”架構(gòu)。解耦合之后,把所有的NVMe盤(pán)變成一個(gè)大的存儲(chǔ)資源池,應(yīng)用服務(wù)器用多少就拿多少,只要控制總數(shù)量夠用就行,可以非常容易地將利用率推到80%。另外,因?yàn)橘Y源集中起來(lái),可以有更多的手段和方法用于降低成本,比如壓縮。例如,平均應(yīng)用數(shù)據(jù)壓縮比在2:1,就相當(dāng)于多了一倍的可用容量,也相當(dāng)于每GB價(jià)格降了一半。當(dāng)然壓縮本身也會(huì)帶來(lái)一些問(wèn)題,比如壓縮本身比較費(fèi)CPU,另外很多存儲(chǔ)解決方案在開(kāi)啟壓縮之后性能就會(huì)大大降低。

針對(duì)壓縮方面的問(wèn)題,Lightbits的NVMe/TCP集群存儲(chǔ)解決方案可以通過(guò)存儲(chǔ)加速卡來(lái)予以解決。該卡可以做到100Gb的線速壓縮能力,并且不消耗CPU,不增加延遲。利用這樣的解決方案,壓縮功能幾乎沒(méi)有額外的成本。此外,正如前面在介紹提高持久性時(shí)所提到的,Lightbits解決方案能提高使用壽命并支持使用QLC盤(pán),從整個(gè)使用周期來(lái)看,在使用成本方面也會(huì)有非常大的降低??偟膩?lái)說(shuō),通過(guò)解耦合提高使用效率,壓縮提高可用容量,優(yōu)化提高使用壽命或啟用QLC,經(jīng)過(guò)這樣的重重提升,SSD的使用成本可以得到極大的控制。

以上從性能、持久性、使用成本三個(gè)方面分析了如何用好SSD盤(pán),可以看到要用好NVMe SSD盤(pán)還是不容易的。因此,對(duì)一般用戶而言,選擇一個(gè)好的存儲(chǔ)解決方案就至關(guān)重要。為此,以色列創(chuàng)新公司Lightbits以充分發(fā)揮NVMe盤(pán)的最大價(jià)值為使命,發(fā)明了NVMe/TCP協(xié)議,并推出了新一代的全NVMe集群存儲(chǔ)解決方案,可以幫助使用者輕松地將SSD盤(pán)用好。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。