软件篇。哪种方案是目前组All in One主机的终极选择。
很多小伙伴对于All in One主机存在这一定的误解,包括不限于维护不便利、运行不稳定、出问题一锅端、硬件性能转化力低等等。而这些困扰的问题,似乎都集中在虚拟机上。
事实上,0202年、虚拟机各方面的技术发展已经相对纯熟。在稳定性、可维护性、容错性以及最重要的硬件性能转化率上都有长足的进步。现今的虚拟机,已是不可多得的生产力工具。同时,在现阶段组All in One主机、实现多系统同时值守,虚拟机是必不可少的工具。
抛开硬件层面,如何利用好虚拟机,包括不限于选择哪款虚拟机软件、以什么样的方案来实现,很大程度上决定了All in One主机的性能、扩展及稳定性。
个人现役All in One主机,iKuai主路由/ Openwrt 旁路由/ Windows 10 / (黑)群晖+Docker@Proxmox VE
运行十分稳定,非计划操作,通常一个月都想不起重启。
并且这套囊括了软路由/Windows/Nas/Docker的系统,在扩展性上几乎没有瓶颈。
关于硬件选择的「作业」、理念,感兴趣的小伙伴请移步:
决定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+虚拟机)
这种方案最大优势是熟悉和便利。最突出的缺陷是性能转化率太低。
Windows+Hyper 的缺点,或者说Windows系统作为宿主机的劣势非常明显:机制使然,Windows系统下虚拟机的性能转化率相对(太)低。且Windows系统本身就会占用了(很大)部分的硬件资源。抑制了虚拟机对硬件性能的利用。
以及Windows系统的运行稳定性,向来成谜。即便是Server版的绝对稳定性亦很玄学。发展至今,Windows 10已经有了长足的进步,但对Windows的固有印象,让人很难选择它来做7*24*365值守All in One主机的根系统。
性能转换率、运行稳定性都不尽人意。显然,这不是虚拟机的可靠环境,更不是组All in One主机的理想选择。但Hyper几乎Windows原生。通常安装了Windows的计算机在现有条件下、无需安装其他软件即可着手虚拟机的部署。另一方面,以Windows的普及率和保有量,在安装、交互操作等方面几乎没有学习成本。
这样的属性也让Windows+Hyper成为很多初学者最先上手的方案。所以这种方案通常用于一些简单测试、功能调试等临时任务。以及学习部署虚拟机、了解虚拟机的运行机制。
2、在Linux系统(Ubuntu/Debian等)上安装虚拟机环境。
这个方案的优点是在硬件性能转化率上相对Windows要好很多,甚至很多虚拟机的内核本身就是基于Liunx系统开发。在兼容性、可维护性上,Liunx平台对虚拟机也更加友好。尤其在某些调试上,Liunx作为根系统有不可替代的优势。最具代表性的就是Liunx作为根系统,直接为Docker提供了环境(下文详述)。
并且Liunx系统上的virtualbox/vmware等虚拟机软件也非常丰富,且配套(更加)完善。
此方案的缺点,性能转化率仍然不算(最)高。且Liunx下完成部署需要一定的Liunx系统的交互基础。
通常都是在虚拟机上跑Ubuntu来实现Liunx环境,除了以这种方案搭建服务器或其他特殊要求,鲜有在Ubuntu装VirtualBox等虚拟机软件跑其他系统的情况。
就个人而言,这种方案在实践中更多的还是学习、调试的一个环境。组All in One主机,大概率不会选择这个方案。次要原因是Liunx作根系统,在交互上不够直观、熟练。主要原因是有更多、更好的选择。
3、Nas/liunx+Docker
此(类)方案的最大优势,是Docker容器轻量化、高效率、扩展性强的天然优势。开源平台从不缺少方方面面的扩展,具象需求几乎都能找到对应趁手的工具。且Docker机制决定了其在部署的便利性上有着其他系统(方案)不可比拟的优越性。初初上手、爱不释手。
譬如在方案2的基础上,可直接Docker来实现各种功能。这种思路、方案在目前而言亦是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主机、多系统伺服运行服务器,这应该是最优解决方案。
这种方案拥有最高的硬件性能转化率。底层部署,由于不依托其他系统,没有多余的资源消耗。
进而硬件直通,尤其是网卡、硬盘实现直通,不仅性能提升明显。且能够大幅减少虚拟机对宿主机的性能资源消耗。
从机制上讲,底层虚拟机不同于Nas(Liunx环境)+Docker方案。虚拟机将每个系统完全隔离,不仅提高运行稳定性,同时有更高效的性能利用率。而在实现分层系统,虚拟机@虚拟机,系统备份迁移、维护救援等方面,底层虚拟机也有另外一种便利。
回到最初的议题,All in One主机对虚拟机的要求权重必定是:性能转化率>运行稳定性>可维护性。
那么个人理解,以上主流方案优缺排序大概其是这样的:
宿主机硬件转化率:底层虚拟机> Linux/群晖 >Windows
系统扩展性:底层虚拟机 > Nas+Docker > Windows
运行稳定性:底层虚拟机 > Nas+Docker > Windows
如果按照个人的这个逻辑来看,底层虚拟机作为All in One主机根系统的优势非常明显。在抛开诸多限制条件的前提下,底层虚拟机方案也是个人最推崇的方案。
目前主流、公认好用的底层虚拟机系统有ESXI、PVE、UnRaid(等等…)。在不同需求、不同场景中各有优缺。后续将分享个人在使用以上三种系统遇到的实际问题和总结的经验。
个人目前现役All in One主机采用的方案即底层PVE (Proxmox VE)。
iKuai主路由/ Openwrt 旁路由/ Windows 10 / (黑)群晖+Docker @PVE。这套系统囊括了软路由/Windows/Nas/Docker等环境,在扩展性上几乎没有瓶颈。
之所以选择PVE,是在硬件直通方面PVE有着很大优势。能够「从容」将网卡网口拆分,分别直通给不同的系统。
当然,就个人情况,很多功能完全是为了实现而实现,折腾着玩的初衷大于真实需求。但同时也体现出这套方案在扩展性上的优势。虚拟系统n/虚拟系统+Docker @底层虚拟机。也许,也许是All in One主机目前的最优方案。更多的方案及可能,仍在摸索学习、调试体验中。觉之这应该,应该不是终点。
现役这套PVE方案的搭建过程,将会在后续发布「保姆级教程」和「提纲型说明」。
点赞, 关注。 打赏! 催更……
始于热爱
校验提示文案
故事写给风听
校验提示文案
值友9680414631
校验提示文案
干脆面爱洗手
校验提示文案
非彼非是
校验提示文案
谁人能将我种草
校验提示文案
我不是主谋
校验提示文案
卑微之卑微者
校验提示文案
oengus
校验提示文案
idoooooo
校验提示文案
下班后少年
校验提示文案
hellkun
校验提示文案
小站果
校验提示文案
奈依左特
校验提示文案
棠溪2022
校验提示文案
吃饭超人
校验提示文案
kvn010
校验提示文案
浮生行简
校验提示文案
星光里
校验提示文案
核子猫
校验提示文案
我就看看不买12138
校验提示文案
蓝F0X狐
组raid,硬盘休眠,缓存池,smb,nfs等文件访问协议?
校验提示文案
值友4143830577
校验提示文案
吴顶天
校验提示文案
薛定谔的猫_DoA
校验提示文案
值友9680504955
校验提示文案
[已注销]
校验提示文案
ycrobin
校验提示文案
kimrose
Esxi底层,最少要2台电脑
校验提示文案
bodyglove
校验提示文案
vividw
校验提示文案
kimrose
校验提示文案
买买买剁剁剁的
校验提示文案
[已注销]
校验提示文案
等死二代
校验提示文案
魔女买买买
校验提示文案
v86t
校验提示文案
飞起飞起咬人
校验提示文案
FanGhost
校验提示文案
值友1447442790
校验提示文案