KVM 是一个全虚拟化的解决方案。可以在 x86 架构的计算机上实现虚拟化功能。但 KVM 需要 CPU 中虚拟化功能的支持,只可在具有虚拟化支持的 CPU 上运行,即具有 VT 功能的 Intel CPU 和具有 AMD-V 功能的 AMD CPU。
Xen 也是 Linux 下的一个虚拟化解决方案,也将很快被编入内核中。Xen 的实现方法是运行支持 Xen 功能的 kernel,这个 kernel 是工作在 Xen 的控制之下,叫做 Domain0,使用这个 kernel 启动机器后,你可以在这个机器上使用 qemu 软件,虚拟出多个系统。
Xen 是一个外部的 Hypervisor 程序(虚拟机管理程序);它能够控制虚拟机和给多个客户机分配资源,在 KVM 被写入 Linux 内核后,估计 Xen 很难再被写入内核;另一方面,KVM 是 Linux 的一部分, 可使用通常的 Linux 调度器和内存管理. 这意味着 KVM 更小更易使用。
Xen 同时支持全虚拟化和准虚拟化(需要修改客户机操作系统,而修改过的客户机操作系统能有更好的性能),KVM 当前不支持准虚拟化。
Xen 的缺点是如果你需要更新 Xen 的版本,你需要重新编译整个内核,而且,稍有设置不慎,系统就无法启动。
Xen 使用的话需要对内核打补丁,而 KVM 内置在内核中。
相比较,KVM 就简化的多了。它不需要重新编译内核,也不需要对当前 kernel 做任何修改,它只是几个可以动态加载的 .ko
模块。它结构更加精简、代码量更小。所以,出错的可能性更小。并且在某些方面,性能比 Xen 更胜一筹。
性能:大多数 Xen 和 KVM 性能基准的对比都表明 Xen 具有更好的处理性能(接近于本地处理),只有在磁盘 I/O 方面略逊于 KVM。进一步来讲,独立测试表明随着工作负载的增加 KVM 的性能逐渐下降。通常情况下,在试图支持四个以上的客体虚拟机时就会崩溃。 Xen 支持一个客体虚拟机的数量呈线性增长,可以支持 30 个以上工作负载同时运行。
昨天在 Ubuntu 上想安装 Xen,发现原来的那些链接和很多安装方法改变了,看来被商业公司收购之后,Xen 会在各方面有所改变。虽然 KVM 现在还无法和 Xen 相比,但是其植入 Linux 内核,以及被社区支持,让我更看好它的未来。
IBM 丢弃 Xen 用 KVM,Ubuntu 丢弃 Xen 用 KVM。Redhat 就更不用说了,当然支持自家的 KVM。KVM 完全开源,而 Xen 只有核才开源。Citrix 指望 Xen 及外围工具挣钱呢。
KVM 最大的优势是:随着 kernel 的更新。
(发布时间:2017-11-17)上周 AWS 宣布的转向 KVM 的爆炸新闻,着实在业界激起了层层浪花,在震惊之余,我们不禁思考起这样一个问题:为何各大厂商如 IBM、Ubunt、阿里云相继丢弃了 Xen 转而启用 KVM,现如今又轮到了 AWS 投入 KVM 的怀抱?对比 KVM 和 Xen, KVM 已经被 Linux 核心组织放入 Linux 的内核里面,而 Xen 是一个外部的 Hypervisor 程序(虚拟机管理程序),其工作环境的补丁包不能够和 Linux 内核兼容;另一方面,KVM 是 Linux 的一部分, 可使用通常的 Linux 调度器和内存管理,在任何场景下都可以直接进行交互,而不需要修改虚拟化操作系统,这意味着 KVM 更小更易使用;另外 I/O 性能方面,KVM 也优于 Xen。
其实对于 AWS 放弃 Xen,我们不难发现其中的一些蛛丝马迹,早在 2014 年 9 月,Xen 被爆出了 3 个安全漏洞,着实上演了一出帽子戏法,Xen 漏洞危害程度和影响范围不可谓不大,包括 AWS、Rackspace、SoftLayer 在内的 Iaas 提供商均遭受了不同时间停机影响。不言而喻,重启服务对云计算带来的负面影响是无法抹去的。再看 2017 年 KVM 开源贡献也出现了 AWS 的身影,这也说明了 KVM 获得了更多的社区支持。现如今越来越来的厂商诸如 AWS、IBM、Ubuntu、腾讯云、阿里云、华为都逐渐在规划或已经转向 KVM,未来的趋势也将会是属于 KVM 的。
这个平台是最便宜的 VPS 平台,在各个 VPS 商哪里都是价格最低的。OpenVZ 本身运行在 Linux 之上,它通过自己的虚拟化技术把一个服务器虚拟化成多个可以分别安装操作系统的实例,这样的每一个实体就是一个 VPS,从客户的角度来看这就是一个虚拟的服务器,可以等同看做一台独立的服务器。OpenVZ 虚拟化出来的 VPS 只能安装 Linux 操作系统,不能安装 Windows 系统。不能安装 Windows 操作系统是 OpenVZ 的第一个缺点,需要使用 Windows 平台的用户不能使用 OpenVZ VPS。OpenVZ 的第二个缺点是 OpenVZ 不是完全的虚拟化,每个 VPS 账户共用母机内核,不能单独修改内核。好在绝大多少用户根本不需要修改内核,所以这个缺点对多数人可以忽略不计。而这一点也正是 OpenVZ 的优点,这一共用内核特性使得 OpenVZ 的效率最高,超过 KVM、Xen、 VMware 等平台。在不超售的情况下,OpenVZ 是最快速效率最高的 VPS 平台。
这几个 VPS 平台可以归为一类,它们在虚拟化母机时,是完全的虚拟化,各个 VPS 示例之间不共用母机内核,各自都是独立的,几乎所有的操作系统都可以安装到这些被虚拟化出来的 VPS 上。完全的虚拟化使得这些平台的 VPS 效率上要低于 OpenVZ。但由于其完全的虚拟化,同一母机上的各个 VPS 之间几乎没有相互干扰,而 OpenVZ 则取决于 VPS 是否超售,如果 OpenVZ VPS 被超售,则性能会受到影响。如果位于同一母机上的 OpenVZ VPS 有滥用资源行为,将会影响到其它 VPS 的性能。OpenVZ 的这一特点和虚拟主机很类似。虚拟主机就是完全共用虚拟主机母机的资源,虚拟主机的性能受到同一母机上其它虚拟主机的影响最大。OpenVZ 则比虚拟主机要好很多。KVM、Xen、VMware 平台的 VPS 则几乎完全不受其它 VPS 账户的影响。
从以上分析可以看出,在不超售的情况 OpenVZ 的性价比最高:价格低、效率高。但容易受其它同一母机的 VPS 影响。当然如果可以接受虚拟主机的话用 OpenVZ VPS 也就可以接受,因为虚拟主机之间的影响那才叫大。而像 KVM、Xen、VMware 这样的平台是今后 VPS 的发展方向,因其各个 VPS 之间独立性好过 OpenVZ,所以有很多主机商不再提供 OpenVZ VPS。但是因为 OpenVZ 价格低廉效率好速度快,OpenVZ 仍是最受欢迎的低价 VPS 首选。