資料損壞是一種難以感知的資料改變。但是,資料破壞又隨處可見。資料存入儲存時是一致的,但誰也不知道何時靜默損壞就發生了。即使確認過眼神,也不一定遇見對的人。
下面,我們一起來討論一下什麼是硬碟的靜默資料錯誤,系統怎麼做才能容錯,為什麼說多個資料備份,raid或ec技術,也解決不了這個問題?
了解資料靜默破壞
當資料損壞未被檢測到時,它將變為靜默資料損壞,並且成為應用程式的資料一致性的高風險。當這些資料被備份並且未被發現時,那就真正會造成了資料完整性和恢復問題。
硬體和軟體都會在資料路徑中引入資料錯誤。在硬體方面,如磁頭故障,雜訊資料傳輸,電子干擾問題,介質老化和磨損都會引入錯誤。如同20世紀50年代科幻電影所述,宇宙射線都可能導致dram資料錯誤(儲存位翻轉)。
在軟體方面,編碼錯誤可能會破壞作業系統,檔案系統,韌體以及計算堆疊中處理資料的相關資料完整性。
資料錯誤問題有多大呢?
早在cern的研究表明,平均每1016位中就有一次靜默錯誤; 在最近的研究資料也展示了類似錯誤概率。在nec報告中,實驗即使使用資料完整性檢查技術,也在磁碟陣列上報告中也出現了靜默讀取失敗,當將錯誤資料寫入應用程式,從錯誤記錄到應用程式都引入各種錯誤。
靜默資料損壞與較大的磁碟容量無關:隨著磁碟容量變化,錯誤率沒有顯著變化。這意味著儲存在高容量磁碟上的資料相應地靜默損壞構的威脅也更大。在現代磁碟中,隨著磁碟容量增大,1/1016錯誤率也會倍增多次,因為這些磁碟儲存的資料量更多。
我們來做乙個資料庫備份。備份站點於保護重要資料,rpo為15秒。當資料庫崩潰恢復備份資料時,發現備份中存在資料損壞並且已經存在超過3天。那麼這3天的近乎連續的備份資料,現在都已經是損壞的資料備份。
不要認為把資料備份到雲上,就能神奇地解決此問題。資料上雲意味著備份將儲存到提供商的ssd和硬碟驅動器介質中,這些儲存介質的錯誤率與任何其他儲存介質完全相同。
資料保護和完整性檢查
保護備份完整性的第一步應該是在生產儲存完成,防止錯誤進入備份儲存。如如採用ecc和crc校驗; 在這一方面,有些**商已經走得更遠,如保護io流。例如,emc isilon onefs在資料在網路傳輸時,對檔案系統內的大資料進行驗證。在生產系統保護磁碟陣列資料,防止錯誤進入備份階段。另外,超融合**商nutanix通過執行靜默資料完整性檢查,防止靜默損壞的資料進入虛擬化管理程式(hypervisor)。
由sun開發的開源zfs和microsoft的彈性檔案系統(refs)通過本地端到端校驗和和完整性檢查保證資料備份一致性。在io路徑中,糾錯碼(ecc)和迴圈冗餘校驗(crc)將捕獲大多數錯誤。另外,通過校驗和raid型別技術也有助於捕獲錯誤。raid通常保護儲存陣列,而資料保護**商unitrends、專業儲存提供商都具有raid 6和類似兩個校驗保護。
另外,修復io流中的錯誤可保護應用程式,儲存介質和備份資料。因為如果有太多損壞的資料儲存到備份系統中,那麼防止資料丟失的最後一道防線也會被破壞。如果備份資料發生錯誤,那麼將永遠無法恢復正常的資料副本。
如何儲存資料備份?
關於資料備份一致性問題,另乙個方法是選擇乙個備份產品,該產品可以檢查備份環境中引入的損壞。
大多數備份產品都內建了恢復檢測功能。但是,恢復測試和一致性保證並不意味著資料完整性一定得到保證。提供資料錯誤檢查以及恢復保證的儲存**商包括intronis,asigra,veeam和unitrends等。
intronis cloud backup and recovery
使用本地安全目錄在啟動備份或恢復之前驗證檔案完整性。使用經過驗證的副本,intronis會掃瞄駐留在每個遠端資料中心的備份副本,以驗證intronis儲存中的資料完整性。intronis會自動使用經過驗證的副本替換損壞的備份。
asigra
內建資料完整性檢查到企業備份產品中。檢測過程在後台自動執行,並監視備份的完整性。在資料發生損壞的情況下,asigra找到乙個好的原件並恢復損壞的檔案。
unitrends
提供一體化企業備份和連續性解決方案。在vm備份前端,當unitrends從生產裝置傳輸資料到異地備份時,它會建立原始檔案的校驗和。當後續的增量被寫入備份裝置時,ueb執行校驗和以驗證新資料是否與舊資料完全匹配。
veeam surebackup
驗證備份資料的完整性和可恢復性。其完整掃瞄操作會檢查諸如資料靜默翻轉等之類的常見錯誤,並使用驗證過的備份資料替換損壞的資料。
推薦閱讀:
針對靜默資料錯誤,如何證資料一致性?
從cdp解析資料備份和副本管理技術
「ict_architect」
或「掃一掃」
獲取更多電子書詳情。
你不一定懂的cpu顯示資訊
你不一定懂的cpu顯示資訊 在使用top命令的時候會看到這麼一行 裡面的各個值分別是什麼意思呢?今天被問到這個問題,發現答的不是很清楚。果然啊,天天用最多的top命令都還沒摸透。慚愧。於是就查了些資料 cpu s 表示的是cpu資訊。各個值的意思是 好了,如果說列出上面的條條框框說我懂了,那真是自欺...
你不一定懂的cpu顯示資訊
在使用top命令的時候會看到這麼一行 裡面的各個值分別是什麼意思呢?今天被問到這個問題,發現答的不是很清楚。果然啊,天天用最多的top命令都還沒摸透。慚愧。於是就查了些資料 cpu s 表示的是cpu資訊。各個值的意思是 好了,如果說列出上面的條條框框說我懂了,那真是自欺欺人了。下面是我自己的理解 ...
你不一定懂的cpu顯示資訊
在使用top命令的時候會看到這麼一行 裡面的各個值分別是什麼意思呢?今天被問到這個問題,發現答的不是很清楚。果然啊,天天用最多的top命令都還沒摸透。慚愧。於是就查了些資料 cpu s 表示的是cpu資訊。各個值的意思是 好了,如果說列出上面的條條框框說我懂了,那真是自欺欺人了。下面是我自己的理解 ...