虚拟机下的软路由、NAS玩了几个月了,当初选择虚拟系统真是纠结得很,觉得哪个都好哪个都有问题。试来试去,发现已经把ESXi、PVE、unRaid这三大虚拟系统(unRaid有点冤)都折腾了几遍了。
这里罗列记录一下,也许也可以帮你少纠结一点。
我会粗略描述一些操作步骤,旨在体现操作复杂度等,可能无法当做完整教程。有需要了解详细步骤的同学可以参看其它大神的文章。
ESXi,是VMWare vSphere Hypervisor套件之下重要组件。前身是ESX,依赖Linux源码,后来抛弃Linux源码做成了ESXi。整个产品商用气息浓重,界面清晰易用,但硬件兼容性较差(主要面向服务器),没什么扩展性(毕竟不是linux)。
PVE,全称Proxmox Virtual Environment,是基于Debian的Linux系统,虚拟机内核为KVM。硬件兼容性优秀。界面功能不强,很多操作要靠命令行,但扩展能力几乎是无限的。
unRaid,其实是个NAS系统,是基于Slackware的Linux系统,虚拟机内核也是KVM。磁盘阵列管理非常有特色,灵活性很高。同时还有很不错的插件、Docker和虚拟机支持。
ESXi,官网获取iso镜像,做成启动盘来安装。
PVE,同样是官网获取iso镜像,做成启动盘来安装。
unRaid,比较特别,需要准备一个U盘,制作启动U盘。可以从官网的下载制作工具(exe)来制作。也可以直接下载系统的zip包,如果要用开(po)心(jie)版,也只能下载zip包。
以下测试数据来自于我笔记本的Win10下的VMWare虚拟机,仅供参考。
ESXi 7.0b,安装iso大小351M,系统占用130G硬盘,待机内存1.1G,待机CPU约1-6%,系统启动时间61秒。
你没看错,系统占用130G磁盘!如果你是128G的ssd,可用空间直接就没有了!其实罪魁祸首是ESXi 7.0版本安装系统会默认分配120G的虚拟闪存(安装系统启动前,可以用shift+o,加上autoPartitionOSDataSize=...来改变默认大小,单位MB)。另外,ESXi 6.7安装之后默认占用磁盘空间约10G。
PVE 6.2-4,安装iso大小862M,系统占用6G以上硬盘,待机内存900M,待机CPU约1%,系统启动时间20秒。
安装系统时,磁盘空间会动态分配,除了交换分区等,主要两个分区是:系统分区和LVM分区,后者提供给虚拟机磁盘使用。不知道具体什么分配算法,实测得到:
16G硬盘安装PVE,交换分区1.9G、系统3.6G(1.8G已用)、LVM 6G。
128G硬盘安装PVE,交换分区4G、系统31G(1.8G已用)、LVM 74G。
unRaid 6.8.3,zip包213M,系统必须放入U盘(所需空间不足300M),占用23G硬盘空间,待机内存不足200M,待机CPU约1-3%,系统启动时间59秒。
23G硬盘空间中,启动Docker会默认创建20G的镜像文件。不用Docker可以手动删除镜像,也可以自定义镜像大小,还可以采用文件夹的方式而不是固定大小的镜像。
ESXi,创建/编辑虚拟机,比较简单易懂
PVE,创建/编辑虚拟机,功能也比较全
unRaid,需要先设定并启用阵列后才能使用虚拟机。(阵列相关后面再讲)
三个虚拟系统的虚拟硬盘性能都不怎么样。具体虚拟磁盘的性能问题可以见我另一篇分享(https://zhuanlan.zhihu.com/p/271901267)。如果真的需要高性能磁盘,最好还是做硬盘直通。
ESXi,需要命令行操作找到硬盘并挂载(RDM),然后在界面添加此磁盘。
PVE,只需要命令行操作
unRaid,先用命令行找到磁盘名,然后界面添加
网卡、声卡、sata控制器等都可以用PCI直通的方式供虚拟机使用(显卡相关后面详述),性能会好过模拟设备。使用硬件直通,需要CPU有Vt-d功能,并在bios中开启,且要求不可以使用动态内存。
还有一种叫SR-IOV直通的,能力更强一些,但要求较高,我还没成功过,就不聊了。
ESXi,直接界面操作
PVE,先修改系统配置打开直通功能,然后就可以直接界面操作了
unRaid,6.9.2之后可以在系统工具中屏蔽要直通的设备,然后在虚拟机配置中勾选要直通的设备即可。(6.9.1以及之前需要安装VFIO-PCI Config插件)
显卡本来也是PCI硬件之一,但是会有诸多原因导致它的直通不会那么容易。
ESXi,基本操作还是PCI硬件直通的操作,但可能遇到了以下诸多的限制:
PVE,除一般PCI硬件直通的步骤外还需要一些配置,具体操作因为pve版本不同、硬件不同等差别很大。几乎没有限制,技术够牛(改bios、改源码……),基本能直通成功。这里只按照我遇到的简单情况说明下(PVE 6.4-4、Q87主板、NVIDIA显卡)。
unRaid,系统帮忙解决了很多直通问题,仅在虚拟机中设置即可,连硬件的屏蔽都省了。
虚拟光驱最大的作用是加载iso光盘镜像,用于安装系统。少数人还需要把真的光驱给虚拟机用,用来读取/刻录光盘。
有时候虚拟系统主机会需要重启或是意外断电等情况,此时我们需要某些虚拟机会在系统启动后按顺序自动启动。
单说长时间运行的话,三者没发现什么区别,都很稳定。但如果你跟我一样喜欢“瞎折腾”,那就很容易出事了。
所以ESXi是最稳的,界面清晰、扩展性不强,所以也不太会出故障。PVE、unRaid折腾多了都很危险。尤其是unRaid,似乎虚拟机部分还没那么成熟,花样越多坑越多,而且很多设定(比如网络、直通)必须通过重启或关闭磁盘阵列(所有Docker、虚拟机都要关闭)来生效。
ESXI使用自己的VMware内核,CPU优化相当好,损耗趋近于0%。
PVE与unRaid接近(都是KVM),损耗大约是4-10%的样子。
详细的对比我就不展示了,受影响因素太多,我也没搞清楚,容易误导大家。总的来说三者差距不会很大,如果你的CPU性能本身有一定过剩,就不用特别纠结这点点损耗了。
ESXi,安装即可试用60天。官网可以免费注册,会有功能限制,但个人足够用了。
最便宜的1年期授权大概是1700人民币以上。
网上可以搜注册码。
PVE,算是免费吧。不注册会每次登陆有个提示框,且不能更新官方稳定源。
最便宜的1年期授权是85欧元。
可以通过修改代码屏蔽提示,还可以添加免费更新源来更新。
unRaid,针对U盘注册,不注册几乎等于不能用。可以免费注册30天试用版。
6块硬盘的永久授权是59美元,允许一年换一块U盘(毕竟是U盘杀手)。
网上有开(po)心(jie)版。
如果你没玩过Docker,强烈建议你入坑~ 比虚拟机更轻便、灵活。很多好用的Linux软件都会有Docker的版本,很好地解决了兼容性等问题。
ESXi,不支持Docker,估计未来也不会支持,毕竟不是Linux。你只能先装个linux虚拟系统,再用docker。
PVE,本身不直接支持Docker,但是可以自己安装相关软件。
unRaid,可以运行Docker,还有方便的界面支持。但是虚拟缓存有点麻烦(内存不足时才用),算是瑕疵。
如果不是用过这几个虚拟系统,我还真想象不到温度显示也会是一个需要考虑的问题。
ESXi,需要主板支持IPMI,基本只有服务器才行了。否则,就完全看不到温度。
PVE,需要安装软件和手改界面代码。不同机器情况还不一样,要解决得有点编程基础。
unRaid,默认只显示硬盘温度。需要安装温度显示插件来显示CPU、主板温度。
这是unRaid独有的,也是它最初的主要卖点。它不同于真正的raid阵列,是一种灵活的文件级磁盘空间组织方式。
使用中体会到的几个优点:
但这个文件系统的性能不是太好,连续满负荷读写会突然性能下降,即使有ssd缓存也不行。不知道是BUG还是某些机制决定了这样的特性。
ESXi,注重企业支持,界面简单易用,自身功能较强,对硬件要求较高,扩展性较低。
适合初学者、不想太折腾的、有服务器主板的(例如Gen8这种家用服务器)。迷茫的时候,优选ESXi吧。
PVE,兼容性最好,扩展性好,界面友善度欠佳,需要一定Linux基础。
适合低端机型、懂Linux的、爱折腾的。PVE玩得溜了之后,看其它的系统都像是弟弟。(可惜我玩不溜)
unRaid,Docker、磁盘阵列、显卡直通、虚拟U盘等都是亮点。必须U盘引导有点麻烦(廉价U盘7x24工作,心还是很慌)。特色功能多,出新快,因此问题也多。
适合直接做NAS、玩PT,尤其适合做家庭影视库、HTPC,玩一拖二也是个不错的选择。比较有可玩性,又不会难度特别高。
Copyright © 2021 .长沙麦涛网络科技有限公司 All rights reserved.
湘ICP备20015126号-2
联系我们