今天過來記錄一下,最近折騰NAS的慘痛經歷。
最開始的想法
個人生產力需要,我有兩台電腦,所以想把一部相對閑置的電腦作為服務器使用。折騰過的系統就太多了,什么Windows 專業版企業版、Windows Server 、Ubuntu、CentOS、RedHat、Manjaro。用了這些系統都始終將這台電腦局限於遠程數據庫來使用,也就是說它的生產力並沒有完全體現出來。
偶然間得知NAS的存在,了解了一翻便決定開始折騰這個東西。本來是想搞一個黑群暉或者FreeNAS的,可這樣又限制了我想玩Linux的想法,因為裝了純NAS系統能玩的Linux也就剩Docker了。
經過我對目前學習和生產力的考量,決定自己DIY一台NAS,實現方式如下:
-
電腦系統:Windows Server 2019,用這個系統的目的是想了解一下Windows Server,必竟Windows Server和Linux是不一樣的,多了解一點是好事。
-
Hyper-V:虛擬平台選擇Hyper-V沒啥原因,操作簡單順手而已。開關機的時候無感,不需要等待釋放內存還挺爽的。
-
Manjaro: 這個是最近喜歡玩的Arch系Linux。
-
Ubuntu:玩這個系統是因為平時想學習一下Kubernets,本來是想在Manjaro中折騰的,但是感覺這個東西觸及的知識和領域太多了很可能會翻車。所以最好還是單獨裝一個系統比較好。
-
OpenWRT:
裝這個東西的原因也是無耐之舉。如果想讓局域網中的其它設備訪問這個這台宿主機以及虛擬機的話,最簡單的方法就是橋接各個虛擬機設置靜態IP就可以了。這樣會出現一個問題,配置的所有IP完全依靠路由器設置。如果網絡環境不發生變化的話不會有什么問題,但是有一次我帶着我的電腦去別的地方接入那里的環境后,結果不出意外我翻車了。原因是我的環境配置的都是192.168.1.*但是那里的環境並不是這樣的調了好長時間才解決。
所以后來我選擇了軟路由,實現方式為獨臂路由,宿主機和各個虛擬機用的就都是OpenWRT分配的IP了,這樣就組成了一個局域網,接外網的時候只要將OpenWRT的Wan口IP改為對應環境的IP就可以。
如果想讓這台電腦接入網絡訪問這個由軟路由組成的局域網中的程序時,只要在OpenWRT中做對應的端口映射就可以了。
文件處理方式
除此之外,雖然我想用Manjaro操作這台電腦中的所有文件,但是並不想將文件都放在虛擬硬盤里。比如我在Manjaro中搭建一個離線下載並下載一個電影的話,我希望把它存放在Windows Server可以訪問的NTFS格式的硬盤中。
解決這個問題的方式我知道的有兩種,一種是PCIE硬盤直通,一種是掛載Windows Server的共享目錄。
-
硬盤直通就是將一整塊硬盤分給一個虛擬機交由其直接訪問,因為必須是一整塊硬盤這種方式對我來說還是比較奢侈的。
-
掛載Windows Server的共享目錄是我采用的方式, 只要虛擬機開機掛載就可以了,當然速度不會高於硬盤直通,不過目前還可以。
Windows Server
裝完Windows Server后其實就發現了一些問題,比如不能安裝無線網卡驅動等等。但還是想了解一點關於Windows Server的知識,也就接着用了。直到后來我開始折騰Jellyfin。
總之最后裝了Windows 專業版,放棄了Windows Server。
Emby 和 Jellyfin
下載了不少自己喜歡的電影,不搞一個家庭影院網站的話實在說不過去。
剛開始折騰的時候,玩的就是Emby,這個其實已經很好用了。偶然間發現Jellyfin是Emby開源版本,想着Jellyfin會不會有一些Emby不開放的功能呢。 於是就裝上了Jellyfin,配置和Emby基本一樣。 果然,發現了一點不一樣的東西,Jellyfin支持硬件解碼,這個Emby中是沒有的。
但是要在Manjaro中使用顯卡,我可不會呀。
於是我的慘痛經歷開始了。。。。。
顯卡問題
Hyper-V解決顯卡問題也有兩種方式, 一是使用已經棄用的RemoteFX 3D Video Adapter,不推薦就不用了,省得到時候又多出來一些莫名其妙的問題。
另一個方法就是顯卡直通,和硬盤直通的道理差不多。
此時我發現了一個致命的問題,Windows Server不光沒有無線網卡驅動,就連AMD顯卡驅動也沒有。此時只能Windows Server換成Windows。
獨臂路由的意外丟失
換系統的時候,還一頓想Windows Server上有沒有什么是要備份出來的,結果還是忘記了OpenWRT的虛擬機在這個系統里。不過還好,半個小時就完成了從用Rufus燒制啟動盤到安裝成功。
新的Windows 10 專業版安裝完成之后,起手式裝了IIS、WSL、Hyper-V(其實就是這個時候發現的OpenWRT已經隨着Windows Server一起被擦除了)。
之前有折騰軟路由的經驗,KoolShare論壇下載虛擬機格式OpenWRT固件,同時下載StarWind V2V Converter用於轉換虛擬硬盤格式。配置軟路由IP,這個基本上就是把之前遇到的問題再Bing一下就好了,為下次翻車好找一點還是記下吧。
注意
- 在給虛擬機接線時,要Lan口在上Wan口在下,這樣OpenWRT的識別順序就是先內部再外部,不這樣做接外網會有影響。
- 兩個網線均啟用Mac地址欺騙。
- 勾掉安全啟動
- 網段默認也是192.168.1.*的如果想修改,還是修改/etc/config/network比較快, 圖型界面操作比較惡心。
- 如果以上均配置成功,ip地址正常情況下不能方問互聯網,多半是DNS的問題。驗證方式,可以在OpenWRT中Ping一下其它網址。
config interface 'lan'
option type 'bridge'
option ifname 'eth0'
option proto 'static'
option ipaddr '192.168.100.1'
option netmask '255.255.255.0'
option multipath 'off'
option ip6ssign '60'
option dns '8.8.8.8'
config interface 'wan'
option ifname 'eth1'
option proto 'static'
option multipath 'off'
option ipaddr '192.168.1.17'
option netmask '255.255.255.0'
option gateway '192.168.1.1'
除了此文件外還要注意下/tmp/resolv.conf.d/resolv.conf.auto
哈哈,顯卡直通翻車了
解決了軟路由,下一步就把之前的虛擬機都導入到新的Hyper-V中就可以。
導入成功之后,首先禁用電腦里的A卡,然后用PowerShell下架A卡並指定給Manjaro。Manjaro開機,非常漂亮Hyper-V報了用戶權限問題, 就此問題我在搜索引擎上一頓找,就是沒看出個所以然來。
所以這通折騰下來,沒有啥實質性的收獲,但是對個人開發環境,以及NAS、Emby、Jellyfin、KODI有了一點認知。
番外
文件共享
-
作為NAS的那台Windows主機里有幾個共享目錄,我是希望開機給獨臂路由以外的環境的,了解到文件共享並不只是一個端口而是135,136,137,138,139,445。
-
FTP也有同樣的問題,21端口只是用來訪問數據的,如果想做端口映射需要在了解決FTP的主動和被動方式后設定端口范圍。
-
一直以為有Wifi為什么還要用網線, 這下明白了。用Wifi給共享目錄傳文件默認應該是有限制的,如果將無線網卡的吞吐量開到最大,傳送會斷開,重新連接后不會續傳。