最近组装NAS的时候,考虑到后续的系统安装,于是到处找各种资料去了解各方面的信息,方便后续安装的时候尽量少折腾,节省时间。也看到了不少大牛博主的教程资料,受益良多。于是乎就先整理了这边内容,供大家了解。
现在虚拟机各方面的技术发展已经相对纯熟。在稳定性、可维护性、容错性以及最重要的硬件性能转化率上都有长足的进步。现今的虚拟机,已是不可多得的生产力工具。同时,在现阶段组All in One主机、实现多系统同时值守,虚拟机是必不可少的工具。
抛开硬件层面,如何利用好虚拟机,包括不限于选择哪款虚拟机软件、以什么样的方案来实现,很大程度上决定了All in One主机的性能、扩展及稳定性。
个人现役All in One主机,iKuai主路由/ Openwrt 旁路由/ Windows 10 / (黑)群晖+Docker@Proxmox VE
运行十分稳定,非计划操作,通常一个月都想不起重启。
这套囊括了软路由/Windows/Nas/Docker的系统,在扩展性上几乎没有瓶颈。 关于硬件选择的「作业」、理念,感兴趣的小伙伴请移步:
iKuai+Openwrt+Win10+黑裙@All in One硬件篇
将家中原本服役的Nas服务器,升级成为Nas/软路由All in One。前前后后,折腾俩月。
决定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提供了环境(下文详述)。