1. 程式人生 > 實用技巧 >NAS簡介及軟硬體方案分析

NAS簡介及軟硬體方案分析

目錄

什麼是 NAS

NAS(Network Attached Storage:網路附屬儲存)按字面簡單說就是連線在網路上,具備資料儲存功能的裝置,因此也稱為“網路儲存器”。

這是百度百科對 NAS 的定義。按照個人理解,NAS 誕生有如下原因和作用:

  • 專業的人做專業的事 ,專業的裝置(硬體)承載專有的業務。

    當今社會工作崗位被精細化分工,軟體工程上微服務概念也如火如荼,這些概念誕生的背後機理是相似的。回到 NAS,它將儲存業務從主伺服器剝離,軟體上實現了儲存和主業務的鬆耦合,硬體上實現了專有硬體裝置儲存。這樣做的好處顯而易見:

    • 主伺服器崩潰不會導致儲存資料丟失。
    • 獨立的儲存硬體方便進行資料備份,配套軟體能對儲存業務進行專門優化。
  • 個人資料儲存方案多了一種選擇。

    截至 2020 年 11 月,國內免費公有云只剩百度一家,其他諸如堅果雲,115 等都轉向收費市場。海外,谷歌宣佈 2021 年 6 月終止無限照片免費儲存,三星宣佈 2021 年 8 月底關閉雲相簿同步功能,並刪除相簿資料。免費的才是最貴的

    ,這一真理再次得到檢驗。

    個人是贊同雲服務轉向收費模式的,前提是服務的穩定性,隱私性。動輒刪除使用者資料,關停伺服器的行為一直是懸在使用者頭上的達克莫里斯之劍。既然都接受收費模式了,為何不選擇自建雲呢?NAS 為我們提供了一種新的資料儲存方案,本質上跟多年前隨身帶個行動硬碟進行備份沒有區別。

    個人使用 NAS 的好處:

    • 隨時備份手機照片:免去 iCloud 等各種昂貴的雲端儲存服務。
    • 家庭影音中心:手機上裝個媒體播放器,通過 samba,ftp,dlna 等方式播放 NAS 上的電影。
    • 錄影儲存:部分 NAS 支援錄影儲存功能,可以將家庭攝像機的錄影儲存到 NAS 上,進行備份和回放。
    • bt/pt 下載機[1]
      :有松鼠病的朋友可以 24h 不間斷下載網路資源。
    • 其他資料中心:例如我個人就將 NAS 當作筆記資料的儲存中心。

NAS 軟硬體方案對比

軟硬體一體化方案

所謂軟硬體一體化,即是 NAS 廠家銷售硬體 + 軟體一整套 NAS 解決方案。市場上常見的 NAS 解決方案廠家有群暉,威聯通,鐵威馬等。

  • 優點:使用者上手門檻較低,有廠家技術支援和成熟的軟體生態。
  • 缺點:價格昂貴,例如群暉最低配的兩盤位 NAS 裸機[2]價格也要 2000 +。

通用硬體 + NAS 作業系統

Intel NUC 迷你主機,J1900 工控機,Gen10 伺服器 ,有折騰過軟路由,HTPC 的朋友肯定對這些硬體耳熟能詳。從硬體角度看,NAS 也是臺獨立迷你主機,只要符合一定效能要求的裝置都能作為 NAS 主機。

淘汰的膝上型電腦,樹莓派,路由器,桌上型電腦,從技術上講這些硬體作為 NAS 主機都行得通,但各有各的侷限。個人認為 NAS 主機必須具備如下硬體條件:

  • 低功耗:功耗控制在 15W 以下(不算硬碟功耗)。
  • 24h 全天候執行:個人不贊同用到 NAS 再遠端喚醒的方式(WOL),一來不穩定,二來使用者體驗糟糕。
  • 穩定:這是 NAS 最核心的功能訴求。
  • 低噪音:有獨立機架和弱電間的土豪可忽略這一條。
  • 至少兩個 SATA 口:最少接兩塊硬碟,一塊儲存,一塊備份。實在沒條件的可用 USB3.0 + 易驅線 擴充套件硬碟。
  • 至少一個千兆網口:區域網資料傳輸速率至少保證千兆,有條件可上萬兆。
  • 建議使用 x86 硬體,兼顧效能和軟體相容性。

說完硬體再講講軟體。NAS 作業系統是針對 NAS 業務功能做過定製裁剪的系統,使用者可以開箱即用。下面列出一些常用的 NAS 作業系統,個人沒有試用過也不做任何評價。

  • 黑群暉 。
  • FreeNAS 。
  • OpenMediaVault 。
  • RockStor 。

方案優缺點

  • 優點:硬體自由度很高,使用者根據需求可以攢出超高性價比的裝置。軟體上也可以選擇自己心儀的 NAS 作業系統,不必被 NAS 廠家捆綁。
  • 缺點:使用者上手門檻較高,需要具備一定的軟硬體專業知識。自建的 NAS 軟硬體穩定性是個很大問題,出問題後沒有廠家的專業技術支援。

通用硬體 + 通用作業系統

在前一種方案的硬體基礎上,直接使用 Ubuntu、CentOS 等通用作業系統作為 NAS 作業系統。

  • 優點:軟硬體自由度最高,可以實現 all in one 的需求[3]
  • 缺點:對使用者的軟硬體綜合素養要求非常高,非常折騰、耗時,不建議沒有軟體背景的使用者嘗試此方案[4]

