家庭虚拟化更适合用pve(Proxmox)而非esxi
众所周知想玩服务器又或者all in one等等,都离不开虚拟化技术,而主流的虚拟机技术就三个:kvm、VMware、Hyper-V,在我看来,家庭虚拟化用pve更合适,远比esxi更好。
上面说的三种虚拟化技术,主流linux内核都支持kvm,Proxmox Virtual Environment(简称pve,下同)则是基于Debian系统专门用来管理/部署虚拟机的平台。VMware则是商业公司威睿推出的专有虚拟化平台(不过听说VMware要放弃自己的虚拟化技术转用kvm),对应的操作系统就是esxi。Hyper-V就是windows自家的虚拟化技术,windows以及windows server都自带这个。
从易用性角度来说,家庭用户只适合用pve、esxi。至于windows,操作系统本身就吃资源,pve、esxi都是基于linux系统,是个机器都可以运行的起来,windows就不行。而且windows虚拟化效率不如前面两个,不太建议。
如果要在esxi和pve之间选择,我更推荐pve,原因细说。
一、pve基于kvm,方便迁移
在我看来,基于kvm是一个很大的优势,对比私有的VMware来说,kvm已经进入到了linux内核,所以目前大部分linux系统都支持kvm,这意味着虚拟机极其容易迁移。现在市面上各类Linux系统里面的虚拟机99%都是kvm,例如群晖、威联通、truenas、unraid等等,他们的虚拟机就是在kvm+qemu上建立的,假设我现在需要从原本这些系统上的虚拟机迁移到pve,我就只要在原系统上导出,然后在新系统上导入就行,导入后就可以直接开机,不需要任何额外的操作。
有些童鞋可能第一个机器宿主机是基于其他的linux-kvm的虚拟机,例如我原来的服务器上面是直接安装truenas然后部署的虚拟机,我要迁移就像我刚刚说的从truenas导出,然后在pve上导入就可以开机了,节省了大量迁移时间以及成本。又或者哪一天我不用pve当宿主机,想换回到pve也是一样,迁移几乎无成本。
但是如果用esxi就不一样了,虽然能迁移,但是如果导出的格式不对啥的,还要做转换,又或者直接迁移后无法直接开机的情况也有(我还真遇到过....),总之迁移成本略高于pve。不过得提一句,kvm和VMware这两个虚拟化技术效率其实差不多,所以不用觉得pve和esxi谁的效率高,都一样。
二、pve可以直接用lxc
什么是lxc?lxc也是容器,和docker类似,旧版本的docker采用的就是lxc技术,只是现在彻底分割了。都是共享系统内核,使用lxc部署应用就可以做到隔离不同应用/系统,且大幅度降低需要的系统资源。
这个其实和系统开放性有点关系,pve和esxi都是linux系统,但是pve就原生支持lxc,而esxi只能开虚拟机。像我大部分服务都是在linux上运行(当然我想大部分童鞋也是一样),那我这时候就只要开个lxc容器运行对应的服务就行(lxc里面还能开docker,做嵌套),而esxi还需要创建一个linux虚拟机,然后在虚拟机里面开docker或者直接运行服务,相当于多了一次虚拟化,浪费了一点性能的同时还提升了整机功耗。
我现在就逐步把服务往lxc上迁移,包括op也换到了lxc,不得不说相比传统虚拟机,大幅度降低了内存和存储占用,甚至cpu利用率也降低了。
三、pve多集群更方便
pve本身就可以配置多个集群,手上有多个设备都安装pve就可以很方便的加到一个集群里面集中管理,但是esxi如果要做集群还需要安装vCenter,要麻烦一点。
四、pve驱动支持更好
众所周知esxi不支持现在的螃蟹(瑞昱)网卡,除非手动注入驱动,而且如果是老cpu,安装的时候还会提示cpu不受支持(虽然好像并没有影响)。主要是网卡驱动,太老的网卡和螃蟹卡都无法正常驱动,安装就是个麻烦事。
至于pve,就基本上不存在无驱动的问题,上到十几年前的老旧设备,下到最新的设备,几乎都可以被正常驱动,哪怕真的缺少驱动,Debian手动安装驱动也极其简单,起码比esxi简单。
五、pve更新更方便
pve如果要升级到新版本或者更新软件包,用几行命令就可以完事,但是如果esxi,就很麻烦,我以前用esxi都直接放弃更新。
六、pve支持更好
这里说的支持指出现问题后的支持情况,虽然如果真出现问题都是靠百度,但是pve是有社区论坛,可以说你遇到的问题一搜索基本上都会有解决方法,起码我遇到的几个bug都可以在论坛上找到解决办法;至于esxi,你是商业付费用户吗?
七、其他
当然esxi也有比pve优秀的地方,比如更方便的直通,更简洁明了的ui、更好稳定性以及更少的bug,但是我并不认为这些优点可以让我抛弃pve。反正我从三年前放弃esxi转向pve后再也没有想过回去......