Xen,VMware ESXi,Hyper-V和KVM等虚拟化技术的原理解析

Xen,VMware ESXi,Hyper-V和KVM等虚拟化技术的原理解析

2018年04月03日 13:51:55 阅读数:936

XEN 与 VMware ESXi,Hyper-V 以及 KVM 特点比较:

XEN 有简化虚拟模式,不需要设备驱动,能够保证每个虚拟用户系统相互独立,依赖于 service domains 来完成一些功能;

Vmware ESXI 与 XEN 比较类似,包含设备驱动以及管理栈等基本要素,硬件支持依赖于 VMware 创建的驱动;

Hyper-V 是基于 XEN 管理栈的修改;

KVM 与 XEN 方式不同,KVM 是以 Linux 内核作为管理工具得。

虚拟机的体系结构

XEN 体系结构

图 3. XEN 体系结构图

一个 XEN 虚拟机环境主要由以下几部分组成:

XEN Hypervisor;

Domain 0 —— Domain Management and Control(XEN DM&C);

Domain U Guest(Dom U)

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

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

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 体系结构图

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
的架构很相似。

图 6. Vmware ESXI 体系结构图

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

图 7. KVM 体系结构图

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 通信示意图

上面我们已经分析了 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 目前的发展及现状,另外我们详细的说明了如何在 Fedora13 下安装 Xen,以及 Xen 下一些基本操作,再这之后我们又讨论了一下
Xen 与 VMware ESXi,Hyper-V 以及 KVM 异同点,最后我们通过示例来讲解了一下 Xen
的工作原理。本系列的第二部分我们将阐述如何搭建 Xen 的开发环境、Xen 下开发需要具备的相关技术以及 Xen 下的如何利用 XenAPI
做开发,最后通过一个例子来演示。

出处:https://www.server110.com/xen/201404/10378.html

https://wenku.baidu.com/view/548ccc46bb1aa8114431b90d6c85ec3a87c28bf5.html

原文地址:https://www.cnblogs.com/libertylife/p/9626813.html

时间: 2024-12-15 06:56:35

Xen,VMware ESXi,Hyper-V和KVM等虚拟化技术的原理解析的相关文章

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

XEN与VMware ESXi.Hyper-V 以及 KVM 架构与特点比较 2018年06月03日 12:47:15 Kim_Weir 阅读数 9402收起 分类专栏: 云计算 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/Kim_Weir/article/details/80555766 XEN 与 VMware ESXi,Hyper-V 以及 KVM 特点比较: a.XEN 有简化

How To Install Proxmox Nested on VMware ESXi (Full Support OpenVZ & KVM)

https://imanudin.net/2015/03/04/how-to-install-proxmox-nested-on-vmware-esxi-full-support-openvz-kvm/ 安装完后出现错误    TASK ERROR: No accelerator found! Open extension VMX file using Wordpad application (do not use Notepad)– Add the following line at the

虚拟化技术之虚拟化技术介绍及Xen的应用实现

虚拟化技术是什么: 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器.网络.内存及存储等,予以抽象.转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源.这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制.一般所指的虚拟化资源包括计算能力和资料存储.--转自百度百科 为什么需要虚拟化:  虚拟化技术在近几年来非常的火热, 实际上在上个世纪60年代, 就已经有了虚拟化的实现.由于

虚拟化二、Xen虚拟化技术

一.Xen简介 1.Xen简介 Xen 英国剑桥大学研发,开源的VMM,是一种类型 1 虚拟机管理程序,它创建系统资源的逻辑池,使许多虚拟机可共享相同的物理资源. Xen 是一个直接在系统硬件上运行的虚拟机管理程序.Xen 在系统硬件与虚拟机之间插入一个虚拟化层,将系统硬件转换为一个逻辑计算资源池,Xen 可将其中的资源动态地分配给任何操作系统或应用程序.在虚拟机中运行的操作系统能够与虚拟资源交互,就好象它们是物理资源一样. Xen 架构 Xen 运行 3 个虚拟机.每个虚拟机与其他虚拟机都独自

虚拟化技术介绍、Xen的简单实现

虚拟化是什么? 虚拟化是一种资源管理技术, 是将计算机的各实体资源, 如服务.网络.内存及存储等, 予以抽象.转换后呈现出来, 打破实体之间的不可切割的障碍, 使用户可以比原本的配置更好的方式来应用这些资源.这些资源的新虚拟部分是不受现有资源的架设方式, 地域或物理配置所限制.一般情况下, 虚拟化资源包括计算能力和数据存储 -<转自维基百科> 为什么需要虚拟化? 虚拟化技术在近几年来非常的火热, 实际上在上个世纪60年代, 就已经有了虚拟化的实现.由于计算机的发展遵循了摩尔定律数十年之久. 在

VMware 虚拟化技术 创建虚拟机

原文地址:https://www.linuxidc.com/Linux/2017-03/141972.htm 云最成熟的架构是IaaS(Infrastructure as a Service),其中用到的技术有xen,kvm,lxd等,VMware虚拟化技术也是其中的一种. 为什么要虚拟化技术呢?目前在众多大规模互联网公司和游戏公司大都采用xen,kvm等虚拟化技术,使用这些虚拟化技术的好处是当服务器宕机时,运维人员在做维护时只需要将在虚拟机上运行的服务切换到另一台物理机上.而如果不使用虚拟化技

Xen虚拟化技术中PV和HVM的区别

转自 这里 Xen是一个开源的type-1或者裸机管理程序,它使得一个物理主机能够同时并行运行多个相同的或者不同的操作系统实例.Xen是目前唯一的开源可得的type-1管理程序.Xen被应用于许多商业和开源的应用程序中,比如:服务器虚拟化(server virtualization).基础设施即服务(Infrastructure as a Service).桌面虚拟化(desktop virtualization).安全应用程序(security applications).嵌入式和硬件设备(e

初试集群虚拟化搭建(二)—— Xen, kvm, OpenStack, VMware ESXi, Citrix XenServer等种种选择

小伙伴们找到了一些主流方案的资料,最终选择了XenServer6.5作为平台搭建. Xen 特点: 功能强大,支持Linux的各种发行版本 通常是在现有Linux操作系统上安装,是一种半虚拟化的安装方式 架构: 资料: 1)在 CentOS 6.5 上安装和配置 Xen 2)Xen Made Easy 上个资料里提到的为了减少源码编译难度,有大牛直接编写的建议安装版本 使用感受: 1)没有使用Xen Made Easy,而是使用源码编译安装Xen,经过了将Linux内核从2.6升级到3.2的步骤

Xen、OpenVZ、KVM、Hyper-V、VMWare虚拟化技术介绍

国内外vps主机提供商所提供的主机大多是基于Xen.OpenVZ.KVM.Hyper-V.VMWare五种虚拟化技术. 一.Xen 官网:http://xen.org/ Xen 由剑桥大学开发,它是基于硬件的完全分割,物理上有多少的资源就只能分配多少资源,因此很难超售.可分为Xen-PV(半虚拟化),和Xen-HVM(全虚拟化). Xen是不能超售内存和硬盘的,当母服务器只有16G内存以及100G硬盘时,当开Xen架构(任意一个虚拟化)的1G内存.25G硬盘的子机时,会直接占用服务器1G内存,以