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