入門 NAS 掌握這些知識,看這篇就夠了

NAS 的核心功能之一就是為用戶提供存儲空間,而在存儲大量數據的同時,選擇諸如快照這樣的方法來確保 NAS 硬盤中的數據安全也至關重要。

那麼除了快照,我們還有別的方法來給 NAS 中的數據加上額外的保險呢?我將在這篇文章中介紹更多的方法。

讀懂你的硬盤狀態

毫無疑問,NAS 存儲數據的基礎是硬盤,硬盤的狀態自然與我們的數據安全緊密相連。

好在現今大部分 NAS 所用到的硬盤都配備了 SMART 技術——SMART 全稱 Self-Monitoring Analysis and Reporting Technology,用於硬盤自我檢驗、分析與報告, 它通過各種指令對硬盤內部零件進行檢測,然後將檢測報告和廠商所設的安全值進行比較。

入門 NAS 掌握這些知識,看這篇就夠了

SMART 信息

一般而言,我們可以通過 NAS 系統(一般位於硬盤/VJBOD中的硬盤運行情況裡)或者其他查看 SMART 的軟件(比如 CrystalDiskInfo)直觀地看到每一項 SMART 數據,通過這些數據,我們就能快速瞭解各個硬盤的實際狀態,以便在需要的時候提前換入新硬盤來保證數據安全。

換句話說,讀懂特殊的 SMART 指令可以幫助我們快速瞭解磁盤的壽命情況,提前做好應對「數據危機」的準備

關聯閱讀:你的硬盤是如何存儲數據的?

由於 SMART 數據各個硬盤製造商都可以選擇添加他們特有的屬性,在這篇文章中我不可能將所有屬性統統標註出來,故本文列出的大部分是通用的 SMART 數據,我們一起看看吧。

重定位磁區

硬盤在保存數據的時候其實都是將這些數據存放在在一個個磁區裡的,通過讀取某個磁區中的數據,我們就能快速鑑別該磁區是否有錯誤並對存在錯誤的磁區進行修復。

入門 NAS 掌握這些知識,看這篇就夠了

而如果一個磁區嘗試修復失敗,硬盤就會通過備用的磁區進行替換,也就是將備用的磁區通過映射的方法與壞磁區聯繫起來,當硬盤要寫入壞的磁區時會直接跳轉到映射的備用磁區上,保證數據寫入的安全。這就是磁區重定位

這個過程我們在日常使用過程中完全感覺不到,但是 SMART 數據會默默地記錄下來。這個過程中記錄下的數據主要包含兩類:

入門 NAS 掌握這些知識,看這篇就夠了

  • 檢測到任何讀取錯誤時,硬盤會稍後嘗試重新讀取數據,這個事件會被記錄到 等候重定的磁區計數 當中;
  • 多次發生讀取錯誤且重新讀取未果,便會觸發重定位磁區行為,無論重定位成功與否,這些重定位行為次數都會被記錄進入 重定位磁區事件計數;
  • 成功重定位的磁區事件會被記錄到 重定位磁區計數 中,失敗則會記錄到 無法校正的磁區計數 中。

需要注意的是,重定位磁區是有固定數量的,每用一個就當前值減少一個,而大部分重定位失敗的原因是硬盤遭到了物理損壞或備用磁區用盡。

因此我們應該關注的重點就很清晰了:以上面提到的 CrystalDiskInfo 為例,在 CrystalDiskInfo 主界面選擇對應的硬盤即可看到 SMART 信息,這裡我們根據上表找到 ID 為 05 的 重新分配磁區計數 一行,然後就能在右側看到它對應的當前數值。

入門 NAS 掌握這些知識,看這篇就夠了

對重新分配磁區計數來說,當前值數值代表了剩餘重定位次數,這個數值下降到較低水平時我們就應該留預算準備購買新硬盤了;如果無法校正的磁區計數增加,也就是 無法校正的磁區計數 的原始值不為 0 時,那麼這塊硬盤最好立刻停用、及時備份數據並換入新硬盤,防止數據丟失。

機械硬盤:電機起轉重試數

機械硬盤的處理方法類似,但關注的數據不同,在這一部分,我們主要需要留意的數據為電機起轉重試數(Spin Retry Count),這個參數對應 ID:10,十六進制值為 0x0a。

這是一個僅適用於機械硬盤的參數,標示著機械硬盤主軸電機第一次嘗試啟動失敗以後,主軸電機啟動所需要嘗試的次數。同樣以上面的表格為例,原始值不應該高於臨界值。因為當主軸電機需要頻繁嘗試重啟時,也就意味著這塊機械硬盤壽命可能已達極限。

