轉(zhuǎn)自我的博客文章https://blognas.hwb0307.com/nas/3213,內(nèi)容更新僅在個人博客可見。歡迎關(guān)注!
前言
之前無論是寫Linux還是Docker的教程,都是基于VPS的。如果已經(jīng)學(xué)習(xí)過我的“Linux系列”和“Docker系列”,使用Linux應(yīng)該是沒有太大問題了。不過,我自己在折騰云服務(wù)器以前,主要還是玩NAS的。
在信息時代,**存儲(Storage)**是我們?nèi)粘W(xué)習(xí)、工作或娛樂中的一種非?;A(chǔ)的設(shè)備,比如U盤、移動硬盤、各種存儲卡、電腦主機(jī)里面的M2固態(tài)/SATA機(jī)械硬盤等。網(wǎng)絡(luò)附加存儲(Network-attached storage,NAS)則是一種基于網(wǎng)絡(luò)的存儲。從字面意思上看,我們用的VPS、百度云等云盤均可視為NAS——比如,在VPS/百度云里放一些文件,然后在需要它的時候遠(yuǎn)程地訪問它們。
盡管NAS的定義十分寬泛,但我們平時所提及的NAS其實指的是一種專用主機(jī)。根據(jù)我的經(jīng)驗,NAS一般有以下特點:
- 7×24工作
- 硬件結(jié)構(gòu)和PC差不多(一定有PC三大件——主板、CPU和內(nèi)存),但硬件性能比日用PC要差很多,因此單位功耗一般不高
- 主人離它很近(比如放家里、實驗室),且對物理硬件具有完整的支配權(quán);這與VPS/百度云等產(chǎn)品具有顯著區(qū)別。因此,NAS多數(shù)時間與我們的常用電腦/手機(jī)處于同一局域網(wǎng)段,因此具有較高的傳輸帶寬(家用一般是1G、2.5G或10G)
- 有多塊專用硬盤,因此天然地?fù)碛蟹浅4蟮拇鎯臻g;并且具有專門的軟硬件將多塊硬盤整合成一個磁盤陣列,從而可以在少量硬盤損壞的情況下不丟失數(shù)據(jù);磁盤陣列也是更高帶寬的重要助力
根據(jù)上述描述,其實NAS就是一臺存儲功能很強(qiáng)、數(shù)據(jù)保護(hù)功能很強(qiáng)的主機(jī)。它和我們用的PC、工作站、服務(wù)器在本質(zhì)上并沒有太大區(qū)別。NAS的硬件搭配時要特別考慮機(jī)箱大小和盤位,和一般的PC/工作站大不相同。使用NAS的用戶一般對本地傳輸帶寬有不同尋常的需求。市場上也有一些專門的NAS軟硬件,這也提示與一般的PC/工作站相比,NAS在某些功能上進(jìn)行了強(qiáng)化。因此,我個人傾向于認(rèn)為家用NAS是一種專用設(shè)備。
不過,其實持什么觀點不重要。你只要知道NAS是個好玩的東西就行了 (?′ω`?)
外觀
這里我在B站的視頻里選幾個比較典型的NAS外觀給大家看看:
外觀1:300元就能組NAS?司波圖手把手教你在蝸牛星際上裝黑群暉。這就是NAS玩家里大名鼎鼎的蝸牛星際,也是陪伴我2年多的NAS (?′ω`?)
外觀2:【翼王】DIY一臺高性能的MINI ITX文件服務(wù)器,還要能使用萬兆網(wǎng)絡(luò)。這個外觀和我新近組的NAS差不多。
外觀3:2020新年究極UP主專用8盤位NAS主機(jī),ECC,萬兆網(wǎng)絡(luò)一個不落
外觀4:彌補(bǔ)價值一萬刀的過錯 - 公司存儲服務(wù)器再再升級#linus談科技
根據(jù)硬盤位和性能的需求不同,NAS外觀的差別是非常大的。當(dāng)然,價格也相差很大 (?′ω`?)
看了前面關(guān)于NAS的介紹,你可能有點心動:要不要整一臺NAS玩玩?先別急,我結(jié)合自身經(jīng)驗給你看看,當(dāng)時我是怎么決定入手和升級NAS的,希望可以起拋磚引玉的作用!
初嘗NAS
幾年前,我買了一個iPad Mini 4作為“生產(chǎn)力”工具。晚上睡覺前如果沒什么事做,我比較喜歡在床上用iPad看看視頻助眠(經(jīng)??粗粗退耍?。除了B站,我經(jīng)常會看一些老電影、老電視劇,這些視頻網(wǎng)站里都很難找到高清資源,或者需要購買會員。因為iPad的容量比較小,我一般是想辦法下載到PC的硬盤里,然后使用一個叫Air Video HD的軟件(Windows PC也要裝一個客戶端),通過它來看PC硬盤上面的視頻。那時候,其實并沒有媒體庫管理視頻的意識;雖然自己對Linux也非常熟悉,但其實并沒有怎么用過Docker,自然對Jellyfin、Emby或Plex不太了解。
后來,由于家里網(wǎng)絡(luò)配置的要求,我有一個任務(wù),就是要在家里組一個無縫漫游的Wifi網(wǎng)絡(luò)。在查資料的過程中,我接觸到了軟路由、千/萬兆網(wǎng)絡(luò)、AP+AC方案等知識;我還了解到,基于J1900 CPU的工控機(jī)在當(dāng)時比較流行的一種軟路由方案,它可以帶得動300M左右的帶寬。一個偶然的機(jī)會(忘了是自己找到的還是B站推的,可能是和J1900有關(guān)吧),我看到了司波圖的一個視頻,他在里面用300塊折騰一個叫“蝸牛星際”的4盤位礦渣主機(jī)來組建一個搭建黑群暉系統(tǒng)的NAS!總之就是這樣知道了NAS這種東西。從這開始,自然也慢慢了解到PT/transimssion/jellyfin之類的家庭影音相關(guān)的Docker應(yīng)用。
我專門了解了一下NAS,發(fā)現(xiàn)自己需要這樣一臺NAS。首先,我對磁盤陣列比較感興趣。磁盤陣列確實是一個完美的數(shù)據(jù)保護(hù)方案。當(dāng)時我想到了這些場景可能需要NAS:
- 日常工作里,我會經(jīng)常接觸到一種叫FASTQ格式的文件(保存生物序列及其測序質(zhì)量得分信息)。它通常很大,單個文件基本都有幾個G;并且可能有很多個。它們對我來說是非常重要的文件,我并不希望它們因為硬盤損壞等意外事件而丟失?;贔ASTQ的分析文件,比如BAM或者某些巨大的矩陣,文件體積都很大。但由于它們需要隨時被調(diào)用,因此不適合放在百度云之類的網(wǎng)盤里。
- 家人外出游玩、逢年過節(jié)拍的照片或視頻,似乎從未被系統(tǒng)和規(guī)范地處理。從長遠(yuǎn)來看,這些照片和視頻其實也是挺珍貴的,很有紀(jì)念意義和價值。
- 基于Jellyfin/Emby/Plex的媒體庫,特別保存那些在各大視頻平臺均難以找到的冷門資源、老電影/老劇集。
- 基于Docker的各種服務(wù),比如Nextcloud、DDNS-GO等。
盡管我已經(jīng)知道了蝸牛星際,但我并沒有那么快入手。因為我并不是很喜歡黑群暉這種NAS系統(tǒng)。我希望有一個NAS系統(tǒng),最好是基于Linux內(nèi)核,這樣我關(guān)于Linux的基礎(chǔ)可以降低學(xué)習(xí)成本;一個開源、免費的系統(tǒng),有活躍的社區(qū),并且支持一種叫ZFS的軟Raid技術(shù),這樣可以獲得持續(xù)穩(wěn)定的技術(shù)維護(hù)。后面司波圖更新Openmediavault(OMV)的系列視頻,我覺得OMV就是我想要的NAS系統(tǒng)。我喜歡OMV的原因,還在于OMV的官方論壇和Youtube上的教程很完善,折騰和處理bug都比較簡單;社區(qū)支持確實比較好:

確定OMV這一系統(tǒng)后,我很快在閑魚淘了一個蝸牛星際和4塊4T西數(shù)紅盤(它運行時比較安靜,也是NAS專用盤),價格也不貴。之所以選擇二手硬盤,是因為我想快點接觸到和磁盤陣列維護(hù)有關(guān)的技術(shù),如果買新盤,不僅價格貴好多,全程太穩(wěn)也學(xué)不到東西;事實證明恢復(fù)陣列的時候確實很刺激 (?′ω`?) !
拿到NAS后啥硬件都沒換(很多人會換固態(tài)、電源或內(nèi)存),直接裝了OMV系統(tǒng),組了一個RaidZ2,可以壞2個硬盤而不丟失數(shù)據(jù)。一般情況下,4個盤組Raiz2有點浪費,使用全新硬盤的人多數(shù)是組Raidz1。不過現(xiàn)階段的主要目的是測試和了解OMV/ZFS,自已的文件暫時也不多,因此Raiz2也可以滿足日常需求。當(dāng)時想用ZFS陣列還有另外一個考慮,就是ZFS遷移到新機(jī)器的過程似乎是挺簡單的,這也為后面平順遷移ZFS陣列到虛擬機(jī)OMV中埋下伏筆。我的初衷是在使用蝸牛星際期間掌握磁盤陣列的組建和維護(hù)相關(guān)技術(shù),以后有機(jī)會再搞更大容量的家用NAS并在嚴(yán)肅場合正式投入使用。
當(dāng)然,我的蝸牛星際也不負(fù)所望——在這個過程中我換過幾次硬盤來恢復(fù)陣列 (?′ω`?) 我也知道了ZFS陣列里向一塊全新硬盤恢復(fù)數(shù)據(jù)的速度是很慢的(一般在24h以上),特別是校驗盤很多的情況下。網(wǎng)上一些特別大的ZFS陣列的恢復(fù)時間甚至以周計,導(dǎo)致還不如直接冷備份后重建陣列來得快。這也促使我進(jìn)一步了解在硬盤很多(12+)的情況下應(yīng)該如何合理地組ZFS陣列,以在較高的陣列性能和較低的陣列恢復(fù)成本中取得平衡;比如參考這篇文章的使用技巧。這里暫不展開,以后講到ZFS陣列時再詳細(xì)說明。個人認(rèn)為ZFS陣列是一個小白容易踩坑的地方;但如果Linxu基礎(chǔ)掌握得好,Google好好用,其實也可以hold住。
另外,我還學(xué)習(xí)到一些意想不到的經(jīng)驗。比如,如果一個磁盤經(jīng)常掉盤,除了磁盤損壞,也有可能是SATA線材問題。線材老化導(dǎo)致接觸不良、供電不穩(wěn)定也是磁盤掉盤的常見原因,網(wǎng)上這類情況也不少見,我用蝸牛星際的時候也撞上了。因此,玩NAS的人家里最好備一些全新的SATA線,如果硬盤老是掉盤且S.M.A.R.T又看不出什么端倪,可以換一條全新的線看看。當(dāng)然,更多的排障經(jīng)驗,之后會再系統(tǒng)總結(jié),這里暫不展開。另外,我剛剛開始用ZFS的時候還以為別人用我的電腦來挖礦了,后來才知道ZFS本來就會占用很多內(nèi)存(并不影響其它應(yīng)用的性能),這在我最新安裝的OMV虛擬機(jī)里也證實了這一點。后來,測試帳戶使用了弱密碼還給人攻破過2次,這也促使我去了解應(yīng)該如何更加安全地使用Linux系統(tǒng)。
總之,蝸牛星際是我的第一臺NAS,在折騰的過程中成長了不少。本博客blognas.hwb0307.com中的nas指的就是這臺蝸牛星際!
升級NAS
蝸牛星際陪伴了我數(shù)年時間。老實說,蝸牛星際作為一個文件服務(wù)器是十分稱職的。對于大多數(shù)家用場景來說,蝸牛星際是一種極具性價比的方案。
不過,我越來越不希望我的NAS僅僅是一臺文件服務(wù)器。蝸牛星際的局限性對我的影響越來越大,主要原因來自它的CPU和內(nèi)存。其一,蝸牛星際的內(nèi)存較小(4G),這在運行Nextcloud等程序時速度還是挺慢的;J1900封頂只支持8G內(nèi)存,拓展性一般般 ,就算是這個內(nèi)存大小也只是玩虛擬機(jī)的入門配置。其二,J1900性能確實差一些(2.42Mhz×4),但大多數(shù)應(yīng)用都對單核性能要求較高。其三,J1900不支持h265 10bit視頻的硬解,這導(dǎo)致我在h265 10bit起步的PT站里選擇資源時束手束腳;如果不小心播放了一個h265的視頻,CPU使用率立馬爆滿,整個系統(tǒng)卡得不要不要的。J1900的核顯(Intel? HD Graphics for Intel Atom? Processor Z3700 Series)只能當(dāng)個亮機(jī)卡,想追求更強(qiáng)的性能(比如視頻的解碼/轉(zhuǎn)碼)只怕是力不從心。其四,也是最重要的原因,就是我想了(zhe)解(teng)虛擬機(jī)系統(tǒng)及相關(guān)技術(shù)。
我在很早的時候就知道Esxi/ikuai/Unraid/PVE等虛擬機(jī)系統(tǒng)。如果升級新NAS,我希望它可以安裝一個虛擬機(jī)系統(tǒng)。這樣,我可以內(nèi)置Openwrt系統(tǒng)替代現(xiàn)在的WIFI路由器拔號上網(wǎng),可以大大提升上網(wǎng)性能,并且可以折騰一些奇怪功能,使得整個局域網(wǎng)的設(shè)備都可以使用特別網(wǎng)絡(luò)(這對于jellyfin/emby的自動刮削是至關(guān)重要的);也可以嘗試將ZFS陣列遷移至OMV虛擬機(jī)里,積累跨主機(jī)遷移ZFS的經(jīng)驗;還可以搭建win10系統(tǒng)方便日后做一些測試,比如VSCode。這其實就是大家常說的軟路由/NAS的All-in-one玩法。
經(jīng)過一番了解,我最終選擇PVE作為新NAS的虛擬機(jī)系統(tǒng)。其一,PVE基于QEMU/KVM虛擬機(jī)和Linux Container(LXC)等虛擬化技術(shù)。QEMU/KVM虛擬機(jī)的技術(shù)是很成熟的,很多VPS本身就是一個KVM。而LXC則是我后來才了解到的,對于我這個重度Docker使用者來說簡直就是神器。其二,PVE對Debian系(比如OMV系統(tǒng))的兼容性比較好,你甚至可以在Debian系統(tǒng)里面安裝PVE,或者在OMV里安裝PVE內(nèi)核(實際上這是使用ZFS的必備操作),因此無論是維護(hù)還是學(xué)習(xí)成本都很低。其三,PVE的硬件直通功能的兼容性比較好,這樣我可以做很多硬件直通的測試,比如在LXC里將CPU核顯直通給jellyfin使用,從而實現(xiàn)流暢的4k h265解碼/轉(zhuǎn)碼。在未來,我估計會有一臺類似這樣的強(qiáng)大主機(jī),屆時基于PVE和硬件直通,我可以很好地利用它的性能,在工作中和其它同事進(jìn)行良好協(xié)作,推進(jìn)研究工作。其四,司波圖已經(jīng)在2022年推出了PVE系列視頻教程,我大致看了一下,覺得自己可以輕松hold住PVE的。
關(guān)于近期新升級的NAS的硬件選擇和組裝過程,我會陸續(xù)更新教程,敬請期待!
儲備知識
如果你想自己折騰NAS,特別是復(fù)現(xiàn)我的NAS系列教程,應(yīng)該做到:
- 對《學(xué)習(xí)地圖》中的“Linux基礎(chǔ)”有較好的理解和實踐水平。無論是PVE、Openwrt還是OMV,本質(zhì)上都是基于Linux內(nèi)核的系統(tǒng)。因此了解Linux的基本操作對于排障等各種折騰是必要的,這樣無論遇到什么bug都不用慌。
- 對“Docker”系列要有一定的了解。盡管很多視頻Up主(包括司波圖)在安裝Docker的時候喜歡用docker run或者直接在軟件的選項里面設(shè)置,但Docker Compose是一種更加優(yōu)雅、通用和簡潔的方式。Portainer也支持Docker Compose安裝??傊琇inux基礎(chǔ)學(xué)好,我覺得使用Docker是一個非常簡單的操作。
- 對網(wǎng)絡(luò)有一定了解。如果你以前沒有家庭組網(wǎng)的經(jīng)驗,最好仔細(xì)地閱讀一下我的文章《了解IP地址》,這樣至少對IPv4有一定的了解。
如果能夠提前掌握上述相關(guān)知識點,相信折騰NAS的過程是挺簡單的。
最后就是Google/Github的使用嘍,這個是老生常談了(?′ω`?)
學(xué)習(xí)資源
除了本博客外,我再推薦一些Up主,他們的視頻通常包含電腦硬件或者NAS配置的建議。我的大多數(shù)知識也是來源于他們,然后自己不斷折騰后凝練而來。當(dāng)然,B站還有一些其它小伙伴也做的不錯,但他們關(guān)于NAS的視頻教程比較零散,就不作特別推薦。
- 司波圖:專業(yè)的電腦硬件/NAS折騰Up主。他的教程比較細(xì),比較小眾,但質(zhì)量很高。雖然很多人吐槽他是個催眠Up主,但是如果你真的懂的話,其實聽的時候是津津有味的,可以學(xué)到很多東西。
- 翼王:專業(yè)的電子設(shè)備Up主。整體水平挺高。他有做過幾期NAS節(jié)目,推薦玩NAS的小伙伴都看一下。
- LinusTechTips:經(jīng)常折騰很多特別的硬件,可以長長見識。也有一些NAS相關(guān)的視頻,比如:彌補(bǔ)價值一萬刀的過錯 - 公司存儲服務(wù)器再再升級、翻新我們最臟的服務(wù)器、老萊制造!新視頻轉(zhuǎn)碼服務(wù)器、終歸正途 - 我們的視頻剪輯服務(wù)器改用 “Linux” 了、普通機(jī)箱裝上320TB存儲?DIY 4K剪輯NAS#linus談科技、大危機(jī)續(xù)篇 我們的數(shù)據(jù)又丟了 - Vault數(shù)據(jù)恢復(fù) 第一集
此外,值得買什么這個社區(qū)有很多質(zhì)量不錯的NAS折騰文章,在搜索的時候可以限定一下關(guān)鍵詞,說不定有驚喜。我的新NAS在考慮硬件時就較多地參考了值得買什么的這篇博文。從行文來看,作者是用心玩用心寫的,不是CSDN里面那些垃圾文章可以相比的。另外,在處理bug時,也可以找找博客園和知乎的文章,有時會有意外收獲。
小結(jié)
看完全文,相信對于自己是否需要一臺NAS,已經(jīng)心中有數(shù)。如果你是一個喜歡折騰VPS的人,那我覺得你大概率也可以折騰NAS的過程中獲得很多樂趣。如果想獲得更多關(guān)于NAS的知識和建議,敬請期待我的后續(xù)文章 (?′ω`?)
本文使用 文章同步助手 同步