精华内容
下载资源
问答
  • 虚拟技术
    万次阅读
    2019-07-16 15:01:35

    转载:https://www.jianshu.com/p/312056e70387?from=timeline

    96 云叔和云计算 关注

     0.1 2017.12.10 13:32* 字数 3194 阅读 7608评论 0喜欢 5

    通过前几篇文章的阅读,相信大家对云计算概念、架构和技术有了一定的认识。那么,我们这里来谈谈云计算的核心技术之一:虚拟化。

    在讲虚拟化技术前,我们先来学习几个概念:

    (1)物理平台----实现虚拟技术的真实物理硬件和操作系统平台。

    (2)虚拟平台----在物理平台上,虚拟出来的运行不同操作系统的各种虚拟机。

    (3)VMM----虚拟机监视器,一种监控和管理虚拟机运行的核心软件层,也叫Hypervisor。

    (4)宿主机----真实的物理服务器,上面可以运行虚拟出来的虚拟机。

    (5)客户机----就是指从宿主机上虚拟出来的虚拟机。

     

    1 什么是虚拟化?

    云计算的核心技术之一就是虚拟化技术。所谓虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

    虚拟化的核心软件VMM,是一种运行在物理服务器和操作系统之间的中间层软件。VMM是一种在虚拟环境中的“元”操作系统。他们可以访问服务器上包括CPU、内存、磁盘、网卡在内的所有物理设备。VMM不但协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护。当服务器启动并执行VMM时,它会加载所有虚拟机客户端的操作系统同时会分配给每一台虚拟机适量的内存,CPU,网络和磁盘。

    2 虚拟化方式

    虚拟化技术有很多实现方式,比如根据虚拟化的程度和级别,有软件虚拟化和硬件虚拟化,全虚拟化和半虚拟化。

    2.1软件虚拟化

    软件虚拟化,顾名思义,就是采用纯软件的方法在在现有的物理平台上实现物理平台访问的截获和模拟,该物理平台往往不支持硬件虚拟化。

    常见的软件虚拟化技术QEMU,是通过纯软件来仿真X86平台处理器的指令,然后解码和执行,该过程并不在物理平台上直接执行,而是通过软件模拟实现,因此往往性能比较差,但是可以在同一平台上模拟出不同架构平台的虚拟机。

    VMware则采用了动态二进制翻译技术。VMM在可控的范围内,允许客户机的指令在可控的范围内直接运行。客户机指令在运行前会被VMM扫描,其中突破VMM限制的指令被动态替换为可以在物理平台上直接运行的安全指令,或者替换为对VMM的软件调用。因此其性能上比QEMU有大幅提升,但是其失去了跨平台虚拟化的能力。

    2.2硬件虚拟化

    硬件虚拟化,简单来说,就是物理平台本身提供了对特殊指令的截获和重定向的硬件支持,新的硬件会提供额外的资源来帮助软件实现对关键硬件资源的虚拟化,从而提升性能。

    比如X86平台,CPU带有特别优化过的指令集来控制虚拟过程,通过这些指令集,VMM会将客户机置于一种受限模式下运行,一旦客户机试图访问硬件资源,硬件会暂停客户机的运行,将控制权交回给VMM处理。同时,VMM还可以利用硬件的虚拟化增强技术,将客户机对硬件资源的访问,完全由硬件重定向到VMM指定的虚拟资源。

    由于硬件虚拟化可提供全新的架构,支持操作系统直接在上面运行,无需进行二进制翻译转换,减少的性能开销,极大地简化了VMM的设计,从而使VMM可以按标准编写,通用性更好,性能更强。

    需要说明的是,硬件虚拟化技术是一套解决方案,完整的情况需要CPU、主板芯片组、BIOS和软件的支持。Intel在其处理器产品线中实现了Intel VT虚拟化技术(包括Intel VT-x/d/c)。AMD也同样实现了其芯片级的虚拟化技术AMD-V。

    2.3全虚拟化

    完全虚拟化技术又叫硬件辅助虚拟化技术,最初所使用的虚拟化技术就是全虚拟化(Full Virtualization)技术,它在虚拟机(VM)和硬件之间加了一个软件层Hypervisor,或者叫做虚拟机管理程序或虚拟机监视器(VMM)。

    完全虚拟化技术几乎能让任何一款操作系统不用改动就能安装到虚拟服务器上,而它们不知道自己运行在虚拟化环境下。主要缺点是,性能方面不如裸机,因为VMM需要占用一些资源,给处理器带来开销。

    2.4半虚拟化

    半虚拟化技术是后来才出现的技术,也叫做准虚拟化技术,现在比较热门,它就是在全虚拟化的基础上,把客户操作系统进行了修改,增加了一个专门的API,这个API可以将客户操作系统发出的指令进行最优化,即不需要VMM耗费一定的资源进行翻译操作。因此VMM的工作负担变得非常的小,因此整体的性能也有很大的提高。不过缺点就是,要修改包含该API的操作系统,但是对于某些不含该API的操作系统(主要是Windows)来说,就不行能用这种方法。

    半虚拟化技术的优点是性能高。经过半虚拟化处理的服务器可与VMM协同工作,其响应能力几乎不亚于未经过虚拟化处理的服务器。它的客户操作系统(Guest OS)集成了虚拟化方面的代码。该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作。

    3 虚拟化实现

    虚拟化技术指的是软件层面的实现虚拟化的技术,整体上分为开源虚拟化和商业虚拟化两大阵营。典型的代表有:Xen,KVM,WMware,Hyper-V、Docker容器等。

    这里介绍一下开源的KVM和Xen以及微软的Hyper-V技术。

    3.1 KVM

     

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

    KVM本身不执行任何模拟,需要用户控件程序通过/dev/kvm接口设置一个客户机的虚拟虚拟地址空间,向它提供模拟的I/O,并将其视频显示映射回宿主机的显示屏。

    KVM继承了Linux系统管理内存的诸多特性,比如,分配给虚拟使用的内存可以被交换至交换空间、能够使用大内存页以实现更好的性能,以及对NUMA的支持能够让虚拟机高效访问更大的内存空间等。

    KVM基于Intel的EPT(ExtendedPage Table)或AMD的RVI(Rapid Virtualization Indexing)技术可以支持更新的内存虚拟功能,这可以降低CPU的占用率,并提供较好的吞吐量。此外,KVM还借助于KSM(Kernel Same-pageMerging)这个内核特性实现了内存页面共享。KSM通过扫描每个虚拟机的内存查找各虚拟机间相同的内存页,并将这些内存页合并为一个被各相关虚拟机共享的单独页面。在某虚拟机试图修改此页面中的数据时,KSM会重新为其提供一个新的页面副本。实践中,运行于同一台物理主机上的具有相同GuestOS的虚拟机之间出现相同内存页面的概率是很的,比如共享库、内核或其它内存对象等都有可能表现为相同的内存页,因此,KSM技术可以降低内存占用进而提高整体性能。

    3.2 Xen

     

    Xen是一个基于X86架构、发展最快、性能最稳定、占用资源最少的开源虚拟化技术。在Xen使用的方法中,没有指令翻译。这是通过两种方法之一实现的。第一,使用一个能理解和翻译虚拟操作系统发出的未修改指令的CPU(此方法称作完全虚拟化)。另一种,修改操作系统,从而使它发出的指令最优化,便于在虚拟化环境中执行(此方法称作准虚拟化)。

    在Xen环境中,主要有两个组成部分。一个是虚拟机监控器(VMM)。VMM层在硬件与虚拟机之间,是必须最先载入到硬件的第一层。Hypervisor载入后,就可以部署虚拟机了。在Xen中,虚拟机叫做“domain”。在这些虚拟机中,其中一个扮演着很重要的角色,就是domain0,具有很高的特权。通常,在任何虚拟机之前安装的操作系统才有这种特权。

    Domain0要负责一些专门的工作。由于hypervisor中不包含任何与硬件对话的驱动,也没有与管理员对话的接口,这些驱动就由domain0来提供了。通过domain0,管理员可以利用一些Xen工具来创建其它虚拟机(Xen术语叫domainU)。这些domainU也叫无特权domain。这是因为在基于i386的CPU架构中,它们绝不会享有最高优先级,只有domain0才可以。

    3.3 Hyper-V

    Hyper-V采用微内核的架构,兼顾了安全性和性能的要求。Hyper-V底层的VMM运行在最高的特权级别下,微软将其称为ring -1(而Intel则将其称为root mode),而虚拟机的OS内核和驱动运行在ring 0,应用程序运行在ring 3下,这种架构就不需要采用复杂的BT(二进制特权指令翻译)技术,可以进一步提高安全性。

    由于Hyper-V底层的VMM代码量很小,不包含任何第三方的驱动,非常精简,所以安全性更高。Hyper-V采用基于VMbus的高速内存总线架构,来自虚机的硬件请求(显卡、鼠标、磁盘、网络),可以直接经过VSC,通过VMbus总线发送到根分区的VSP,VSP调用对应的设备驱动,直接访问硬件,中间不需要Hypervisor的帮助。

    这种架构效率很高,不再像以前的Virtual Server,每个硬件请求,都需要经过用户模式、内核模式的多次切换转移。更何况Hyper-V现在可以支持Virtual SMP,Windows Server 2008虚机最多可以支持4个虚拟CPU;而Windows Server 2003最多可以支持2个虚拟CPU。每个虚机最多可以使用64GB内存,而且还可以支持X64操作系统。

    更多相关内容
  • docker和虚拟技术比较

    千次阅读 2020-04-25 10:00:30
    文章目录1,之前的虚拟技术2,docker容器化技术3,开发和运维的春天4,企业级应用 1,之前的虚拟技术 虚拟机(virtual machine)就是带环境安装的一种解决方案。 它可以在一种操作系统里面运行另一种操作系统,比如...

    1,之前的虚拟技术

    虚拟机(virtual machine)就是带环境安装的一种解决方案。

    它可以在一种操作系统里面运行另一种操作系统,比如在Windows 系统里面运行Linux 系统。应用程序对此毫无感知,因为虚拟机看上去跟真实系统一模一样,而对于底层系统来说,虚拟机就是一个普通文件,不需要了就删掉,对其他部分毫无影响。这类虚拟机完美的运行了另一套系统,能够使应用程序,操作系统和硬件三者之间的逻辑不变。

    在这里插入图片描述

    虚拟机的缺点:

    1. 资源占用多
    2. 冗余步骤多
    3. 启动慢

    2,docker容器化技术

    由于前面虚拟机存在这些缺点,Linux 发展出了另一种虚拟化技术:Linux 容器(Linux Containers,缩写为 LXC)。

    Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一地运行。
    在这里插入图片描述

    比较了 Docker 和传统虚拟化方式的不同之处:

    • 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;

    • 而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

    • 每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。


    3,开发和运维的春天

    容器技术特点:一次构建,到处运行

    1,更快的应用交付和部署。

    传统的应用开发完成后,需要提供一堆安装程序和配置说明文档,安装部署后需根据配置文档进行繁杂的配置才能正常运行。Docker化之后只需要交付少量容器镜像文件,在正式生产环境加载镜像并运行即可,应用安装配置在镜像里已经内置好,大大节省部署配置和测试验证时间。

    2,更快的和扩缩容。

    随着微服务架构和Docker的发展,大量的应用会通过微服务方式架构,应用的开发构建将变成搭乐高积木一样,每个Docker容器将变成一块“积木”,应用的升级将变得非常容易。当现有的容器不足以支撑业务处理时,可通过镜像运行新的容器进行快速扩容,使应用系统的扩容从原先的天级变成分钟级甚至秒级。

    3,更简单的系统运维。

    应用容器化运行后,生产环境运行的应用可与开发、测试环境的应用高度一致,容器会将应用程序相关的环境和状态完全封装起来,不会因为底层基础架构和操作系统的不一致性给应用带来影响,产生新的BUG。当出现程序异常时,也可以通过测试环境的相同容器进行快速定位和修复。

    4,更高效的计算资源利用。

    Docker是内核级虚拟化,其不像传统的虚拟化技术一样需要额外的Hypervisor支持,所以在一台物理机上可以运行很多个容器实例,可大大提升物理服务器的CPU和内存的利用率。


    4,企业级应用

    新浪
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    美团
    在这里插入图片描述

    等等………………

    展开全文
  • AR是增强现实(Augmented Reality)技术是一种将虚拟信息与真实世界巧妙融合的技术,广泛运用了多媒体、三维建模、实时跟踪及注册、智能交互、传感等多种技术手段,将计算机生成的文字、图像、三维模型、音乐、视频等...

    上一篇文章讲虚拟现实的文章在朋友圈反应平平,在今日头条确打破了最高推荐量和阅读量,今天再来讲讲XR如何改变世界。
    在这里插入图片描述
      先科普一下AR、VR、MR、XR

    AR是增强现实(Augmented Reality)技术是一种将虚拟信息与真实世界巧妙融合的技术,广泛运用了多媒体、三维建模、实时跟踪及注册、智能交互、传感等多种技术手段,将计算机生成的文字、图像、三维模型、音乐、视频等虚拟信息模拟仿真后,应用到真实世界中,两种信息互为补充,从而实现对真实世界的“增强”。

    虚拟现VR是实技术(英文名称:Virtual Reality,缩写为VR),又称灵境技术,是20世纪发展起来的一项全新的实用技术。虚拟现实技术囊括计算机、电子信息、仿真技术于一体,其基本实现方式是计算机模拟虚拟环境从而给人以环境沉浸感。随着社会生产力和科学技术的不断发展,各行各业对VR技术的需求日益旺盛。

    MR(混合现实),MR是Magic Leap最新的科技,它制造的虚拟景象可以进入现实的生活同时能够认识你,比如通过我们的设备,你在眼睛当中看到一个景象可以测量出现实生活中物体的尺度和方位,其最大的特点在于虚拟世界和现实世界可以互动。

    XR(扩展现实) Extended Reality. 扩展现实(XR)是一个术语,目前知道的人不多。扩展现实是指通过计算机技术和可穿戴设备产生的一个真实与虚拟组合的、可人机交互的环境。扩展现实包括增强现实(AR),虚拟现实(VR),混合现实(MR)等多种形式。换句话说,为了避免概念混淆,XR其实是一个总称,包括了AR,VR,MR。XR分为多个层次,从通过有限传感器输入的虚拟世界到完全沉浸式的虚拟世界。
    在这里插入图片描述
      怎么改变世界呢,主要就是通过沉浸式体验,一款王者荣耀就把上千万家庭的小孩沉迷于游戏,未来能做的不仅仅是一款游戏。

    XR是结合了AR/VR/MR 多种形式,除了游戏未来更加逼真,更加清晰,让人类更容易沉迷外,我讲讲实际应用。

    1、制造业

    很多人选择的是医疗,旅游等领域,我觉得toB端第一大应用就是制造业,我们的产品是否生产,材料如何,现在怎么样,都是买家关心的,工厂也关系客户卖的如何,消费者是否喜欢。

    未来的场景应该是客户可以通过在线XR看到产品的整个研发,生产过程,举个例子,消费者买一件衣服,可以在虚拟世界上看到穿上后的效果,并且能够在XR里面点击衣服可以出现材料组成,出现在哪里生产,哪里销售的信息,把整个产品源头都了解透彻。

    而工厂与客户之间的沟通也不需要飞来飞去,直接在虚拟空间里面进行观看工厂,评估工厂生产线,产能,以及质量管控系统。

    1688和阿里国际站是一个二维的买卖交易平台,虚拟技术出现后讲会打破这种现象,XR将会从三维角度把买卖双方更好的结合起来。

    2、运营维护所有领域

    所以需要运营维修的行业,都可以用XR来提高效率,电力,火力,高铁,飞机的重工业的维修是相当大体量,复杂度越高,沟通成本越高,飞机维修,可以通过XR让技术丰富的人培训或者是后面指挥如何解决飞机故障,房地产的家电维修也可以排送外卖的人上门维修,因为送外卖的人更近,可以通过XR把出问题的设备穿透到厂家,直接服务。

    3、零售行业

    店铺行业会带来一次革命机会,有机会摆脱马云的购物车,消费者可以看商家发过来的信息,就可以在商家的购物虚拟空间购买,这样的技术已经出现,而且同样爆发力很强。

    4、医疗领域

    这是一个刚需,让经验丰富的医生能够远程服务患者,但体量会比我们想象中要小,主要有两个方面。

    1)人工智能将可以取代不少一般医生,把患者的情况输入设备,自然会有健康解决方案,不需要用到XR。

    2)一般患者还没有能够低成本使用虚拟技术,而且远程服务的医生价格不菲,是针对高端人士服务的。

    5、培训领域

    培训领域顶多排在第5或者第,解决了学与教的问题,但这个应用要比较晚,因为信息的流通已经很快,学习效率也很高,除非出现一种非常成本低的XR技术或者平台,让每一个学习的人创造参与XR的数据建设,这样的培训才会大幅度增长。
    在这里插入图片描述
      除了以下领域,在未来,几乎所有C端都可以有XR的应用技术。

    想想看,我们的娱乐,可以在虚拟世界中完成,我们可以在虚拟世界中结婚生子,我们可以在虚拟世界中工作。

    虚拟世界与真实世界的边界越来越模糊,就等于B端和C端的边界越来越少一样。

    XR+人工智能, 不仅仅我们生活的方式,工作的方式发生改变,家庭伦理关系,企业结构,国家结构都绝对新的方式展现在我们面前。

    将来有两件事情可以确定,人类在沉迷在虚拟世界时间越来越多,人类的结婚率会进一步下跌,很多人会信仰人根本不需要结婚和养育小孩。

    一如既往,技术带来的新的机遇,也会打破旧的结构。

    文章阅读延伸

    XR扩展现实技术数字空间智慧展馆解决方案

    拥有国际领先视觉解决方案。融合了世界顶级视觉科技包括谷歌实景穿梭、微软全景结合、立体数字空间及各种数码视觉科技结合打造前所未有的视觉体验。

    公司专注于沉浸式技术研发和智能视觉效果呈现,通过各种VR展示元素的结合及强大互动功能,运用开创性的多媒体技术使用户在逼真的虚拟环境中感受到全新智能交互体验。在智慧城市可视化、数字空间新零售、沉浸式科普文娱等领域为用户量身定制个性化视觉解决方案。
    在这里插入图片描述
      产品体系

    1、数字空间新零售

    线上体验、线上销售、线上引流、企业广告、广告的植入、运营推广、虚拟展示平台。

    2、智慧城市可视化

    城市立体IP、数字建模、城市街道、产业园区、景区景点、企业文宣 / 产品展示。

    3、沉浸式科普文娱

    门票收入、品宣文宣、科普教育、政府招商、定制服务、升级服务、售后服务、展厅服务租赁。

    数字空间全方位立体透视自有穿梭浏览

    结合谷歌街景穿梭技术,实现即时现场实景空间数据扫描,再融合VR/AR 应用实现空间场景全方位立体展示。所采集的空间数据并可同时应用于制作3D模型图、 VR沙盘、以及建筑设计CAD图,打通了不同专业领域的应用需求。 与目前国内普遍采用的定点拍摄的全景图片拼图比,空中街景可以空间内自由穿梭的真实VR体验,并且可制作人物在其间走动的动态VR全景图片,同时可以拍摄制作沉浸式VR全景视频。

    产品行业对比

    与传统全景相机拍摄出来的单纯全景图不同,数字空间视觉技术采集深度信息,空间并不仅仅是平面图像,而是通过模型实现的立体效果,并且可以实现点到点之间的交互,实现真正的虚拟空间穿梭。没有交互的VR不叫VR,只能叫全景。传统全景图的体验效果和畸变都非常严重,而且只能实现场景切换并无法在空间内任意走动。
    在这里插入图片描述
      应用场景解决方案

    应用场景–智慧城市可视化

    通过数字空间航拍技术政府现有的旅游景区、文化公园、博物馆、会展中心等资源进行线上全方位立体展示、地面街道穿梭、室内全方位立体展示、真人线上讲解可以把流量快速引入到当地,同时对当地进行全新的城市IP打造。

    空间内可以加入数字标签对景区、文化公园、博物馆、会展中心等进行相应介绍。(比如文字信息、图片信息、视频信息等多媒体数字标签)

    应用场景–沉浸式科普文娱

    联合当地政府及企业共同投资运营沉浸式科普文娱体验中心,打造高科技新型的文化科普教育培训基地,让更多的市民参与学习真正的科技文化和自然文化,同时又可以带动当地消费经济,增加当地政府的GDP。

    应用场景–数字空间新零售

    数字空间技术为了更好让观众能够了解到环境的整体内容,通过最新的视觉技术在媒体捕捉、内容开发、多平台的部署使虚拟代入现实生活。

    1、购物场景应用

    零售业应用里及时嵌入购物链接和商品购买详情目录,在场景设计内容增强消费者的全新体验,O2O完成一站式购物需求。

    2、细节放大全景

    应用场景中可以放大观看产品细节和产品视频介绍,并且植入高清图片、视频、文字、链接、音效等多媒体内容。

    3、转换场景模式

    可在同一应用场景中即时切换两个不同对比场景,适合比较两个不同空间内的产品展示。

    4、动态讲解全景

    在应用场景中的商店或其他场景植入真人讲解介绍产品及空间,可在空间不同地方介绍不同内容。
    在这里插入图片描述

    展开全文
  • 云计算4种主流虚拟技术架构对比分析  云计算离不开底层的虚拟化技术支持。维基百科列举的虚拟化技术有超过60种,基于X86(CISC)体系的超过50种,也有基于RISC体系的,其中有4种虚拟化技术是当前最为成熟而且...

    云计算4种主流虚拟技术架构对比分析


      云计算离不开底层的虚拟化技术支持。维基百科列举的虚拟化技术有超过60种,基于X86(CISC)体系的超过50种,也有基于RISC体系的,其中有4种虚拟化技术是当前最为成熟而且应用最为广泛的,分别是:VMWARE的ESX、微软的Hyper-V、开源的XEN和KVM。云计算平台选用何种虚拟化技术将是云计算建设所要面临的问题,文章就4种主流虚拟化技术的架构层面进行了对比分析。

    1.前言

      云计算平台需要有资源池为其提供能力输出,这种能力包括计算能力、存储能力和网络能力,为了将这些能力调度到其所需要的地方,云计算平台还需要对能力进行调度管理,这些能力均是由虚拟化资源池提供的。

      在本文中,我们重点讨论虚拟化资源池的技术。形成资源池计算能力的物理设备,可能有两种,一种是基于RISC的大/小型机,另一种是基于CISC的X86服务器。大/小型机通常意味着高性能、高可靠性和高价格,而X86服务器与之相比有些差距,但随着Inter和AMD等处理器厂商技术的不断发展,原本只在小型机上才有的技术已经出现在了X86处理器上,如64位技术、虚拟化技术、多核心技术等等,使得X86服务器在性能上突飞猛进。通过TPC组织在2011年3月份所公布的单机计算机性能排名中可以看出,4路32核的X86服务器性能已经位列前10名,更重要的是X86服务器的性价比相对小型机有约5倍的优势。因此,选择X86服务器作为云计算资源池,更能凸显出云计算的低成本优势。

      由于单机计算机的处理能力越来越大,以单机资源为调度单位的颗粒度就太大了,因此需要有一种技术让资源的调度颗粒更细小,使资源得到更有效和充分的利用,这就引入了虚拟化技术。当前虚拟化技术中主流和成熟的有4种:VMWARE的ESX、微软的Hyper-V、开源的XEN和KVM,下面将针对这4种虚拟化技术的架构进行分析。

    2.虚拟化架构分析

      从虚拟化的实现方式来看,虚拟化架构主要有两种形式:宿主架构和裸金属架构。在宿主架构中的虚拟机作为主机操作系统的一个进程来调度和管理,裸金属架构下则不存在主机操作系统,它是以Hypervisor直接运行在物理硬件之上,即使是有类似主机操作系统的父分区或Domain 0,也是作为裸金属架构下的虚拟机存在的。宿主架构通常用于个人PC上的虚拟化,如WindowsVirtual PC,VMware Workstation,VirtualBox,Qemu等,而裸金属架构通常用于服务器的虚拟化,如文中提及的4种虚拟化技术。

       (1) ESX的虚拟化架构(如图1)

    Esx虚拟化架构示意图
    图1:Esx虚拟化架构示意图

      ESX是VMware的企业级虚拟化产品,2001年开始发布ESX 1.0,到2011年2月发布ESX 4.1 Update 1。

      ESX服务器启动时,首先启动Linux Kernel,通过这个操作系统加载虚拟化组件,最重要的是ESX的Hypervisor组件,称之为VMkernel,VMkernel会从LinuxKernel完全接管对硬件的控制权,而该Linux Kernel作为VMkernel的首个虚拟机,用于承载ESX的serviceConsole,实现本地的一些管理功能。

      VMkernel负责为所承载的虚拟机调度所有的硬件资源,但不同类型的硬件会有些区别。

      虚拟机对于CPU和内存资源是通过VMkernel直接访问,最大程度地减少了开销,CPU的直接访问得益于CPU硬件辅助虚拟化(Intel VT-x和AMD AMD-V,第一代虚拟化技术),内存的直接访问得益于MMU(内存管理单元,属于CPU中的一项特征)硬件辅助虚拟化(Intel EPT和AMD RVI/NPT,第二代虚拟化技术)。

      虚拟机对于I/O设备的访问则有多种方式,以网卡为例,有两种方式可供选择:一是利用I/O MMU硬件辅助虚拟化(Intel VT-d和AMD-Vi)的VMDirectPath I/O,使得虚拟机可以直接访问硬件设备,从而减少对CPU的开销;二是利用半虚拟化的设备VMXNETx,网卡的物理驱动在VMkernel中,在虚拟机中装载网卡的虚拟驱动,通过这二者的配对来访问网卡,与仿真式网卡(IntelE1000)相比有着较高的效率。半虚拟化设备的安装是由虚拟机中VMware tool来实现的,可以在Windows虚拟机的右下角找到它。网卡的这两种方式,前者有着显著的先进性,但后者用得更为普遍,因为VMDirectPath I/O与VMware虚拟化的一些核心功能不兼容,如:热迁移、快照、容错、内存过量使用等。

      ESX的物理驱动是内置在Hypervisor中,所有设备驱动均是由VMware预植入的。因此,ESX对硬件有严格的兼容性列表,不在列表中的硬件,ESX将拒绝在其上面安装。

       (2) Hyper-V的虚拟化架构(如图2)

    Hyper-V虚拟化架构示意图

    图2:Hyper-V虚拟化架构示意图

      Hyper-V是微软新一代的服务器虚拟化技术,首个版本于2008年7月发布,目前最新版本是2011年4月发布R2 SP1版,Hyper-V有两种发布版本:一是独立版,如Hyper-V Server 2008,以命令行界面实现操作控制,是一个免费的版本;二是内嵌版,如Windows Server 2008,Hyper-V作为一个可选开启的角色。

      对于一台没有开启Hyper-V角色的Windows Server 2008来说,这个操作系统将直接操作硬件设备,一旦在其中开启了Hyper-V角色,系统会要求重新启动服务器。虽然重启后的系统在表面看来没什么区别,但从体系架构上看则与之前的完全不同了。在这次重启动过程中,Hyper-V的Hypervisor接管了硬件设备的控制权,先前的Windows Server 2008则成为Hyper-V的首个虚拟机,称之为父分区,负责其他虚拟机(称为子分区)以及I/O设备的管理。Hyper-V要求CPU必须具备硬件辅助虚拟化,但对MMU硬件辅助虚拟化则是一个增强选项。

      其实Hypervisor仅实现了CPU的调度和内存的分配,而父分区控制着I/O设备,它通过物理驱动直接访问网卡、存储等。子分区要访问I/O设备需要通过子分区操作系统内的VSC(虚拟化服务客户端),对VSC的请求由VMBUS(虚拟机总线)传递到父分区操作系统内的VSP(虚拟化服务提供者),再由VSP重定向到父分区内的物理驱动,每种I/O设备均有各自的VSC和VSP配对,如存储、网络、视频和输入设备等,整个I/O设备访问过程对于子分区的操作系统是透明的。其实在子分区操作系统内,VSC和VMBUS就是作为I/O设备的虚拟驱动,它是子分区操作系统首次启动时由Hyper-V提供的集成 服务包安装,这也算是一种半虚拟化的设备,使得虚拟机与物理I/O设备无关。如果子分区的操作系统没有安装Hyper-V集成服务包或者不支持Hyper-V集成服务包(对于这种操作系统,微软称之为Unenlightened OS,如未经认证支持的Linux版本和旧的Windows版本),则这个子分区只能运行在仿真状态。其实微软所宣称的启蒙式(Enlightenment)操作系统,就是支持半虚拟化驱动的操作系统。

      Hyper-V的Hypervisor是一个非常精简的软件层,不包含任何物理驱动,物理服务器的设备驱动均是驻留在父分区的Windows Server 2008中,驱动程序的安装和加载方式与传统Windows系统没有任何区别。因此,只要是Windows支持的硬件,也都能被Hyper-V所兼容。

       (3) XEN的虚拟化架构(如图3)

    XEN的虚拟化架构示意图

    图3:XEN的虚拟化架构示意图

      XEN最初是剑桥大学Xensource的一个开源研究项目,2003年9月发布了首个版本XEN 1.0,2007年Xensource被Citrix公司收购,开源XEN转由www.xen.org继续推进,该组织成员包括个人和公司(如Citrix、Oracle等)。目前该组织在2011年3月发布了最新版本XEN 4.1。

      相对于ESX和Hyper-V来说,XEN支持更广泛的CPU架构,前两者只支持CISC的X86/X86_64 CPU架构,XEN除此之外还支持RISC CPU架构,如IA64、ARM等。

      XEN的Hypervisor是服务器经过BIOS启动之后载入的首个程序,然后启动一个具有特定权限的虚拟机,称之为Domain 0(简称Dom 0)。Dom 0的操作系统可以是Linux或Unix,它实现对Hypervisor控制和管理功能。在所承载的虚拟机中,Dom 0是唯一可以直接访问物理硬件(如存储和网卡)的虚拟机,它通过本身加载的物理驱动,为其它虚拟机(Domain U,简称DomU)提供访问存储和网卡的桥梁。

      XEN支持两种类型的虚拟机,一类是半虚拟化(PV,Paravirtualization),另一类是全虚拟化(XEN称其为HVM,Hardware Virtual Machine)。半虚拟化需要特定内核的操作系统,如基于Linux paravirt_ops(Linux内核的一套编译选项)框架的Linux内核,而Windows操作系统由于其封闭性则不能被XEN的半虚拟化所支持,XEN的半虚拟化有个特别之处就是不要求CPU具备硬件辅助虚拟化,这非常适用于2007年之前的旧服务器虚拟化改造。全虚拟化支持原生的操作系统,特别是针对Windows这类操作系统,XEN的全虚拟化要求CPU具备硬件辅助虚拟化,它修改的Qemu仿真所有硬件,包括:BIOS、IDE控制器、VGA显示卡、USB控制器和网卡等。为了提升I/O性能,全虚拟化特别针对磁盘和网卡采用半虚拟化设备来代替仿真设备,这些设备驱动称之为PV on HVM,为了使PV on HVM有最佳性能。CPU应具备MMU硬件辅助虚拟化。

      XEN的Hypervisor层非常薄,少于15万行的代码量,不包含任何物理设备驱动,这一点与Hyper-V是非常类似的,物理设备的驱动均是驻留在Dom 0中,可以重用现有的Linux设备驱动程序。因此,XEN对硬件兼容性也是非常广泛的,Linux支持的,它就支持。

       (4) KVM的虚拟化架构(如图4)

    KVM的虚拟化架构示意图

    图4:KVM的虚拟化架构示意图

      KVM的全称是Kernel-based Virtual Machine,字面意思是基于内核虚拟机。其最初是由Qumranet公司开发的一个开源项目,2007年1月首次被整合到Linux 2.6.20核心中;2008年,Qumranet被RedHat所收购,但KVM本身仍是一个开源项目,由RedHat、IBM等厂商支持。KVM作为Linux内核中的一个模块,与Linux内核一起发布,至2011年1月的最新版本是kvm-kmod 2.6.37。

      与XEN类似,KVM支持广泛的CPU架构,除了X86/X86_64 CPU架构之外,还将会支持大型机(S/390)、小型机(PowerPC、IA64)及ARM等。

      KVM充分利用了CPU的硬件辅助虚拟化能力,并重用了Linux内核的诸多功能,使得KVM本身是非常瘦小的,KVM的创始者Avi Kivity声称KVM模块仅有约10000行代码,但我们不能认为KVM的Hypervisor就是这个代码量,因为从严格意义来说,KVM本身并不是Hypervisor,它仅是Linux内核中的一个可装载模块,其功能是将Linux内核转换成一个裸金属的Hypervisor。这相对于其它裸金属架构来说,它是非常特别的,有些类似于宿主架构,业界甚至有人称其是半裸金属架构。

      通过KVM模块的加载将Linux内核转变成Hypervisor,KVM在Linux内核的用户(User)模式和内核(Kernel)模式基础上增加了客户(Guest)模式。Linux本身运行于内核模式,主机进程运行于用户模式,虚拟机则运行于客户模式,使得转变后的Linux内核可以将主机进程和虚拟机进行统一的管理和调度,这也是KVM名称的由来。

      KVM利用修改的QEMU提供BIOS、显卡、网络、磁盘控制器等的仿真,但对于I/O设备(主要指网卡和磁盘控制器)来说,则必然带来性能低下的问题。因此,KVM也引入了半虚拟化的设备驱动,通过虚拟机操作系统中的虚拟驱动与主机Linux内核中的物理驱动相配合,提供近似原生设备的性能。从此可以看出,KVM支持的物理设备也即是Linux所支持的物理设备。

      本文所讨论的4种虚拟化技术都用到了半虚拟化驱动,若要在不同虚拟化架构之间迁移虚拟机,这些半虚拟化驱动将必然带来兼容性问题。因此,RedHat和IBM联合Linux社区推出VirtIO半虚拟化驱动开发标准,基于VirtIO的半虚拟化驱动独立于Hypervisor,跨平台迁移时半虚拟化驱动仍可重用,使得不同虚拟化架构之间更容易实现互操作。

    3.结束语

      目前,传统概念下的半虚拟化和全虚拟化的界线越来越模糊了,而且半虚拟化和全虚拟化得到了有机的整合,如半虚拟化的设备驱动和全虚拟化的虚拟机在上述四种虚拟化架构中得到了统一,很多虚拟化厂商也不再明确自己的虚拟化产品归类(如VMware和微软)。

      随着CPU硬件辅助虚拟化技术发展到了二代,而且新版的操作系统对虚拟化技术的原生支持(如Windows7的Natively Enlightened,Linux的paravirt_ops内核选项),以及Hypervisor对虚拟机的CPU调度和内存管理越来越少的干预。则软件做得越少而硬件做得越多,如虚拟机之间内存管理所需用到的地址翻译由软件的影式分页(Shadow Paging)转变为由CPU硬件加速的嵌套分页(Nested Paging),各种虚拟化技术既有全虚拟化技术对操作系统的兼容性,又有半虚拟化技术所带来的性能优势。

      从架构上来看,各种虚拟化技术没有明显的性能差距,稳定性也在逐渐逼近中,各自有着自身的优势场景和市场群体。因此,我们在进行虚拟化技术选型时,不应局限于某一种虚拟化技术,而应该有一套综合管理平台实现对各种虚拟化技术的兼容并蓄,实现不同技术架构的统一管理及跨技术架构的资源调度,最终达到云计算可运营的目标。


    转自:http://www.ctiforum.com/forum/2012/02/forum12_0228.htm?2

    展开全文
  • 虚拟技术介绍

    千次阅读 2022-03-24 12:39:55
    虚拟化是一种资源管理技术,它将计算机的各种实体资源(CPU、内存、存储、网络等)予以抽象和转化出来,并提供分割、重新组合,以达到最大化利用物理资源的目的。 VMM(Virtual Machine Monitor),虚拟机监控器,也...
  • VR教育虚拟现实技术应用的价值

    千次阅读 2019-09-26 16:24:27
    现代技术发展的今天,电子科技已经蔓延到千家万户,对于现在学生来说,传统的粉笔黑板教学已经吸引不住学生的眼球,为此选择VR虚拟技术,进行教学是很有必要的。可以说现在VR虚拟现实解决方案,颠覆了传统教学理念。...
  • 在BIOS中打开了VT, 但是在任务管理器中却仍显示 已禁用 我的解决方法: 1、进入BIOS中,关闭VT,重启 2、...CPU虚拟化成功启用,可以用虚拟机啦。。。。 瞎猫碰到死耗子,虽然不知道为什么,但问题总算成功解决了。
  • 虚拟技术的分类及介绍

    万次阅读 多人点赞 2019-01-03 19:45:06
    虚拟技术的分类及介绍   摘要 虚拟化是云计算系统中的一种基础技术,可以说当前一个云计算服务必定是构建在虚拟化的基础上的。本文首先介绍了不同抽象层次的虚拟技术,之后对应用广泛的系统级虚拟化和操作...
  • 计算机中那些事儿(四):我眼中的虚拟技术

    千次阅读 热门讨论 2014-06-28 21:28:00
    最近世界杯正在如火如荼的进行着,令无数球迷激动的莫过于在网上为自己心仪的球队赌上一把,,,其实在这一切的一切背后虚拟技术可谓功不可没。 在当今这个社会,几乎所有的领域都可以看到虚拟技术的身影。今天...
  • KVM 虚拟技术(理论详解+实战)

    千次阅读 2021-03-04 10:26:50
    在计算机技术中,虚拟化(技术)或虚拟技术(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分区、组合为一个或多个...
  • 华硕主板开启intel虚拟技术

    千次阅读 2019-11-18 11:41:53
    在开机的时候,不停地按键盘上的Delete键,进入主板设置,如图所示 点击下面的“高级模式F7”,如图所... ... 向下拉,找到intel虚拟技术,如图所示 点击开启,如图所示 按键盘上的F1...
  • 虚拟技术详解

    万次阅读 多人点赞 2018-07-14 17:10:52
    看到这篇文章的朋友,大部分应该都用过虚拟化软件,然后才会想知道虚拟技术的。windows下的常用的虚拟技术有VmWare,VirtualBox等等,那么这篇文章将会介绍这些技术基本的实现原理,并普及虚拟化相关的术语描述。 ...
  • 虚拟技术

    千次阅读 2018-09-06 14:15:09
     虚拟化,是指通过虚拟技术将一台计算机虚拟为多台逻辑计算机(对计算机物理资源的抽象,实现资源的模拟、隔离和共享)。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用...
  • 云计算和虚拟技术

    千次阅读 2021-04-10 15:30:39
    # 写于2021.04.10 ...虚拟化 高可靠性 通用性 高可伸缩性 按需服务 极其廉价 1.3 云计算你找服务类型可分为哪几类? 1.4 云计算技术体系结构可分为哪几层? 资源池和管理中间件层为云计算技术
  • 很多人都不知道BIOS中怎么开启虚拟技术,下面我们就一起来看看吧!操作方法01首先在开机的时候按住对应的键进入BIOS。组装机以主板分,华硕按F8、Intel按F12,其他品牌按ESC、F11或F12;笔记本以品牌分,联想ThinkPad...
  • 好了,说完了CPU和内存的例子,不细说网络和硬盘了,也是类似,都是虚拟化软件模拟一个给虚拟机内核看的,其实啥事儿都需要虚拟化软件转一遍。 这种方式一个坏处,就是慢,往往慢到不能忍受。 于是虚拟化软件...
  • 虚拟化,是指通过虚拟技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高...
  • 惠普电脑虚拟技术的开启

    千次阅读 2018-09-15 11:40:47
    大多数电脑是支持虚拟技术的(可以通过下载CPU-Z等小软件查看VT-x),开启虚拟技术需要进入BIOS系统,而惠普的BIOS系统稍微有点奇葩,我也是搞了很久(好像惠普的BIOS还有几种,反正网上没有找到我这种的,哈哈)。...
  • 虚拟现实技术(unity)

    千次阅读 2022-04-06 16:28:07
    初识unity: 1.游戏引擎是指一些已编好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。 2.游戏引擎主要包括:渲染器、物理引擎、碰撞检测系统、音效、脚本引擎、动画、人工智能、网络引擎以及...
  • 虚拟技术在企业网络中的应用

    千次阅读 2021-11-15 10:01:23
    2019-11-试题二虚拟技术在企业网络中的应用 虚拟技术已经广泛应用于各类应用中,结合自己参与设计的系统加以评估,写出一篇有自己特色的论文。请围绕“虚拟技术在企业网络中的应用”论题,依次从以下三个方面...
  • 虚拟存储技术和交换技术的区别

    千次阅读 多人点赞 2020-06-08 23:22:14
    虚拟存储技术和交换技术很像,乍一看都是换入换出,把暂时不需要用的数据换出内存,将需要用到的数据换入内存,从而实现逻辑上内存的扩充。二者之间的区别是,虚拟存储技术是在一个作业运行的过程中,将作业的数据...
  • 虚拟技术发展简史 作者:张子良 版权所有,转载请注明出处  一 概述  虚拟技术按照其发展历史,可以分为四个阶段:硬件仿真虚拟化、完全虚拟化、半虚拟化和操作系统虚拟化。当前阶段的虚拟技术以半虚拟...
  • 虚拟技术简述

    千次阅读 多人点赞 2022-04-14 17:31:54
    这篇文章主要简述了虚拟化方面的一些入门知识。
  • ARM 虚拟技术简介

    千次阅读 2020-05-02 15:06:04
    虚拟技术的比较 2.1 全虚拟化和二进制重写(Pure virtualization and binary rewriting) 2.2 半虚拟化( Para-virtualization) 2.3 虚拟化环境中的虚拟内存(Virtual memory in virtualization environment) 三...
  • 覆盖,交换技术虚拟存储技术的区别

    千次阅读 多人点赞 2020-10-02 13:45:52
    操作系统—覆盖,交换技术虚拟存储技术的区别
  • 在上个世纪80、90年代发达国家就已开始研究该项技术,它是多种技术的综合体,包括实时三维计算机图形技术,广角(宽视野)立体显示技术,对观察者头、眼和手的跟踪技术,以及触觉、力觉反馈、立体声、网...
  • 虚拟技术之docker技术详解

    千次阅读 多人点赞 2021-09-30 09:34:39
    文章目录虚拟技术之docker技术详解 [⭐建议收藏⭐]关于作者作者介绍前言虚拟技术概述及简介一 、什么是虚拟技术?二、常见的虚拟技术有哪些?2.1 KVM 虚拟技术概念2.2 ESXI 虚拟技术概念2.3 XEN 虚拟化...
  • 所谓vr虚拟现实技术,顾名思义,就是虚拟和现实相互相结合的技术。从理论上来讲,vr虚拟现实技术是一种可以构建和感受虚拟世界的计算机仿真系统,它借助计算机生成一种虚拟环境,使访客沉浸到该环境中。vr虚拟现实...
  • 五种主流的虚拟技术

    千次阅读 2019-11-23 20:03:17
    随着虚拟技术的窜红,打着它的旗号的“衍生品”层出不穷。然而尽管到现在各种虚拟技术还没能泾渭分明,但随着时间的发展,五种主流的虚拟技术逐步展露。这五种虚拟技术分别是:CPU虚拟化、网络虚拟化、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 679,757
精华内容 271,902
关键字:

虚拟技术

友情链接: EMD_ALSTM.zip