終端校驗出錯

參數對應為 ID:184,十六進制值為 0xb8 的數據則對應終端校驗出錯(End-to-End error),有時也會被叫做錯誤矯正次數,一般指的是從硬盤讀取數據到內存後,數據發生不匹配的次數。

這個錯誤也與硬盤的損壞有關。如果原始值高於臨界值,意味著這塊硬盤損壞的概率非常高

矯正和無法矯正數據

  • ID:187(十六進制值:0xbb)表示報告無法糾正的錯誤(Reported Uncorrectable Errors)
  • ID:195(十六進制值:0xc3)表示硬件 ECC 恢復計數(Hardware ECC Recovered)

這同樣是一組對應的 SMART 數據。我們每次向硬盤寫入數據時,硬盤還會對數據進行額外的一次計算,這個計算得到的結果在寫入硬盤以後被稱為 校驗位。

入門 NAS 掌握這些知識,看這篇就夠了

硬盤在讀取數據時會把讀取到的數據和之前的校驗位做比較,如果完全一致則通過;如果不一致則使用校驗位進行矯正,矯正成功以後則在 硬件 ECC 恢復計數原始值 上加一,矯正失敗則在 報告無法糾正的錯誤原始值 上加一,並在系統上給出有關提示。

一般而言矯正失敗意味著硬盤的硬件出現了問題,所以出現 報告無法糾正的錯誤 也同樣意味著硬盤壽命即將到達盡頭。

多塊硬盤,多層保護

聰明的人看完 SMART 信息可能會產生這樣的想法:

一塊硬盤顯然不是很保險,不同硬盤的壽命也不太一樣,那我們不如多用幾塊硬盤一起存放數據,這樣不就能保證數據的安全了嗎?

獨立硬盤冗餘陣列(Redundant Array of Independent Disks),也就是大家常看見的 RAID 就是用來做這件事的。通過將多塊硬盤組合起來成為一個或者多個陣列組,RAID 能夠幫助我們的 NAS 提升性能或者增加安全性(當然兩者也可以被同時提升),在「數據危機」到來之前為 NAS 加上一層額外保護。

而在實際使用中,RAID 類型會被命名成 RAID 加數字的形式,常見的 RAID 形式有:RAID 0、RAID 1、RAID 5、RAID 6、RAID 10/01、RAID 50 和 RAID 60,每種類型都有各自的優勢也有自己的缺點,也時常讓一些想要入門 NAS 的朋友感到困惑,所以下面我們就來一起梳理一下吧。

RAID 0

RAID 0 通過將兩個及以上的硬盤組合起來,組成一個更大容量的陣列組。這種組合方式的基本信息如下:

入門 NAS 掌握這些知識,看這篇就夠了

在存放數據時,文件被分段(有多少個硬盤就分成多少段)然後同時寫入各個磁盤,讀取時再從各個硬盤裡讀取出來。由於讀寫時都是各個硬盤分別做對應的操作,RAID 0 無論是寫入還是讀取速度自然都是 RAID 系統裡最快的那個。

入門 NAS 掌握這些知識,看這篇就夠了

分段雖然帶來了速度快的優勢,但如果 RAID 0 磁盤裡的任何硬盤出現了損壞,那麼 RAID 0 陣列裡的存放數據都會丟失那一段數據,也就是說整個 RAID 0 裡的數據都丟失了。

這也是為什麼 RAID 0 很少用來存放數據的原因,一般用來當作只讀緩存區或者當作臨時文件存放的地方

RAID 1

RAID 1 通過將兩個及以上的硬盤組合起來,組成一個由最小硬盤大小決定可利用空間的陣列組。採用這種組合方式你需要知道的是:

入門 NAS 掌握這些知識,看這篇就夠了

在存放數據的時候,一個文件將被完整地同時寫入這個陣列組裡的所有的硬盤,讀取時分別從陣列組裡的每個分別讀取一小塊,或是在一塊磁盤忙時通過其他磁盤讀取這部分文件。因而 RAID 1 的寫入速度由最慢的硬盤決定,讀取時則不受最慢硬盤的限制。

入門 NAS 掌握這些知識,看這篇就夠了

RAID 1 是一種典型的用容量換取數據安全性的組合方式,只要整個 RAID 1 組裡還有 1 塊硬盤處於正常狀態,那我們的數據就是可以被正常訪問的,換句話說只要整個 RAID 1 組還有 2 塊硬盤處於正常狀態,那我們的數據就處於被保護的狀態。

