聊聊那些提升SSD盤壽命的「黑」科技
今天在去合肥的高鐵上,有點時間,和大家聊聊SSD的壽命問題。
這段時間,我發現和客戶交流的時候,客戶都特別關心全快閃記憶體陣列(AFA)的壽命。也是,畢竟,AFA在中國只佔5%的市場份額,比美國的27%的份額要少得多。也就是說,大家還是覺得SSD盤不可靠,有寫次數的限制。雖然AFA的壽命不僅僅和SSD的壽命相關,但是,SSD的壽命是根本,了解了SSD的壽命的相關知識,還是非常有必要的。
其實,SSD盤的壽命也很複雜,也不僅僅只和NAND FLASH的顆粒的寫壽命相關。
在業界,SSD的壽命一般用三個參數來標註,DWPD,GB/Day,TBW。這三個參數可以相互轉換。有些SSD標註多個壽命參數,有些只標註一個參數。
大家知道,華為也自己生產SSD盤,叫HSSD。為了讓大家了解這三個參數,我們可以參考一下華為的SSD壽命的評估方法。
參考業界SSD通行的壽命評估方法,華為定義的壽命計算公式如下:
其中:
TBW:TeraBytes Written,即生命周期內該SSD可以寫入的數據總量。
DWPDuser:Drive Write Per Day,即每日整盤寫入次數。本處的DWPD是指客戶場景下實際的每日整盤寫入次數。
UserCapacity:用戶可見的SSD單盤容量。
365:1年按365天計算。
目前業界對企業級SSD的壽命都宣稱是5年,但根據盤的不同規格對5年的應用做了限制,通常就用每日整盤寫入次數(DWPD)來表示,並且在SSD廠商提供的Spec中進行說明。所以SSD宣稱的TBW可以用公式表示為:
其中:
DWPDspec:表示SSD廠商規格spec中說明的每日整盤寫入次數。
UserCapacity:用戶可見的SSD單盤容量。
365:1年按365天計算。
5:5年的企業級SSD使用壽命。
綜上,壽命的計算公式可以簡化為:
可見計算SSD的壽命,首先就需要知道DWPDspec和DWPDuser。通常SSD硬碟的Spec中會清楚的寫明該SSD宣稱的DWPDspec信息,而DWPDuser則需要根據實際場景的業務IO模型來計算,公式如下:
其中
ThroughputSpeed:客戶場景下每秒的業務吞吐量,為了方便計算,單位統一為(GBps)。
Write%:客戶業務中write業務量佔總體業務量的百分比。
DutyCycle:客戶業務運行時間相對於總時間的佔比。
UserCapacity:用戶可見的SSD單盤容量,單位(GB)。
3600:每小時3600秒。
24:每天24小時。
也就是說,SSD盤一般的設計壽命都是5年,但實際的壽命還是要看你的真實環境IO模型情況。
目前常見的典型應用場景的數據IO模型如下:
你可以根據這些典型負載的IO模型推算出不同場景下不同的SSD盤的壽命。這裡就不展開了。
在The Memory Guy網站上,提供了目前Intel銷售的SSD盤,包括採用最新3D XPoint介質的Optane的產品的壽命。注意,其中白色部分是Intel提供的數據,而黃色部分是換算出來的數據。最後一列特別還換算出介質的壽命,當然,這裡沒有考慮超供等其他因素。
從上表,我們可以看出,DC P3700好像壽命很好,甚至和採用3D XPoint的Optane DC P4800X相當(也可以說超過,因為P4800X的設計壽命只有3年)。大家知道,Intel一直都宣傳3D XPoint的顆粒寫壽命要比NAND FLASH大1000倍的,這是怎麼回事?
The Memory Guy推測,有三種可能:
1、NANA FLASH SSD的磨損均衡演算法比3D XPoint的要好。不過,我感覺好也不能差距這麼大吧?
2、Intel比較保守,不敢把Optane的壽命宣傳得太高。這樣可能性比較大,畢竟3D XPoint比較新,需要時間去檢驗,保守一些總是好的。
3、3D XPoint目前的壽命根本做不到比NAND FLASH好1000倍。這個我也比較認可,最少目前的製造水平,應該沒有這麼大差距。也不能說Intel騙人,Intel宣傳應該是一個理論的差距,現階段達不到。
其實,SSD盤的壽命現在大家都沒有必要擔心了,特別是實際的壽命,肯定會大大大於設計的壽命的,否則SSD盤廠商肯定虧死了,因為老要給你免費換盤,成本受不了啊。
我們還是拿數據說話。從實際統計數據來看,華為出貨SSD的年均返還率不到HDD的的一半。
華為的SSD(HSSD)其實在數據冗餘保護這塊,還是做得蠻不錯的。這也是其HSSD壞盤率比較低的重要因素。我把其SSD技術白皮書關於數據冗餘保護這段內容摘錄過來一起看看。
HSSD對用戶數據在全路徑上進行了保護,數據在DDR中使用了ECC和CRC保護以防止DDR異常導致的跳變和篡改;數據在NAND FLASH中使用了LDPC和CRC保護以防止NAND FLASH異常導致數據丟失,而在不同的DIE之間則採用了XOR冗餘進行保護以防止顆粒DIE失效或者隨機失效導致的數據丟失。
HSSD以LDPC演算法為基礎並結合Read Retry和Read Offset技術來保障數據的可靠性。在數據保存到NAND FLASH的時候,計算出主機數據的LDPC校驗信息一起寫入到NAND FLASH中,在從NAND FLASH讀取的時候通過冗餘信息進行校驗和糾錯。當NAND FLASH上數據出現錯誤之後,HSSD會啟動LDPC Hard Decoding進行糾正錯誤,如果不能糾正錯誤則會啟動READ RETRY來挽救數據,在READ RETRY失敗後會嘗試使用READ OFFSET來挽救數據,如果READ OFFSET失敗則使用LDPC SOFT Decoding來恢複數據,如果數據還是未能恢復,最終會使用其他DIE上的數據進行異或運算來嘗試恢復用戶數據,數據恢復的流程如下圖所示。
LDPC即低密度奇偶校驗碼(Low Density Parity Check Code),是通過校驗矩陣定義的一類線性碼。LDPC由Encode、Decode、Soft-bit Logic和DSP Logic四個模塊組成,棕色的H、G、LLR Table和Calibration Table為存在內存中的表項。H為LDPC碼校驗矩陣,G為LDPC碼的生成矩陣,其中設置了多份H和G作為可配置選項,可以支持多種廠商多種制式的FLASH顆粒。其解碼過程主要分成2個部分:LDPC HardDecoding和LDPC SoftDecoding。理論上LDPC的糾錯能力相對於BCH更接近香農極限,具有更強的糾錯能力,HSSD的LDPC Hard Decoding糾錯能力超過相同條件下BCH演算法的糾錯能力,例如對於Micron 16nm L95B cMLC,LDPC Harding Decoding比BCH的糾錯能力提升了4倍。
LDPC Hard Decoding主要是用校驗矩陣對FLASH中的數據進行迭代校驗,用LDPC迭代解碼的方法,每迭代一次,對更新的0/1序列乘以校驗矩陣,若全為零,則得到正確碼字,退出迭代,否則修正數據之後繼續迭代,直到迭代出正確碼字或者得到最大迭代次數為止。採用QC-LDPC及特別設計的兩步法編碼方式,以較低的資源存儲編碼矩陣,同時實現了非常高的編碼速度。通過改進layer NMSA演算法的流水並行度,保證3.2GB/s的高吞吐率以及低於3.1μs的解碼時延,讀寫性能達到業界領先水平。
Read Retry是一種通過調整顆粒讀電壓來恢複數據的技術。Read Retry使用的讀電壓檔位由顆粒廠商提供,SSD碟片通過遍歷這些電壓值來嘗試恢複數據。Read Retry技術的讀電壓模式很多,若依次嘗試每個模式,讀延時很大,HSSD對Read Retry技術的應用進行了改善,根據Block的擦寫次數、Retention時間和Read次數的組合,劃分了多種場景,針對每種場景設置最優的Read Retry初始嘗試模式,有效降低重讀的次數,提升重讀的準確度。
Read Offset技術的原理和Read Retry相同,但Read Retry只有顆粒自帶的幾種讀檔位,在實際的應用中效果不是很好。因此HSSD增加了Read Offset技術以彌補Read Retry技術不足。HSSD通過廠家私有的顆粒介面並通過大量的樣本和實驗獲取了不同擦寫次數、數據保存時間和讀次數下的Calibration Table,該表會保存在HSSD碟片,當出現錯誤之後的時候,HSSD通過當前Block的狀態(擦寫次數,數據保存時間,讀次數)查詢該表可以獲得最合適的讀電壓值,提升恢複數據的幾率。
LDPC Soft Decoding通過Flash中的數據和LLR table中的預置數據生產一個實數的LLR序列,每一個實數代表該比特是0/1的概率值。正數代表該比特是的可能大,絕對值越大,的可能越大。負數代表該比特數是1的可能大,絕對值越大,1的可能越大。LDPC解碼器利用這一串LLR序列,將LLR序列中大於等於的位置記為,LLR序列中小於的位置記為1,得到一串0/1的序列,然後乘以校驗矩陣,若全為零,則得到正確碼字,退出迭代,否則繼續迭代,直到迭代出正確碼字或者得到最大迭代次數為止。HSSD通過優化LLR Table可以在Hard Decoding的基礎上獲得150%糾錯能力的提升。
HSSD碟片內置異或引擎對用戶數據進行冗餘保護,當Flash顆粒出現物理故障(頁失效、塊失效、die失效甚至顆粒失效)時,採用校驗數據塊對故障塊上的用戶數據進行恢復,確保用戶數據不丟失。碟片採用N+1個頁組成一個條帶,以條帶為單位寫Flash,在寫Flash的過程中遭遇壞頁,直接跳過該壞塊頁,將條帶降級(N-1)+1個頁的條帶進行寫操作。
當Flash顆粒發生讀UNC錯誤時,啟動數據恢復操作,採用發生故障的條帶剩餘數據進行XOR運算進行恢復,並寫入新的空閑條帶,此故障的條帶進行回收,變成(N-1)+1的空閑條帶供後續IO使用。
也就是說,HSSD盤其實想壞都沒有那麼容易,如果數據發生錯誤,HSSD特別採用了軟LDCP編碼,糾錯能力比傳統的SSD盤大多了。軟恢復不了,還有盤內的硬RAID。傳統的HDD盤哪有這麼複雜的糾錯機制啊?
要實現這些,SSD盤還是需要比較強大的控制器的,HSSD採用華為海思自己設計的ASIC控制器晶元。
因此,SSD雖然感覺介質不如HDD可靠,但是通過複雜的LDPC軟編碼演算法,顆粒間的硬RAID機制,加上一定程度的超供,整體的可靠性大於HDD一點也不奇怪。
如果針對整個AFA系統來說,由於SSD盤的可靠性提高了,因此,整體的可靠性也得到了提高。在加上其他高級特性,如華為Dorado V3還支持RAID-TP,可以同時容忍壞3塊盤,單台AFA的可靠性也是不用擔心的。如果還是不放心的話,Dorado V3還支持陣列雙活,可以支持壞一台設備,關鍵是Dorado V3的時延只有0.5ms(開啟重刪壓縮後),就算雙活,也就是1ms的時延,相當於市場上很多AFA一台的時延,可以滿足市場上絕大多數關鍵業務對可靠性和性能的苛刻要求。
了解了這些知識,大家還擔心AFA的可靠性嗎?歡迎大家參加調查並且在後面評論給出你的觀點。
點擊展開全文
※美國人眼裡的AI&Cloud品牌
※聊聊Infinidat的奇葩營銷和Nutanix的股票狂泄
※XtremIO X2現身江湖,AFA富二代能否再掀狂瀾?
※Infinidat發布對比測試數據,其HFA性能比Pure和EMC的AFA都好,但是……
※EMC推出全新全閃中端Unity X50F,全面擁抱RAID 2.0技術
TAG:高端存儲知識 |
※聊聊 「分趾鞋」 TABI 誕生的故事
※聊聊衣服中的科技
※聊聊NBA中那些「可愛」的吉祥物!
※聊聊SD-WAN提供商在關鍵功能上的技術差異
※聊聊「恥辱機」M1L的系統更新和鎚子科技
※聊聊CS:GO皮膚玄學(上)
※周六聊騷|聊聊CS:GO皮膚玄學(上)
※聊聊那些酷炫又不用花錢的Win10「黑科技」
※再聊聊手機攝像頭的AI「夏昆岡」
※聊聊 HTTPS和SSL/TLS 協議
※從 CARMINA 開始,聊聊女生的第一雙手工鞋怎麼選?
※iPhone XS進水難維權 聊聊手機防水的那些事
※即使在夢裡也傳達不到的心意,聊聊SSSS.GRIDMAN的茜
※聊聊最近看到的一些關於SEX的話題
※來聊聊NASA和球鞋的那點子事兒(一)
※聊聊Fate里的那些叔們
※聊聊MSP和CMP的前世今生
※UCL學姐跟你聊聊PhD申請那些事兒
※聊聊UAL是怎麼變成全球第二的藝術院校的
※聊聊HTTPS SSL/TLS協議原理