NAS壞硬盤後,我才發現雙盤RAID1並不可靠?!

小U依賴Synology DS218+備份珍貴人生數據已有四五年,我一直以爲雙盤位的DS218+做了鏡像備份,所有珍貴的影像記錄都很安心,直至上個月一個硬盤報錯損壞,我才發現我是太過樂觀了,即使有鏡像備份的雙盤RAID1也可能出現數據丟失!

閱讀全文: NAS壞硬盤後,我才發現雙盤RAID1並不可靠?!

從ZFS暸解RAID的天生缺陷

NAS壞盤以及安裝ITX小主機後,接觸到PROXMOX和他支援的ZFS磁盤系統。ZFS在NAS界越來越受歡迎,有人自組DIY NAS而不用Synology系統就是因爲要用ZFS這種更高階的磁盤系統。ZFS有什麼優勢呢?我到YouTube上翻查ZFS磁盤系統的內容,其中解釋得最詳細最容易明白的應該是這個:

文章標題不是說Synology的NAS的RAID1嗎,爲什麼搬出ZFS?Synology好像沒有NAS支援ZFS吧?沒錯,但這支影片詳細解釋了傳統RAID1的問題以及爲什麼會有ZFS等的新型File System/Disk Management系統產生。

傳統RAID1所存在的問題

4月初我的DS218+出現了儲存空間降級、其中一個硬盤報錯嚴重,立即去灣仔買入新HDD更換。

在RAID1配置中,數據在所有硬盤上都是相同的。但是,如果出現不一致性或異常,RAID控制器或相應的軟件通常會有一些機制來檢測和解決這種問題。這些機制可能包括:

  • 校驗和驗證(checksum):透過檢查數據的校驗和來判斷數據的完整性。
  • 錯誤日誌和SMART報告:硬盤自身具有錯誤報告和自我監控功能,可以通過報告來幫助識別出問題的硬盤。
  • 人工干預:也就是數據修復中心的paid service
但並非所有的RAID 1系統都具有校驗和驗證功能。這通常依賴於特定的RAID控制器或RAID軟件是否支持這一功能。

沒有校驗和驗證功能的RAID1會出現什麼問題

如果一個最傳統簡單的RAID1陣列只有鏡像而沒有校驗,數據出現不一致性的時候,系統無法判斷哪個是好的數據,哪個是已損壞的數據。

解決RAID1這個問題有兩種方法:

  1. 採用有校驗的File System文件結構(例如BTRFS、ZFS)
  2. 採用有校驗的RAID (例如RAID 5,最少需要3快硬盤)

Synology NAS如何「增強」RAID、SHR的可靠性?

SHR (Synology Hybrid Raid)的RAID1容錯性增強手段

Synology NAS所稱的SHR就是利用BTRFS文件系統爲傳統的RAID1增添校驗功能。所以如果組建Synology SHR Volumn的時候,請務必選擇BTRFS作爲文件系統

圖片來源:軟硬體持續升級演進,Synology DS916+ 介紹與測試 – 第 2 頁 | T客邦 (techbang.com)

Data Scrubbing主動查錯功能

硬盤通常有數據損壞的時候是“無痛無知覺”的,直到把文件讀取出來才發現問題。爲了預防這種情況(或者說更早得知數據損壞),Synology DSM系統帶有Data Scrubbing主動查錯功能。

Data Scrubbing功能可以增強RAID和SHR磁盤陣列的數據可靠性。Data Scrubbing功能分兩部分:RAID scrubbing(parity self-healing)和BTRFS scrubbing(checksum比對) 。

BTRFS scrubbing

對比現有儲存數據與原有數據的校驗Checksum值,如果發現有不同,就證明是文件有壞掉。這時候如果對比另一個mirror備份的記錄沒有壞掉的話,就能夠用完好的替換損壞的。

打開“檢查碼”才能最好的用到BTRFS的自檢校功能。圖片來源:创建共享文件夹 – 知乎 (zhihu.com)

RAID scrubbing(parity self-healing)

三個以上磁盤組成RAID5,能使用到Parity附加信息作爲校驗,當3個數據映像中有一個出現不同,就會和另外兩個做對比,確認哪個映像是損壞,再將其修復。

Parity 和 Self-healing 都僅限與在3個或以上磁盤組建RAID5或SHR時候才會得到應用。

參考:

Synology SHR的潛在問題和發展