開篇提到過,NAS 是業務分離的產物。這裡卻又提到了 all in one 的需求,其實並不矛盾。

  • 業務分離只是軟體上的分離,鬆耦。資金不富裕的情況下,硬體上 all in one 對家用來說價效比很高。
  • 通過 docker 等軟體技術解決 all in one 的部分劣勢[5]

小結

  • 有自建 NAS 需求,且資金充裕不願意折騰的使用者,建議購買軟硬體一體化的 NAS 解決方案。隨著更多資本進入 NAS 市場,NAS 價格也會更親民。
  • 不滿足 NAS 廠家提供的功能,想發揮閒置硬體餘熱,不想花太多時間維護軟體功能的使用者,可以選擇通用硬體 + NAS 作業系統的方案。
  • 具備軟硬體專業知識,或想通過自建 NAS 學習軟硬體知識,喜歡折騰,想實現 all in one 的使用者,可以選擇通用硬體 + 通用作業系統的方案。

我的 NAS 軟硬體方案

我的硬體是一臺 5200U 的工控機:

  • CPU:Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz,TDP 15W 。
  • 記憶體:8GB DDR3L 1600。
  • 儲存介面:1 x msata,1 x SATA3.0,2 x USB3.0。
  • 網口:4 個 I211AT 千兆網絡卡。

工控機是兩年前買來折騰軟路由的,一直閒置吃灰[6],拿來當 NAS 主機綽綽有餘,但毫無價效比可言。

軟體方案上,為了最大發揮硬體效能和定製化 all in one 需求,選擇的是 Ubuntu + docker 方案。

  • seafile:開源私有企業網盤,雲端儲存解決方案。
  • chevereto:開源圖床解決方案。
  • aria2:開源下載器,支援 HTTP/HTTPS、FTP、SFTP、BitTorrent、Metalink 協議。
  • nginx-proxy:著名的反向代理軟體,支援 80/443 埠複用,分發二級域名請求給不同 docker 容器。

為什麼不用 ESXi 等虛擬機器方案

  • 5200U 只有 2 個核心(4執行緒),頂配支援 8G 記憶體,多開虛擬機器比較吃力,降低使用者體驗。
  • 使用 docker 也能實現各業務執行環境隔離目的。

為什麼使用 Ubuntu 而不是 CentOS,FreeNAS

  • 宿主機選擇 Ubuntu 純粹是個人喜好,完全可以換成 CentOS,Debian,Archlinux 等其他 Linux 發行版。
  • 不選擇 FreeNAS 等專用 NAS 作業系統則是為了最大程度的軟體自由度,實現 all in one 。

為什麼選擇 seafile 而不是 nextcloud

  • seafile 技術棧是 c + python;nextcloud 是 php 。作為嵌入式開發者,自然更傾向於 seafile 。
  • 檔案同步效能和穩定性:seafile 支援差分同步,雖然犧牲了傳統的檔案系統目錄結構,但有 SeaDriver,Fuse 等補救措施。nextcloud 使用標準檔案系統儲存資料,但網友反饋小檔案多了後 performance 極差,推測是 PHP 的鍋。
  • 擴充套件需求:個人網盤的核心訴求是檔案同步穩定性,資料儲存安全性,而不是多人協作等邊角功能,nextcloud 外掛系統對我來說有點雞肋。
    順帶吐槽下:nextcloud 外掛中心載入速度極慢,使用者體驗很差,主要原因是外掛中心伺服器位於國外。

為什麼使用 nginx-proxy

  • 不必記憶容器埠號:docker 容器基於 web 管理,部署 nginx-proxy 反代,可以複用 NAS 主機 80/443 埠,通過二級域名訪問不同 docker 容器。

為什麼要使用 chevereto

  • 問題等價於:什麼是圖床 + 自建圖床(chevereto)有什麼好處?
  • 個人當前的筆記方案是 seafile + typora + chevereto 。
    chevereto 用於解決圖片儲存問題:即使調整筆記目錄結構,也不會導致筆記中的圖片引用失效[7]

為什麼不用 imgurl

  • 首次嘗試的圖床軟體是 imgurl,但其 docker 版本無法使用,才切換成 chevereto 。

總結

自建 NAS 有幾個目的:

  • 讓閒置硬體發揮餘熱。
  • DIY 過程中學習完善前後端軟體知識體系。

本文是 NAS 系列文章的開篇,後面將陸續補充:

  • seafile 個人網盤自建過程及注意事項。
  • chevereto 個人圖床自建過程及注意事項。
  • aria2 下載機部署方案。
  • nginx-proxy 反向代理及 HTTPS 證書申請方法。
  • 資料備份方案分析和 UPS 必要性分析。

附錄

腳註


  1. 下載機功能對硬碟效能要求更高,注意不要使用疊瓦盤,保證資料定期備份。 ↩︎

  2. 不帶硬碟。 ↩︎

  3. NAS,HTPC,軟路由等業務可以在一臺硬體裝置上實現。 ↩︎

  4. 硬體可以買現成的,軟體有無數的技術細節需要處理。 ↩︎

  5. 一個業務宕機影響其他業務執行。 ↩︎

  6. 家用軟路由是偽需求,不建議大家入坑。後續有時間再單獨寫篇文章解釋這個事。 ↩︎

  7. 直接用 seafile 儲存圖片,只能引用相對路徑,一旦筆記目錄調整,所有圖片引用都會失效。 ↩︎