自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

聊聊這個讓騰訊云丟數(shù)據(jù)的“靜默損毀”

存儲 存儲軟件
剛看到一則新聞,說是騰訊云丟了某個客戶的數(shù)據(jù),原因是硬盤bug導(dǎo)致“寫進(jìn)去的數(shù)據(jù)讀出來并不是之前寫入的數(shù)據(jù)”,當(dāng)然,不管具體是不是這個原因,詳情如何,不做評論。本次冬瓜哥就來聊聊這個數(shù)據(jù)靜默損毀(silent corruption)的一系列底層知識。

剛看到一則新聞,說是騰訊云丟了某個客戶的數(shù)據(jù),原因是硬盤bug導(dǎo)致“寫進(jìn)去的數(shù)據(jù)讀出來并不是之前寫入的數(shù)據(jù)”,當(dāng)然,不管具體是不是這個原因,詳情如何,不做評論。本次冬瓜哥就來聊聊這個數(shù)據(jù)靜默損毀(silent corruption)的一系列底層知識。

[[241571]]

本文就是對靜默損毀做簡要總結(jié)性介紹。靜默損毀大概有幾種方式:

parity error  每個扇區(qū)都會有ecc校驗(yàn)區(qū),硬盤寫入數(shù)據(jù)之前會計算ecc,并在讀出數(shù)據(jù)之后自行校驗(yàn)。按理說這樣應(yīng)該不會靜默損毀?不是的。如果host端發(fā)給硬盤的數(shù)據(jù)已經(jīng)是錯的了,那么硬盤就不會知道。所以,人們使用DIF(Data Integrity Field)來實(shí)現(xiàn)上層的校驗(yàn),也就是說,硬盤上位角色(比如HBA,或者應(yīng)用)主動校驗(yàn)數(shù)據(jù)并將校驗(yàn)碼寫入另外的8字節(jié)中,隨著512字節(jié)的扇區(qū)數(shù)據(jù)一起下發(fā)給硬盤。

DIF中可以完全自定義,也可以按照T10標(biāo)準(zhǔn),DIF中放置扇區(qū)號、校驗(yàn)碼和應(yīng)用自定義信息。為何要放扇區(qū)號?這個下面再說。但是即便是有DIF,也無法保證從應(yīng)用生成數(shù)據(jù),到數(shù)據(jù)寫入硬盤一整條路徑上都不出錯,有些廠商也在致力于從數(shù)據(jù)一生成的時候就時刻跟著校驗(yàn),這個可以在應(yīng)用層來透明的做。

2. paritial write。這個現(xiàn)象是由于硬盤在寫入數(shù)據(jù)時,只寫了一部分扇區(qū)數(shù)據(jù),而另一部分沒有寫入。硬盤一般會保證扇區(qū)粒度的原子寫,但是由于種種不可知因素,這種partial write也會發(fā)生,最終讀出數(shù)據(jù)時多半會發(fā)現(xiàn)校驗(yàn)出錯,從而報告。

此時上層程序可以從副本中讀出正確的數(shù)據(jù),多個副本同時出錯的概率非常低。這個不屬于靜默損毀。在Raid系統(tǒng)里,一個條帶沒有完整被寫完前就掉電了,也稱為partial write,這個可以通過日志或者標(biāo)記條帶完整性來解決,不是什么大問題。

3. write lose。這個現(xiàn)象是說硬盤本該寫入某個扇區(qū),但是最終根本沒有寫入,目標(biāo)扇區(qū)數(shù)據(jù)依然是老數(shù)據(jù)。這個現(xiàn)象會導(dǎo)致靜默損毀,導(dǎo)致應(yīng)用讀出了舊數(shù)據(jù),或者其它應(yīng)用之前保存的完全不相關(guān)的數(shù)據(jù),直接現(xiàn)象肯能是亂碼之類。

這個問題可以通過在應(yīng)用層做標(biāo)記的方式解決,比如應(yīng)用給每個數(shù)據(jù)塊記錄一個時間戳,如果發(fā)生了lose,則時間戳一定對不上,于是就可以判斷出來。這些應(yīng)用層標(biāo)記可以記錄在DIF 8字節(jié)里的應(yīng)用自定義區(qū)域。除了數(shù)據(jù)庫這種對一致性要求非常完備的系統(tǒng),其他應(yīng)用一般不會這么嚴(yán)格,所以一旦發(fā)生這個問題,只能事后恢復(fù),比如從多個副本中再提起一遍數(shù)據(jù)做比對。無法做到事前預(yù)防。

4. mis-redirect write。這個現(xiàn)象是硬盤本應(yīng)寫入A扇區(qū),卻由于不可知原因?qū)戝e了地方,寫到其他扇區(qū)去了。這個問題的原因可能是host端傳的扇區(qū)地址指針中某個或者某幾個bit發(fā)生了畸變(比如SRAM中的互鎖晶體管受到各種電離輻射粒子流轟擊,直接導(dǎo)致狀態(tài)改變)。

這種靜默損毀的后果更嚴(yán)重,不但本次I/O對應(yīng)的扇區(qū)沒被更新,而且還破壞了其他扇區(qū)。這種損毀,也需要靠DIF中的應(yīng)用自定義區(qū)段才能解決,但是這個代價太高昂,因?yàn)閼?yīng)用每讀出一個數(shù)據(jù)塊就要做DIF判斷。

責(zé)任編輯:武曉燕 來源: 大話存儲
相關(guān)推薦

2023-03-28 10:25:59

靜默GlobalFlag進(jìn)程

2017-04-13 16:44:15

騰訊云

2020-09-12 20:59:49

騰訊云大數(shù)據(jù)

2023-01-26 00:18:53

云原生數(shù)據(jù)庫云資源

2015-08-03 13:42:06

騰訊云游戲ChinaJoy

2022-03-04 13:44:49

CIO首席執(zhí)行官首席運(yùn)營官

2018-12-10 23:01:44

2018-08-14 13:47:25

華為云

2022-08-31 08:46:55

云計算數(shù)據(jù)中心ESG

2017-04-17 10:48:05

騰訊云

2015-06-05 13:09:21

2024-03-19 08:15:09

云原生云計算容器

2017-06-02 08:32:01

調(diào)度服務(wù)數(shù)據(jù)

2016-08-25 13:47:16

騰訊云云數(shù)據(jù)庫云產(chǎn)品

2023-02-10 09:34:42

人工智能駕駛

2020-09-16 12:10:17

騰訊云數(shù)據(jù)庫

2021-10-31 16:10:50

公有云安全性IT

2022-08-02 20:21:00

SaaS驅(qū)動PLG

2016-08-25 19:51:06

數(shù)據(jù)中心
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號