虚拟化 - KVM 和 Xen 比较

Linux虚拟化技术的用户目前有两种免费的开源管理程序可以选择:Xen和KVM。

作为较早出现的虚拟化技术,Xen是“第一类”运行在裸机上的虚拟化管理程序(Hypervisor),也是当前相当一部分商业化运作公司的基础技术,其中包括Citrix系统公司的XenServerOracle的虚拟机。Xen技术的倡导者们声称Xen的性能强劲,并且拥有一个广泛的管理工具和能够交付卓越性能,以及其它诸多优点。

但是最近有一些Linux厂商——包括Red Hat和Canonical把基于内核的虚拟机(KVM:Kernel-based Virtual Machine)技术内置在RHEL和Ubuntu中。KVM是一个轻量级的虚拟化管理程序模块,该模块主要来自于Linux内核。虽然只是后来者,但是由于其性能和实施的简易性,以及对Linux重量级的持续支持,所以还是有必要认真对待KVM技术的。

1. 关于XEN和KVM

KVM是一个全虚拟化的解决方案。可以在x86架构的计算机上实现虚拟化功能。但KVM需要CPU中虚拟化功能的支持,只可在具有虚拟化支持的CPU上运行,即具有VT功能的Intel CPU和具有AMD-V功能的AMD CPU。

Xen 也是Linux下的一个虚拟化解决方案,也将很快被编入内核中。Xen的实现方法是运行支持Xen功能的kernel,这个kernel是工作在 Xen的控制之下,叫做Domain0,使用这个kernel启动机器后,你可以在这个机器上使用qemu软件,虚拟出多个系统。

2. Xen和KVM对比

KVM由以色列公司Qumranet开发,已经被Linux核心组织放入Linux的内核里面,其使用的x86处理器至少需要包含其中一项硬件辅助虚拟化技术(Intel-VT或AMD-V)。

而 Xen是一个外部的Hypervisor程序(虚拟机管理程序);它能够控制虚拟机和给多个客户机分配资源,在KVM被写入Linux内核后,估计Xen 很难再被写入内核;另一方面,KVM是Linux的一部分, 可使用通常的Linux调度器和内存管理. 这意味着KVM更小更易使用。

此外,Xen同时支持全虚拟化和准虚拟化(需要修改客户机操作系统,而修改过的客户机操作系统能有更好的性能),KVM当前不支持准虚拟化。

Xen的缺点是如果你需要更新Xen的版本,你需要重新编译整个内核,而且,稍有设置不慎,系统就无法启动。 相比较,KVM就简化的多了。它不需要重新编译内核,也不需要对当前kernel做任何修改,它只是几个可以动态加载的.ko模块。它结构更加精简、代码量更小。所以,出错的可能性更小。并且在某些方面,性能比Xen更胜一筹。 

Xen

KVM

问世时间

2003年

2007年

支持企业

Citrix、Novell、Oracle、Sun、Ret Hat(RHEL5)和Virtual Iron

Redhat、Ubuntu等

支持的虚拟化技术

全虚拟化、半虚拟化

全虚拟化

支持架构

x86、IA64和AMD、Fujitsu、IBM、Sun等公司的ARM,以及x86/64 CPU商家和Intel嵌入式的支持

支持虚拟化的CPU

支持操作系统

UNIX、Linux和Microsoft  Windows

UNIX、Linux和Microsoft  Windows

动态迁移

支持

支持(以前不支持)

内核支持

需要对内核打补丁

内置在内核中

性能:大多数Xen和KVM性能基准的对比都表明Xen具有更好的处理性能(接近于本地处理),只有在磁盘 I/O方面略逊于KVM。进一步来讲,独立测试表明随着工作负载的增加KVM的性能逐渐下降。通常情况下,在试图支持四个以上的客体虚拟机时就会崩溃。 Xen支持一个客体虚拟机的数量呈线性增长,可以支持30个以上工作负载同时运行。 

3. VPS 选择

找到VPS OPENVZ平台和KVM、Xen、VMware平台区别,就知道如何选择VPS了。

购 买VPS时经常看到有很多不同的平台,像OPENVZ、KVM、Xen、VMware,近年来又有了云主机云VPS。对于初次接触VPS的人来说,如何 挑选VPS平台成了一件令人头疼的事。正因为有这样的困惑,很多VPS商干脆不再提及VPS究竟使用了什么平台。但是仍然有很多的VPS商提供了多种不同 的VPS平台供用户选择,价格不一配置不一。那么这些不同的VPS平台区别和共同点是什么呢?

今天看到一篇英文文章,简要的描述了这些平台的区别,这里拿过来作为VPS平台学习笔记和常识来给自己扫下盲,也给被这些平台搞的手足无措的朋友参个考。

