哪種方案是目前All in One主機的終極方案
2020年05月29日10:00

很多小夥伴對於All in One主機存在這一定的誤解,包括不限於維護不便利、運行不穩定、出問題一鍋端、硬件性能轉化力低等等。而這些困擾的問題,似乎都集中在虛擬機上。

事實上,0202年、虛擬機各方面的技術發展已經相對純熟。在穩定性、可維護性、容錯性以及最重要的硬件性能轉化率上都有長足的進步。現今的虛擬機,已是不可多得的生產力工具。同時,在現階段組All in One主機、實現多系統同時值守,虛擬機是必不可少的工具。

拋開硬件層面,如何利用好虛擬機,包括不限於選擇哪款虛擬機軟件、以什麼樣的方案來實現,很大程度上決定了All in One主機的性能、擴展及穩定性。

哪種方案是目前All in One主機的終極方案_新浪眾測
哪種方案是目前All in One主機的終極方案_新浪眾測

個人現役All in One主機,iKuai主路由/ Openwrt 旁路由/ Windows 10 / (黑)群暉+Docker@Proxmox VE

運行十分穩定,非計劃操作,通常一個月都想不起重啟。

哪種方案是目前All in One主機的終極方案_新浪眾測
哪種方案是目前All in One主機的終極方案_新浪眾測

哪種方案是目前All in One主機的終極方案_新浪眾測
哪種方案是目前All in One主機的終極方案_新浪眾測

哪種方案是目前All in One主機的終極方案_新浪眾測
哪種方案是目前All in One主機的終極方案_新浪眾測

這套囊括了軟路由/Windows/Nas/Docker的系統,在擴展性上幾乎沒有瓶頸。 關於硬件選擇的「作業」、理念,感興趣的小夥伴請移步:

iKuai+Openwrt+Win10+黑裙@All in One硬件篇

將家中原本服役的Nas服務器,升級成為Nas/軟路由All in One。前前後後,折騰倆月。升級A

李小白JieaoLee2911

決定All in One主機的穩定性、易用性的,比之硬件,軟件層面更加重要。以何種方案來實現All in One主機,似乎比選裝硬件DIY主機更難。因為「應該」選用哪款虛擬機、以什麼樣的機製來實現,具體方案是沒有「標準答案」的……

底層系統選什麼?

虛擬機軟件選哪個?

在不同情況下各種方案孰勝孰略?

哪一種是更適合自身情況的?

以上「困惑」幾乎是著手組建All in One主機必須要面對的。避免在單一方案上照本宣科,依舊與硬件篇一樣,從理念和機製上聊聊各種組合方案及優缺。如此,很多初初接觸虛擬機、乃至想搭建All in One主機的小夥伴們能夠更好的審視自身軟/硬條件,再結合個人需求,搭配出更適合自己的組合方案。當然,也有個人認知的,目前最適合All in One主機的方案分享。

就目前,比較常見的方法,大致有以下幾種:

安裝Windows,使用Hyper-v虛擬機安裝其他系統安裝Ubuntu/Debian等Linux內核系統,在Liunx環境下使用Docker或安裝虛擬機運行其他系統。

安裝支援Docker的系統平台(unRAID、群暉/威聯通Nas系統、Liunx),通過Docker完成虛擬機部署。

安裝底層虛擬機(ESXI/PVE/unRAID),其他系統全部運行在底層虛擬機上。

以上方案區別的本質,就是宿主機、根系統的選擇。根系統決定了整套系統的性能表現、功能擴展、運行穩定。

實際上,除了上述幾種比較主流的方案,還有很多方式方法組合搭建。對虛擬機的要求,尤其是組All in One主機無非三個維度:硬件性能轉化率、運行穩定性、可維護性。以上方案及變換組合都有嚐試,以個人需求和理解,在這三個維度上,簡單、有限、主觀的歸納一下以上主流的方案的優缺。

1、Windows+Hyper (Windows+虛擬機)

哪種方案是目前All in One主機的終極方案_新浪眾測
哪種方案是目前All in One主機的終極方案_新浪眾測

這種方案最大優勢是熟悉和便利。最突出的缺陷是性能轉化率太低。

Windows+Hyper 的缺點,或者說Windows系統作為宿主機的劣勢非常明顯:機製使然,Windows系統下虛擬機的性能轉化率相對(太)低。且Windows系統本身就會佔用了(很大)部分的硬件資源。抑製了虛擬機對硬件性能的利用。

