NVMeSSD由于其高吞吐量和超低延遲,已經成為現代數據中心的主要內容。盡管NVMeSSD很受歡迎,但其在大規模部署下的可靠性仍然未知。在本文中,收集了在阿里巴部署的100多萬臺NVMessd的日志,并進行了廣泛的分析。從這項研究中,確定了NVMeSSD的一系列主要的可靠性變化。在好的方面中,NVMeSSD對早期故障和訪問模式的變化更有彈性。壞的一面是,NVMeSSD變得更容易受到復雜的相關故障的影響。更重要的是,本文發現超低延遲的特性使NVMeSSD更有可能受到故障-慢速故障的影響。
背景及動機
NVMeSSD現在是現代數據中心的新歡。NVMeSSD具有高達6GB/s的帶寬和微秒級延遲,是基于sata的性能提升。除了性能之外,任何大規模部署的硬件的可靠性都是非常值得關注的。雖然在該領域有大量關于SATASSD失效特征的研究,但他們的研究結果可能對NVMeSSD沒有決定性意義。首先,使用低延遲接口,NVMeSSD特別容易發生故障-慢故障。簡而言之,NVMeSSD故障-慢故障導致驅動器顯示異常的性能下降(例如,在正常流量下的高延遲)。與SATASSD不同,故障-慢故障可能被相對較高的延遲(>100μs)所掩蓋,NVMeSSD由于其超低延遲特性(~10μs),很容易受到影響。此外,NVMeSSD不僅僅是帶有接口升級的SATASSD。相反,NVMeSSD的內部體系結構經歷了相當大的變化。供應商還集成了一系列技術來提高NVMeSSD的整體可靠性,如獨立NAND冗余陣列(RAIN)或低密度奇偶校驗代碼(LDPC)。不幸的是,由于目前還沒有大規模的NVMeSSD故障停止研究,最近的進展的影響仍然未知。
DATA SET
一、Data Collection
SMART logs.在本文的集群中,每天都會收集關于SMART屬性的報告。這些指標的讀數可以是累積的(例如,介質誤差數),也可以是瞬時的(例如,溫度)。在實踐中,供應商可能不一定遵循確切的計數或報告機制。因此,本文會根據制造商手冊對數字進行標準化。
Performance logs.集群的一個主要子集配備了節點級守護進程,以監視和記錄Linux內核性能日志,包括存儲設備的重要統計數據,如延遲、IOPS和吞吐量。目前,守護進程每天運行3個小時(從晚上9點到12點),并且只記錄每個監視窗口的平均值(15秒長)。在三個小時內,流量相對穩定(約70%的峰值流量),主要由內部工作負載和大型外部客戶端(即較少的突發流量)主導。
Failure tickets.集群中的每個節點都設置了一個守護進程來監視和報告停止失敗。在報告后,將生成一個故障記錄單(并由工程師手動檢查),其中包含受害者驅動器的基本信息(例如,模型和主機名)和時間戳。
二、Overview
在基本信息中,本文將驅動器型號命名為制造商-型號,并使用字母順序表示制造商的世代(例如,I-A代表制造商I的最早型號)。每個模型都可以通過容量和NAND體系結構區分。II-E是一種獨特的情況,因為它采用了一種新的(既不是平面的,也不是3D堆疊的)單元,因此被命名為NEW(匿名的)。最后,列出了每個模型的相對總體(即總%)。
使用特性描述了高級管理信息。第一列是按年計算的平均通電時間。第二列和第三列分別表示超額配置率(即OP)和計算出的平均寫放大因子(即WAF)。
可靠性相關的主要指標有五個。
Critical Warning:由NVM引入的嚴重警告表明,驅動器可能有嚴重的介質錯誤(即,在只讀或降級模式下),可能出現硬件故障,或超過溫度報警閾值。
CRC Error:傳輸錯誤的數量(例如,驅動器和主機之間的故障互連)
Media Error:數據損壞錯誤的數量(即,無法訪問閃存媒體中存儲的數據)
Program/Erase Error:閃光單元編程錯誤的數量(例如,無法從復制過程中即將被垃圾收集的塊對閃光單元進行編程)
Annual Replacement Rate (ARR):設備故障數除以設備年數
前四個健康指標的讀數有嚴重的偏差,其中零占有效記錄的絕對多數(例如,關鍵警告的99.97%)。因此,同時列出了平均值和中值(即平均值/中值)。
三、Failure tickets
對于每種類型的故障,列出了其分布(Dist)以及所有NVMessd(ARR)、基于mlc的(ARR_M)、3D-TLC(ARR_3D)和NEW-NANDssd(ARR_N)中相應的ARR。
四、NVMe SSD vs. SATA/SAS SSD
在本文的數據集中的NVMeSSD的ARR遠高于來自Netapp的企業存儲系統的SATA/SASSSD。NVMeSSD的平均ARR和中位ARR分別為0.98%和0.69%,分別比SATA/SASSSD高2.77×和2.83×。通過NAND類型和光刻技術進一步分解了SSD種群,并得到了類似的結果。
The Fail-stop
一、Infant Mortality
發現:嬰兒死亡率是硬件早期部署期間的一個的失敗趨勢,但在NVMeSSD中并不顯著。
對于這個結論,本文采用每月失效條件概率(FCP)來演示失效趨勢(。FCP的計算方法是,當月要更換的驅動器數除以該月存活的驅動器數。如圖1所示,選取了六個流行的家族進行統計。從目視檢查中,可以發現大多數家族在早期并沒有顯著的嬰兒死亡率。
為了進一步探究其原因,本文繼續從SMART屬性的角度觀察內部的健康指標。對于圖2中的II-D和III-B,幾乎所有與健康相關的指標都經歷了嬰兒死亡率,因為它們從一個更高的值開始,然后隨著時間的推移下降到一個穩定的范圍。一般來說,其他家族也遵循這一趨勢。這說明即使是NVMe SSD在早期依舊會累積大量的錯誤,因此,本文假設FTL錯誤處理的改進很可能使NVMeSSD在早期更有彈性。(本文的作者相信。這可以作為供應鏈和現場管理員的緩解信號,因為以前的做法通常要求云運營商在初始部署之前存儲額外的部件。)
二、WAF
發現:NVMeSSD對于高寫放大(WAF>2)變得更加健壯,但極低寫放大(WAF≤1)仍然是罕見但致命的。
寫放大是SSDI/O中常見的現象,由于SSD內部操作(如垃圾收集和對齊),邏輯寫會產生額外的寫入NAND的數據。為了克服這個缺點,制造商經常使用寫壓縮技術來組合小的或緩沖區重復寫。但是在先前的研究中指出當WAF小于1的驅動器的故障率與高于2的驅動器的故障率相似時,寫壓縮技術可能會造成破壞。因此,本文對于NVMe SSD做了類似的統計分析。
圖3顯示了8個流行驅動器系列的WAF和故障率之間的相關性,包括不同類型的NAND和制造商。首先,對于WAF高于1,沒有在大多數驅動家族中觀察到WAF和ARR之間的強正相關關系(II-D驅動家族被認為是一個例外)。這表明NVMeSSD受隨機小寫的影響較?。ㄟ@是高寫放大的主要原因)。其次,對于具有低WAF的驅動器(即WAF≤1),它們的故障率仍然相對較高。平均而言,這些低WAF驅動器的ARR率可能比平均水平高2.19×。
因此,可以得出結論,在NVMeSSD中,雖然低WAF可能仍然是致命的,但高WAF不再令人擔憂。
二、節點間/機架內故障
發現:空間相關(節點內/機架內)NVMeSSD故障在長期跨度內(即1天至1個月)存在時間相關,但在短跨度內不再普遍。
為了研究這種相關模式是否仍然困擾著NVMeSSD,本文檢查了數據集中的節點內/機架故障時間間隔。使用相對失敗百分比(RPF)來計算相關失敗的可能性。在RPF中,分子是指在特定周期(例如,0到1分鐘)之間發生的故障集的數量。分母是一個特定驅動器模型的所有故障之和。
表4和圖4列舉了NVMeSSD的相關故障模式。首先,所有NVMe驅動器模型的累積rpf(即總行)要高得多,對于節點內和機架內的場景,分別增加了14.69×和1.78×。第二,與SATASSD不同(主要在短時間間隔內相關),NVMeSSD的相關失敗通常只在長時間間隔內觀察到(即1天至1個月)。同時,為了確保這些故障是由于空間時間相關性導致的,而不是各個機架或是節點內自然的平均故障導致,本文特地進行了驗證實驗,將數據中的設備到達時間和所處物理位置全部打亂,再次進行測試,結果如表重點Hypo負載所示,節點內的相關故障以及時間間隔內的相關故障均顯著下降,這說明這些故障確實存在不平衡性。
雖然密切相關的故障的下降意味著經歷系統級故障的風險較低,但長時間間隔的相關故障的激增仍然構成了一個緊迫的威脅。一個不方便的事實是,修復驅動器故障通常從基于軟件的方法開始(例如,數據清理和fsck),而這種在線檢查和修復需要時間。事實上,在本文集群中,43.90%、14.36%和10.90%的故障驅動器在一天、一周和兩周后得到了修復?;谶@個發現,本文改進了操作過程,直接使驅動器下線,以減少遭受長期相關故障的機會。
The Fail-slow
一、識別fail-slow事件和驅動器
本文使用以下基于閾值的方法來識別故障-慢速驅動器(類似于之前關于SATASSD和HDD尾部延遲的研究)。
第一步是選擇具有高延遲的可疑驅動器。觀察到集群內的性能記錄(例如,延遲、IOPS和吞吐量)記錄通常遵循一個正偏態分布。例如,在一個集群中,中位延遲僅為49.19μs,而平均延遲為667.85μs。因此,我們可以使用延遲閾值(?∞,3rd_quartile+2IQR)來識別異常值(即慢驅動器),其中IQR(四分位數范圍)是通過從第三個四分位數減去第一個四分位數來計算的。如果驅動器的3小時平均延遲超過標準,我們將此驅動器標記為可疑的慢驅動器,同時將大流量的情況進行排除,保證盡可能少的假陽性情況出現。
然后,我們通過檢查是否存在一致的減速來確定所選擇的驅動器是否確實是故障慢的。識別可疑的故障-慢速驅動器。這部分需要考慮對等點的情況,簡單來說就是,在事件中,受害者的速度至少比同類速度慢兩倍。則被認為是故障-慢速驅動器。其次,將4個最小跨度設置為5、15、30和60分鐘,這意味著計算這四個時間間隔內與同類驅動器速度的比較。如表5中的slowdown ratio。此外,表5還展示了該模型中被識別為故障慢速的驅動器的百分比。事件的頻率。描述每小時每1000個驅動器的事件數,反映了一個中等大小的集群中故障變慢的嚴重程度。以下兩列(持續時間和事件延遲)顯示了平均故障-慢速事件持續時間和平均事件延遲。每個子象限的最后一行是每個類別(例如,SSD或HDD)的平均值
二、SSD vs. HDD
發現:與HDD相比,NVMeSSD的故障更廣泛、更頻繁,會降低到SATASSD甚至HDD級別的性能。
比較每個象限的平均行,發現ssd中慢驅動器為6.05×(即5分鐘象限為1.41%至0.20%)到51×(60分鐘象限為0.52%至0.01%)。類似地,也可以觀察到失敗-慢的發生(即事件頻率)。在ssd中更為常見,范圍從18.59×(5分鐘)到68.50×(60分鐘)。此外,盡管像II-D-1920和III-B-1900這樣的模型仍然提供相對令人滿意的性能,故障慢的NVMessd通常降低到sata-ssd級延遲(平均在160μs左右)。更糟糕的是,在幾個NVMeSSD模型中,最慢的1%事件惡化到平均延遲約22 ms,即使是HDD的性能也不令人滿意。
根本原因。本文作者已經將100個最慢的ssd(大約是已識別的慢速驅動器的前2%,平均事件延遲為4.4 ms)送回供應商進行修復。結果表明,其中33個電容器不良,導致緩沖區故障,延遲高。其中46個芯片含有壞芯片,其余芯片的根本原因尚不清楚。
二、SSD型號之間的差異。
發現:制造商是NVMe故障緩慢的主要影響因素。
對于慢速驅動器百分比,在四個象限上有一個明確的順序(即制造商I之后是III和II)。即使是III的最高值(例如,III-b-1900在5分鐘象限內的3.04%)也遠遠落后于I的模型(即I-A-2000的4.44%),這也適用于III和II之間的比較。然而,我們沒有觀察到事件持續時間、事件延遲和減速比率的可見模式。
發現:較高的故障-慢速驅動器數量并不總是會導致較高的故障-慢速事件頻率。
人們可以假設較高的故障-慢驅動器百分比會導致較高的事件頻率。雖然這一假設適用于最長的持續時間要求(60分鐘象限),但在較短的象限中發現了許多反例(例如,5分鐘象限中的II-A-1920和II-C-1920)。一種可能的解釋是,在較短的持續時間要求下,有更多的驅動器有多個事件,導致一個小的慢驅動器比例和高的事件頻率。在這里,可以通過圖5進一步驗證了這一假設,這是不同持續時間要求下每個驅動器事件的CDF。可以清楚地看到,持續時間較短的驅動器比持續時間較長的驅動器積累更多的事件。
三、fail-slow的相關因素
1、驅動器年齡
發現:fail-slow驅動數量和事件頻率與年齡密切相關,但僅針對老年(通電時間>41個月)NVMessd。
圖6展示了在5分鐘(左)和60分鐘(右)要求下的種群隨時間的方差,其中水平虛線是平均值??梢钥吹剑谶@兩種情況下,種群數量最初都在平均值左右振蕩,然后在最后幾個月開始激增。在15分鐘、30分鐘和60分鐘的要求時也存在類似的趨勢。
2、工作負載
發現:工作負載可能會顯著影響各種故障慢速特性,而繁重的流量工作負載可能會對故障-慢速的發生產生長期的影響。
本文通過研究四種具有截然不同訪問模式的代表性云存儲服務,即塊存儲、緩沖、對象存儲和查詢,來評估工作負載的影響,如圖6所示,通過年齡和PE周期進行分組。
通過比較每一組內的指標,可以看到工作負載可以顯著影響所有四個fail-slow的指標。例如,在組1和組2中,緩沖工作負載的失敗緩慢種群和事件頻率可能是塊存儲的數千倍(例如,組1中的39.17%vs.0.02%)。在組3中,在塊存儲和對象存儲之間,或者在組5中,在塊存儲和緩沖之間,在事件持續時間和減速比率之間可以觀察到類似的差異。
在實踐中,緩沖工作負載下的驅動器通常經常有大量的流量(例如,存儲大數據工作負載的中間結果)。但實際上已經考慮排除了大流量的ssd。因此,一種可能的解釋是,繁忙的流量可能會產生長期的影響(例如,使數據更加分散),使驅動器更容易發生故障-慢速故障。
3、SMART屬性
發現:SMART屬性與失敗-慢速指標的相關性可以忽略不計。
本文評估了WEFR中自動特征選擇的有效性,并將其與使用固定百分比的被選擇特征(從10%線性增加到100%)進行比較。圖2顯示,當確定6個驅動器模型的所選特性的百分比時,WEFR的F0.5-score始終高于或等于最高的F0.5-score。具體來說,WEFR自動確定的MA1、MA2、MB1、MB2、MC1、MC2所選擇的特征的百分比分別為31%、34%、28%、26%、63%和28%,在確定所選特征的百分比時,與最高F0.5-score對應的所選特征的百分比接近。請注意,使用自動特性選擇也比調優生產中選定特性的適當百分比更靈活。
三、Fail-slow向故障轉移
發現:從fail-slow到fail-stop的過渡很少被觀察到,至少在短時間間隔內(5個月內)沒有觀察到。
表7是一個示例列聯表,記錄基于兩個類別的驅動器的頻率計數:出現在故障記錄單(替換列)或未存在(未替換列),至少有一個故障慢事件(慢行)(非慢行)。結果是相當令人驚訝的,因為在故障停止故障之前,只有10個驅動器出現故障-慢故障,在慢驅動器(約0.22%)和替換(約0.23%)驅動器中產生相對較小的數量。平均和中位數過渡時間分別為73天和67天。一個可能的原因是,故障很少慢或可能需要很長時間過渡到故障停止故障。因此,我們得出結論,慢故障不太可能過渡為故障停止故障,至少在幾個月內不會。
致謝
感謝本次論文解讀者,來自華東師范大學的碩士生梁宇炯,主要研究方向為SSD故障預測。
審核編輯:湯梓紅
-
驅動器
+關注
關注
53文章
8260瀏覽量
146649 -
SMART
+關注
關注
3文章
225瀏覽量
44721 -
SSD
+關注
關注
21文章
2868瀏覽量
117551 -
數據中心
+關注
關注
16文章
4816瀏覽量
72231 -
nvme
+關注
關注
0文章
222瀏覽量
22676
原文標題:NVMeSSD的錯誤特征
文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論