導讀:SDC 是不會在系統(tǒng)日志中留下任何記錄或跟蹤的數(shù)據(jù)錯誤。SDC的來源包括數(shù)據(jù)路徑依賴性,溫度變化和年齡以及其他硅因素。由于這些數(shù)據(jù)錯誤是靜默的,因此它們可以在工作負載中保持未被檢測到,并在多個服務之間傳播。
Facebook位于俄勒岡州普林維爾的數(shù)據(jù)中心之一。
圖片來源:Meta
經過多年測試各種檢測靜默數(shù)據(jù)損壞(SDC)的方法,Meta概述了解決硬件問題的方法。
SDC 是不會在系統(tǒng)日志中留下任何記錄或跟蹤的數(shù)據(jù)錯誤。SDC的來源包括數(shù)據(jù)路徑依賴性,溫度變化和年齡以及其他硅因素。由于這些數(shù)據(jù)錯誤是靜默的,因此它們可以在工作負載中保持未被檢測到,并在多個服務之間傳播。
數(shù)據(jù)錯誤可能會影響內存、存儲、網絡以及計算機 CPU,并導致數(shù)據(jù)丟失和損壞。
Meta工程師三年前開始測試,因為一旦組件已經進入其生產數(shù)據(jù)中心車隊之一,他們就很難檢測到SDC。
"我們[需要]新的檢測方法,通過檢測SDC并大規(guī)模緩解它們來保持應用程序運行狀況和車隊彈性,"Meta工程師Harish Dattatraya Dixit在一篇博客文章中說。
根據(jù)測試,Meta發(fā)現(xiàn)其檢測SDC的首選方法是使用停產和紋波測試。
生產外測試是一種 SDC 檢測方法,當計算機經歷維護事件(如系統(tǒng)重新啟動、內核升級和主機置備等)時,會發(fā)生這種情況。這種類型的測試搭載到這些事件上,以允許測試具有更長的運行時間,從而實現(xiàn)"更具侵入性的檢測性質"。
同時,紋波測試通過在工作負載處于活動狀態(tài)時運行靜默錯誤檢測來實現(xiàn)。這是通過對工作負載進行影子測試以及在隊列和工作負載中間歇性地注入具有預期結果的位模式來完成的,Meta 發(fā)現(xiàn)這比生產外測試能夠更快地進行 SDC 檢測。
這種更快的測試類型在Meta的基礎架構中"漣漪",允許測試時間比生產外測試運行時低1,000倍。
然而,元工程師觀察到,紋波測試只能檢測到70%的車隊數(shù)據(jù)損壞,盡管它能夠在15天內檢測到它們。相比之下,停產測試需要六個月的時間才能檢測到相同的損壞以及其他損壞。
在解釋這些好處和權衡時,Dattatraya Dixit建議擁有大規(guī)?;A設施的組織應使用這兩種方法來檢測SDC。
"我們建議在大型機隊中使用和部署兩者,"Dattatraya Dixit說。
"雖然檢測SDC對于大型基礎設施來說是一個具有挑戰(zhàn)性的問題,但多年的測試向我們表明,[停產]和紋波測試可以為盡快大規(guī)模檢測SDC提供一種新穎的解決方案。
當Meta工程師使用這兩種測試來檢測SDC時,他們發(fā)現(xiàn)所有SDC最終都可以被檢測到。Meta表示,70%的SDC來自15天后的漣漪測試,停產測試在六個月內趕上了剩余SDC的23%,而其余7%是通過其數(shù)據(jù)中心隊列中的重復漣漪實例發(fā)現(xiàn)的。
為了進一步推動檢測SDC的創(chuàng)新,Meta還宣布將向學術界提供五筆贈款,每筆價值約5萬美元,用于在該研究領域創(chuàng)建研究提案。