以及Windows系統的運行穩定性,向來成謎。即便是Server版的絕對穩定性亦很玄學。發展至今,Windows 10已經有了長足的進步,但對Windows的固有印象,讓人很難選擇它來做7*24*365值守All in One主機的根系統。

性能轉換率、運行穩定性都不盡人意。顯然,這不是虛擬機的可靠環境,更不是組All in One主機的理想選擇。但Hyper幾乎Windows原生。通常安裝了Windows的計算機在現有條件下、無需安裝其他軟件即可著手虛擬機的部署。另一方面,以Windows的普及率和保有量,在安裝、交互操作等方面幾乎沒有學習成本。

哪種方案是目前All in One主機的終極方案_新浪眾測
哪種方案是目前All in One主機的終極方案_新浪眾測

這樣的屬性也讓Windows+Hyper成為很多初學者最先上手的方案。所以這種方案通常用於一些簡單測試、功能調試等臨時任務。以及學習部署虛擬機、瞭解虛擬機的運行機製。

2、在Linux系統(Ubuntu/Debian等)上安裝虛擬機環境。

哪種方案是目前All in One主機的終極方案_新浪眾測
哪種方案是目前All in One主機的終極方案_新浪眾測

這個方案的優點是在硬件性能轉化率上相對Windows要好很多,甚至很多虛擬機的內核本身就是基於Liunx系統開發。在兼容性、可維護性上,Liunx平台對虛擬機也更加友好。尤其在某些調試上,Liunx作為根系統有不可替代的優勢。最具代表性的就是Liunx作為根系統,直接為Docker提供了環境(下文詳述)。

並且Liunx系統上的virtualbox/vmware等虛擬機軟件也非常豐富,且配套(更加)完善。

此方案的缺點,性能轉化率仍然不算(最)高。且Liunx下完成部署需要一定的Liunx系統的交互基礎。

通常都是在虛擬機上跑Ubuntu來實現Liunx環境,除了以這種方案搭建服務器或其他特殊要求,鮮有在Ubuntu裝VirtualBox等虛擬機軟件跑其他系統的情況。

就個人而言,這種方案在實踐中更多的還是學習、調試的一個環境。組All in One主機,大概率不會選擇這個方案。次要原因是Liunx作根系統,在交互上不夠直觀、熟練。主要原因是有更多、更好的選擇。

3、Nas/liunx+Docker

哪種方案是目前All in One主機的終極方案_新浪眾測
哪種方案是目前All in One主機的終極方案_新浪眾測

此(類)方案的最大優勢,是Docker容器輕量化、高效率、擴展性強的天然優勢。開源平台從不缺少方方面面的擴展,具象需求幾乎都能找到對應趁手的工具。且Docker機製決定了其在部署的便利性上有著其他系統(方案)不可比擬的優越性。初初上手、愛不釋手。

譬如在方案2的基礎上,可直接Docker來實現各種功能。這種思路、方案在目前而言亦是All in One不錯的選擇。

哪種方案是目前All in One主機的終極方案_新浪眾測
哪種方案是目前All in One主機的終極方案_新浪眾測

所以,這種方案高發在成品Nas服務器(群暉/威聯通)上。對於已有成品Nas整機的童鞋,Docker自然是不可或缺的利器。Nas服務器+Docker方案的優勢極為明顯。通過Docker即能夠讓現有的Nas服務器實現更多豐富的功能。換一種表達,就是在已經具備的Liunx環境下來擴展、加強、豐富。如果個人需求通過Docker全部得以滿足,那這套方案已經就是完美的All in One。

但,現實情況是大幾千的成品Nas整機的硬件配置都不是很高。硬件性能瓶頸難以負載高密度、高強度的任務。

當然,DIY一套配置不俗的整機來突破性能瓶頸亦是種選擇。但是以Nas系統為根系統,或者說用以Nas服務器來實現All in One主機,這種方案並不是最優選。因為在另一方面,Docker仍然存在「局限性」,且在不「拋棄」Docker的同時,有更好的方案來整合。

Docker必須依託Liunx 64bit,並不支援32Bit Liunx/Windows環境。雖然以時下的眼光審視,主流的Nas系統幾乎都是Liunx 64Bit,且Windows 10 2004版本更是集成了Liunx 64Bit環境。當然,這是另外一個議題。

