SSD現(xiàn)在越來(lái)越火了,甚至比中國(guó)股市還火。今天在上海和某券商交流了解到,據(jù)說(shuō)現(xiàn)在交易量上來(lái)了,大家紛紛購(gòu)買全閃存陣列解決性能問(wèn)題,據(jù)說(shuō)某券商一下單就是十幾套全閃存陣列,眼紅啊。
但SSD的可靠性一直也是大家關(guān)注的問(wèn)題。雖然SSD廠商都說(shuō)自己的產(chǎn)品沒(méi)有問(wèn)題,保障5-7年以上的使用,但業(yè)界真正的故障率是怎樣的呢,這些故障和那些因素有關(guān)系呢?
今天,正好看到一篇卡耐基梅隆大學(xué)的論文,對(duì)FACEBOOK使用的SSD故障率進(jìn)行研究,發(fā)現(xiàn)很多以前我們沒(méi)有注意到的現(xiàn)象。西瓜哥感覺(jué)這些研究對(duì)SSD廠商和用戶都還是有價(jià)值的,畢竟FACEBOOK的樣本量大,覺(jué)得有必要分享給大家。
看論文是非??菰锏?,因此西瓜哥給那些懶人做一個(gè)解讀。如果是需要深度了解,請(qǐng)仔細(xì)閱讀論文和參考文獻(xiàn)。
http://users.ece.cmu.edu/~omutlu/pub/flash-memory-failures-in-the-field-at-facebook_sigmetrics15.pdf
作者研究了facebook 4年來(lái)幾百萬(wàn)小時(shí)的SSD全天候(7X24)運(yùn)行情況。Facebook采用的SSD主要是PCIe的SSD卡。
這些SSD廠商的品牌有Fusion-io,Hitachi,Intel,OCZ,Seagate和Virident。據(jù)說(shuō)Fusion-io的量比較大,因?yàn)镕acebook曾經(jīng)是Fusion-io最大的客戶。
Facebook的SSD一共分6個(gè)平臺(tái),A-F。每個(gè)平臺(tái)可以理解為一種SSD池。這些平臺(tái)的服務(wù)器配置1或2塊SSD卡,有PCIE 1.0和2.0兩種接口。每塊SSD的容量和使用年限不同。下圖是具體的情況:
其中UBER指的是不可恢復(fù)錯(cuò)誤位率。
大家知道SSD內(nèi)部都有控制器,一般SSD都采用ECC進(jìn)行糾錯(cuò),只有SSD自己搞不定的錯(cuò)誤,系統(tǒng)才能感知。因此,這里的SSD失效率指的就是系統(tǒng)感知的SSD故障率。SSD故障不是只整個(gè)SSD都?jí)牧耍驗(yàn)檫@個(gè)和硬盤(pán)不同,而是指出現(xiàn)不可恢復(fù)錯(cuò)誤的SSD比例。
研究人員發(fā)現(xiàn),每個(gè)平臺(tái)的SSD故障率是不同的,差距很大。但最大沒(méi)有超過(guò)40%。B平臺(tái)每年的不可恢復(fù)錯(cuò)誤出現(xiàn)最多,可能是寫(xiě)入的數(shù)據(jù)量比較多,使用時(shí)間比較長(zhǎng)的緣故。
通過(guò)weibull統(tǒng)計(jì)模型可以發(fā)現(xiàn)(西瓜哥數(shù)學(xué)沒(méi)有學(xué)好,學(xué)統(tǒng)計(jì)的同學(xué)幫忙介紹一下這個(gè)模型),一小部分SSD產(chǎn)生大量的錯(cuò)誤。
而且非常有趣的是,SSD的失效曲線并不是HDD的浴缸曲線, 而是雙池曲線。也就是剛開(kāi)始階段故障率很低,然后發(fā)生了故障,這些早期失效出現(xiàn)并修復(fù)以后,系統(tǒng)會(huì)進(jìn)入一個(gè)穩(wěn)定期,隨著使用量的上升,故障率相應(yīng)升高。也 就是SSD的閃存塊分為兩個(gè)池,一個(gè)是weaker pool,一個(gè)是stronger pool。當(dāng)wearker pool的cell出現(xiàn)故障被控制器采用冗余的block替換以后,系統(tǒng)就進(jìn)入穩(wěn)定期。
但是,SSD的故障率并不是只和寫(xiě)入的數(shù)據(jù)量相關(guān),甚至有些系統(tǒng),如平臺(tái)D和F,隨著寫(xiě)入數(shù)據(jù)量的增長(zhǎng),故障率居然還下降了。也就是還有其他影響因素,如溫度,數(shù)據(jù)的布局等等。
很多人擔(dān)心SSD的讀會(huì)干擾到SSD的可靠性,因?yàn)楝F(xiàn)在的SSD的顆粒都排列得非常緊密。但研究人員發(fā)現(xiàn),讀好像對(duì)故障率影響很少。
SSD的故障率和丟棄的block也有關(guān)系,但并不是丟棄越多,故障率越高。前期丟棄比較少塊的SSD故障率反而更高,后期進(jìn)入穩(wěn)定期后,丟棄塊率高的SSD故障率才隨之升高。
SSD的故障率和其控制器的DRAM使用也有很大的關(guān)系。由于數(shù)據(jù)分散不連續(xù),因此DRAM需要大量的元數(shù)據(jù)和數(shù)據(jù)的緩沖。研究人員發(fā)現(xiàn),分散寫(xiě)和分散讀對(duì)故障率都有比較大的影響。
研究人員針對(duì)平臺(tái)B分析了6種工作負(fù)載下DRAM buffer使用情況和故障率的關(guān)系,趨勢(shì)也是如果DRAM buffer使用率越高,SSD的故障率越高。
研究人員還發(fā)現(xiàn),SSD的故障率對(duì)溫度關(guān)系很大。溫度升高,SSD的故障率也升高,如平臺(tái)A和B。平臺(tái)C和E在溫度升高的時(shí)候,由系統(tǒng)進(jìn)行截流,因此雖然 故障率沒(méi)有升高,但性能下降。平臺(tái)D和F出現(xiàn)溫度升高故障率下降的趨勢(shì),估計(jì)是對(duì)系統(tǒng)截流和控制功耗或者是其他沒(méi)有觀察的因素聯(lián)合作用的原因。
這個(gè)圖可以看出溫度升高,各個(gè)平臺(tái)截流的SSD的比例。我們看到平臺(tái)A和B沒(méi)有做截流,而平臺(tái)C和E截流則非常明顯。
SSD其實(shí)很耗電的,PCIE 2.0比PCIE 1.0要耗電。一般來(lái)說(shuō),耗電越高,溫度就越高,故障率可能就越高。因此,如果SSD上面沒(méi)有溫度傳感器,可以根據(jù)耗電量來(lái)進(jìn)行截流。
研究人員還發(fā)現(xiàn),由于SSD有buffer,因此,系統(tǒng)寫(xiě)的數(shù)據(jù)量并不是實(shí)際寫(xiě)入到SSD CELL的數(shù)據(jù)量。因此,根據(jù)系統(tǒng)寫(xiě)的數(shù)據(jù)量來(lái)判斷閃存的故障率并不準(zhǔn)確。
這個(gè)就是OS觀察到的寫(xiě)數(shù)據(jù)量和實(shí)際寫(xiě)到cell的數(shù)量的曲線圖,大家看到,除了平臺(tái)C、D和E,其他平臺(tái)并不是一種線性的關(guān)系。
總結(jié)一下,這份研究報(bào)告觀察出5個(gè)平時(shí)我們不太注意的現(xiàn)象:
1、隨著寫(xiě)入數(shù)據(jù)量的增加,SSD的生命周期分為四個(gè)不同時(shí)期,分別是early detection, early failure, usable life, 和wearout。因此,其SSD故障并不僅僅和寫(xiě)入數(shù)據(jù)線性相關(guān)。因此,如果研發(fā)人員在SSD的早期階段如early detection加強(qiáng)錯(cuò)誤校正,有可能能夠減低SSD失效的概率。
2、SSD的讀干擾影響到可靠性的現(xiàn)象并不常見(jiàn),大家不用太擔(dān)心;
3、分散的讀寫(xiě)對(duì)SSD的故障率都有比較大的影響,因此,應(yīng)用或者系統(tǒng)采用緩存機(jī)制,盡量對(duì)SSD進(jìn)行連續(xù)的讀寫(xiě)可以有效提高閃存的可靠性。西瓜哥記得百度和華為聯(lián)合研發(fā)的軟件定義閃存系統(tǒng)(SDF)就具有這個(gè)功能。
4、溫度升高,SSD的故障率也會(huì)升高。用戶要關(guān)注那些沒(méi)有截流機(jī)制的SSD,如果有截流機(jī)制的,要關(guān)注對(duì)系統(tǒng)性能的影響。
5、OS系統(tǒng)寫(xiě)入的數(shù)據(jù)量和實(shí)際寫(xiě)入cell的數(shù)據(jù)量并不一致,因?yàn)镾SD控制器有buffer和磨損均衡機(jī)制。因此,開(kāi)發(fā)閃存感知應(yīng)用的時(shí)候,可能需要考慮這些因素。
分享到微信 ×
打開(kāi)微信,點(diǎn)擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁(yè)分享至朋友圈。