【转】XEN与VMware ESXi、Hyper-V 以及 KVM 架构与特点比较

[复制链接]
发表于 : 2015-7-9 11:17:46 最新回复:2018-04-22 16:47:09
18581 10
木头人z
木头人z  精英

XEN 与其他虚拟化工具的比较

XEN 与 VMware ESXi,Hyper-V 以及 KVM 特点比较:
a.XEN 有简化虚拟模式,不需要设备驱动,能够保证每个虚拟用户系统相互独立,依赖于 service domains 来完成一些功能;
b.Vmware ESXI 与 XEN 比较类似,包含设备驱动以及管理栈等基本要素,硬件支持依赖于 VMware 创建的驱动;
c.Hyper-V 是基于 XEN 管理栈的修改;
d.KVM 与 XEN 方式不同,KVM 是以 Linux 内核作为管理工具得。

虚拟机的体系结构
1.XEN 体系结构

图 3. XEN 体系结构图

【转】XEN与VMware ESXi、Hyper-V 以及 KVM 架构与特点比较-1225763-1 

一个 XEN 虚拟机环境主要由以下几部分组成:
XEN Hypervisor;
Domain 0 —— Domain Management and Control(XEN DM&C);
Domain U Guest(Dom U)
a. PV Guest
b. HVM Guest

下图 4 显示除了各部分之间的关系:

图 4. Xen 三部分组成之间关系图

【转】XEN与VMware ESXi、Hyper-V 以及 KVM 架构与特点比较-1225763-2

XEN Hypervisor :

XEN Hypervisor 是介于操作系统和硬件之间的一个软件描述层。它负责在各个虚拟机之间进行 CPU 调度和内存分配。XEN Hypervisor 不仅抽象出虚拟机的硬件,同时还控制着各个虚拟机的执行。XEN Hypervisor 不会处理网络、存储设备、视频以及其他 I/O.

Domain 0:

Domain 0 是一个修改过的 Linux kernel,是唯一运行在 Xen Hypervisor 之上的虚拟机,它拥有访问物理 I/O 资源的权限,同时和系统上运行的其他虚拟机进行交互。Domain 0 需要在其它 Domain 启动之前启动。

Domain U:

运行在 Xen Hypervisor 上的所有半虚拟化(paravirtualized)虚拟机被称为“Domain U PV Guests”,其上运行着被修改过内核的操作系统,如 Linux、Solaris、FreeBSD 等其它 UNIX 操作系统。所有的全虚拟化虚拟机被称为“Domain U HVM Guests”,其上运行着不用修改内核的操作系统,如 Windows 等。

2.Hyper-V 体系结构

图 5. Hyper-V 体系结构图

【转】XEN与VMware ESXi、Hyper-V 以及 KVM 架构与特点比较-1225763-3

Hyper-V 是微软提出的一种系统管理程序虚拟化技术,采用微内核的架构,兼顾了安全性和性能的要求。Hyper-V 底层的 Hypervisor 运行在最高的特权级别下,微软将其称为 ring -1(而 Intel 则将其称为 root mode),而虚机的 OS 内核和驱动运行在 ring 0,应用程序运行在 ring 3 下,这种架构就不需要采用复杂的 BT(二进制特权指令翻译)技术,可以进一步提高安全性。从架构上讲 Hyper-V 只有“硬件-Hyper-V-虚拟机”三层,本身非常小巧,代码简单,且不包含任何第三方驱动,所以安全可靠、执行效率高,能充分利用硬件资源,使虚拟机系统性能更接近真实系统性能。

Hyper-V 支持分区层面的隔离。分区是逻辑隔离单位,受虚拟机监控程序支持,并且操作系统在其中执行。Microsoft 虚拟机监控程序必须至少有一个父 / 根分区,用于运行 64 位版本的 Windows Server 2008 操作系统。虚拟化堆栈在父分区中运行,并且可以直接访问硬件设备。随后,根分区会创建子分区用于承载来宾操作系统。根分区使用虚拟化调用应用程序编程接口 (API) 来创建子分区。