解決了Docker在環境上的不(太)受限。而在某些(類)特殊的功能需求上,由於Docker「容器」不完全虛擬、隔離不徹底的機製,無法「跳脫」Docker本身又是一種障礙。無論是Windows下提供Liunx環境,亦或是方案2直接安裝Liunx系統來為Docker提供環境,終究都是「套」在一個系統下。

回到All in One主機維度,無論是基於Liunx內核的某個Nas服務器,或是乾脆完全虛擬一個Liunx系統也都是All in One主機的All中之一。Nas服務器(某個Liunx環境)完全可以成為完全獨立的All分之一。那就沒有必要以某個Nas系統作為根系統。完全可以讓Docker存在於虛擬機中的虛擬機,多系統中的分層系統。不失Docker功能及實現上的便利,又不拘泥於Docker而封堵其他系統並存的實現。

總結來說,某種(些)功能,在某種(些)方案下都能實現。但實現是理論,用著舒爽是實踐。自組All in One主機的初衷就是不被硬件性能所累,從而將豐富功能、擴展整合一起。當硬件配置足夠(至少強過成品Nas整機)時,不捨棄Docker,但不圍繞、局限於Docker,為更加「寬曠」的可能性提供更包容的擴展環境,才是All in One主機更合理的方案。

4、直接安裝底層虛擬機

哪種方案是目前All in One主機的終極方案_新浪眾測
哪種方案是目前All in One主機的終極方案_新浪眾測

就All in One主機、多系統伺服運行服務器,這應該是最優解決方案。

這種方案擁有最高的硬件性能轉化率。底層部署,由於不依託其他系統,沒有多餘的資源消耗。

進而硬件直通,尤其是網卡、硬盤實現直通,不僅性能提升明顯。且能夠大幅減少虛擬機對宿主機的性能資源消耗。

從機製上講,底層虛擬機不同於Nas(Liunx環境)+Docker方案。虛擬機將每個系統完全隔離,不僅提高運行穩定性,同時有更高效的性能利用率。而在實現分層系統,虛擬機@虛擬機,系統備份遷移、維護救援等方面,底層虛擬機也有另外一種便利。

回到最初的議題,All in One主機對虛擬機的要求權重必定是:性能轉化率>運行穩定性>可維護性。

那麼個人理解,以上主流方案優缺排序大概其是這樣的:

宿主機硬件轉化率:底層虛擬機> Linux/群暉 >Windows

系統擴展性:底層虛擬機 > Nas+Docker > Windows

運行穩定性:底層虛擬機 > Nas+Docker > Windows

如果按照個人的這個邏輯來看,底層虛擬機作為All in One主機根系統的優勢非常明顯。在拋開諸多限製條件的前提下,底層虛擬機方案也是個人最推崇的方案。

目前主流、公認好用的底層虛擬機系統有ESXI、PVE、UnRaid(等等…)。在不同需求、不同場景中各有優缺。後續將分享個人在使用以上三種系統遇到的實際問題和總結的經驗。

哪種方案是目前All in One主機的終極方案_新浪眾測
哪種方案是目前All in One主機的終極方案_新浪眾測

個人目前現役All in One主機採用的方案即底層PVE (Proxmox VE)。

iKuai主路由/ Openwrt 旁路由/ Windows 10 / (黑)群暉+Docker @PVE。這套系統囊括了軟路由/Windows/Nas/Docker等環境,在擴展性上幾乎沒有瓶頸。

之所以選擇PVE,是在硬件直通方面PVE有著很大優勢。能夠「從容」將網卡網口拆分,分別直通給不同的系統。

哪種方案是目前All in One主機的終極方案_新浪眾測
哪種方案是目前All in One主機的終極方案_新浪眾測

哪種方案是目前All in One主機的終極方案_新浪眾測
哪種方案是目前All in One主機的終極方案_新浪眾測

哪種方案是目前All in One主機的終極方案_新浪眾測
哪種方案是目前All in One主機的終極方案_新浪眾測

當然,就個人情況,很多功能完全是為了實現而實現,折騰著玩的初衷大於真實需求。但同時也體現出這套方案在擴展性上的優勢。虛擬系統n/虛擬系統+Docker @底層虛擬機。也許,也許是All in One主機目前的最優方案。更多的方案及可能,仍在摸索學習、調試體驗中。覺之這應該,應該不是終點。

關注我們Facebook專頁
    相關新聞
      更多瀏覽