Synology並沒有採用ZFS這種理論上最可靠的磁盤管理結構,而是使用上文所述的BTRFS文件系統。然而BTRFS在RAID-5和RAID-6上存在的問題至今沒有很完美的解決方法。那Synology 4盤位或以上的NAS是怎麼解決BTRFS的水土不服呢?官方以及下面YouTube解釋的給出的線索是:Synology採用了一種折衷的方法,在RAID-5/6的實施中,Synology SHR 不使用BTRFS的磁盤管理,而是轉爲傳統RAID的控制器控制。這是YouTube和截圖:

Synology’s Hybrid RAID (BTRFS+SHR) deep dive – Can I trust it? – YouTube

YouTube中有一個很精妙的發現,他說以前(DSM6之前)Synology的頁面有寫出SHR+BTRFS不適合企業使用,但DSM7之後這個態度模糊了。可能是Synology 對自己開發SHR和BTRFS整合有信心了。

小U一直很疑惑,爲什麼在家用領域Synology的聲量比QNAP高出很多,但是QNAP依然在業界虎虎生威?當我Google “ZFS NAS”,出來的第一個而且是唯一的選擇是:

哪天QNAP把ZFS下放到更多的家用NAS,那麼現在的家用NAS市場就可能變天了。

給NAS用家的兩點總結:如何最大限度保護

Tldr; 如果你覺得全文太長 那麼兩個重點要帶走:

第一、NAS能上4-bay四盤位就上,起碼3個盤組RAID5會更安心
第二、選用BTRFS並打開 Integrity check (checksum校驗功能)

RAID、可靠性常見問題和CHAT-GPT解答

如果你覺得上文太難,可以參考下面的基本問題

請詳細解釋什麼是 校驗和驗證

校驗和(Checksum)是一種根據數據內容計算得到的一個簡短的值,它可以用來檢測數據是否已被更改或損壞。在校驗和驗證過程中,系統會計算數據的校驗和並將其與先前存儲的校驗和值進行比較。如果這兩個值匹配,則數據被認為是完整的;如果它們不匹配,則表明數據可能已經被更改或損壞。

什麼是校驗和驗證

校驗和驗證是一種確保數據完整性的方法,透過以下步驟:
計算原始數據的校驗和:當數據首次寫入時,系統會使用特定的算法計算數據的校驗和。
存儲校驗和:計算得到的校驗和會被存儲起來,以供後續的驗證使用。
後續的驗證:在後續的讀取或檢查過程中,系統會重新計算數據的校驗和,並將其與存儲的原始校驗和進行比較。
錯誤處理:如果比較顯示校驗和不匹配,這表明數據可能已經被更改或損壞。系統可以報告一個錯誤,並可能嘗試從另一個硬盤恢復正確的數據。

RAID 1是否一定具有校驗和驗證功能

並非所有的RAID 1系統都具有校驗和驗證功能。這通常依賴於特定的RAID控制器或RAID軟件是否支持這一功能。

如何知道一個RAID系統是否具有校驗和驗證功能

查閱產品文檔和技術規格:通常,製造商會在其產品手冊或技術規格中說明其RAID解決方案的功能和特點。
技術支援和社群論壇:您可以聯絡技術支援或查詢相應的社群論壇來獲得有關該系統功能的更多信息。
實際測試:在具有專業知識的技術人員的指導下,您可以透過設置測試環境來實際檢測RAID系統的功能和性能,以確定是否支援校驗和驗證。

RAID1會自動修復損壞的數據嗎?

RAID 1系統確實有一個自我修復的特點,即“鏡像重建”。如果系統檢測到其中一個硬盤的數據有問題或者硬盤故障了,它將啟動一個復原過程,試圖從另一個健康的硬盤上復制數據回故障的硬盤,或者到一個新的硬盤上(如果原來的硬盤已經完全失效)。
此重建過程可以手動觸發,也可以根據RAID控制器或軟件的設置自動觸發。但是要注意,重建過程會增加系統的負擔,因為它需要讀取和寫入大量的數據,這在數據量很大的系統中可能會導致性能下降。
重建完成後,兩個硬盤將再次包含相同的數據,從而恢復到RAID 1的正常操作狀態。但是如果在重建過程中另一個硬盤也發生故障,則可能會導致數據丟失。因此,定期備份仍然是非常重要的。

標籤:

歡迎你的留言討論:

你可以一針見血

by Upsangel
Logo