OPENVZ: 这个平台是最便宜的VPS平台,在各个vps商哪里都是价格最低的。OPENVZ本身运行在linux之上,它通过自己的虚拟化技术把一个 服务器虚拟化成多个可以分别安装操作系统的实例,这样的每一个实体就是一个VPS,从客户的角度来看这就是一个虚拟的服务器,可以等同看做一台独立的服务 器。OPENVZ虚拟化出来的VPS只能安装linux操作系统,不能安装windows系统,比如Centos、Fedora、 Gentoo、Debian等。不能安装windows操作系统是openvz的第一个缺点,需要使用windows平台的用户不能使用OPENVZ VPS。OPENVZ的第二个缺点是OPENVZ不是完全的虚拟化,每个VPS账户共用母机内核,不能单独修改内核。好在绝大多少用户根本不需要修改内 核,所以这个缺点对多数人可以忽略不计。而这一点也正是openvz的优点,这一共用内核特性使得openvz的效率最高,超过KVM、Xen、 VMware等平台。在不超售的情况下,openvz是最快速效率最高的VPS平台。

KVM、Xen、VMware:这几个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首选。

4、KVM or XEN?

下面这些观点来自于KVM or XEN ? 哪个更好?

  • Xen 现阶段在稳定和功能上略胜一筹。KVM获得的社区支持更多。
  • 昨天在Ubuntu上想安装Xen,发现原来的那些链接和很多安装方法改变了,看来被商业公司收购之后,Xen会在各方面有所改变。虽然KVM现在还无法和Xen相比,但是其植入Linux内核,以及被社区支持,让我更看好它的未来。
  • 开源社区抛弃xen,就像抛弃openoffice一样。Xen如果要发展可能来自citrix oracle的支持。在开源社区xen的式微是不可避免。redhat,suse,ubuntu已经处于转换中。。。
  • 我看到的方向也是 KVM。
  • IBM丢弃Xen用KVM,Ubuntu丢弃Xen用KVM。Redhat就更不用说了,当然支持自家的KVM。 KVM完全开源,而Xen只有核才开源。Citrix 指望Xen及外围工具挣钱呢。
  • KVM 最大的优势是:随着kernel的更新 Xen:最大的弊端是恰好是Dom0 不能用最新的kernel,kernel 3.0之后估计会好很多
  • 还是要多看看应用场景,IO问题是不是关键,XEN和KVM的混合设计可根据业务场景的技术层面关注点来设计,简单来看还是KVM更好,但毕竟市场份额现有的还是XEN的高,有点类似于.NET刚出来时vs JavaEE的感觉,还是需要一定的应用历程才能发展起来的
  • 未来趋势,应该是KVM,但是现在最成熟,还是Xen。

原文链接:http://www.cnblogs.com/sammyliu/articles/4389981.html

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

Docker平台和Moby项目添加Kubernetes

Docker平台正在集成对Kubernetes的支持,以便Docker客户和开发人员可以选择使用Kubernetes和Swarm来编排容器工作负载。点击注册测试...

20180
来自专栏云计算

在Docker平台和Moby项目中加入对Kubernetes的支持

Docker 平台正在集成对 Kubernetes 的支持,以便 Docker 的客户和开发人员可以选择使用 Kubernetes 和 Swarm 来编排容器的...

23090
来自专栏

Docker平台和Moby项目添加Kubernetes

Docker平台正在集成对Kubernetes的支持,以便Docker客户和开发人员可以选择使用Kubernetes和Swarm来编排容器工作负载。

26750
来自专栏云计算D1net

容器技术适合你的企业吗?

容器技术,比如Docker,正在云供应商和企业间越来越流行。但是对于企业而言,容器技术是不是正确的选择呢? 容器技术正在强有力地占领云市场,随着供应商继续深入拥...

35460
来自专栏云计算D1net

Rocket 希望以硬件隔离引领容器市场,Docker说“NO!”

下一代CoreOS的容器使用基于Intel的硬件隔离来增加安全性。其他容器系统也会如法炮制吗? 编者注:CoreOS是一个基于Linux 内核的轻量级操作系统,...

32650
来自专栏aCloudDeveloper

容器生态系统

说起生态,不禁让人想起贾跃亭的乐视,想当初我多次被它的生态布局给震撼到,一度相信它将要超越百度,坐拥互联网三大江山的宝座,但没过时日,各种劲爆的新闻就把它推到了...

17400
来自专栏云计算D1net

Docker将在存储上崭露头角?

Docker与存储纪实 在容器中运行应用的想法——也作为OS级虚拟化著称——目前来看是一种潮流技术。这种技术的真身可以追溯到大型机时代。 但是在过去的12个月...

321120
来自专栏Golang语言社区

Docker究竟是什么,为什么这么流行,它的优点和缺陷有哪些?

Docker是什么? 简单得来说,Docker是一个由GO语言写的程序运行的“容器”(Linux containers, LXCs); 目前云服务的基石是操作...

90580
来自专栏SDNLAB

Big Switch的SDN架构新增对超融合和容器的支持

Big Switch Networks本月初宣布,其基于软件定义网络(SDN)的架构目前已经可以支持VMware的超融合解决方案以及多容器环境。 ? 超融合基础...

30760
来自专栏程序人生 阅读快乐

Docker全攻略

Docker 是一个充满挑战性和趣味性的开源项目,它彻底释放了Linux 虚拟化的威力,极大地缓解了云计算资源供应紧张的局面。与此同时,Docker 也成倍地降...

11210

扫码关注云+社区

领取腾讯云代金券