设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 1302|回复: 1
收起左侧

云计算-虚拟化技术

[复制链接]
发表于 2017-4-24 17:55:44 | 显示全部楼层 |阅读模式
云计算-虚拟化技术

浏览:117次  时间:2017-03-16 11:50:49  作者:

   本文将为大家介绍云计算中的虚拟化技术,及KVM、Xen、Hyper-V、VMWARE EXSI的原理和架构,接着重点对KVM和Xen做了比较,并对两者的未来发展提供了一些业界人士的观点,最后对Google、Amazon、IBM、Microsoft的云计算产品进行了介绍。



一、虚拟化技术:全虚拟化、半虚拟化     1. 全虚拟化(Full Virtualization)

     全虚拟化也成为原始虚拟化技术,该模型使用虚拟机协调guest操作系统和原始硬件,VMM在guest操作系统和裸硬件之间用于工作协调,一些受保护指令必须由Hypervisor(虚拟机管理程序)来捕获处理。


                               
登录/注册后可看大图

全虚拟化模型

      全虚拟化的运行速度要快于硬件模拟,但是性能方面不如裸机,因为Hypervisor需要占用一些资源。

           2. 半虚拟化(Para Virtualization)

      半虚拟化是另一种类似于全虚拟化的技术,它使用Hypervisor分享存取底层的硬件,但是它的guest操作系统集成了虚拟化方面的代码。该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作。


                               
登录/注册后可看大图

半虚拟化模型

       半虚拟化需要guest操作系统做一些修改,使guest操作系统意识到自己是处于虚拟化环境的,但是半虚拟化提供了与原操作系统相近的性能。



二、KVM、Xen、Hyper-V、VMware EXSI原理和架构     1. KVM

      KVM全称是Kernel-based Virtual Machine,即基于内核的虚拟机。

KVM是集成到Linux内核的Hypervisor,是X86架构且硬件支持虚拟化技术(Intel VT或AMD-V)的Linux的全虚拟化解决方案。它是Linux的一个很小的模块,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。


                               
登录/注册后可看大图

KVM虚拟化平台架构

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


      2. Xen

      Xen 是第一类运行在裸机上的虚拟化管理程序(Hypervisor)。它支持全虚拟化和半虚拟化,Xen支持hypervisor和虚拟机互相通 讯,而且提供在所有Linux版本上的免费产品,包括Red Hat Enterprise Linux和SUSE LinuxEnterprise Server。Xen最重要的优势在于半虚拟化,此外未经修改的操作系统也可以直接在xen上运行(如Windows),能让虚拟机有效运行而不需要仿真,因此虚拟机能感知到hypervisor,而不需要模拟虚拟硬件,从而能实现高性能。

      1)XEN 的发展与现状

      XEN 最初是作为剑桥大学的一个项目,目前 XEN.ORG 社区在负责它的开发及维护,它已经在开源社区中得到了极大的发展。XEN 是一种直接运行在硬件上一层软件,它可以让电脑硬件上同时跑多个用户的操作系统。由于对 x86, x86-64, Itanium, Power PC, 和 ARM 这些处理器的支持,所以 XEN 管理工具可以支持的操作系统有 Linux, NetBSD,FreeBSD,Solaris, Windows 和其他一些运行在 XEN 上的正常的操作系统。如下图所示 XEN 在系统中的位置:


                               
登录/注册后可看大图

XEN 在系统的位置

Xen 目前具有以下几种产品:

        · Xen Hypervisor —— 后面会详细讲解,在此不作赘述。会导致转换有问题;

        · XCI —— 种嵌入式管理工具,基于 Xen Hypervisor 的基础之上修改而来,相对于标准的 Xen Hypervisor,它使用的库更小,目前主要用在笔记本以及一些移动设备上,可以使用 Intel 或者 AMD 的架构;

         · Xen Cloud Platform —— 目前它为 ISVs 和服务提供商提供了一套基于强大的管理栈的云架构平台,这个栈是基于开放的标准 API;

        · 还有一些 Xen.org 上的项目,再此就不一一列举了。


      2)XEN 体系结构


                               
登录/注册后可看大图

XEN 体系结构图

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

        · XEN Hypervisor;

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

        · Domain U Guest(Dom U)

           A. PV Guest

           B. HVM Guest


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


                               
登录/注册后可看大图

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 操作系统。所有的全虚拟化虚拟机被称为“DomainU HVM Guests”,其上运行着不用修改内核的操作系统,如 Windows 等。


    3)XEN 工作原理

      上面我们针对 Xen 的体系结构进行了简单的描述,我们知道 Xen 主要由 Xen Hypervisor,Domain0,DomainU 三部分组成。下面通过 Domain 0 与 Domain U 的通信以及这三部分的交互来探讨一下 Xen 的工作原理。

         · 之前我们已经提到过 Domain U 分为PV 客户系统和 HVM 客户系统两种,我们首先讨论一下 PV客户系统,也就是半虚拟化操作系统工作原理。

       首先我们需要知道在 Domain 0 中有两个驱动 Network Backend Driver 和 Block BackendDriver,它们分别用来处理来自 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 与 DomainU 的一个区域,这是系统工作流的一个简化。事实上事件通道运行在 Xen Hypervisor 中,通过 Xenstored(Xenstored 维护一个信息档案,包括内存和建立在 Domain 0 与 Domain U 之间的事件通道。Domain 0 通过改变这个档案来设置和其他虚拟机的设备通道)中的特定中断实现,提供Domain 0 与 Domain U 之间的快速共享网络设备,见下图。


                               
登录/注册后可看大图

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 最终达到访问网络设备或者磁盘的目的。见下图:


                               
登录/注册后可看大图

Domain 0 与 Domain U HVM Guest 通信示意图

Xen 虚拟机安装后在查看虚拟机时会发现有一个Domain-0


原文摘自网络



如需了解华为更多课程,可以联系深圳泰克谢老师QQ:2063315641、TEL:18820462002



 楼主| 发表于 2017-6-9 17:56:26 | 显示全部楼层
大家好,这个手机号码已经没有人使用,可以直接联系泰克 QQ 2063315641
沙发 2017-6-9 17:56:26 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-4-20 00:07 , Processed in 0.055054 second(s), 7 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表