所以 RAID 1 特別適合用戶存放一些主要用於只讀的重要數據。

RAID 5

RAID 5 需要至少三塊硬盤才能組建起來,但它是一種儲存性能、數據安全和存儲成本兼顧的存儲解決方案。RAID 5 的基本信息如下:

入門 NAS 掌握這些知識,看這篇就夠了

在存放數據時,數據同樣被分段(分段數量比硬盤數量少 1)並隨機並行寫入到各個磁盤裡,隨後 RAID 5 還會通過特殊的計算額外得到一個校驗值,這個校驗值會被存放到沒有存放這組數據的那塊硬盤裡。

這樣一來,RAID 5 在讀取時可以從各個硬盤裡分別讀取,發生錯誤時則使用沒有存儲數據的那塊硬盤中的校驗值進行恢復。

入門 NAS 掌握這些知識,看這篇就夠了

由於 RAID 5 的校驗數據需要單獨佔據一個空間,因此空間利用率不如 RAID 0,但是因為多個數據對應一個校驗值,空間利用率卻要比 RAID 1 好上不少。不過 RAID 5 中只能承受一塊硬盤損壞的情況,一旦超過一塊硬盤損壞,那麼整個 RAID 組存放的數據都會丟失。

容量大、空間利用率高、讀寫速度相對較快,RAID 5 看上去是那種非常適合日常使用的組建方案,但如果你對數據安全有著較高的要求,恢復數據時有著極大不可靠性的 RAID 5 其實並不適合你。原因我們會在後面細說。

RAID 6

RAID 6 至少需要四塊硬盤才能組建起來,這是因為它在 RAID 5 的基礎上額外的添加了另外一組校驗數據,因此 RAID 6 雖然空間利用不如 RAID 5 來的高,但是它更安全。

RAID 6 的基本信息如下:

入門 NAS 掌握這些知識,看這篇就夠了

在存放數據時,數據同樣被分段(同理,分段數量為硬盤數量減 2)並隨機並行寫入到各個磁盤裡,通過兩種特殊的計算方式額外得到兩個校驗值後,這些校驗值會被放進沒有存放這個數據分段的兩塊硬盤裡。

讀取時從各個硬盤裡分別讀取一個文件的各個段,發生錯誤時則使用這兩塊硬盤中的驗值進行恢復。

入門 NAS 掌握這些知識,看這篇就夠了

由於 RAID 6 的校驗數據需要進行兩次完全不同的計算方式得到並需要額外寫入兩個硬盤,向 RAID 6 寫入數據時瓶頸不僅僅在於硬盤的速度,計算校驗數據的處理器性能(可能是處理器在計算,也可能是專用的 RAID 卡在進行計算)同樣也會影響寫入性能。當然也正是因為這兩組校驗數據, RAID 6 最多可以同時承受 2 塊磁盤損壞。

RAID 6 優秀的數據安全和存儲成本兼顧的存儲解決方案,特別適合存放各種各樣的重要數據。

RAID 10/01

RAID 10 和 RAID 01 是一種混合型的 RAID 系統,將 RAID 1 系統和 RAID 0 系統結合起來,利用容量換取高速的讀寫性能和數據安全。

RAID 10 分為兩層,至少需要四塊硬盤組成。它的基本特徵如下:

入門 NAS 掌握這些知識,看這篇就夠了

RAID 10 下面一層是由硬盤組成的一組又一組的 RAID 1 系統,上面一層則是使用 RAID 0 系統將下面的 RAID 1 系統鏈接起來。寫入數據時數據先被分段,寫入各個 RAID 1 系統中,再在每個 RAID 1 裡的各個硬盤裡都保存那一個數據段。

入門 NAS 掌握這些知識,看這篇就夠了

在 RAID 10 中,每個 RAID 1 組都可以壞到只剩下一個硬盤,這時整個 RAID 組還是處於可以使用的狀態,不過這個時候就是 RAID 0 了,再壞一塊硬盤整個 RAID 裡的數據就都會消失。相對而言 RAID 10 的數據保護還是很可靠的。

相比之下,RAID 01 也同樣分為兩層,至少需要四塊硬盤組成。下面一層是由硬盤組成一組又一組的 RAID 0 系統,上面一層則是使用 RAID 1 系統將下面的 RAID 0 系統連接起來。寫入數據時數據先被複制,再被分段寫入到各個硬盤裡。

