超載
虛擬機是負責將硬件的物理資源和虛擬環(huán)境分隔開的一種系統(tǒng)。簡單說,虛擬機系統(tǒng)會將物理硬件設(shè)備的資源按照需要進行分配,并供給不同的虛擬系統(tǒng)使用。在的電腦安裝的虛擬機上分別安裝不同的操作系統(tǒng)、軟件。這些虛擬機之上的系統(tǒng)和真實的物理實機別無二致。當然,它依舊不會脫離由虛擬機分配的物理硬件資源,比如是分配的是幾個核心的CPU、多大容量的內(nèi)存。簡言之,虛擬機可以讓你實現(xiàn)真正的“一機多用”。
虛擬機系統(tǒng)有很多,比如我們剛剛提到的ESXI、PVE、UNRAID等。這其中,PVE顯然是最為友善的,至少它針對個人用戶免費,并且開源。更進一步,因為虛擬機系統(tǒng)要調(diào)配物理機硬件資源,這就涉及到其中一個直通功能——指定某個硬件設(shè)備“專職”服務(wù)其中某一個虛擬出的操作系統(tǒng),PVE在這方面是幾個虛擬機系統(tǒng)里最好的。
PVE的全稱是Proxmox Virtual Environment(官方網(wǎng)站:https:∥www.proxmox.com/),或稱之為Proxmox VE,是一款開源的虛擬化方案。其軟件和社區(qū)支持都是免費的(基于Debian Linux和KVM的虛擬化平臺),企業(yè)用戶則可以通過訂閱制獲得付費商業(yè)支持。
最初,虛擬機的誕生是為了服務(wù)器集群設(shè)備使用,跟民用幾無關(guān)系。不過隨著個人電腦性能的提升、尤其是多核心CPU的快速發(fā)展,用戶的使用需求也發(fā)生了改變。也正因如此,PVE這種完全免費開源的虛擬機系統(tǒng)越發(fā)收到關(guān)注。更為重要的一點,虛擬機系統(tǒng)本身也是需要占用一小部分電腦資源的,PVE的輕量化設(shè)計,讓它成為諸多虛擬機系統(tǒng)里占用較少的那個,而且配置也極為簡單,兼容性也非常出色,這也就難怪讓諸多個人用戶喜愛有加了。
要實現(xiàn)局域網(wǎng)內(nèi)的全能設(shè)備,軟路由系統(tǒng)是必不可少的關(guān)鍵一環(huán)。軟路由可以替代硬件路由設(shè)備,“統(tǒng)管”整個家庭局域網(wǎng)。不同于硬件路由,本質(zhì)上軟路由就是依靠CPU軟件計算的方式來替代路由器的硬件功能,這也是為什么將其稱之為“軟”路由的根本原因。
這樣的軟路由,本質(zhì)上就是軟件(相當于操作系統(tǒng))+電腦的組合。因為軟路由對CPU的性能要求并不苛刻,所以很多閑置的電腦、專注低功耗的電腦系統(tǒng)都適合安裝使用。目前開源或者免費的軟路由主要是OpenWRT、pfsense、高格、Sophos、愛快等等。
pfsense
Openowt
Sophos
高檔
愛快
這其中,OpenWRT是最為著名的,功能十分強大,擴展性也十分優(yōu)異。不過它的缺點也十分明顯——不夠穩(wěn)定,作為家庭網(wǎng)絡(luò)的中樞設(shè)備,OpenWRT的這一缺點會被放大,它更加適合DIY用戶用來嘗鮮;pfsense是基于FreeBSD的開源防火墻及路由平臺,它也是開源路由器系統(tǒng)中最為可靠的,其配備用于進行設(shè)置及更新等管理工作的Web用戶界面,不過,它的設(shè)置對普通用戶而言并不友好,需要一定的使用門檻;Sophos也是一個很出眾的路由系統(tǒng),它的家庭版本是免費的,并且支持最多50個設(shè)備連接。它著重于安全性以及可靠性,不過,Sophos的設(shè)置操作門檻也比較高,一般用戶難以入門;此外還有國產(chǎn)的高格軟路由系統(tǒng),它是一個非常出眾的路由固件,并且針對國內(nèi)的網(wǎng)絡(luò)環(huán)境有非常好的優(yōu)化,界面也非常友好。更重要的是,它的X86軟路由企業(yè)版也無條件永久免費,這是非常難得的;最后還有國產(chǎn)的愛快軟路由系統(tǒng),這款純原生中文的路由器系統(tǒng)是免費開放的,而且功能設(shè)置極為簡單直觀,穩(wěn)定性也頗為出眾,是一款非常值得選用的路由器系統(tǒng)。
具體到軟路由對比傳統(tǒng)硬件路由器的優(yōu)勢,主要在兩個方面,第一是軟路由的硬件構(gòu)架是依托傳統(tǒng)主流的電腦設(shè)備而生,正因擁有如此開放性的構(gòu)架,它的擴展性能、易用性遠超硬件路由設(shè)備。尤其對于個人用戶而言,低功耗電腦、閑置電腦的再利用,無疑也是節(jié)約成本的一種方式;所謂的擴展優(yōu)勢不單純是硬件功能的拓展,比如從千兆路由升級到2.5G路由,傳統(tǒng)路由器可能需要更換設(shè)備,而軟路由只需要更換網(wǎng)卡即可。除此之外,功能上的擴展更是硬件路由不可比擬的,比如去廣告、搭建網(wǎng)站、免密登錄、云盤加速等等,只要你能想到的功能均可通過軟件來實現(xiàn)。這些功能性的拓展,硬件路由極難實現(xiàn)。
所謂的多媒體中心,不知道大家使用電腦播放多媒體文件時候是不是有些小困擾,比如媒體都是文件夾形式,搜索辨別都只能依靠名字搜索,沒有圖示,沒有多媒體內(nèi)容的信息簡介。這些麻煩,需要一個真正的媒體服務(wù)器系統(tǒng)才能解決。這其中,免費的有Kodi、JellyFin,付費的有Plex和EMBY,都是很好的選擇。
Kodi
Kodi(曾用名XBMC)是一個免費的開放源代碼媒體播放器軟件應(yīng)用程序,由XBMC基金會(一家非營利技術(shù)聯(lián)盟)開發(fā)。Kodi可用于多種操作系統(tǒng)和硬件平臺,支持電視機和遙控器。通過插件,Kodi可以實現(xiàn)視頻文件的海報墻展示,而且具備多媒體中心的集合界面,操作極為簡單。在虛擬機上安裝Kodi的麻煩在于需要直通顯卡并且連接HDMI之類的視頻線纜,只能輸出到顯示器或者電視,局域網(wǎng)內(nèi)遠程瀏覽是件麻煩事。
Kodi
Plex
Plex是一款老牌的多媒體中心,擁有一整套媒體播放器及媒體服務(wù)器軟件,由于Plex Media Server和Plex Media Player組成,主要功能是存儲+索引+轉(zhuǎn)碼+在線播放。Plex Media Server不是簡單地幫你存儲分類影音文件,它還能分析影片的信息從而從IMDB等數(shù)據(jù)庫補全影片介紹等信息,進行索引以方便搜索。它的問題在于線硬件(GPU)轉(zhuǎn)碼(非常重要的功能,可以跨設(shè)備無視視頻格式)功能必須付費才可以使用,而且價格昂貴。
Plex
EMBY
emby
Emby以前稱為媒體瀏覽器,是一種媒體服務(wù)器,可讓用戶組織、播放和流式傳輸視頻和音頻到各種設(shè)備。雖然它有一些閉源組件,但主要是一個開源產(chǎn)品。它使用客戶端一服務(wù)器端的設(shè)計,一如Plex。其中服務(wù)器在客戶端播放時組織和存儲內(nèi)容,可用于多個平臺,易用性十分出眾。EMBY的問題也是收費才能實現(xiàn)硬件轉(zhuǎn)碼,價格雖然較Plex便宜一些,但畢竟不是免費的。
JellyFin
Jellyfin和Plex、EMBY一樣,都是基于服務(wù)器端+客戶端的設(shè)計,也是具備媒體串流播放功能的媒體中心應(yīng)用。其實它和EMBY淵源頗深——JellyFin就是EMBY收費后,部分核心成員出走另起爐灶設(shè)計而成的。JellyFin的功能和EMBY很接近,易用性也非常不錯。關(guān)鍵在于它是一款真正開源且免費的應(yīng)用。當然了,作為一款非商業(yè)化的項目,它的缺點也比較明顯:穩(wěn)定性尚待提升。
JellyFin
本著免費的原則,本文選用的就是JellyFin作為媒體中心使用。如此一來,通過電腦硬件安裝虛擬機,虛擬機同時安裝軟路由+媒體中心的方案,就可以讓家庭局域網(wǎng)內(nèi)實現(xiàn)完整的一套媒體服務(wù)平臺,供家庭成員享用了。
實現(xiàn)這一整套多媒體中心的必要條件當然是擁有一臺X86電腦。從配置上來說,兩個系統(tǒng)對內(nèi)存的需求并不苛刻,一般8GB的內(nèi)存就足夠了。但是,內(nèi)存最好是可以組成雙通道的。同時CPU部分最好帶有核顯,并且擁有一條完整的PCIe插槽,方便擴展有線網(wǎng)卡使用。
有線網(wǎng)卡的選擇有很多,筆者推薦最好是PCIe×4規(guī)格的4口千兆產(chǎn)品,如果是PCIe 3.0×1規(guī)格的有線網(wǎng)卡也可以。當然,2.5G網(wǎng)卡更是一個好選擇,但是要注意避免使用Intel芯片的產(chǎn)品,目前比較好的選擇是RTL芯片的2.5G有線網(wǎng)卡。除此之外,并不推薦使用萬兆網(wǎng)卡,因為大部分家庭的網(wǎng)線并不能符合要求,而且萬兆網(wǎng)卡的功耗也十分可觀。
存儲部分需求并不太高,哪怕是一個16GB容量的硬盤都足以應(yīng)對上述需求,只不過筆者強烈建議使用固態(tài)硬盤來當做系統(tǒng)盤,多線程并發(fā)數(shù)據(jù)讀取和極低的尋道時間非常重要。
在CPU部分,除了我們提到要帶有集顯之外,最好選擇還是低功耗的產(chǎn)品——別小看系統(tǒng)的耗電,如果不能控制在30W以內(nèi)的功耗,每年的電費也是一筆開支。CPU部分筆者推薦TDP為15W的產(chǎn)品,部分35W TDP的低功耗CPU也可以選擇。
最最重要的,則是CPU必須支持虛擬化技術(shù)。當然了,這個要求并不苛刻,可以說當今絕大部分CPU都具備虛擬化技術(shù)。至于多核心的需求,只要是雙核心以上的CPU產(chǎn)品,覆蓋虛擬機+軟路由和媒體中心足夠了。
如果你不確定自己的電腦是否支持虛擬化功能,我們可以使用軟件輔助判斷,下載Securable(下載地址:https:∥www.grc.com/securable.htm)后解壓運行,如果最后一項“Hardware Virtualization”顯示為“Yes”,則表示CPU支持。
如果CPU不支持,則Securable中“Hardware Virtualization”項會顯示“No”。
確定CPU支持后,在安裝之前還需要在BIOS中啟用虛擬化設(shè)置,方法是開機時按下F1或者Del鍵進入BIOS界面,找到CPUVirtualization相關(guān)項目(各品牌電腦BIOS名稱不一致,具體需要查閱說明書),將其設(shè)置為啟用,即“Enabled”狀態(tài)后保存退出即可。
PVE的系統(tǒng)安裝和Windows一樣,需要首先使用閃存盤制作一個安裝盤,容量不低于8GB即可。下載PVE的ISO安裝文件(下載地址:https:∥www.proxmox.com/en/downloads)然后使用Rufus制作引導(dǎo)盤即可。
運行Rufus,在引導(dǎo)類型中點擊“選擇”按鈕加載PVE ISO安裝文件,并在“目標系統(tǒng)類型”中選擇純UEFI啟動(目標電腦BIOS中需設(shè)置為UEFI啟動)。
在選擇鏡像使用模式的時候,這里必須選擇“以DD鏡像模式寫入”,這里是與Windows安裝啟動盤制作最大的區(qū)別,務(wù)必要確認無誤。
閃存盤制作完成后,將其插入要安裝PVE的電腦上,成功引導(dǎo)后,在PVE的引導(dǎo)選單上選擇第一項“Install Proxmox VE”。
PVE的歡迎界面中,下拉讀取協(xié)議并點擊點擊右下的“I agree”繼續(xù)。
進入安裝設(shè)置后,PVE會提示需要安裝硬盤的位置,默認提供一個硬盤位置,如果是多硬盤系統(tǒng)(筆者建議只安裝一個硬盤安裝,安裝完畢再添加額外的存儲設(shè)備)則需要點擊“Options”進行設(shè)置,此處以單硬盤默認即可。
設(shè)置完點擊“Next”,設(shè)置服務(wù)器的國家、時區(qū)及鍵盤布局時,國家處填寫“China”,其他默認設(shè)置即可。
接下來設(shè)置系統(tǒng)的管理員賬號和密碼以及郵箱設(shè)置了,此處根據(jù)自己的習慣設(shè)置即可,密碼部分,筆者建議使用復(fù)合型密碼,即數(shù)字+字母+大小寫的形式,用以確保安全性。
繼續(xù)安裝設(shè)置,管理網(wǎng)絡(luò)界面,注意第一個“Management Interface”是管理口設(shè)置,所謂管理口是無論電腦中合有幾個有線網(wǎng)絡(luò)接口,只能是其中一個具備管理能力,這個網(wǎng)絡(luò)端口的設(shè)備連接到PVE主機后方可進行設(shè)置調(diào)整,如果是多網(wǎng)卡的電腦,務(wù)必確認使用的是哪一個網(wǎng)卡;“Hostname(FQDN)”則是主機名稱,根據(jù)自己喜好設(shè)置即可;其他分別是IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)以及DNS服務(wù)器地址,根據(jù)實際情況填寫即可。
設(shè)置完畢PVE開始安裝,安裝完畢重啟電腦(該過程一般為5至10分鐘)默認項引導(dǎo)即可(無人工干預(yù)自動進入)。
引導(dǎo)完畢,界面將變成純字符界面,只有IP地址和登錄輸入,這時候我們就可以使用其他電腦登錄操作了。
在其他電腦上輸入PVE服務(wù)器lP地址,注意格式要包括https:∥以及端口號8006,例如https:∥192.168.1.2:8006,否則無法正確訪問。在登錄界面,將語言設(shè)置為“Chinese(Simplified)”即中文。
輸入用戶名密碼,即可登錄到PVE的主界面了。
虛擬機安裝完成,我們接下來就可以安裝軟路由系統(tǒng)了。首先下載愛快路由系統(tǒng)固件(安裝鏡像文件),下載地址:https:∥www.ikuai8.com/component/download,然后將下載好的鏡像文件上傳到PVE主機上。在PVE的頁面上,點擊“l(fā)ocal”然后選擇“內(nèi)容”,點擊上傳,并選擇鏡像文件的本地存放地址,將其上傳。
鏡像文1牡傳完畢,點擊“創(chuàng)建虛擬機”,勾選“高級”選項,點擊“開機自啟動”(為了確保該虛擬機可以正常被當做路由使用),名稱可以根據(jù)自己的喜好填寫,例如ikuai。
接著,選擇“使用CD/DVD光盤鏡像文件(ISO)”,存儲部分選擇“l(fā)ocal”,在“ISO映像”部分選中剛才上傳的鏡像文件,“類別”處選擇Linux并點擊下一步繼續(xù)。
配置“系統(tǒng)”、“硬盤”部分一切默認即可,如果有自定義需求可以調(diào)整硬盤存儲位置,本文以單硬盤不分區(qū)為例。然后在“CPU”部分“Sockets”選擇“1”,核也設(shè)置為“1”即可,軟路由固然由CPU“模擬”,只要不是N270一類的產(chǎn)品就足以應(yīng)對70接下來就是內(nèi)存,內(nèi)存部分筆者推薦512MB至1 GB的內(nèi)存分配足夠,大部分時間都是用不到那么多內(nèi)存的。至于網(wǎng)絡(luò)部分,我們可以使用默認設(shè)置,如果是直通網(wǎng)卡則需要在手動調(diào)整。
配置完成后會有總覽,確認無誤后勾選“創(chuàng)建后啟動”并點擊“完成”即可運行軟路由。愛快啟動后,點擊預(yù)覽窗口便可以看到運行狀態(tài),此時點擊激活該窗口,然后用鍵盤根據(jù)提示選擇硬盤安裝位置,默認只有一個硬盤的情況輸入1并回車,照提示按下“Y”鍵回車即可完成安裝。
安裝完畢后,我們就可以根據(jù)窗口提示的IP地址(會自動分配)重新打開一個瀏覽器窗口輸入該IP地址,就能見到默認的愛快路由設(shè)置界面了。
擁有了軟路由后,整個局域網(wǎng)都可以交給這臺軟路由進行管理控制,接下來就是要為這個局域網(wǎng)添加一個媒體中心了。提示一下,如果你的媒體文件比較多,此時可以先關(guān)機(關(guān)閉PVE)并斷開電源安裝第二塊硬盤用于數(shù)據(jù)存儲。
安裝JellyFin也是要首先上傳鏡像文件(JellyFin鏡像文件下載地址:https:∥mirrors.ustc.edu.cn/tu rnkeylinux/images/proxmox/debian-10-turnkey-mediaserver 16.0-1 amd64.tar.gz),然后選擇創(chuàng)建CT(和創(chuàng)建虛擬機不同)容器,注意記住CT ID,如圖中為109,后面要用到。然后設(shè)置好主機名和密碼,取消勾選“無特權(quán)的容器”。
然后在模板下要設(shè)置為Ubuntu。之后的磁盤部分根據(jù)實際情況設(shè)置,JellyFin自身的占用空間并不多,但是注意,要給未來的媒體文件留夠足夠的存儲空間。此外內(nèi)存部分,筆者建議分配4GB的容量使用。
接著要手動制定一個IP地址,注意在IPV4/CIDR后要加上“/24”,否則無法訪問。
配置好成功后先不要啟動這個CT容器,打開PVE的shell,輸入命令“Is-I/dev/dri/”,會顯示root video~Elroot render兩項,例如video id:226,0和render id:226,128。接下來,使用Winscp之類的軟件連接到PVE(SSH)上,然后找到目錄中的vim/etc/pve/Ixc/109.conf,注意這個109.conf就是你CT ID的數(shù)字。找到文件后,打開記事本一類的文本編輯器,將這個文件拖入進去進行修改。下拉這個文件到最尾部,添加如下內(nèi)容:
Ixc.cgroup.devices.allow=c 226:0 rwm
Ixc.cgroup.devices.allow=c 226:128 rwm
Ixc.autodev:1
Ixc.hook.autodev:/var/lib/Ixc/109/render_device_hook.sh
注意,第一、二行的數(shù)字就是剛剛video id:226,O和renderid:226,128的中的數(shù)字內(nèi)容,最后一行中的109就是你的CT lD。
接下來打開vim/var/lib/Ixc/100/render device hook.sh文件進行修改,拉到最后一行添加內(nèi)容,具體如下(同樣是要對應(yīng)自己的
video id和render id):
mkdir-p${LXC_ROOTFS_MOUNT}/dev/dri
mknod-m 666${LXC_ROOTFS_MOUNT}/dev/dri/card0 c 226 0
mknod-m 666${LXC_ROOTFS_MOUNT}/dev/dri/renderD128 c 226 128
回到PVE的shell中,輸入chmod 755 Ivar/lib/Ixc/100/renderdevice hook.sh命令。然后我們就可以啟動容器了,啟動后在CT內(nèi)執(zhí)行命令apt install i965-va-driver vainfo。如此一來,容器中的JellyFin就能調(diào)用顯卡對視頻內(nèi)容進行硬件解碼了。
最后,在瀏覽器中輸入JellvFin的lP地址(之前手動設(shè)置的IP),然后切換至JellyFin的控制臺,將轉(zhuǎn)碼的硬件加速設(shè)置成VAAPI即可。
如此以來,這臺電腦已經(jīng)變身成局域網(wǎng)的網(wǎng)絡(luò)控制中心、多媒體中心,有興趣的讀者朋友不妨一試。