分区对物理处理器没有访问权限,也不能处理处理器中断。相反,它们具有处理器的虚拟视图,并运行于每个来宾分区专用的虚拟内存地址区域。虚拟机监控程序负责处理处理器中断,并将其重定向到相应的分区。Hyper-V 还可以通过输入输出内存管理单元 (IOMMU) 利用硬件加速来加快各个来宾虚拟地址空间相互之间的地址转换。IOMMU 独立于 CPU 使用的内存管理硬件运行,并用于将物理内存地址重新映射到子分区使用的地址。从系统的结构图,我们可以看出来 Hyper-V 与 Xen 的架构很相似。
a.Vmware ESXI 体系结构

图 6. Vmware ESXI 体系结构图

【转】XEN与VMware ESXi、Hyper-V 以及 KVM 架构与特点比较-1225763-4

由上图我们可以看出来管理工具也是直接嵌入到了 ESXi vmKernel 中,没有再分化出单独的管理工具,这一点与 Xen 是相区别的。
a.KVM 体系结构

图 7. KVM 体系结构图

【转】XEN与VMware ESXi、Hyper-V 以及 KVM 架构与特点比较-1225763-5

KVM 是一个独特的管理程序,通过将 KVM 作为一个内核模块实现,在虚拟环境下 Linux 内核集成管理程序将其作为一个可加载的模块可以简化管理和提升性能。在这种模式下,每个虚拟机都是一个常规的 Linux 进程,通过 Linux 调度程序进行调度。

通过以上四种虚拟机的体系结构图,我们可以看出他们在整个系统中的位置,以及相互之间的区别。


--------------------------------------------------------------------------------


回页首

XEN 工作原理

上面我们针对 Xen 的体系结构进行了简单的描述,我们知道 Xen 主要由 Xen Hypervisor,Domain0,DomainU 三部分组成。下面通过 Domain 0 与 Domain U 的通信以及这三部分的交互来探讨一下 Xen 的工作原理。
之前我们已经提到过 Domain U 分为 PV 客户系统和 HVM 客户系统两种,我们首先讨论一下 PV 客户系统,也就是半虚拟化操作系统工作原理。

首先我们需要知道在 Domain 0 中有两个驱动 Network Backend Driver 和 Block Backend Driver,它们分别用来处理来自 Domain U 的网络和本地磁盘请求。由于 Xen Hypervisor 不会支持网络和磁盘请求的,因此一个 PV(半虚拟化)客户系统必须通过和 Xen Hypervisor、Domain 0 通信,从而来实现网络和磁盘请求。由于 Xen 文档中已经探讨过 PV 客户系统如何将一个数据写到本地硬盘,下面我们就来讨论一下 PV 客户系统如何将一个数据发送到网络中去。在这之前我们首先要了解到一点,那就是 Domain U PV Guest 中也包括两个驱动“PV Network Driver”和“PV Block Driver”,它们分别也是用来处理发送网络和本地磁盘请求用的,这与 Domain 0 中的两个驱动是相对应的。

当一个 PV 客户系统的网络设备驱动程序接收到一个发送数据请求的时候,并且通过 Xen Hypervisor 发送数据到本地网络设备(网卡之类的设备)中,这个网络设备是和 Domain 0 共享的。在 Domain 0 和 Domain U 之间存在一个事件通道(event channel),通过该通道二者进行异步的域间中断通信。Domain 0 会接收到一个来自 Xen Hypervisor 的中断,触发 PV Network Backend Driver 访问上述网络设备,读取来自 PV 客户系统的数据,然后将这些数据发送出去。

