由於現有 NAS 空間逐漸不夠,加上相機 RAW 檔越來越多,終於要採購新的 NAS 了。由於對 ZFS 以及其快照功能很有興趣,但又懶得從頭開始處理,也沒有特別想做虛擬化,所以選擇了 TrueNAS Scale 這個以 Debian Linux 為基礎的開源 NAS 作業系統。
配備:
- 電源供應器:海韻 Focus PX-550
- 處理器:AMD Ryzen 5 PRO 5650 G
(APU 要 Pro 才有支援 ECC unbuffered 記憶體) - 主機板:華碩 PRIME B550M-A WIFI II
- 記憶體:金士頓 32GB 3200MHz DDR4 ECC CL22 DIMM 2R*8 x 2
- 硬碟:Seagate Exos X18 18TB x 4
(OEM 拆機品,好便宜,意者洽) - 開機碟:美光 Micron Crucial BX500 240GB x 2
- SATA 擴充卡:AUMLMASIG 全通碩 PCIe to 6xSATA3
(這個有 PCI-E Gen3 x1)
機殼是最難找的(選擇困難)。本來屬意銀欣 CS382,但有點貴,好像也不需要那麼多硬碟插槽。最後在淘寶上買了御夫座,有 6 個插槽也支援 M-ATX 主機板,不必再買沒什麼選擇的 ITX 主機板,白金電源供應器也比較便宜。
TrueNAS Scale 安裝非常簡單,和一般 Linux 文字安裝沒什麼不同。不過在這張主機板上開進 kernel 之後會沒有 HDMI 畫面輸出,在 grub2 中修改啟動參數可以解決:
nomodeset amd_pstate.shared_mem=1 amd_pstate=passive acpi_enforce_resources=lax
(nomodeset
在安裝完成設定好網路之後要拿掉,否則會導致 amdgpu
kernel module 無法載入)
後面多設定了 AMD P-state scaling driver,在 kernel 6.1 之後引入,啟動之後耗電可以降低,性能也較好。這張主機板好像 ACPI 有衝突,lm-sensors
沒辦法正常讀取及調整 PWM 風扇,透過 acpi_enforce_resources=lax
略過之後可以強迫忽略衝突。
修改完 P-state 之後,可以使用 cpupower
指令確認是否生效:
# cpupower frequency-info
analyzing CPU 0:
driver: amd-pstate
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 20.0 us
hardware limits: 400 MHz - 4.46 GHz
available cpufreq governors: performance schedutil
...
current CPU frequency: 2.35 GHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: yes
AMD PSTATE Highest Performance: 166. Maximum Frequency: 4.46 GHz.
AMD PSTATE Nominal Performance: 145. Nominal Frequency: 3.90 GHz.
AMD PSTATE Lowest Non-linear Performance: 88. Lowest Non-linear Frequency: 2.37 GHz.
AMD PSTATE Lowest Performance: 15. Lowest Frequency: 400 MHz.
在 TrueNAS 裡面要調整開機參數,必須透過 CLI 修改,否則照一般的 Linux 修改邏輯,重開之後會被復原:
$ midclt call system.advanced.update '{"kernel_extra_options": "nomodeset amd_pstate.shared_mem=1 amd_pstate=passive acpi_enforce_resources=lax "}'
在設定定時快照任務之後,目前運作良好且穩定,滿足家用需求,也保留了未來升級網路的擴充性。