
小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所存在的問題

在RAID1配置中,數據在所有硬盤上都是相同的。但是,如果出現不一致性或異常,RAID控制器或相應的軟件通常會有一些機制來檢測和解決這種問題。這些機制可能包括:
- 校驗和驗證(checksum):透過檢查數據的校驗和來判斷數據的完整性。
- 錯誤日誌和SMART報告:硬盤自身具有錯誤報告和自我監控功能,可以通過報告來幫助識別出問題的硬盤。
- 人工干預:也就是數據修復中心的paid service
沒有校驗和驗證功能的RAID1會出現什麼問題
如果一個最傳統簡單的RAID1陣列只有鏡像而沒有校驗,數據出現不一致性的時候,系統無法判斷哪個是好的數據,哪個是已損壞的數據。
解決RAID1這個問題有兩種方法:
- 採用有校驗的File System文件結構(例如BTRFS、ZFS)
- 採用有校驗的RAID (例如RAID 5,最少需要3快硬盤)
Synology NAS如何「增強」RAID、SHR的可靠性?
SHR (Synology Hybrid Raid)的RAID1容錯性增強手段
Synology NAS所稱的SHR就是利用BTRFS文件系統爲傳統的RAID1增添校驗功能。所以如果組建Synology SHR Volumn的時候,請務必選擇BTRFS作爲文件系統。

Data Scrubbing主動查錯功能
硬盤通常有數據損壞的時候是“無痛無知覺”的,直到把文件讀取出來才發現問題。爲了預防這種情況(或者說更早得知數據損壞),Synology DSM系統帶有Data Scrubbing主動查錯功能。
Data Scrubbing功能可以增強RAID和SHR磁盤陣列的數據可靠性。Data Scrubbing功能分兩部分:RAID scrubbing(parity self-healing)和BTRFS scrubbing(checksum比對) 。
BTRFS scrubbing
對比現有儲存數據與原有數據的校驗Checksum值,如果發現有不同,就證明是文件有壞掉。這時候如果對比另一個mirror備份的記錄沒有壞掉的話,就能夠用完好的替換損壞的。

RAID scrubbing(parity self-healing)
三個以上磁盤組成RAID5,能使用到Parity附加信息作爲校驗,當3個數據映像中有一個出現不同,就會和另外兩個做對比,確認哪個映像是損壞,再將其修復。
參考:
- Why data scrubbing is available on RAID 1 storage pool : synology (reddit.com)
- How data scrubbing protects against data corruption (synology.com)
- How do I enable File self-healing on DSM? – Synology Knowledge Center
- Data Scrubbing | DSM – Synology Knowledge Center
- Data scrubbing if checksums not enabled? : synology (reddit.com)
- Synology Data Scrubbing and File / Folder Self Healing – RAID 1? : synology (reddit.com)
Synology SHR的潛在問題和發展
Synology並沒有採用ZFS這種理論上最可靠的磁盤管理結構,而是使用上文所述的BTRFS文件系統。然而BTRFS在RAID-5和RAID-6上存在的問題至今沒有很完美的解決方法。那Synology 4盤位或以上的NAS是怎麼解決BTRFS的水土不服呢?官方以及下面YouTube解釋的給出的線索是:Synology採用了一種折衷的方法,在RAID-5/6的實施中,Synology SHR 不使用BTRFS的磁盤管理,而是轉爲傳統RAID的控制器控制。這是YouTube和截圖:

YouTube中有一個很精妙的發現,他說以前(DSM6之前)Synology的頁面有寫出SHR+BTRFS不適合企業使用,但DSM7之後這個態度模糊了。可能是Synology 對自己開發SHR和BTRFS整合有信心了。
小U一直很疑惑,爲什麼在家用領域Synology的聲量比QNAP高出很多,但是QNAP依然在業界虎虎生威?當我Google “ZFS NAS”,出來的第一個而且是唯一的選擇是:

哪天QNAP把ZFS下放到更多的家用NAS,那麼現在的家用NAS市場就可能變天了。
給NAS用家的兩點總結:如何最大限度保護
Tldr; 如果你覺得全文太長 那麼兩個重點要帶走:
第二、選用BTRFS並打開 Integrity check (checksum校驗功能)
RAID、可靠性常見問題和CHAT-GPT解答
如果你覺得上文太難,可以參考下面的基本問題
請詳細解釋什麼是 校驗和驗證
什麼是校驗和驗證
計算原始數據的校驗和:當數據首次寫入時,系統會使用特定的算法計算數據的校驗和。
存儲校驗和:計算得到的校驗和會被存儲起來,以供後續的驗證使用。
後續的驗證:在後續的讀取或檢查過程中,系統會重新計算數據的校驗和,並將其與存儲的原始校驗和進行比較。
錯誤處理:如果比較顯示校驗和不匹配,這表明數據可能已經被更改或損壞。系統可以報告一個錯誤,並可能嘗試從另一個硬盤恢復正確的數據。
RAID 1是否一定具有校驗和驗證功能
如何知道一個RAID系統是否具有校驗和驗證功能
技術支援和社群論壇:您可以聯絡技術支援或查詢相應的社群論壇來獲得有關該系統功能的更多信息。
實際測試:在具有專業知識的技術人員的指導下,您可以透過設置測試環境來實際檢測RAID系統的功能和性能,以確定是否支援校驗和驗證。
RAID1會自動修復損壞的數據嗎?
此重建過程可以手動觸發,也可以根據RAID控制器或軟件的設置自動觸發。但是要注意,重建過程會增加系統的負擔,因為它需要讀取和寫入大量的數據,這在數據量很大的系統中可能會導致性能下降。
重建完成後,兩個硬盤將再次包含相同的數據,從而恢復到RAID 1的正常操作狀態。但是如果在重建過程中另一個硬盤也發生故障,則可能會導致數據丟失。因此,定期備份仍然是非常重要的。