正在閱讀【NAS 系列】2022 年 DIY NAS 應該用什麼 OS?

【NAS 系列】2022 年 DIY NAS 應該用什麼 OS?

Ivan Wong

Ivan Wong

2022-04-15

Card image

前言

上回我們從硬件的層面介紹了 DIY NAS 跟現成 NAS 的差別 (2022 年 DIY NAS 還值不值得? 硬件篇),發現從硬件上來看,DIY NAS 還是很有性價比的。不過,對 NAS 來說,軟件比起硬件來得更重要。事實上,現成 NAS 的價格對比硬件成本溢價這麼高,錢就是到軟件開發去了。所以,這一期就讓我們橫評一下各款 DIY NAS 的系統,看看它們能否跟 Synology DSM / QNAP QTS 等大廠的 OS 一決高下吧。

OpenMediaVault

Figure 1: OpenMediaVault 5 的 GUI 主畫面

Figure 1: OpenMediaVault 5 的 GUI 主畫面

OpenMediaVault (簡稱 OMV) 是一款基於 Debian 的 NAS 系統,配備簡單易用的 GUI 介面,安裝簡單,對於新手來說是不錯的選擇。 NAS 的基礎功能,例如共享資料夾、用戶群組、讀寫權限等等,都十分齊備,而且都可以通過 GUI 進行配置,省卻使用 CLI 的麻煩。另外,OMV 支援 SMB 及 NFS 共享,方便局域網內的 Windows / Linux 機器存取檔案。除了基礎功能外,OMV 用戶可以通過 omv-extras 套件,安裝第三方的插件。目前的穩定版是 5.6 (則 OMV 5),而開發版為 6.0 (OMV6)。經過接近兩年的開發,目前 OMV 6 已經十分穩定,新用戶可以考慮安裝 OMV 6。不過,有些 omv-extras 的插件還未移植到 OMV 6,安裝前請先了解需求。

OMV 的插件數目不算太多,但也有不少實用的插件:

  • luksencryption - 加密儲存裝置
  • lvm - 建立和管理 LVM (邏輯捲軸)
  • zfs - 建立和管理 ZFS 檔案系統,可用於建立 RAID 1、RAID 5、RAID 6 及 10
  • ldap - 連接 LDAP 伺服器作用戶管理
  • openvpn - 建立和管理 OpenVPNM 伺服器
  • kvm - 建立和管理 KVM 虛擬機器

Figure 2: OpenMediaVault 6 的 GUI 主畫面,可以看到畫面比較接近現在的設計,有更多的可視化數據

Figure 2: OpenMediaVault 6 的 GUI 主畫面,可以看到畫面比較接近現在的設計,有更多的可視化數據

不過,OMV 對於遠端存取的支援較弱,原生只支持 FTP,即使插件方面亦沒有提供相關的支援。多媒體方面更是完全沒有著墨,沒有提供相片及影片的瀏覽方式。不過,OMV 目前已經整合 Docker 及 Portainer,用戶可以通過 GUI 一鍵安裝 Docker 及 Portainer,並以 Portainer 安裝所需的 Container,例如 NextCloud、Jellyfin 及 qBittorrent 等,而加強遠端存取及多媒體的能力。

虛擬機 (VM) 支援方面,omv-extras 提供 kvm 套件供用戶建立和管理 kvm 虛擬機,簡面比較簡單,但功能上基本齊備,支援 Snapshot、Clone 等進階功能。OMV 亦整合 RedHat Cockpit,可以一鍵安裝並使用 Cockpit 來管理虛擬機。

優點

  • 安裝簡單,只要有能力安裝 Windows 及 Ubuntu 等系統的用戶,都能夠順利安裝 OMV
  • 具備 GUI 網頁介面,大部份的設定均可通過 GUI 進行,無需接觸 CLI
  • 基於 Debian,用戶可通過 APT 進行套件管理;OMV 的插件亦整合於 APT 當中。
  • 使用 Linux 核心,使用 Docker Container 無需進行虛擬化,比較節省資源
  • 社群活躍,開發及維護頻密

缺點

  • 原生並無提供除 FTP 以外的遠端存取支援,需要通過 Docker 安裝 NextCloud 等程式實現
  • 原生及插件皆沒有提供任何多媒體支持,影片及音樂串流可以通過 Docker 安裝 Jellyfin 實現,相片庫則可通過安裝 Photoprism 實現
  • 以上通過 Docker 安裝的程式,與 OMV 的用戶管理並不相連 (例如 FTP、SMB 的用戶),需要通過 LDAP 作整合,難度較高
  • 原生並無提供雲端同步及備份的支援,只有 rsync、rsnapshot 等可用於同步及備份於 VPS
  • GUI 介面比較舊,不過新的 OMV 6 (開發當中) 已重寫介面,比較貼近現在的審美觀

