升級我的自組 NAS 伺服器:硬體選擇思路 & 更新 TrueNAS Scale

升級我的自組 NAS 伺服器:硬體選擇思路 & 更新 TrueNAS Scale

生活日常

前言

上次寫了一篇 架設自己的 NAS 伺服器,自組 TrueNAS Core 紀錄,整體來說對於使用 TrueNAS Core 還算挺滿意。

有了自己的 NAS 後,最大的差異就是資料傳輸變得更簡單, Windows 跟 Mac 之間不用再靠 USB 或公有雲傳檔案,常用檔案也可以直接放上面,相當方便。

不過這台 NAS 機殼本身規格讓我不太滿意,除了邊邊容易割手,防塵效果也不怎麼好,運作聲也挺大,再來就是零件當初也是隨便找的,所以整台主機配置其實有點奇怪。

目前的 NAS 配置

另外也因為這台 TrueNAS 所以玩了一陣子虛擬機,對 Linux 和 Docker 大概都有一定知識,想玩的事情也變多了。

所以這次打算更新一波,讓整台 NAS 更完善一些。

NAS 硬體更新方向

使用一段時間大概也清楚了自己的需求,要制定升級的配置也就相當容易,我的預估需求跟理由如下:

裝兩個 Pool 的 Raid 1

一個 Pool 儲存資料,而另一個 Pool 供虛擬機使用。

儲存資料的 Pool 目前估計 6T 的 NAS 碟就能夠我用上很久,另一個 Pool 則買 1T 家用碟即可,基本上只拿來放虛擬機。

我認為這樣切分的好處是,虛擬機的硬碟萬一掛掉,就不用擔心連資料一起 GG。相較於大量重要資料轉移,虛擬機處理簡單多了。

而都選擇使用 Raid 1 是因為結構最單純、成本最低、速度也最快。

Raid 越多除了建構成本越高之外,資料片段的儲存方式也會越複雜,資料還原時間也會變得越久。

還原時間之所以是個問題,是因為還原的過程中也是可能會發生硬碟故障的

例如 Raid 5 的建構規則來說,需要最少 3 個硬碟組成,並接受一個硬碟故障的前提下不會毀損陣列。

但如果在故障一顆後開始重建陣列,結果很不幸的在重建過程中又發生故障,這樣一來陣列依然會崩潰。

然而這種情況發生機率其實不小,尤其對個人用戶要組 NAS 來說,Raid 中的硬碟通常都是同一批一起購買的,那差不多時間壞掉也不太意外。

這也是為何許多人不推薦純組 Raid 5,而是建議至少要 Raid 5 + HotSpare 或 Raid 10,甚至 Raid 6 的原因。

所以我認為無腦堆 Raid 並不是一個解,而是從根本上就不應該把 Raid 當作是一種備份方式,還是要有異地備份、時常監控的習慣,才能確保在硬碟有潛在狀況發生時,第一時間處理資料備份跟硬碟更換。

因此即使我有 NAS,仍然會維持異地備份的習慣,再加上我有自行維護的能力,所以對我的需求來說不需要使用到更安全的 Raid。

理想的機殼

畢竟 NAS 是 24 小時不關機,散熱跟穩定很重要,但考量到放在家中,佔據的空間還是能省則省。

另外「安靜」也是一個重要的點,否則到了晚上,機殼共振跟風扇噪音就會很明顯,這部分除了機殼本身挑選用料要足夠,風扇零件也需要注意噪音程度跟能否做轉速調整。

另外我希望電源能使用 ATX 規格,因為若使用 SFX 規格甚至特規的小電源,除了零件價格較高外,一般要購買零件的挑選上也比較受限,理想來說我還是會希望 NAS 的零件規格比較泛用好找的,萬一出了問題也比較容易替換。

例如我現在的 NAS 使用的是 U1 電源,這在一般通路上完全買不到,如果有天突然發生故障,那可能光等零件送到就得等上好幾天…

目前 NAS 使用的 U1 電源

最後就是基於第一點需求,機殼至少會需要 4 個硬碟槽位,系統碟部分則根據主機板支援,看要用 M.2 SSD 處理,又或是安裝 Sata SSD,也就是說保險 5 個硬碟槽位的機殼會比較恰當。

最終零件配置

綜合以上需求,目前我看中的是 Fractal Design 的 Node 304

Fractal Design Node 304 機殼

支援的主機板為 ITX,支援最多 6 顆硬碟,前方支援兩個 9cm 風扇,後方支援一個 14cm 風扇,CPU 散熱器高度支援到 16.5cm,顯卡也能安裝到 31 公分,電源規格是 ATX。

兼容性好、沒有特殊零件、硬碟槽位夠用、體積算不大、甚至連防塵都很全面,整體來說是相當理想的機殼。

機殼很快就在 PTT 上找到賣家了,確定機殼之後就可以根據機殼兼容性找零件。

正好在找機殼的時候就發現一組 i3 8350K + ASRock-H310M ITX,價格相當不錯且主機板還在保固內。