入門 NAS 掌握這些知識,看這篇就夠了

在 RAID 01 中,一旦有一塊磁盤發生了損壞,那麼整組 RAID 0 都會停止工作,只剩下別的 RAID 0 組還會工作。此外如果 RAID 01 系統中 RAID 1 層只有兩組 RAID 0,那麼其中一組 RAID 損壞以後,剩餘的一組 RAID 0 數據風險會非常大。這也是為什麼 RAID 01 在實際使用並不是那麼實用的原因。

最後,同樣附上 RAID 01 的基本信息:

入門 NAS 掌握這些知識,看這篇就夠了

RAID 50

RAID 50 也同樣是混合型 RAID 系統,分為兩層,至少需要 6 塊硬盤才能組建,它的基本特徵如下:

入門 NAS 掌握這些知識,看這篇就夠了

RAID 50 最下面一層是由硬盤組成一組又一組的 RAID 5 系統,上面一層則是使用 RAID 0 系統將下面的 RAID 5 系統連接起來。

寫入數據時數據先被分段寫入各個 RAID 5 系統中,然後在每個 RAID 5 裡使用再分段和校驗的方式來存儲數據。

入門 NAS 掌握這些知識,看這篇就夠了

在 RAID 50 中,每個 RAID 5 組都可以任意損壞一個硬盤,這個時候整個 RAID 還是處於可以使用的狀態。不過同一個 RAID 5 組中出現大於兩塊的硬盤損壞,整個陣列的數據都會丟失。速度遠比單個 RAID 5 快上不少;但是空間利用率會比單個 RAID 5 更低,因為每個 RAID 5 組都會利用那組 RAID 5 硬盤中一部分存放校驗數據。

RAID 60

RAID 60 也同樣是混合型 RAID 系統,分為兩層,至少需要 8 塊硬盤才能組建。RAID 60 的基本信息如下:

入門 NAS 掌握這些知識,看這篇就夠了

RAID 60 最下面一層是由硬盤組成一組又一組的 RAID 6 系統,上面一層則是使用 RAID 0 系統將下面的 RAID 6 系統連接起來。寫入數據時數據先被分段,寫入各個 RAID 6 系統中,再在每個 RAID 6 裡的使用再分段和雙重校驗的方式存儲數據。

入門 NAS 掌握這些知識,看這篇就夠了

在 RAID 60 中,每個 RAID 6 組都可以任意損壞兩個硬盤,這個時候整個 RAID 還是處於可以使用的狀態;同一個 RAID 6 組中出現大於兩塊的硬盤損壞情況時整個陣列的數據都會丟失。

RAID 60 的速度比單個 RAID 6 快上不少,但是空間利用率更低,因為每個 RAID 6 組都會利用那組 RAID 6 存放額外的兩個校驗數據。

為什麼我不推薦使用 RAID 5

前面說過 RAID 5 是一種儲存性能、數據安全和存儲成本兼顧的存儲解決方案——只需要佔用最多一塊硬盤的體積就可以輕鬆完成校驗,同時還可以將別的磁盤空間放在一起使用,同時寫入和讀取數據都是從各個硬盤裡並行操作,速度非常快。

但隨著單塊硬盤的容量越來越大,只有一份校驗數據的 RAID 5 系統,在重建過程中出錯的概率也會變得越來越大。也就是我為什麼要在這裡額外說明的主要原因。

在開始之前,我們先要知道為什麼在硬盤讀取數據時會發生錯誤:

  1. 數據寫入時,數字信號轉換為盤片上磁場信號過程中發生錯誤
  2. 數據存放過程中,因為外界的電磁干擾、宇宙射線等以外情況,導致磁單元中部分磁性極性翻轉
  3. 讀取數據時,磁場信號轉換為數字信號過程中發生錯誤;

在硬盤內部,這種錯誤其實是經常發生的。硬盤廠商考慮到了這點,會在硬盤的技術詳情單(DataBase)中專門有個不可恢復錯誤率

(Unrecoverable Read Error rate,下文統一使用 URE 代替)來描述這個概率。

同時為了應對 URE,機械硬盤每個扇區後面有一定 ECC 糾錯碼,用來糾正錯誤的數據( SMART 中的硬件 ECC 恢復計數),當然 ECC 也不是萬能的,一旦出現連續或者大量的 ECC 錯碼,ECC 就不能糾正錯誤的數據了,也就是出現了 SMART 中的報告無法糾正的錯誤。這個時候就要依靠帶保護的 RAID 系統進行糾正數據,如果沒有的話,那麼那個位置的數據就基本就沒有了。