TrueNAS Scale

Figure 3: TrueNAS Scale 的 GUI 主畫面

Figure 3: TrueNAS Scale 的 GUI 主畫面

TrueNAS 是一款非常老牌的 NAS 系統,前身為 FreeNAS,一直都是基於 FreeBSD 內核開發。FreeNAS 系統十分穩定,而且原生支持 ZFS 系統,一直都是 DIY NAS 用戶群的熱門選擇。不過,TrueNAS 基於 FreeBSD 內核,無法使用 kvm 建立虛擬機,也無法直接運行 Docker Container / Kubernetes,成為它的一大短版。為趕上 Container 技術潮流,iXsystem 在 2021 年頭推出 TrueNAS Scale,採用 Linux 內核,大幅加強對 Virtualization 及 Container 技術的支援,同時繼續提供 TrueNAS 原有的功能和體驗。原有的 TrueNAS 則更名為 TrueNAS Core,以資識別。

Figure 4: TrueNAS Scale 的功能簡介圖,可以看到 TrueNAS Scale 的確是方方面面都想照顧到

Figure 4: TrueNAS Scale 的功能簡介圖,可以看到 TrueNAS Scale 的確是方方面面都想照顧到


從 Figure 3 可以看到,TrueNAS Scale 可謂集百家之大全。在管理方面,Scale 繼續提供豐富的 GUI 介面,最近亦新推出 TrueCommand,可以讓用家一站式管理多個 TrueNAS 裝置。用儲存方面,Scale 繼續以 ZFS 為主,容許用家建立多種儲存池,例如 RAID 1、RAID 5、RAID 6 及 10 等。當然,NAS 的基礎功能,例如共享資料夾、用戶群組、SMB/NFS 共享也是支援的。此外,TrueNAS Scale 原生提供 Active Directory、Google 2FA、LDAP 的整合,方便處理大量用戶。當然,以上的功能是從 TrueNAS 時代開始就有。Scale 版本的重點是對 Container 技術的支援,目前 Scale 已內建 K3S 以部署和管理 Container,並提供 TrueCharts 支援 (基於 Helm Chart),讓用戶一鍵部署各種應用。這點可是比 Synology 及 QNAP 的第三方應用支援更為強大,可玩性更高。

TrueCharts 支援的應用數量很多 (要安裝第三方應用庫),包括:

  • Jellyfin: 影片、音樂串流平台
  • Photoprism: 相片庫
  • Syncthing: 點對點檔案同步
  • Vaultwarden: Password Manager (密碼管理員)
  • NextCloud: 私人雲端硬碟
  • Prometheus + Grafana: 數據監控、圖像化系統

TrueCharts 應用的安裝流程也十分簡單,大家可以看看官方的演示:

對 TrueCharts 支援的應用有興趣的讀者,可以到他們的 catalog 瀏覽一下。

不過 TrueNAS Scale 目前仍處於開發階段,仍然存在不少限制。例如 Scale 內建的 K3S,只能通過內建的 GUI 進行管理,雖然可以使用 kubectl、LENS、Rancher 等工具連接,但設定無法同步,內建的 GUI 會覆蓋經過修改的設定。Virtualization 方面雖然基於 kvm,不過 GUI 介面並非所有功能都支援,例如只可以選擇 GPU 直通,但不支援 GPU 虛擬化。同樣,用戶可以使用 RedHat Cockpit 連接 kvm 作管理,但內建的 GUI 會覆蓋經過修改的設定。對於想要嘗鮮,高可玩性的用戶,我是高度推薦 TrueNAS Scale 的,但如果追求穩定,或者需要對 K3S / KVM 進行複雜設定的用戶,暫不建議使用。

優點

  • 擁有十分齊全、高度可視化的 GUI 介面
  • 基於 Linux 內核,原生支持 KVM 虛擬化及 Container 部署
  • 提供 TrueCharts 支援,可以一鍵部署各種 Container 應用
  • 原生支持 ZFS,對於想要組 RAID 的用戶十分方便
  • 原生提供 Active Directory、Google 2FA、LDAP 的整合,方便處理大量用戶
  • 由 iXsystem 公司開發維護、社群活躍

缺點

  • 安裝比較困難,由於 TrueNAS Scale 會佔用整個安裝盤,一般用戶會選擇將系統安裝於 USB 上,或自行修改安裝程序
  • 檔案系統方面只支援 ZFS (雖然可建立 EXT4,但不能用於儲存庫)
  • 內建的 kvm 及 K3S 不支援外部設定
  • 開發時長只有一年左右,目前仍不算十分穩定,在重要環境使用前需考慮清楚

