樹莓派-家庭NAS(1) http://m.itdecent.cn/p/9be7ada37863
樹莓派-家庭NAS(2) http://m.itdecent.cn/p/91405ca824b8
樹莓派-家庭NAS(3) http://m.itdecent.cn/p/80777ed85246
需求
本人是一個(gè)軟件行業(yè)從業(yè)者,在平常會(huì)關(guān)注各式各樣的電子設(shè)備、也會(huì)了解各種各樣的技術(shù)。經(jīng)過(guò)多年的學(xué)習(xí)和實(shí)踐后發(fā)現(xiàn)自己有各種各樣的資料需要保存。還有自己在學(xué)習(xí)過(guò)程中總結(jié)出的各式的內(nèi)容。所以,就一直在研究怎么把這些東西存儲(chǔ)起來(lái)。
最開始我非常討厭有自己的電腦,因?yàn)楹芏鄷r(shí)候網(wǎng)絡(luò)的誘惑會(huì)非常的大。我沒有那么強(qiáng)大的能力去抵制這些誘惑,所以一直就不準(zhǔn)備給自己購(gòu)買電腦,電視,游戲機(jī)等等電子設(shè)備。但會(huì)持續(xù)的關(guān)注。(現(xiàn)在使用的電腦,還是我老婆的電腦(^-^)!)
沒有電腦,就意味著沒有地方去存儲(chǔ)資料。最開始的時(shí)候,大概是2012年左右從零擔(dān)上買了一塊300G的硬盤。那時(shí)候硬盤還很貴,這塊硬盤應(yīng)該是500塊大洋。一直就存著各種各樣的文件。后來(lái)用百度云(最早的時(shí)候百度云盤叫百度云,后來(lái)百度為了開展自己的云產(chǎn)品才改了名),那時(shí)候用了很多方法去免費(fèi)的增大自己的百度云盤。但后來(lái),百度云盤開始對(duì)版權(quán),敏感信息進(jìn)行過(guò)濾。很多東西都沒有辦法存儲(chǔ)到百度云盤上。并且國(guó)內(nèi)的環(huán)境越來(lái)越差,國(guó)外的Dropbox、Google Drive、Microsoft OneDrive……國(guó)內(nèi)的360云盤(已掛)、華為網(wǎng)盤(已掛)、UC網(wǎng)盤(已掛)、金山快盤(已掛)、新浪微盤(已掛)、迅雷快盤(已掛)。所以說(shuō)不定哪天百度云盤也掛了。所以一直在探索個(gè)人/家庭存儲(chǔ)解決方案。
后來(lái)慢慢的了解到有很多的廠商已經(jīng)想到并已經(jīng)解決了個(gè)人/家庭存儲(chǔ)的問(wèn)題,甚至還能解決部分家庭計(jì)算的需求。所以,了解了一些這方面的商業(yè)化廠商或產(chǎn)品。
群暉、威聯(lián)通、鐵威馬。家用NAS設(shè)備的三大廠商。小米路由器 HD,華為榮耀立方,華三魔術(shù)家等帶硬盤的路由器。這些廠商和設(shè)備都能幫我們解決存儲(chǔ)的問(wèn)題,并且還有其他的功能加入。為我們的"家庭計(jì)算中心",提供了可能。為之后智能家庭提供了最基礎(chǔ)的硬件支持。
功能分析
上面提到了很多廠商和設(shè)備。如果機(jī)遇這些設(shè)備提供的功能的去評(píng)估設(shè)備的價(jià)值/價(jià)格是非常合適的。如果有經(jīng)濟(jì)能力、或者沒有很多的閑暇時(shí)間,購(gòu)買這樣的設(shè)備覺得是物超所值的。
但是,本人是一個(gè)喜歡折騰的人。并且從前一篇文章可以知道我為了"折騰"買了樹莓派。所以,就想怎樣基于樹莓派搭建《家用NAS》或者《個(gè)人網(wǎng)盤》。下面大概的分析一下《家用NAS》平臺(tái)所需要的功能:
| 編號(hào) | 功能 | 描述 | 備注 |
|---|---|---|---|
| 1 | 家庭部署 | 1.設(shè)備管理權(quán),數(shù)據(jù)歸屬權(quán)全部都由個(gè)人負(fù)責(zé)。 2.設(shè)備所處的網(wǎng)絡(luò)也需要控制。 3.數(shù)據(jù)安全有控制方法。 |
|
| 2 | 文件共享 | 1.需要在家庭內(nèi)各種設(shè)備上都能訪問(wèn)文件。 2.可以控制訪問(wèn)權(quán)限。不同的成員訪問(wèn)不同的目錄。 |
|
| 3 | 存儲(chǔ)能力 | 1.有存儲(chǔ)能力,并可以進(jìn)行存儲(chǔ)的擴(kuò)展。 2.可以支持?jǐn)?shù)據(jù)的備份與故障恢復(fù)。 |
|
| 4 | 遠(yuǎn)程同步 | 1.可以在外面的時(shí)候(公司、旅游等),將數(shù)據(jù)同步到家用NAS上。 2.可以在外面的時(shí)候訪問(wèn)家用NAS上的數(shù)據(jù)。 |
|
| 5 | 遠(yuǎn)程管理 | 1.支持遠(yuǎn)程管理,可以在外面的時(shí)候?qū)Σ榭醇矣肗AS的狀態(tài)。 2.可以支持?jǐn)U展接入其他家用設(shè)備,并控制。 |
|
| 6 | 離線下載 | 1.可以在家用NAS設(shè)備上進(jìn)行離線下載操作。 2.查看離線下載進(jìn)度,控制下載到目錄等。 |
|
| 7 | 各種終端 | 1.需要支持PC端管理功能。 2.需要支持手機(jī)端管理功能。 |
|
| 8 | 影音中心 | 1.可以進(jìn)行DLNA,WebDav等協(xié)議 | |
| 9 | 很多應(yīng)用 | 可以支持很多應(yīng)用,如:百度網(wǎng)盤同步,家用監(jiān)控存儲(chǔ),遠(yuǎn)程家用設(shè)備控制,IFTTT等 |
因?yàn)槭羌矣迷O(shè)備,所以這里考慮安全,可用性方面的內(nèi)容少一些。家用NAS基本上可以上傳下載,可以看視頻基本上就夠用了。所以其他方面的內(nèi)容不再這里考慮。所以這個(gè)方案不適用與公司內(nèi)部文件共享,網(wǎng)站文件存儲(chǔ)等方面。
開源軟件研究
有了上面的需求,就有了目標(biāo)。開始研究開源軟件,使用開源軟件把整體的環(huán)境搭建起來(lái)。因?yàn)槭腔跇漭傻募矣肗AS解決方案,所以,都會(huì)基于樹莓派上的一些解決方案進(jìn)行。
樹莓派上又多種方式開源項(xiàng)目,或者免費(fèi)項(xiàng)目。可以簡(jiǎn)單的分為:樹莓派操作系統(tǒng)鏡像,應(yīng)用軟件,Docker鏡像。一項(xiàng)一項(xiàng)的看看這些形式的項(xiàng)目的支持:
-
樹莓派操作系統(tǒng)鏡像:
LibreELEC,KODI,OSMC是樹莓派官方上能找到的幾個(gè)影音系統(tǒng)的樹莓派鏡像。這幾個(gè)系統(tǒng)都是國(guó)外的大神開發(fā)的,所以對(duì)國(guó)內(nèi)的情況支持較少。例如之前使用LibreELEC想看個(gè)Bilibili都沒有插件進(jìn)行擴(kuò)展,國(guó)內(nèi)的各大視頻網(wǎng)站的支持也很弱。操作起來(lái)比較像是一個(gè)機(jī)頂盒,所以必須把設(shè)備放在電視附近使用HDMI進(jìn)行連接。比較限制使用方式,所以在這里不考慮這幾個(gè)系統(tǒng)。
Raspbian是樹莓派基于Debian的一個(gè)純凈版本??梢允褂貌僮飨到y(tǒng)界面,也可以使用命令行方式安裝。
CentOS也有專門的樹莓派版本,不過(guò)支持的比較差。在使用一段時(shí)間后莫名其妙的啟動(dòng)不了,不支持ntfs-3g文件系統(tǒng),安裝軟件各種不支持樹莓派版本。所以,CentOS的樹莓派支持還是差一些的。
-
樹莓派應(yīng)用:
樹莓派上有些應(yīng)用層的軟件,例如:OpenMediaVault,F(xiàn)reeNAS,RaspNAS。這些應(yīng)用層軟件可以使用多種方式安裝,有些大神已經(jīng)把這些系統(tǒng)生成了樹莓派鏡像,可以直接下載刷到SD卡上就可以用。也可以根據(jù)安裝步驟進(jìn)行應(yīng)用層的安裝。
在樹莓派上安裝這些軟件之后,使用時(shí)發(fā)現(xiàn)一些問(wèn)題。在使用OpenMediaVault時(shí)發(fā)現(xiàn),這個(gè)系統(tǒng)支持RAID。厲害了支持RAID方式的磁盤管理,不過(guò)要支持RAID就需要多塊硬盤。在沒有多塊硬盤的情況下使用這些軟件完成NAS的部署,比較困難。并且,在樹莓派上運(yùn)行這些程序事也會(huì)發(fā)現(xiàn)一些不穩(wěn)定的問(wèn)題,并且對(duì)終端支持的種類也有限,要不就是終端軟件是收費(fèi)的了。所以,整體考慮這幾個(gè)應(yīng)用系統(tǒng)不可用。不過(guò)有一些大神也使用這幾個(gè)系統(tǒng)去實(shí)現(xiàn)NAS,可能大神們對(duì)這些系統(tǒng)進(jìn)行了改造。
Seafile - 開源的企業(yè)私有網(wǎng)盤。國(guó)產(chǎn)的私有化部署網(wǎng)盤系統(tǒng),不過(guò)對(duì)樹莓派的支持稍差一些。因?yàn)镾eafile是使用Python語(yǔ)言開發(fā)的,可以使用Sqlite3作為數(shù)據(jù)庫(kù)。但是在安裝過(guò)程中會(huì)和其他的軟件依賴發(fā)成沖突,并且不支持樹莓派上使用Docker作為環(huán)境隔離。
Pydio | Enterprise File Sharing & Sync Platform。也是一個(gè)不錯(cuò)的應(yīng)用軟件,比較遺憾的是不支持樹莓派。 -
樹莓派Docker鏡像:
NextCloud,ownCloud,Samba,aria2等等??梢詽M足家用NAS的基本要求。但是需要進(jìn)行組裝工作。還可以進(jìn)行環(huán)境隔離,不影響其他軟件的運(yùn)行。
離線下載之前使用過(guò)迅雷的linux版本,但是及其不穩(wěn)定,而且已經(jīng)停止維護(hù)了。所以在樹莓派上沒有比較好的離線下載工具。
解決方案設(shè)計(jì)
綜上的開源軟件的調(diào)研,發(fā)現(xiàn)沒有現(xiàn)成的、完善的解決方案可以滿足我們上面提到的軟件需求。需要進(jìn)行組裝才能完成。俗話說(shuō)的自己動(dòng)手豐衣足食,所以先整一個(gè)整體方案。

