愛伊米

NAS使用者注意,做了RAID也不一定能保證資料安全

作者:iN在

這是今天在看某個數碼博主在推薦NAS盤的影片,裡面有一句話“當你組了RAID,你丟資料的可能性比中彩票頭獎還低”。但事實是這樣嗎?

這其實是又一個把技術神話化的案例。

NAS使用者注意,做了RAID也不一定能保證資料安全

原因就在於大家把技術想得太過於理想化了。

先簡單的說下RAID,大家經常聽到的RAID,無非是RAID 0 、RAID 1 、RAID 5 、RAID 6、RAID 10……或者是RAID Z(n) 什麼的。有沒有好奇0、1、2、3、4、5、6、7是一個數列,為啥RAID把2、3、4都跳過去了?

RAID 2、3、4是不是不存在?答案是否定的,RAID 2、3、4是存在的。

RAID不就是保證資料安全的嗎?答案也是否定的,從RAID的真正含義來說下吧,我們把RAID這個詞彙展開,現在RAID的普遍說法叫做Redundant Array of Independent Disks,獨立磁碟冗餘陣列,但最早提出RAID概念的時候話並不是這樣講的,RAID最早的名字叫做Redundant Array of Inexpensive Disks,廉價磁碟冗餘陣列。

NAS使用者注意,做了RAID也不一定能保證資料安全

早在上世紀80年代,硬碟就已經廣泛的應用了,只不過硬碟的價格隨著容量的擴大呈現指數級增加,打個比方,1塊10兆的硬碟要1000美元,那麼一塊20兆的硬碟價格可能會飆升到3000-4000美元。對於需要大容量儲存的場合就面臨一個極大的成本問題。於是在1980年代中期伯努利大學的幾個研究人員就提出了用大量相對比較便宜的小硬碟(低成本廉價的,Inexpensive)組成一個處理陣列用以取代昂貴的大容量獨立硬碟。

NAS使用者注意,做了RAID也不一定能保證資料安全

其實從根上來講,RAID也並不是為了保護資料的安全性和完整性而產生的技術,而是昂貴部件的廉價替代方案。

知道這一點之後咱們才有可能來談RAID。

磁碟數量多了,所面臨的一個問題就是磁碟的故障機率就被放大了,例如你的某個品牌型號的磁碟在一個特定週期內出現故障的機率為5%,你用三塊磁碟組成了一個陣列,整個陣列中在相同的使用週期內出現一塊磁碟故障的故障率則會高達14。2625%(1-95%³)。為了應對這個問題,除了RAID 0以外,所有的RAID技術其實都是為了儘量縮小“磁碟故障機率被放大”所帶來的影響。力圖做到當一個磁碟出現故障的時候,整體的資料儘量不受到影響。

其實這是一個為了省錢亡羊補牢的技術手段,這才是RAID技術的真正價值所在。

所以說“當你組了RAID,你丟資料的可能性比中彩票頭獎還低”這種言論就是純屬的扯淡。但是很多數碼愛好者往往就只聽到博主們的片面言論,只聽著博主們告訴你RAID能保證資料不丟失,就認為自己的資料是安全的。

那麼RAID 1、2、3、4、5是怎麼回事呢?都是為了降低故障率和提高磁碟吞吐效能不得已而為之的措施而已。以我們認為資料安全性較高的RAID5和6為例子:

採用了額外的校驗碼來保證在一塊或兩塊硬碟出現故障的時候資料可以進行恢復(RAID重建)

NAS使用者注意,做了RAID也不一定能保證資料安全

這個技術是針對於單一一塊硬碟故障的,能給你一個恢復硬碟資料的途徑。但是為啥不適合用在家用的NAS上呢?這件事和磁碟陣列的使用場景是有關係的。

在正常的商業環境中,磁碟陣列一般的情況下都會放置於專門的機房內。

NAS使用者注意,做了RAID也不一定能保證資料安全

同時會安排IT人員定時進行巡檢,“巡檢”是運營一套IT系統的關鍵步驟。

NAS使用者注意,做了RAID也不一定能保證資料安全

而真正的巡檢員的具體工作就是“巡檢”,日復一日地去檢查伺服器面板上的故障指示燈狀態在第一時間發現故障。

而家用的NAS本身的放置位置並不在你衛生間的洗漱臺上,以方便你在每天洗漱的時候抬頭看一眼NAS上的指示燈狀態。

更多的人的NAS甚至不會放在自己的電腦桌面上而是丟在角落或櫃子裡面。

NAS使用者注意,做了RAID也不一定能保證資料安全

這就讓你真正的能去看看NAS上指示燈的機率大為降低。壞一個硬碟的時候很多使用者不刻意檢視是根本無感的。當然了,你也指望APP或者NAS發出來的通知郵件會被你及時看到。不出現故障的時候大家都會漸漸地思想麻痺。畢竟今天看沒事、明天看沒事、後天看還沒事、大多數人大後天就不去看了……這就是日常習慣和工作職責之間的區別所在了。

一旦當你發現NAS訪問不了了,其實你的硬碟已經在很長很長時間的工作中壞掉了不止一塊。NAS報警了嗎?其實別冤枉NAS,可能早在幾個月前NAS就已經亮紅燈了,但你根本沒看見這又怨得了誰呢?在家用NAS的設計上最最應該增加的功能其實是在硬碟亮紅燈的時候增加蜂鳴器持續不斷不斷的鳴響,直至硬碟故障被解決消除。目前很少家用NAS的廠商做到這一點。在這種情況下,NAS的使用者也就自求多福吧。

本來應該寫完啦,再多一嘴吧,還得告訴大家一點,大部分RAID僅僅保證磁碟故障的安全性,對資料的安全性大部分是無法保證的。這裡就有一個靜默資料錯誤的問題了。你怎麼知道你讓磁碟上的磁頭往磁碟上寫一個“1”它會不會寫成一個“0”呢?你不知道,RAID同樣也不知道,這種違背磁碟陣列讀寫意願只發生在硬碟內部的錯誤叫做“靜默資料錯誤”。按理論上來說,磁碟應該忠實地完成控制器交給的任務,正確地讀寫資料是磁碟的本分吧?只可惜,目前的技術製造的磁碟也好、記憶體也好、CPU也罷都會出靜默資料錯誤。例如一個PNG檔案中的一個位出錯,它就變成了下面的樣子。

NAS使用者注意,做了RAID也不一定能保證資料安全

這種事情其實時有發生,記憶體和CPU依靠ECC機制來避免和糾正這種錯誤。

NAS使用者注意,做了RAID也不一定能保證資料安全

在RAID設計中,RAID2其實是以和ECC記憶體一樣的漢明嗎機制來糾正靜默資料錯誤。

NAS使用者注意,做了RAID也不一定能保證資料安全

但只可惜磁碟的讀寫效率比記憶體CPU要低的太多了,因此使用漢明嗎的RAID2陣列也由於吞吐效率太低導致RAID2一直沒有流行起來。

所以說RAID本身也只是一種走鋼絲的危險活動。別過於神話,也別抱太多的指望,本身就並不是一種可以保護你資料安全的有效方法。

在真正能解決問題的技術方案出現之前,NAS使用者用RAID,就聽iN的,每天檢查一次NAS故障指示燈是不是正常,不過iN也相信,大多數人每天檢查NAS指示燈的習慣堅持不了幾周就會放棄掉。也正因為如此,前面說了,家用NAS的最好放置空間是衛生間的洗漱臺,至少你每天洗漱的時候都會看那麼一眼。