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