构建我的第一个 22TB 容量的家庭存储服务器
原文鏈接🔗:https://mtlynch.io/budget-nas/
譯文原文鏈接🔗:https://icloudnative.io/posts/budget-nas/ 請復制到瀏覽器打開
譯者:米開朗基楊
本文已獲取原作者的翻譯授權👇
今年我決定給自己量身定制一臺家庭網絡存儲服務器(也就是 NAS),預計存儲容量有 32TB,并使用開源的操作系統,用來存儲我的個人和商業數據。
服務器本身花了 $531,額外花了 $732 買了四塊硬盤,總成本達到了 $1,263。這個價格與購買現成的 NAS 服務器差不多,但我的方案提供了更多的功能和可定制性。
本文我將會給大家介紹自己當初是如何選擇硬件的,中間犯了哪些錯誤,最后會給有興趣構建個人 NAS 服務器的小伙伴提供一些有參考價值的建議。
我還錄制了一個視頻,歡迎觀看:
https://www.bilibili.com/video/BV1Hr4y137CG
背景
為什么需要 NAS 服務器?
NAS 即網絡附加存儲(Network-attached storage)[1],NAS 服務器的主要工作就是存儲數據,并將其提供給你網絡上的其他計算機使用。
那么,為什么一定要使用一個完整的專用服務器來存儲數據呢?畢竟每臺計算機都可以存儲數據。
我認為將數據與其他系統解耦是有益的,我本人每隔兩到三年就會升級我的工作站和筆記本電腦,而在不同電腦之間遷移數據非常麻煩。使用專門的 NAS 服務器就可以免去大多數不必要的數據遷移工作,而且各個系統之間還可以共享文件。
除此之外,我還是一個數據囤積狂[2],我保留了之前拍攝的每一張數碼照片,以及過去 20 年里收發的所有電子郵件,再加上所有個人項目的源代碼,總共有 8.5TB。
我最大的數據來源是自己收藏的 DVD 和藍光碟片,本人不太喜歡依賴流媒體服務來保存喜歡的影視作品,所以我至今仍然會購買影視作品的實體拷貝,一旦買到一張新的光盤,我就會將原影像翻錄出來,并制作成一個可流式傳輸的視頻文件。在原始 ISO 拷貝和可流式傳輸的 MP4 之間,一張光盤可以占用 60GB 的硬盤空間。
我仍然會為需要多次觀看的影視作品購買 DVD 或藍光碟片什么是 Homelab?
"Homelab" 是一個口語化的術語,最近幾年越來越受歡迎。
一個 Homelab 其實就是你家里的一片區域,你可以像在辦公室或者數據中心一樣在這個區域中試驗 IT 硬件或軟件。它可以作為練習專業技能的實踐環境,也可以用來把玩一些有趣的技術。
為什么要自己組裝 NAS?
如果你是 Homelab 新手,或者沒有組裝 PC 的經驗,建議不要嘗試自己組裝 NAS。你可以選擇一體化的解決方案(比如群暉、威聯通這種),這樣學習曲線會比較平緩。
在組裝自己的 Homelab NAS 之前,我已經使用了 7 年的 4 盤位群暉 DS412+[3]。我覺得群暉很好,性價比很高,如果你是 NAS 小白,建議直接買群暉吧。
為我服務了七年之久的 10TB 群暉 DS412+幾個月前,我的群暉啟動失敗了,并開始發出咔咔的聲音。這時我開始意識到自己對這臺設備的依賴程度如此之重,想到這里后背就一陣發涼。因為群暉的服務器是不可修復的,如果其中一個零件在保修期之后出故障了,你只能更換整臺服務器。如果你跟我一樣不是技術大拿,而且使用了群暉專屬的存儲格式,也沒有額外的群暉服務器,那么此時你就無法訪問這臺服務器上的數據,也無法恢復(Hacker News 上的一位大佬[4]告訴我可以從一個非群暉系統中恢復群暉的混合 RAID 卷[5])。
萬幸的是,在我清理并重置了硬盤之后,數據就恢復了。這件事也給我敲響了警鐘,我決定改用 TrueNAS,因為它提供了一個開放存儲格式的開源實現。
TrueNAS 和 ZFS
TrueNAS[6](前身叫 FreeNAS)是存儲服務器最流行的操作系統之一,完全開源,而且已經存在了將近 20 年,看起來是一個靠譜的 NAS 系統。
TrueNAS 使用的文件系統是 ZFS,這是一個專門為存儲服務器設計的文件系統。NTFS 或 ext4 等傳統文件系統運行在管理低級磁盤 I/O 的數據卷之上。ZFS 可以管理從文件級別邏輯到磁盤 I/O 的一切內容,相比于其他文件系統,ZFS 的控制更全面,擁有更多的功能和更強的性能。
ZFS 的亮點:
將多個物理硬盤聚合到一個文件系統中;
數據完整性驗證和自動修復;
創建磁盤中數據的時間點快照(類似于 macOS 的 Time Machine 功能);
可選擇加密或壓縮硬盤中的數據。
在使用 TrueNAS 之前,我對 ZFS 的經驗是零,所以我非常想嘗試一下這個新奇的文件系統。
存儲規劃
預估所需存儲容量
之前我使用群暉時,插入了三個 4TB 的硬盤,并將第四個插槽留空。然后通過群暉的混合 Raid 來構建文件系統,總容量是 7TB。使用了三年之后容量不足,于是又增加了第四塊硬盤,總容量達到了 10TB。
對于這個全新的 NAS,我決定采取和之前類似的策略,我需要這個系統的存儲容量能滿足我當前的需求,并且能留有一定的增長空間。粗略估計當前需要 20TB 存儲容量,如果以后再增加硬盤,最高可達 30TB 存儲容量。
ZFS 目前還不允許向現有的存儲池中添加新的硬盤驅動器,但該功能正在積極開發中[7],希望在我需要擴展存儲的時候,TrueNAS 會俱備這個功能。
多個小硬盤還是少量大硬盤?
ZFS 的設初衷是抵御硬盤故障,它會以冗余的方式存儲每個數據塊。這個特點使存儲容量規劃變得很復雜,因為可用存儲的總容量不僅僅是每個硬盤容量的總和。
ZFS 會從硬盤租成的存儲池中創建文件系統,存儲池中的硬盤數量越多,存儲容量的利用率越高。例如,如果給 ZFS 提供兩個 10 TB 的硬盤,則只能使用總硬盤容量的一半。如果改用 5 個 4TB 硬盤,ZFS 將會提供 14TB 的可用存儲容量。雖然這兩種情況下硬盤的總容量相同,但后一種方案比前一種方案增加了 40% 的可用容量。
在組裝 NAS 時,我們需要思考到底是使用多個小容量的硬盤還是使用少量的大容量硬盤。這個問題要辨證地看,小容量的硬盤通常性價比更高,但是運行成本會更高,例如兩個 4 TB 硬盤需要的電力是單個 8TB 硬盤的兩倍。
我還是想減少服務器的占用的物理空間,因此我選擇了容量大的硬盤。
選擇 raidz 1, 2, 還是 3?
ZFS 提供了 3 種不同的磁盤陣列:raidz1,raidz2 和 raidz3,它們的主要區別在于健壯性。raidz1可以承受一個磁盤故障而不丟失數據, raidz2 可以承受兩個硬盤同時發生故障,而 raidz3 可以承受三個。
健壯性越強,可用的存儲容量越少,畢竟能量守恒嘛。我有 5 個 4TB 硬盤,下面列出了每個 ZFS 磁盤陣列的可用存儲容量:
| raidz1 | 15.4 TB | 77.2% |
| raidz2 | 11.4 TB | 57.2% |
| raidz3 | 7.7 TB | 38.6% |
最終我選擇了 raidz1,因為我的硬盤數量不多,兩個硬盤同時發生故障的概率比較低。
??注意:ZFS 不是一種備份策略[8]。ZFS 可以保護你免受磁盤故障的影響,但還是有很多威脅是 ZFS 無能為力的,比如意外刪除數據、惡意軟件攻擊或者物理盜竊。我選擇使用 restic[9] 將所有重要的東西備份到加密的云存儲中。
ZFS 的價值在于,如果其中一塊硬盤壞了,可以直接換掉,不必求助于云備份。如果同時有兩塊硬盤壞了,我才會選擇從云備份恢復(因為我使用的是 raidz1)。這個選擇過程非常痛苦,但我仍然選擇 raidz1,因為我覺得不值得為了 raidz2 而放棄服務器 20% 的可用存儲空間。
一般來說,硬盤數量越多,對磁盤陣列的健壯性要求就更高。如果我的存儲池是由 20 快硬盤組成的,我可能會使用 raidz2 或 raidz3。
防止多個硬盤同時故障
從概率上來看,兩塊硬盤同時發生故障的概率幾乎為零。根據 Backblaze[10] 的統計,質量比較高的硬盤每年發生故障的概率為 0.5-4%,就算是 4% 吧,每 48 年至多才會遇到一次兩塊硬盤同時發生故障,這個概率已經很低了,幾乎不用擔心。
但從實際情況來看,這種統計方式并不科學,如果其中一塊硬盤出現了故障,那么其他硬盤在這個時刻出現故障的風險將大大增加,因為你的硬盤很可能是同一型號,來自同一制造批次,并且處理著相同的工作負載,一旦出故障,很可能就是同時出故障。
除此之外,發生故障后重建 ZFS 存儲池也不是個好辦法,這會給正常工作的硬盤帶來更多的壓力,正常情況下可以使用幾個月的硬盤可能會在重建存儲池時直接掛掉。
考慮到上述這些風險,我需要采取一些措施來減少兩塊硬盤同時發生故障的風險,辦法也很簡單粗暴,直接從兩個不同的廠商那里購買兩種相同型號的硬盤即可。這種方案雖然沒有科學論證,但也沒啥附加的成本,還能圖個心理安慰,何樂而不為呢?😂
我從兩個不同的廠商那里購買了兩種相同型號的硬盤如何挑選硬件
主板
首先要明確主板的尺寸。我之前一直比較欣賞群暉 DS412+ 的緊湊外形,還從來沒有用過 mini-ITX 主板來組裝電腦,機會難得。
最終我選擇了 ASUS Prime A320I-K[11],原因如下:
有四個 SATA 接口,我可以直接將四塊硬盤接到主板上;
支持 Radeon 圖像處理技術,這樣我就不用再單獨購買顯卡了;
價格實惠,只需 $98。
??警告:我現在有點后悔選擇了這個主板,參考下面的討論[12]。
B450[13] 這個主板也不錯,與 ASUS Prime A320I-K[14] 很相似,但價格卻翻了一倍,目測對超頻的支持更好,但我對這方面沒什么需求。
CPU
以我的了解,ZFS 對 CPU 的要求并不高。我之前在一臺廉價的戴爾 OptiPlex 7040 迷你 PC 上安裝過 TrueNAS,并做過一些基本測試,結果表明 ZFS 并沒有怎么使用 CPU,所以選擇低功率的 CPU 應該沒啥問題。
我選擇 CPU 的主要標準是必須要支持 Radeon 圖像處理技術,這樣我就可以使用 A320 主板的板載 HDMI 輸出。
AMD Athlon 3000G價格低廉,并且原生支持 Radeon 圖像處理技術最終我選擇了 AMD Athlon 3000G,僅售 $105,物超所值,還支持 Radeon 圖像處理技術,CPU 基準測試[15]也表現良好。
機箱
我最喜歡的電腦機箱是 Fractal Design,所以我選擇了 Fractal Design Node 304 Black。這是一個緊湊的迷你 ITX 機箱,不像傳統的塔式機箱,它的設計樣式更接近于立方體,而且有 6 個硬盤托架,不管是目前使用還是將來增加硬盤都夠用了。
The Fractal Design Node 304 Black 是一款迷你 ITX 機箱,有 6 個硬盤托架數據盤
我的機箱有 6 個硬盤托架,所以我決定購買四塊 8TB 的硬盤作為數據盤。使用 raidz1 時可用存儲容量可達 22.5TB;將來如果增加第五塊硬盤,可用存儲容量將達到 30.9TB;如果再增加第六塊硬盤,可用存儲容量將達到 37TB。
8TB 的硬盤 RPM(revolutions per minute,即轉/每分鐘) 基本上都不會低于 7200,最高可達 10k RPM。RPM 高于 7200 對我來說并沒有什么影響,因為主要瓶頸在于網絡。也沒必要選擇 10k RPM 的硬盤,性能并不會強多少,性價比不高。
根據 Backblaze 的硬盤統計數據[16],硬盤價格越高,越不容易發生故障。我也考慮過購買 $400 的硬盤,因為它們的故障率非常低,但后來仔細一想,花兩倍的錢將故障率降低幾個百分點是不劃算的。
最后強調一點:不要購買使用 SMR(Shingled Magnetic Recording,疊瓦式磁記錄)技術的硬盤[17],因為 ZFS 在 SMR 硬盤上的表現非常差[18]。建議直接購買傳統的使用 CMR(Conventional Magnetic Recording,傳統式磁記錄)技術的硬盤。
最終我選擇了東芝 N300[19] 和希捷 IronWolf[20],主要是因為 TrueNAS 論壇和 Reddit 上面對這兩款硬盤的評價都比較積極,而且價格也很合理,都在 $180-190 之間。
系統盤
TrueNAS 需要將系統安裝在獨立的硬盤中,但是對硬盤要求不高,只需要 2GB 的空間,而且不會經常讀寫。
金士頓 A400 固態硬盤,容量 120GB,價格 $32最終我選擇了金士頓 A400[21],因為價格便宜,120GB 只要 $32,而且是 M.2 固態硬盤。M.2 好啊,不需要連數據線也不需要連電源線,而且外形小巧纖薄,幾乎不占用任何空間。
內存條
經過我的研究發現,很多人會提到 ZFS 的一條法則:系統中每 TB 的硬盤空間需要 1GB 的內存。但 ZFS 研發人員 Richard Yao 又說根本沒有這種規則[22],ZFS 的確有部分功能對內存的要求比較高(比如刪除重復數據),其他情況下 ZFS 只需要很少的內存[23]。
內存的選購非常無聊,根本找不到可信的基準測試和用戶報告,我的選購過程是這樣的:
查看有哪些內存條與華碩 A320I-K 主板兼容[24]。
篩選出 16GB 和 32GB 的內存條,因為我需要兩根內存條來組成 32GB 或 64GB內存。
篩選出值得信任的品牌(Corsair, Crucial, G.SKILL, Kingston, Samsung, Patriot, Mushkin, HyperX)。
篩選出價格低于 $150 的內存條。
最終我選擇了 CORSAIR Vengeance LPX 32GB CMK32GX4M2A2400C14 (2 x 16GB)[25],價格只有 $128。
CORSAIR Vengeance LPX 32GB CMK32GX4M2A2400C14 (2 x 16GB) 與 A320I-K 主板兼容,價格合理電源(power supply unit,PSU)
如果只看電源功率,基本上選擇任何消費級 PSU 都夠用了。根據 PCPartPicker 的數據[26],我的系統只需要 218 瓦的電源。本來我想買的是 300-400 瓦的 PSU,但市面上沒有這個功率的半模組 PSU,最終只能選擇 500 瓦的 EVGA 110-BQ-0500-K1[27]。
EVGA 110-BQ-0500-K1 是一款半模組 PSU,功率為 500 瓦,完全夠用90 度角 SATA 電纜
由于機箱空間限制,我需要一個 90 度角 SATA 電纜在這之前我從來沒有用過 90 度角 SATA 電纜,但我的主板和 PSU 之間的空間太小了,放不下標準的 SATA 電纜,只能使用 90 度角的 SATA 電纜來解決這個問題。
暫不考慮的硬件
由于價格、復雜性或物理空間的原因,有幾個硬件不在我的考慮范圍之內。
顯卡(GPU)
由于物理空間限制,再加上主板接口有限,我就不使用專用顯卡了,直接使用支持 Radeon 圖像處理技術的主板即可。
主機總線適配器(HBA)
NAS 一般都需要一個主機總線適配器[28](HBA),HBA 是一個可以放入主板 PCI 插槽的芯片,用來增加主板可以支持的硬盤數量。
我暫時還不需要 HBA,華碩 A320I-K 主板的 4 個 SATA 接口足以滿足我當下的需求,我只需留出一個 PCI 插槽為將來的 HBA 做準備即可。
ECC 內存
在研究不同的 TrueNAS 組裝方案時,我看到了一部分貼子說 ECC 內存(使用了能夠實現錯誤檢查和糾正技術的內存條)是防止數據損壞的必備條件,但最終我還是選擇了普通的內存條。雖然我也不希望內存數據被破壞,但我在過去 30 年中一直用的都是普通的內存條,并沒有遇到過內存數據損壞的情況,而且我只是家用而已,普通內存條應該夠用了。
單獨的 SLOG 硬盤
許多人使用 ZFS 會用到一塊單獨的專用 SSD,這塊單獨的 SSD 被稱為 SLOG (separate intent log)[29]。
系統向文件系統寫入數據時,會產生很多的日志文件,這些日志文件寫到專門的 SSD 比直接寫到多個數據盤中要快好幾個數量級。這樣可以顯著提高寫入速度[30],因為當應用向數據盤寫入數據時,ZFS 可以快速將對數據寫入操作的意圖的日志文件寫入專門的 SSD,然后直接告訴應用寫入成功了,接下來再根據日志文件異步地將數據轉移到存儲池中。
受硬盤托架和接口的限制,最終我沒有選擇專門的 SLOG 硬盤,因為增加一個 SLOG 硬盤就需要放棄唯一的 PCI 插槽或者浪費其中一個硬盤托架,不劃算。我寧愿把這部分空間留出來給以后增加數據盤使用。
我的硬件列表
| CPU | AMD Athlon 3000G[31] | $105.13 |
| 主板 | 華碩 Prime A320I-K[32] | $97.99 |
| 顯卡 | 不需要,主板自帶 | $0 |
| 系統盤 | 金士頓 A400 120GB[33] | $31.90 |
| 內存條 | CORSAIR Vengeance LPX 32GB CMK32GX4M2A2400C14 (2 x 16GB)[34] | $127.99 |
| 電源 | EVGA 110-BQ-0500-K1 500W 80+ Bronze Semi-Modular[35] | $44.99 |
| 機箱 | Fractal Design Node 304 Black[36] | $99.99 |
| SATA 電纜 | Silverstone Tek Ultra Thin Lateral 90 Degree SATA Cables[37] (x2) | $22.30 |
| 總價 | $530.29 | |
| 數據盤 | 東芝 N300 HDWG480XZSTA 8TB 7200 RPM[38] (x2) | $372.79 |
| 數據盤 | 希捷 IronWolf 8TB NAS Hard Drive 7200 RPM[39] (x2) | $359.98 |
| 總價 | $1,263.06 |
注意:該主板可能與 AMD Athlon 3000G CPU 不兼容,參考下文。
與商業 NAS 產品對比
| 硬盤托架數量 | 6 | 4 | 4 |
| 內存容量 | 32 GB | 4 GB | 4 GB |
| 最高內存容量 | 32 GB | 8 GB | 8 GB |
| CPU 跑分 | 4479[40] | 3002[41] | 4588[42] |
| 總價 | $530.29 | $549.99 | $549 |
從上述表格來看,我自己組裝的 NAS 總成本與商業 NAS 產品差不多,但性價比更高,因為內存是他們的 8 倍,而且操作系統是開源的,沒有所謂的供應商鎖定。
組裝花絮
所有零部件在 Fractal Design 迷你 ITX 機箱中安裝主板我太喜歡 M.2 SSD 了,不需要數據線,擰個螺絲就完了這是我組裝的第一個不把 PSU 的背面暴露在機箱外的系統,機箱有一條很短的 NEMA 延長線,將內部 PSU 引向機箱自身的外部電源輸入。使用 TinyPilot 管理服務器
老讀者應該還記得,我用 Raspberry Pi 創建了一個專門用于初始化和管理服務器的工具叫 TinyPilot[43]。這臺 NAS 是我用 TinyPilot 搭建的第三個服務器,也是我用 TinyPilot 最新版本 TinyPilot Voyager 2[44] 搭建的第一臺服務器。
TinyPilot Voyager 2 可以在無需鍵盤、鼠標和顯示器的情況下給服務器安裝操作系統TinyPilot Voyager 2 真是太方便了!無需將鍵盤或顯示器連接到服務器上,就可以啟動 BIOS 并安裝 TrueNAS 操作系統,所有的這一切都在我的瀏覽器中完成。
TinyPilot 還是有一些小問題的,不過無傷大雅。比如它雖然可以加載 .img 和 .iso 等鏡像文件,但它還不知道如何與目標計算機共享原始文件。當我需要為華碩的 BIOS 升級加載 .CAP 文件時,我將這些文件放到了 USB 中,這樣 TinyPilot 就找不到了。希望 TinyPilot 能盡快支持這種場景,下次我就好升級 BIOS 了。
是 BIOS 版本不兼容?還是我傻?
當我把所有零部件都組裝好,接通電源之后傻眼了,顯示器(TinyPilot)上沒有看到任何圖像輸出。
什么鬼?難道我誤解了主板的兼容性要求?重新安裝內存,重新安裝 CPU,并檢查所有電纜,結果還是一樣。。。
最后不得不搬出祖傳秘籍:谷歌搜索。一番搜索之后,看到有人提到華碩 Prime A320I-K 主板需要升級 BIOS 才能與 AMD Athlon 3000G 兼容。雖然我之前挑選主板的時候看到過這個警告,但被我忽視了。
現在就比較尷尬了,這是一個先有雞還是先有蛋的問題。。。因為只有 CPU 正常工作,我才好升級 BIOS。不過問題不大,我 2017 年 Homelab 服務器[45]中使用的 Ryzen 7 CPU 和華碩 Prime A320 主板是兼容的[46],我將那臺服務器的 CPU 和 GPU 拿下來插到 NAS 服務器上,終于成功開機了!
使用舊的 Homelab 服務器 CPU 來升級 NAS 的 BIOS最讓我無語的是,系統啟動之后,主板顯示我的 BIOS 版本仍然是 2203,也就是華碩聲稱它與 AMD Athlon 3000G CPU 兼容的 BIOS 版本。可是我明明已經將 BIOS 更新到了最新的 5862 版本,不管它了。。
華碩 Prime A320I-K 主板的 CPU 兼容性頁面聲稱兼容 AMD Athlon 3000G CPU 的最低 BIOS 版本為 2203到這里問題還沒有解決,系統啟動后仍然看不到啟動畫面。排查了一通后發現我把 HDMI 線插到了 DisplayPort 接口中,我被自己蠢哭了😂
DisplayPort 接口為啥和 HDMI 這么像?很容易讓人插錯線誒現在在回過頭來看一下之前的問題,細思極恐,問題真的是 BIOS 和 CPU 不兼容嗎?現在沒法驗證了,我想大概有兩種可能:
我太蠢了,將 HDMI 線插到 DisplayPort 接口里了,直到我升級了 BIOS 之后才發現這個問題。
華碩才是蠢貨,誤導大眾,AMD Athlon 3000G CPU 與 BIOS 2203 版本根本就不兼容。
不管如何,現在終于啟動成功了,而且不需要再借助外部的硬件了,可以松一口氣了。
性能測試
目前還找不到較好的基準測試工具來測試 NAS 的性能,因為大部分測試工具都是對本地磁盤 I/O 進行測試,而真實世界的使用場景是通過網絡訪問的,所以這種測試結果是沒有參考價值的。
我是這么測試的:先生成兩組帶有隨機數據的文件[47],然后使用 robocopy[48] 來測試本地客戶端和 NAS 之間的傳輸速度。這種測試方法也不是很嚴格,因為我沒有使用完全獨立的網絡進行測試,測試時也沒有關閉桌面上的其他進程。作為對照,我對舊的群暉 DS412+ 也進行了測試。
每一個 NAS 測試了兩組不同的文件。第一組文件總共有 20 GiB,每個文件大小是 1 GiB;第二組文件總共有 3 GiB,每個文件大小是 1 MiB。而且我對加密卷和非加密卷分別進行了測試,每一組測試 3 次,取平均值。
讀取性能
非加密卷的測試結果顯示,已經使用 7 年開始生銹的群暉比全新的 TrueNAS 性能更好。群暉讀取小文件比 TrueNAS 快 31%,讀取大文件比 TrueNAS 快 10%。
到加密卷測試部分,群暉就不行了,被 TrueNAS 碾壓。群暉對加密卷的讀取速度比非加密卷下降了 67-75%,而 TrueNAS 卻幾乎沒有變化。最終結果表明 TrueNAS 對加密卷小文件的讀取速度是群暉的 2.3 倍,對加密卷大文件的讀取速度是群暉的 3 倍。我的大部分數據都是加密的,所以這個測試結果更能代表我的使用場景。
寫入性能
盡管群暉讀取非加密卷的速度超越了 TrueNAS,在寫入方面卻不盡人意。即便是非加密卷,TrueNAS 對小文件的寫入速度也比群暉快了 77%,對大文件的寫入速度和群暉不相上下。
加密卷就更離譜了,TrueNAS 對加密卷小文件的寫入速度是群暉的 5.2 倍,對加密卷大文件的寫入速度是群暉的 3.2 倍。
功耗測試
我使用 Kill A Watt P4460 電力使用監控器[49]來測量 TrueNAS 和群暉的功耗情況:
| Idle | 38 W | 60 W |
| Load | 43 W | 67 W |
測試結果表明新服務器的功耗比舊的群暉多了 60%,這讓我有點懵逼,我這邊的電費是 $0.17/千瓦時,這么一算服務器每個月的成本是 $7.20。
具體什么原因還不太清楚,可能是 PSU 的緣故。群暉的 PSU 和其他組件的功耗完全匹配,而 TrueNAS 的 500W PSU 可能利用率只有 15%,系統不需要這么大的功率。
使用感受
主板
我對華碩 Prime A320I-K 主板最大的意見就是兼容性,也有可能是我搞錯了(前面解釋過)。
即便是我搞錯了,我還是要吐槽一下它的 BIOS 升級體驗,按道理應該可以直接下載升級最新的 BIOS 固件,但是我升級了之后它還是提示我需要升級,最后我不得不手動下載固件并上傳到 USB 進行手動升級。
修復 Realtek 網絡驅動
當我的系統網絡負載很高時,主板上的以太網適配器經常會掛掉。Reddit 論壇上的一位網友幫我找到了原因,FreeBSD 針對 A320I-K 主板的 Realtek 網卡的驅動不穩定,我們可以將其替換為官方的驅動,步驟如下:
打開 TrueNAS 可視化界面,依次進入 System > Tunables;
添加下面兩個選項:
| if_re_load | YES | loader |
| if_re_name | /boot/modules/if_re.ko | loader |
機箱
說實話,整體使用下來,我對 Fractal Design Node 304 這個機箱很失望,我還是比較喜歡之前使用的 Fractal Design Meshify C[50],因為它有一部分功能是我在其他機箱身上從來沒見過的。
雖然 Fractal Design Node 304 看起來還不錯,但實際使用時卻是非常尷尬,沒有任何文檔可供參考,官方提供的案例也是不痛不癢的。
當然了,我知道機箱設計師為了縮小機箱的體積必須在其他方面有所犧牲,或許是我太苛刻了。
CPU
CPU 我非常滿意,Athlon 3000G 對我來說性能過剩,過去一個月的 CPU 負載一直都是 99% 空閑。
這個 CPU 最吸引我的一點是支持 AMD 的 Radeon 圖像處理技術,這樣就不需要單獨的顯卡了。價格只有 $105,很劃算。
數據盤
數據盤暫時不作評判,目前一切安好,五年后再看。
一開始我擔心數據盤噪聲太大,可結果表明,只有在性能測試期間刪除文件的時候,才會聽到硬盤的聲音。
電源(PSU)
我的系統空轉功率是 60 瓦,明顯用不到這么大功率的電源,當時要是多花點精力挑選功率更低的電源就好了,實際上我只需要一個 300-400 瓦的電源。
系統盤
系統盤選擇金士頓 A400 是明智的,非常穩定,容量用來承載 TrueNAS 操作系統綽綽有余。
TrueNAS
我安裝的是 TrueNAS Core 13,使用的 FreeBSD 版本相對而言比較成熟。你也可以安裝 TrueNAS Scale,它基于 Debian,具有更廣泛的硬件和軟件兼容性。
如果要比較用戶界面,群暉是很難被打敗的,這是見過的 NAS 中最優雅直觀的界面,非常簡潔,用戶無需了解地層文件系統的技術細節。而 TrueNAS 有一股黑客風,它的界面似乎是由一個對命令行以外的東西不屑一顧的人設計的。
TrueNAS 想要創建一個新卷,并通過 SAMBA 共享出去,需要在幾個毫不相干的菜單之間來回切換,而且沒有任何提示告訴我接下來該怎么操作。群暉就比較簡單了,它會一步一步地引導我完成所需的設置。
TrueNAS 安裝第三方應該也比較麻煩,就拿 Plex 舉例,雖然 Plex 是 TrueNAS 的預裝插件,但我還是花了一個小時的時間來搜索文檔。相比之下,在群暉上安裝 Plex 就是點兩下鼠標的事情,兩分鐘就可以搞定。
即便如此,我還是堅持使用 TrueNAS,因為我更關心的是廠商和平臺鎖定,而且我喜歡開源軟件。如果我要給不在乎意識形態的朋友推薦 NAS,我一定會推薦群暉。
ZFS
ZFS 功能很強大,但目前我只用到了 RAID 功能,其他功能暫時沒有需求。
很多人喜歡 ZFS 的快照功能,但我的 restic 備份方案中已經有快照功能了,所以暫時也用不到 ZFS 的快照功能。我已經使用 restic 兩年了,印象中只一次需要從快照中恢復數據。
還有一個功能是為加密數據創建快照,這個功能比較有趣,它可以在不解密數據的情況下直接創建快照。我有很多不需要經常訪問的加密數據,使用這個功能就能夠在無需解密的情況下進行定期備份。
總結
總的來說,我還是很喜歡這個新 NAS 的,折騰的過程中也學到了很多東西。畢竟這不是我第一次使用 NAS,之前使用群暉已經儲備了相關的技術能力,切換到 TrueNAS 之后也就沒有那么吃力。當然了,該學還是要學的,我已經準備好惡補 ZFS 和 TrueNAS 的相關知識了。
引用鏈接
[1]
網絡附加存儲(Network-attached storage): https://en.wikipedia.org/wiki/Network-attached_storage
[2]數據囤積狂: https://www.reddit.com/r/DataHoarder/
[3]群暉 DS412+: https://www.newegg.com/synology-ds412/p/N82E16822108113
[4]Hacker News 上的一位大佬: https://news.ycombinator.com/item?id=31549755
[5]從一個非群暉系統中恢復群暉的混合 RAID 卷: https://kb.synology.com/en-us/DSM/tutorial/How_can_I_recover_data_from_my_DiskStation_using_a_PC
[6]TrueNAS: https://truenas.com/
[7]正在積極開發中: https://github.com/openzfs/zfs/pull/12225
[8]ZFS 不是一種備份策略: https://www.raidisnotabackup.com/
[9]restic: https://restic.net/
[10]Backblaze: https://www.backblaze.com/blog/backblaze-hard-drive-stats-for-2020/
[11]ASUS Prime A320I-K: https://www.asus.com/Motherboards-Components/Motherboards/PRIME/PRIME-A320I-K/
[12]下面的討論: https:///icloudnative.io/posts/budget-nas/#%E4%B8%BB%E6%9D%BF-1
[13]B450: https://www.newegg.com/asus-rog-strix-b450-i-gaming/p/N82E16813119143
[14]ASUS Prime A320I-K: https://www.asus.com/Motherboards-Components/Motherboards/PRIME/PRIME-A320I-K/
[15]CPU 基準測試: https://www.cpubenchmark.net/cpu.php?cpu=AMD+Athlon+3000G&id=3614
[16]Backblaze 的硬盤統計數據: https://www.backblaze.com/blog/backblaze-drive-stats-for-2021/
[17]使用 SMR(Shingled Magnetic Recording,疊瓦式磁記錄)技術的硬盤: https://www.truenas.com/community/resources/list-of-known-smr-drives.141/
[18]ZFS 在 SMR 硬盤上的表現非常差: https://www.servethehome.com/wd-red-smr-vs-cmr-tested-avoid-red-smr/
[19]東芝 N300: https://www.newegg.com/toshiba-n300-hdwg480xzsta-8tb/p/N82E16822149793
[20]希捷 IronWolf: https://www.newegg.com/seagate-ironwolf-st8000vn004-8tb/p/N82E16822184796
[21]金士頓 A400: https://www.newegg.com/kingston-a400-120gb/p/N82E16820242474
[22]根本沒有這種規則: https://www.reddit.com/r/DataHoarder/comments/5u3385/linus_tech_tips_unboxes_1_pb_of_seagate/ddrngar/
[23]ZFS 只需要很少的內存: https://www.reddit.com/r/DataHoarder/comments/3s7vrd/so_you_think_zfs_needs_a_ton_of_ram_for_a_simple/
[24]與華碩 A320I-K 主板兼容: https://www.asus.com/Motherboards-Components/Motherboards/CSM/PRIME-A320I-K-CSM/HelpDesk_QVL/
[25]CORSAIR Vengeance LPX 32GB CMK32GX4M2A2400C14 (2 x 16GB): https://www.newegg.com/corsair-32gb-288-pin-ddr4-sdram/p/N82E16820233854
[26]PCPartPicker 的數據: https://pcpartpicker.com/
[27]EVGA 110-BQ-0500-K1: https://www.newegg.com/evga-500-bq-110-bq-0500-k1-500w/p/N82E16817438101
[28]主機總線適配器: https://www.truenas.com/community/threads/whats-all-the-noise-about-hbas-and-why-cant-i-use-a-raid-controller.81931/
[29]SLOG (separate intent log): https://www.truenas.com/docs/references/slog/
[30]顯著提高寫入速度: https://www.servethehome.com/exploring-best-zfs-zil-slog-ssd-intel-optane-nand/
[31]AMD Athlon 3000G: https://www.newegg.com/amd-athlon-3000g/p/274-000M-001B8
[32]華碩 Prime A320I-K: https://www.asus.com/Motherboards-Components/Motherboards/PRIME/PRIME-A320I-K/
[33]金士頓 A400 120GB: https://www.newegg.com/kingston-a400-120gb/p/N82E16820242474
[34]CORSAIR Vengeance LPX 32GB CMK32GX4M2A2400C14 (2 x 16GB): https://www.newegg.com/corsair-32gb-288-pin-ddr4-sdram/p/N82E16820233854
[35]EVGA 110-BQ-0500-K1 500W 80+ Bronze Semi-Modular: https://www.newegg.com/evga-500-bq-110-bq-0500-k1-500w/p/N82E16817438101
[36]Fractal Design Node 304 Black: hhttps://www.newegg.com/black-fractal-design-node-304-mini-itx-tower/p/N82E16811352027
[37]Silverstone Tek Ultra Thin Lateral 90 Degree SATA Cables: https://www.newegg.com/p/N82E16812162042
[38]東芝 N300 HDWG480XZSTA 8TB 7200 RPM: https://www.newegg.com/toshiba-n300-hdwg480xzsta-8tb/p/N82E16822149793
[39]希捷 IronWolf 8TB NAS Hard Drive 7200 RPM: https://www.newegg.com/seagate-ironwolf-st8000vn004-8tb/p/N82E16822184796
[40]4479: https://www.cpubenchmark.net/cpu.php?cpu=AMD+Athlon+3000G&id=3614
[41]3002: https://www.cpubenchmark.net/cpu.php?cpu=Intel+Celeron+J4125+%40+2.00GHz&id=3667
[42]4588: https://www.cpubenchmark.net/cpu.php?cpu=AMD+Ryzen+Embedded+V1500B&id=4304
[43]TinyPilot: https://mtlynch.io/tinypilot/
[44]TinyPilot Voyager 2: https://tinypilotkvm.com/product/tinypilot-voyager2?ref=mtlynch.io
[45]2017 年 Homelab 服務器: https://mtlynch.io/building-a-vm-homelab-2017/
[46]Ryzen 7 CPU 和華碩 Prime A320 主板是兼容的: https://www.asus.com/us/Motherboards-Components/Motherboards/PRIME/PRIME-A320I-K/HelpDesk_CPU/
[47]生成兩組帶有隨機數據的文件: https://github.com/mtlynch/dummy_file_generator
[48]robocopy: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy
[49]Kill A Watt P4460 電力使用監控器: http://www.p3international.com/products/p4460.html
[50]我還是比較喜歡之前使用的 Fractal Design Meshify C: https://mtlynch.io/building-a-vm-homelab/#my-2020-server-build
你可能還喜歡
點擊下方圖片即可閱讀
如何在 Mac 上愉快地使用 Docker
2022-06-10
理解 Kubernetes 中的 NUMA 架構
2022-06-08
讓 M1 芯片的 MacBook Pro 同時支持兩個 4k 顯示器
2022-06-07
K8s 的核心是 API 而非容器:從理論到 CRD 實踐
2022-06-06
云原生是一種信仰?🤘
關注公眾號
后臺回復?k8s?獲取史上最方便快捷的 Kubernetes 高可用部署工具,只需一條命令,連 ssh 都不需要!
點擊?"閱讀原文"?獲取更好的閱讀體驗!
發現朋友圈變“安靜”了嗎?
總結
以上是生活随笔為你收集整理的构建我的第一个 22TB 容量的家庭存储服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ArcGIS应用视频教程(视频+PPT+
- 下一篇: 秩和比(RSR)指标计算