NAS 自架之旅:從 TrueNAS 到 Unraid 再到 OpenMediaVault 的魔幻之旅
出現 IO Error
在上一篇文章中,我已經成功架好 TrueNAS on Proxmox 的環境。接下來本該是進入安裝各種應用程式的階段,但這部分我打算留到後面的文章再詳細說明,因為才架好沒過幾個月,就出現 io-error 😨
一開始想說是不是線材的問題,就關機把硬碟拔出來重新插一次,重開機之後暫時看起來又恢復正常了,但沒過多久還是繼續出現 io-error,而且原本只有一顆,重開機之後變成兩顆 io-error,越變越多,感覺到不妙。最後直接整台送回去給 osslab 檢查,他們的人看來看去說硬碟沒問題,懷疑是 RAID Controller 的問題,所以就幫我換了一顆 RAID Controller。
投靠 Unraid 陣營
拿回機器後,我就看到 The Future of Electric Eel and Apps 這篇在 TrueNAS 論壇上的貼文,TrueNAS 預計要出新的大版本(免費大型 DLC!),要把 kubernetes 改回用 docker,大概是大家覺得 kubernetes 太難用了吧😂 如果我一樣重灌回 TrueNAS 的話,那沒過多久不就又要重新折騰了嗎,所以再三思索之後,我就決定要直接投靠隔壁 Unraid 陣營。
Unraid 是需要付費的,最便宜的 License 是 $49 美,一年內可以免費更新,算是買斷制。
Unraid 的特點
Unraid 就如同他的名字所述,不是用我們熟知的 RAID 來做冗餘陣列,而是他自己有一套計算 parity 的算法,用軟體的方式做到冗餘計算。好處是彈性很高,每顆硬碟不需要同樣大小也可以算,但缺點也很明顯,就是慢,體感能感覺到的慢,必須要插條 SSD 當 cache 碟才能有比較正常的體驗。Unraid 還有另外兩個特點:一個是系統是裝在 USB 上的,而不是 SSD,所以會發現自己多了一條原本要當系統碟的 SSD,剛好可以當 cache 碟用。另一個特點是 Unraid 系統的 Linux 是用 Slackware 分支的版本,上面的套件管理器十分難用,盡量不要直接在上面裝東西。
Cache Pool 的建置
在 Unraid 6.12 版本開始支援 zfs,但目前看起來只能把 cache pool 做成 zfs,沒辦法把主硬碟陣列變成 zfs。
我的 Unraid 硬碟配置結果如下
Unraid 上的 cache pool 的運作方式十分土炮,就是有一個叫 mover 的程式會定期被觸發起來,幫你把資料從 disk 搬到 cache 或是從 cache 搬到 disk。 這邊的設定是基於文件夾去設定,每個文件夾可以有不同的設定,我把檔案切成 appdata 和 storage 兩個文件夾來分別管理
- appdata
- app 運作的時候需要用到的 Database 或是設定檔等等
- 主儲存空間: cache
- 副儲存空間: 無
- storage
- 這些是比較大的檔案,如影片、圖片等等
- 主儲存空間: cache
- 副儲存空間: disk
- mover action: cache -> disk
這樣設定好之後,檔案落地都會先在 cache,而比較大的一些靜態檔案,最終會被 mover 搬到 disk 上定居。
出現 IO Error (第二次)
Unraid 的環境好不容易裝好,各種應用程式也都重新設置好了,以為可以高枕無憂,結果過不到一個月,又出現 io-error 😨
一開始出現 32 個 ERRORS,但硬碟還是顯示綠燈,以為是正常的。但隔天硬碟就直接死掉了😭
只好又送回去 osslab 檢查,這次他們測過幾次,說其中一顆硬碟跑半天以上就會出問題,終於幫我換了硬碟,但我看了一下他們實際上換掉了兩顆硬碟。
出現 IO Error (第三次)
都換了兩顆硬碟,感覺應該穩了吧,結果這次只過了兩個禮拜,依舊是熟悉的老朋友 io-error 😨
噩夢終究是沒有醒來😭
而且他這次暴寫 syslog,寫了 160 萬行的 read error。
原本覺得自組 NAS 會踩一些雷也是正常,但你馬這雷也太多,光是來回送修的時間,還有每次都要重灌還原資料,再繼續下去我怕是折騰不動了...,已經開始思考退貨的可能性。後來我眼尖的同事看我貼的 log,發現每次出事都是同一顆硬碟,這樣就合理了,就那顆硬碟壞了吧,幫我換顆就行了吧。
之後還是跟 osslab 的人討論一下退貨的可能性,他們提出兩個方案
- 第一個是整台退貨,但是需要支付折損費 6300
- 第二個是他們再幫我換硬體,但需要使用他們指定的 NAS 系統,因為他們檢查過覺得是軟體相容性問題。我是覺得挺奇怪的,明明前面裝過 TrueNAS 後面又裝 Unraid,怎麼可能這兩大 NAS 系統都不相容。是硬碟壞掉的可能性比較大吧。
想了一下還是決定給他們一次機會,他們這次除了把那顆我覺得壞掉的硬碟換掉之外,也把整台的 Dell T3620 也換掉了,所以跟我剛買的時候比起來,幾乎是換了一整台新的阿(但還是二手的)。
最終的歸屬 OpenMediaVault
所以我又換了另一套 NAS 系統 OpenMediaVault,之前我完全沒聽過這套系統,但用過之後發現這套意外的十分全面,只能說該有的,有 ZFS 而且是用 docker compose,底層系統還是 debian linux,甚至想玩 kubernetes, kvm 都有插件可以裝,簡直完美🤩
OpenMediaVault 的安裝過程我就不贅述,實際玩過三套系統之後,最後我總結一下我對這三套系統的評價
- TrueNAS
- 社群廣大
- 對 kubernetes 不熟悉的人會覺得比較難用,但目前使用 docker 的新版本 24.10 剛推出,所以可以再觀望一下
- Unraid
- 優點是硬碟的彈性比較高,如果硬碟買不一樣大小的可以考慮,但如果硬碟都一樣大小就沒必要
- 缺點是慢...
- 不需要系統碟,系統是裝在 USB 上
- 底層是用 slackware linux
- 需要購買 License (最便宜的 $49)
- OpenMediaVault
- 該有的都有,意外的好用
- 但用的人好像比較少(至少我身邊的人沒有)
下一篇開始我就要來分享我內網的架構以及我裝了哪些應用程式。
底下是 NAS 本人的照片,有兩大神器鎮壓,一包乖乖和我去京都的電電宮帶回來的 Micro SD 御守🧘