入門 NAS 掌握這些知識,看這篇就夠了

而普通消費級的硬盤一般是 1e-14/bit,企業級硬盤發生 URE 的概率一般是 1e-15/bit。當然這個數據並不是代表了只有讀取了 1e+14 的概率才會遇到一次 URE。遇到 URE 的概率則需要利用更復雜的公式進行計算。由於計算過程非常複雜,這裡不進行引入,這裡採用的數據均是 知乎木頭龍的計算結果:

4 個 1TB 硬盤組成的 RAID 5 單盤故障後的重建過程需要讀取的數據量為 1e-12 Byte×8 bit/Byte×(4-1)=24Tbit,而讀取 24Tbit 過程中沒有發生URE的概率則是 (1-1e14)^24e12=78.68%。

不同誤碼率,不同容量的硬盤,組成 4/8 盤 RAID 5 的重建成功/失敗概率,見下表,同樣是 知乎木頭龍的計算結果:

入門 NAS 掌握這些知識,看這篇就夠了

圖:知乎 | 木頭龍

可以看到 4 個 URE 為 1e-14 的1TB硬盤組成的 RAID 5 重建失敗的概率為 21.32%,這個比例已經非常高了,所以這也是我為什麼不推薦使用 RAID 5 的主要原因。

不過最後要說的是 URE 導致的 RAID 5 重建失敗並非意味著全部數據丟失,數據基本上都還在,只是需要別的方法進行恢復。如果 NAS 的 RAID 卡允許,可以繼續以降級模式運行,那麼直接把所有數據複製到另外一個陣列就好;如果 RAID 卡遭遇 URE 後,強制某個硬盤離線並且不能重新上線,就需要找 NAS 售後或者專業的數據恢復。

要是運氣好,URE 正好出現在沒有存放文件的空白區域,那麼文件自然一點事情都沒有;URE 出現在有文件的地方,也只是無法恢復一個或者多個文件。如果你的運氣特別不好, URE 出現在一些特殊的地方,還可能會導致文件系統崩潰,最後也只能去找專業的數據恢復。

不管哪一種恢復方案,對於普通的家庭來說都是不小的經濟負擔,還不如從一開始不用呢。

相比之下 RAID 6 在恢復時遇到 URE 也不怕,因為 RAID 6 損壞了一塊硬盤也只是降級到 RAID 5 上,損壞兩塊硬盤時,能通過兩組校驗數據進行交織恢復,至少到目前不用擔心。

真的想用 RAID 5 也行,去買企業級的機械硬盤吧,不過這也是筆不小的開支。

備份是保護重要數據的唯一手段

大家可能會好奇:在有了快照技術和 RAID 系統後,為什麼在 NAS 裡還需要進行備份這個操作呢?

RAID 系統本質上就不是備份,它主要起到兩個作用:第一個是在 RAID 系統處於正常狀態時,保證獨寫數據時的性能,以及針對除去 RAID 0 以外的系統提供額外的數據保護,比方說應對上面提到的 URE 情況;第二個是除去 RAID 0 以外的 RAID 系統,還能在恢復硬盤時讓整個 RAID 系統能被正常的讀寫和使用。

也就是說,RAID 在設計之初就不是為了取代備份而設計的。

入門 NAS 掌握這些知識,看這篇就夠了

如果把快照說成保存某一刻數據的狀態,那麼備份就是保存某一刻數據的副本。快照技術雖然快且佔用體積小,但是快照很多時候都只能保存在當前的硬盤裡的,如果硬盤發生了損壞則沒辦法進行恢復。

NAS 裡的備份工具一般都是通過保存數據的副本到其他硬盤裡完成備份這個過程的,因此遇到硬件損壞等快照無法還原的情況時,能通過其他的方法進行恢復,這才是備份的意義。NAS 裡的備份系統都能自動化備份操作,也能將文件加密備份到公有云服務器上,也支持備份時去除重複文件,大幅減少備份時的體積。

入門 NAS 掌握這些知識,看這篇就夠了

對比其他耗時、耗財的途徑,備份就是出現「數據危機」以後,最低成本恢復數據的唯一途徑。

以上就是除去快照我們還能怎麼保護我們數據的全部內容,希望它能夠幫助到你,讓你對你數據的安全情況有更深入的瞭解。


分享到:


相關文章: