自己搭個NAS,香嗎?_風聞
已注销用户-2021-02-13 17:57
原本是想在這個貼 “相比用網盤,自己搭個NAS不更香嗎?” 下面回覆,沒想到長度超過限制,單獨發一下吧。
=================================================
2017年3月又連續掛掉兩個硬盤之後,我痛下決心搞自己的NAS。剛開始並不知道會弄成怎樣,抱着半玩半學的態度慢慢摸索,到了6月系統搭建好,一直運行至今。看大家好像對這個話題挺有興趣,把我經歷過的和大家分享一下。不是寫論文那麼嚴謹,很多選擇也是個人化的無所謂最優,各位請輕噴。
1、系統
我花了幾周時間研究各種NAS系統的優缺點,最終選擇了原生支持ZFS文件系統的XigmaNAS (原來的NAS4FREE)。基於FreeBSD的XigmaNAS除了原生ZFS支持,還支持VirtualBox和bhyve兩種虛擬機,其中bhyve支持部分物理機硬件Passthrough給虛擬機(目前為止我成功Passthrough過PCI-E USB3.0卡和PCI-E轉接的NVME固態硬盤)。還有一個重要的考量因素,XigmaNAS開源。

2、硬件
既然NAS 24小時開機,我就想要實現24小時不用再開另一台電腦就能聽音樂,所以打算在NAS裏面跑個虛擬機運行一個配置好的FOOBAR2000,這台虛擬機要通過物理主機的USB口連接到我音響系統的解碼器,這需要通過Passthrough功能把物理機的USB口傳遞給虛擬機。很明顯讓那些低功耗的ATOM、賽揚或者奔騰CPU再帶一個虛擬機有點勉為其難,它們本身並不支持虛擬化技術,所以我轉向至強X56XX系列的洋垃圾和配套的服務器主板(IPMI接口給我很大的驚喜,管理服務器太方便了)以及ECC內存(可以保證存儲數據的完整性)。
CPU:X5675 6核12線程3.46G,16X元;
內存:3x16G ECC DDR3L 1333,46X元;
主板:超微X8DTL-3F,45X元;
系統盤:Intel 545S 128G裝系統和用作讀緩存,41X元;
電源:振華 G550W 金牌全模組電源,57X元;
存儲盤:2x4T希捷酷鷹,2x71X元;
機箱:利舊。
就算買個機箱,最低3500元左右(2017年中的價格)也能弄出一台6核12線程CPU、48G內存、4T RAID1、最多可擴到8塊硬盤(主板自帶的SATA接口。因為是服務器主板,其實還可以加擴展卡)、性能和可擴展性都相當強大的NAS。為了保護硬盤免於供電中斷而損壞,UPS是必須的,帶USB接口通信功能的650W後備式UPS就差不多了,三五百塊搞定。
3、RAID的選擇
在幾種RAID模式中權衡了可靠性、性能和可擴展性,先用虛擬機模擬,然後找了幾塊小容量的舊硬盤進行測試,最後決定採用先RAID1,再擴展到RAID10的升級路徑,後期擴容只需要逐個RAID1替換更大容量的硬盤即可。RAID的選擇有點類似網盤還是NAS,是很個人化的一種選擇,因為完美的方案並不存在,必然要在某個方面做出妥協。我認為損失一些容量換取更高的可靠性是值得的,同時在比較強的硬件支持下,最簡單的雙盤RAID1的讀寫,已經基本可以跑滿千兆網絡,升級到RAID10之後性能會更好。
4、同步
大約是XigmaNAS 11之後的某個版本,免費開源的Syncthing開始成為內置的功能。這個文件/文件夾同步軟件非常強大,支持IPv4和IPv6,不需要做任何網絡配置即可實現局域網穿透,數據傳輸基於TLS加密安全可靠。NAS、電腦、手機相互之間都可以同步,支持文件版本控制,可以保留文件的多個歷史版本,簡直好用到爆。就算不用NAS,用於幾台電腦間的文件同步,或者手機相冊之類和電腦之間的同步也非常棒。以一個很常見的場景為例,在辦公室用筆記本,回家用台式機,設置好同一個工作文件夾和NAS自動同步。在辦公室用筆記本時,對這個文件夾裏面的所有改動,都會自動同步到家裏的NAS。回到家打開台式機,工作文件夾的這些改動又會從NAS自動同步到台式機。反之在台式機的改動也通過一樣的機制會自動同步到NAS和筆記本,U盤、移動硬盤什麼的根本不需要。

5、備份
雖然NAS的存儲一般都會組RAID,可靠性有一定的保障,但是RAID仍然有一定的機率無可挽回地崩潰,所以給NAS做備份仍然很有必要。現在是時候展示ZFS文件系統的強大了,ZFS通過快照機制來保存系統在不同時刻的狀態,快照的生成幾乎是瞬間完成的。通過快照的發送、接收功能,把快照發送到另一台同樣支持ZFS的主機就能完成備份,發送兩個快照的差異部分就能實現增量備份,不需要什麼第三方的備份軟件,ZFS本身就能實現得相當完美。
在第一組4T RAID1的兩個硬盤7x24小時連續運行了接近3年之後,2020年6月中我又往存儲池中加入了兩個4T硬盤組成的RAID1,整個存儲池變成RAID10結構,容量達到了8T。雖然把兩個舊盤拆分到不同的RAID1裏面,但是跑了兩年多的硬盤損壞的風險已經上升了很多,我開始考慮給NAS做備份的問題。家裏的台式機是Windows系統,不可能直接接收NAS發送的快照,解決辦法就是在台式機上建一個虛擬機安裝XigmaNAS,單獨分配一個8T硬盤給這個虛擬的XigmaNAS使用,這樣NAS發送過來的快照就可以全部保存到這個8T硬盤上了。之後研究了幾天ZFS快照發送、接收,花了一個通宵弄了一個自動增量備份的雛形腳本。又經過一段時間的測試和完善,這個腳本到現在運行了8個多月,每天定時自動創建一個快照來進行備份,保留之前15天內自動生成的所有快照,至今一切順利,跨年期間也運行正常。
6、功耗
一共4個4T機械硬盤 + 1個SATA SSD + 2個使用PCI-E轉接卡的NVME SSD + 1塊USB3.0擴展卡,整機加上UPS功率大概80多瓦,24小時開機每天大概2度電,1塊多錢1天。
7、性能
大文件連續讀寫可以穩定在110MB/s左右,得益於48G內存和100G左右的SSD讀緩存,大量小文件的讀寫速度也不錯。
8、可能的問題
我這套NAS的主板、CPU、內存都是洋垃圾,早期測試有一條內存出過問題(沒有損壞存儲的數據,這是ECC內存的優點),其他硬件7x24小時跑了超過3年半,都還好。
9、總結
總的來説,自建NAS不是很難也不太容易。電腦小白建議直接上羣暉這樣的商業化產品,不折騰。如果像我這樣有點理論基礎和動手能力,又有興趣耐心研究一番,應該可以自己搭建起來實現一些基本功能的NAS。進階選手就不用説了,可選的方案太多,問題只在於需求和意願。