Unraid

Figure 5: Unraid 的 GUI 主畫面

Figure 5: Unraid 的 GUI 主畫面

Unraid 是近年 NAS 及 Homelab 界一個非常熱門的系統,由 Lime Technology 開發,目標是整合 NAS、虛擬機以及 Docker 部署於一身,與 TrueNAS Scale 定位相近 (事實上 TrueNAS Scale 的出現正是因為 Unraid 的追趕)。基本的 NAS 功能 Unraid 當然完全齊備,亦可以通過 SMB / NFS 存取共享資料夾,我就不再詳述了。Unraid 其中一個強項是它的 Virtualiztion 支援十分完備,同樣是基於 kvm,Unraid 介面提供的設定非常多,基本上所有操作都可以經過 GUI 進行。例如要進行 GPU / SATA / PCIe 直通,都可以無痛一鍵完成。此外,如果要對 Intel iGPU 進行虛擬化,直接安裝 GVT-g 插件即可。

在 Container 方面,Unraid 直接運行 Docker,並且提供大量的 Docker 配置文件,用戶可以一鍵部署各種 Container 應用。由於 Unraid 社群發展迅速,目前為止支援的 Container 應用已高達 1400 個,可玩性極高。大家有興趣的話,可以到 Unraid Community Apps 頁面,查詢一下支援的 Apps。不過,Unraid 由於直接使用 Docker,而沒有配備 Kubernetes,難以 Scale-up 應用數量,例如多開幾多 Nginx 作負載平衡等等。這點來說,TrueNAS Scale 是比較優勝的。

Figure 6: 可以看到,Unraid 儲存系統容許用戶組合不同容量的硬碟,只要糾錯碟的容量最大即可

Figure 6: 可以看到,Unraid 儲存系統容許用戶組合不同容量的硬碟,只要糾錯碟的容量最大即可


儲存方式也是 Unraid 的一大特色。傳統的 NAS 系統在提供資料容錯的時候,都會選擇 RAID 陣列。RAID 陣列會把數據拆分並放置於不同硬碟上,把讀寫頻寬平均分佈,增加效能。不過,這種做法對於擴展性和可維護性都有影響。因為陣列中所有硬碟的容量必需一致,此外,一但損壞的硬碟數量超過陣列容錯能力,所有資料都會損毀,無法修復。

Unraid 的儲存方法不會把數據拆分,相關的數據必然會儲存在同一硬碟上,所以一但出現錯誤,用戶可以直接以電腦存取硬碟資料。用戶可以在 Unraid 上安裝最多兩個糾錯碟,它們可以保護任意兩個硬碟損毀。在可擴展性上,Unraid 只限制糾錯碟的容量必需是所以硬碟最大,其餘不限,因此在 Unraid 中裝上不同大少的硬碟也可以。

Unraid 的確十分強大,對於家庭用戶來說,有充足的擴展性、可維護性以及可玩性。不過,沒有天上掉下來的餡餅,Unraid 是收費的。Unraid 的系統價格以硬碟數量作區分,由 $59 USD 的 6 硬碟版本,到 $129 的無數量限制版本,大家可以到官網了解。

優點

  • 同樣擁有十分齊全、高度可視化的 GUI 介面 (不過個人認為 TrueNAS Scale 的比較現代化)
  • 基於 Linux 內核,原生支持 KVM 虛擬化及 Container 部署
  • KVM 虛擬機的設定比 TrueNAS Scale 更齊全,甚至支持一鍵 GPU 虛擬化
  • 提供原生 Docker 支援,並支援一鍵部署各種 Container 應用
  • 提供獨有的 Unraid 儲存系統,對比 RAID 有較高的擴展性和可維護性

缺點

  • Unraid 是收費的,價格由 $59 - $129 USD 不等
  • 不支持 RAID 陣列,用戶只能使用 Unraid 儲存系統
  • 不支持 Kubernetes,無法實現負載平衡等需求
  • 不支持 LDAP 等用戶管理伺服器,而原生的用戶管理亦較弱,不適合大量用戶使用

總結

以上介紹的三個主流 NAS 系統,可以符合不同用戶的需求。對於輕量使用者或初學者來說,OpenMediaVault 是不錯的選擇。如果需要比較完整的 Virtualization 及 Container 支援,以及有 Scale up 的需要,則可以選擇 TrueNAS Scale。最後,以擴展性和可維護性為首要考慮的用戶,可以選擇 Unraid。

此文章撰寫自
Ivan Wong

Ivan Wong

@spectre

IT dog 一名,最近的興趣是 Blockchain、Container 和 NAS。平時閒在家喜歡聽音樂,什麼類型都聽。