下图中事件通道表示为连接 Domain 0 与 Domain U 的一个区域,这是系统工作流的一个简化。事实上事件通道运行在 Xen Hypervisor 中,通过 Xenstored(Xenstored 维护一个信息档案,包括内存和建立在 Domain 0 与 Domain U 之间的事件通道。Domain 0 通过改变这个档案来设置和其他虚拟机的设备通道)中的特定中断实现,提供 Domain 0 与 Domain U 之间的快速共享网络设备,见图 8。

图 8. Domain 0 与 Domain U PV Guest 通信示意图

【转】XEN与VMware ESXi、Hyper-V 以及 KVM 架构与特点比较-1225763-6
上面我们已经分析了 PV 客户系统的工作原理,下面我们再简要的介绍一下 HVM 客户系统的工作原理。

由于一个 HVM Guests 虚拟机中没有上面提到得 PV driver,所以 Xen 在 Domain 0 中为每一个 HVM Guest 都启动一个守护进程 Qemu-dm 处理来自客户系统的网络和磁盘请求,所以当一个 HVM Guest 有相应的网络和 I/O 请求的时候,它就会直接与 Domain0 中和它相对应的 Qemu-dm 来进行交互,通过 Domain 0 最终达到访问网络设备或者磁盘的目的。见下图 9:

图 9. Domain 0 与 Domain U HVM Guest 通信示意图
【转】XEN与VMware ESXi、Hyper-V 以及 KVM 架构与特点比较-1225763-7

--------------------------------------------------------------------------------



本帖被以下专题推荐:

  • x
  • 常规:

点评 回复

跳转到指定楼层
hiking
hiking  专家 发表于 2015-7-9 11:42:27 已赞(0) 赞(0)

这个资料好,多谢分享
  • x
  • 常规:

点评 回复

z00220542
z00220542   发表于 2016-9-30 14:25:07 已赞(0) 赞(0)

在华为的FusionSphere安装中,安装CNA也就是安装主机的操作系统。那登录CNA时是登录的Domai0还是XEN Hypervisor?
  • x
  • 常规:

点评 回复

Cappu
Cappu 发表于 2016-10-13 10:01
CNA只是作为一个虚拟化层,不知道你说的登录是不是指web Portal,如果是,那你登录的就是domain 0也就是VRM 
tjy
tjy  精英 发表于 2017-9-8 14:27:13 已赞(0) 赞(0)

大佬的终极奥义
  • x
  • 常规:

点评 回复

燕雀
燕雀   发表于 2017-9-28 12:00:26 已赞(0) 赞(0)

赞!!!!!!!!
  • x
  • 常规:

点评 回复

hengjie1688
hengjie1688   发表于 2017-12-20 09:38:39 已赞(0) 赞(0)

:):)
  • x
  • 常规:

点评 回复

HHJ
changyiming
changyiming   发表于 2018-1-2 09:36:14 已赞(0) 赞(0)

tjy 发表于 2017-09-08 14:27 大佬的终极奥义
老表
  • x
  • 常规:

点评 回复

zhu2018
zhu2018   发表于 2018-1-2 13:51:39 已赞(0) 赞(0)

z00220542 发表于 2016-09-30 14:25 在华为的FusionSphere安装中,安装CNA也就是安装主机的操作系统。那登录CNA时是登录的Domai0还是XEN H ...
dom0 is CNA
  • x
  • 常规:

点评 回复

zhenghaibin840865302
zhenghaibin840865302   发表于 2018-1-4 09:45:26 已赞(0) 赞(0)

z00220542 发表于 2016-09-30 14:25 在华为的FusionSphere安装中,安装CNA也就是安装主机的操作系统。那登录CNA时是登录的Domai0还是XEN H ...
domain0不是VRM
  • x
  • 常规:

点评 回复

救命恩人不救人
救命恩人不救人   发表于 2018-2-3 23:17:28 已赞(0) 赞(0)

domain0 怎么会是CNA?
  • x
  • 常规:

点评 回复

12
返回列表
发表回复
您需要登录后才可以回帖 登录 | 注册

警告 内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“隐私声明
如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
登录参与交流分享

登录参与交流分享

登录