分幾個(gè)部分:訪問(wèn)側(cè),設(shè)備側(cè),設(shè)備。其中各部分的意義為:
-
訪問(wèn)側(cè):
訪問(wèn)側(cè)主要解決在公網(wǎng)上訪問(wèn)NAS服務(wù)的網(wǎng)絡(luò)可達(dá)。這里因?yàn)榧依锸褂玫氖请娦诺木W(wǎng)絡(luò),所以是有公網(wǎng)IP的。這里只需要解決路由器與樹莓派之間的端口映射以及撥號(hào)后IP的只變更的問(wèn)題既可以。如果是其他網(wǎng)絡(luò),沒有公網(wǎng)IP的情況可以借助于花生殼等類似技術(shù)完成。
-
設(shè)備側(cè):
設(shè)備側(cè)主要是運(yùn)行的軟件。負(fù)責(zé)有Samba,NextCloud組成。Samba用于家庭內(nèi)部的文件共享,端口不對(duì)外開放。NextCloud主要完成家庭網(wǎng)盤功能,可以在公網(wǎng)訪問(wèn)。
-
設(shè)備:
設(shè)備為上層運(yùn)行的軟硬件環(huán)境。設(shè)備上硬件主要是有路由器、樹莓派和西數(shù)硬盤組成硬件,Raspbian為樹莓派操作系統(tǒng),Docker為軟件運(yùn)行環(huán)境。
以上從需求來(lái)源到調(diào)研軟件,然后在形成整體解決方案。下一篇文章將會(huì)介紹其中的具體操作過(guò)程。
參見
Dietpi玩轉(zhuǎn)SBC
Plex完美個(gè)人影音云盤搭建教程-Plex Media Server安裝與使用方法
利用Pydio搭建免費(fèi)私有云存儲(chǔ)-多終端自動(dòng)同步可在線播放音樂視頻
Oneinstack安裝NextCloud以及使用Aria2離線下載和ocDownloader插件配置
用樹莓派制造一個(gè)像樣的 NAS
推薦幾個(gè)樹莓派 raspbian 系統(tǒng) 可用的 arm docker源
https://nextcloud.com/athome/
https://nextcloud.com/yourdata/