另外再到某屋買兩條 16Gx2 的DDR4 RAM,另外還有一顆下壓式的 CPU 風扇。

購買的主要零件

選擇下壓式風扇是因為考量塔扇可能會跟線材打架,而且要拆裝硬碟的話空間上可能會有稍稍尷尬。

要特別注意的是,因爲是使用 8 代的 CPU,所以選購 RAM 要注意顆粒選 1024*8,Intel 9 代之後的 CPU 才能用 2048*8 或 1024*16。

風扇的部分我從台南某電子購買了幾把貓扇來用,以確保安靜跟信仰足夠

便宜的貓扇

然後 H310M ITX 這張主機板只有 4 個 SATA 槽位,所以我購買了一張 PCIE 轉 M.2 跟 M.2 轉 SATA 的轉接卡。

PCIE 和 M.2 的轉接卡

另外如果沒有槽位不夠的問題,而且有多餘預算的話,我會想把 PCIE 留著插顯卡或更快的網卡,這樣一來傳輸速度就能大幅加快。

不過考慮到我沒有播放影片需求,另外升級網卡也意味著 Router 跟 Switch 都必須升級,可以等到之後再擴充。

因為硬碟還沒到,所以先用手上有的硬碟,把電腦組裝起來測試。

NAS 組裝

安裝 TrueNAS Scale

在安裝 TrueNAS 前,我通常會先安裝 Windows 進行一輪測試,確定系統穩定、功耗溫度都符合預期後,再安裝 TrueNAS。

主機燒機測試

這次升級也打算一併從 TrueNAS Core 換到 TrueNAS Scale。

首先換到 Scale 後因為系統基底改為 Debian,系統本身有了對 Docker 支援,理論上能執行的應用會比較豐富。

其次 Scale 的更新策略來看,感覺在未來不久是有機會取代掉 Core 的,既然未來可能都得換過來,我覺得那不如就早點升級上來先來熟悉。

而且 Scale 在使用者佈局和 UI 上做了相當大的調整,感覺使用上會比較方便一些。

TrueNAS Scale UI 佈局

安裝 TrueNAS 過程很簡單,基本上照著流程點就行,網路也有很多教學影片。

升級到 Scale 可以直接從 Core 中升級,或是選擇重灌。

而 Core 的儲存池換到 Scale 一樣可以被讀取到,這點相當不錯。

TrueNAS 重灌後儲存池依然存在

不過一般來說我還是會推薦重灌,比較不用擔心一些兼容性導致的未知錯誤。

Scale 中遇到的一些問題

我使用的是 TrueNAS-SCALE-22.12.1 版本,可能因為 Scale 還很新,Bug 依舊不少,操作上不如 Core 流暢。

網頁後台部分如果操作較久,或是更新的畫面物件較多,就會越用越卡,不過通常只要頁面重新整理後就能解決,應該會隨著版本更新後被修正。

問題比較大的會是 TrueNAS Scale 中使用的 App,簡單來說就是官方先幫你包裝好的 Docker 應用。

現在官方提供的 App 相當少,這部分目前需要依靠第三方 - TrueCharts 來解決。

TrueNAS Scale 中的 TrueCharts APP

但 TrueCharts 中也有許多 App ,在設定或部屬上都有 Bug 存在,更有遇到我正在使用的 App 升級後直接故障,但卻又無法降回原先的版本。

另外,如果 TrueCharts 中沒有你需要的 App,那仍要自己包裝一層容器來啟動,並且 App 的應用處理 SSL 或反向代理的方法比較麻煩一些。

另外 TrueNAS Scale 使用了 K3S 作為底層,許多論壇用戶都指出建立應用 Pool 的硬碟每 5 秒就會喚醒。

TrueNAS Scale 中 K3S 問題討論

這可能讓硬碟本身的休眠機制無法啟動,對於硬碟本身的壽命便會有所損耗,也會因此增加許多電量上的消耗和噪音。

由於 App 的諸多潛在問題,所以我目前仍然決定用虛擬機的方式來部署我需要的應用。

結語

終於有一台看起來比較人模人樣的 NAS…

新的 NAS

硬體部分最理想的可能偏好使用 G 系列的處理器,畢竟我主要還是拿來當作文件伺服器,對性能要求比較低,耗電量部分當然是希望能省就省。

但反過來說,當需要跑比較吃力的應用程式時也不用擔心,算是各有利弊。

Scale 部分雖然講了許多缺點,不過基本上都是基於應用層面,核心的 NAS 功能在 Scale 上還是算相當穩定,而且 UI 上的升級對操作體驗有很大的幫助。

應用部分我認為如果使用需求不大,例如只是要部署 Plex、Jellyfin、Nextcloud 等文件管理、播放應用程式,而且主要是在內網中使用,那直接使用 Scale 提供的 App 應用即可。

否則使用虛擬機來部署 Docker 應用我認為會是比較好的選擇。

這篇比較注重在硬體部分,之後有機會可能會再來寫寫關於軟體部分設置的文章。