哪种方案是目前All in One主机的终极方案

李小白JieaoLee 李小白JieaoLee 2020-05-29 10:00


很多小伙伴对于All in One主机存在这一定的误解,包括不限于维护不便利、运行不稳定、出问题一锅端、硬件性能转化力低等等。而这些困扰的问题,似乎都集中在虚拟机上。

事实上,0202年、虚拟机各方面的技术发展已经相对纯熟。在稳定性、可维护性、容错性以及最重要的硬件性能转化率上都有长足的进步。现今的虚拟机,已是不可多得的生产力工具。同时,在现阶段组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主机的终极方案_新浪众测

这套囊括了软路由/Windows/Nas/Docker的系统,在扩展性上几乎没有瓶颈。 关于硬件选择的「作业」、理念,感兴趣的小伙伴请移步:

 

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

将家中原本服役的Nas服务器,升级成为Nas/软路由All in One。前前后后,折腾俩月。升级A

决定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主机的终极方案_新浪众测

这种方案最大优势是熟悉和便利。最突出的缺陷是性能转化率太低

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主机的终极方案_新浪众测

这样的属性也让Windows+Hyper成为很多初学者最先上手的方案。所以这种方案通常用于一些简单测试、功能调试等临时任务。以及学习部署虚拟机、了解虚拟机的运行机制。

2、在Linux系统(Ubuntu/Debian等)上安装虚拟机环境。

哪种方案是目前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主机的终极方案_新浪众测

此(类)方案的最大优势,是Docker容器轻量化、高效率、扩展性强的天然优势。开源平台从不缺少方方面面的扩展,具象需求几乎都能找到对应趁手的工具。且Docker机制决定了其在部署的便利性上有着其他系统(方案)不可比拟的优越性。初初上手、爱不释手。

譬如在方案2的基础上,可直接Docker来实现各种功能。这种思路、方案在目前而言亦是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主机、多系统伺服运行服务器,这应该是最优解决方案
这种方案拥有最高的硬件性能转化率。底层部署,由于不依托其他系统,没有多余的资源消耗。
进而硬件直通,尤其是网卡、硬盘实现直通,不仅性能提升明显。且能够大幅减少虚拟机对宿主机的性能资源消耗。

从机制上讲,底层虚拟机不同于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主机采用的方案即底层PVE (Proxmox VE)。
iKuai主路由/ Openwrt 旁路由/ Windows 10 / (黑)群晖+Docker @PVE。这套系统囊括了软路由/Windows/Nas/Docker等环境,在扩展性上几乎没有瓶颈。


之所以选择PVE,是在硬件直通方面PVE有着很大优势。能够「从容」将网卡网口拆分,分别直通给不同的系统。

哪种方案是目前All in One主机的终极方案_新浪众测

哪种方案是目前All in One主机的终极方案_新浪众测

哪种方案是目前All in One主机的终极方案_新浪众测

当然,就个人情况,很多功能完全是为了实现而实现,折腾着玩的初衷大于真实需求。但同时也体现出这套方案在扩展性上的优势。虚拟系统n/虚拟系统+Docker @底层虚拟机。也许,也许是All in One主机目前的最优方案。更多的方案及可能,仍在摸索学习、调试体验中。觉之这应该,应该不是终点。

(声明: 本文著作权归作者本人和新浪众测共同所有,未经许可不得转载。本文仅代表作者观点,不代表新浪众测立场。)
0 0
分享 商务合作 返回
微博 QQ空间 微信