设为首页 收藏本站
查看: 1607|回复: 0

[经验分享] 转发 “Xen的工作原理”

[复制链接]

尚未签到

发表于 2015-4-13 14:50:14 | 显示全部楼层 |阅读模式
  url:http://blogold.chinaunix.net/u2/69106/showart_1999860.html
  如今,虚拟化市场上满是各种不同的虚拟化解决方案。多年以来,VMware一直控制着基于i386的虚拟化市场。然而,现在的开源解决方案Xen也在迅速地扩张自己的市场。在本文中,TechTarget中国的特约虚拟化专家Sander vanVugt将介绍什么是Xen、它如何工作以及Xen如何与其它虚拟化解决方案一争高下。
  要理解Xen的虚拟化方法,首先你必须了解什么是虚拟化。在计算时代早期,虚拟化并不存在。那时,使用的是模拟(Emulation)。在模拟技术中,软件程序模拟了计算机(硬件和软件)的行为。模拟层与操作系统对话,而操作系统与计算机硬件对话。在模拟层中安装的操作系统并不知道自己是被安装在模拟环境下的,你可以按照常规的方法安装操作系统。市场上有两大开源的模拟器:QEMU和Bochs。
  模拟技术最重要的特点之一是所有硬件都是模拟的,包括CPU。此外,还能在自己的架构中运行为其它架构开发的操作系统。不过,它也有一个缺点:虚拟完整的CPU要付出很大的性能代价。
  在下一代中,虚拟化被带到了一个更高的级别。在模拟层(负责被虚拟机器的指令翻译)和硬件之间,不需要任何主机操作系统运行硬件上的虚拟机。虚拟机监控器(也称hypervisor或管理程序)被直接放在硬件之上运行。有了这种新型架构之后,虚拟化变得更加高效。例如,VMware在VMware ESX中应用了该架构,取得了巨大的成功。
  在基于hypervisor的虚拟化中,有两种实现方法。第一种,虚拟机器产生的所有指令都需要被翻译成CPU能识别的指令格式,这会给hypervisor带来大量的工作负荷。另一种方法(VMware ESXServer采用的就是这种方法)直接执行大部分子机CPU指令,直接在主机物理CPU中运行指令,性能负担很小。
  在Xen使用的方法中,没有指令翻译。这是通过两种方法之一实现的。第一,使用一个能理解和翻译虚拟操作系统发出的未修改指令的CPU(此方法称作完全虚拟化或fullvirtualization)。另一种,修改操作系统,从而使它发出的指令最优化,便于在虚拟化环境中执行(此方法称作准虚拟化或paravirtualization)。
    完全虚拟化与准虚拟化
  完全虚拟化(fullvirtualization)是虚拟一台机器的一种方法。在此方法中,虚拟机与一个叫做虚拟机监控器(VMM)的部件进行通信,而VMM则与硬件平台进行通信。要在Xen中利用完全虚拟化方法,需要一个特殊的CPU,此CPU能理解虚拟操作系统发出的未修改指令。如果没有这样的特殊CPU功能,是不可能在Xen中使用完全虚拟化的。这是因为,在Xen方法中不是每条虚拟操作系统发出的指令都可以被翻译为每个CPU都能识别的格式,因为这非常耗费资源。完全虚拟化的主要优势在于,它安装了一个未修改的操作系统,这意味着运行于同样架构的所有操作系统都可以被虚拟化。
  效率最高的虚拟化方法是准虚拟化(paravirtualization)。在准虚拟化中,子操作系统使用一个专门的API与VMM通信,VMM则负责处理虚拟化请求,并将这些请求递交到硬件上。由于有了这个特殊的API,VMM不需去做耗费资源的指令翻译工作。而且,使用准虚拟化API时,虚拟操作系统能够发出更有效的指令。然而,准虚拟化也有一个缺点,就是需要修改包含这个特殊API的操作系统。而且,这个缺点对于某些操作系统(主要是Windows)来说更要命,因为它们没有这种API。
  现在,准虚拟化是获得最佳性能的方法,因为虚拟操作系统发出的指令不需要翻译。遗憾的是,在某些操作系统中不能完全使用准虚拟化,因为它需要一个特殊版本的操作系统。在这样环境下,为了确保高性能,可以准虚拟化个别的设备。这意味着,可以通过硬件虚拟化来处理某些指令(如,CPU发出的指令)。不过,有些特殊设备发出的指令(如,network board或graphical interfacecard)在离开虚拟机之前可以通过准虚拟化驱动被修改。有些厂商提供专门操作系统的准虚拟化驱动包,这些驱动包经常可以单独购买。通常,这些专门的驱动包都物有所值,能够大大地提高设备性能,如网板(network board)和硬盘。
    Xen虚拟化方法
  在Xen环境中,主要有两个组成部分。一个是虚拟机监控器(VMM),也叫hypervisor。Hypervisor层在硬件与虚拟机之间,是必须最先载入到硬件的第一层。Hypervisor载入后,就可以部署虚拟机了。在Xen中,虚拟机叫做“domain”。在这些虚拟机中,其中一个扮演着很重要的角色,就是domain0,具有很高的特权。通常,在任何虚拟机之前安装的操作系统才有这种特权。
  Domain0要负责一些专门的工作。由于hypervisor中不包含任何与硬件对话的驱动,也没有与管理员对话的接口,这些驱动就由domain0来提供了。通过domain0,管理员可以利用一些Xen工具来创建其它虚拟机(Xen术语叫domainU)。这些domainU也叫无特权domain。这是因为在基于i386的CPU架构中,它们绝不会享有最高优先级,只有domain0才可以。
  在domain0中,还会载入一个xend进程。这个进程会管理所有其它虚拟机,并提供这些虚拟机控制台的访问。在创建虚拟机时,管理员使用配置程序与domain0直接对话。(在本系列的第二部分,我们将探讨如何使用配置程序。)
    Xen与其它开源项目
  使用Xen时,开源项目与其它项目的一些差异有时会让人感到迷惑。Xen起源于英国的剑桥大学计算机实验室,该实验室开发了Xen开源项目。这个项目包括虚拟机监控器,即Xen环境的核心组成部分。除了剑桥大学的科学家以外,很多其它IT领域集团也都参与了Xen开源项目,其中包括IBM、AMD、HP、Red Hat和Novell。
  由于Xen方法使虚拟化领域迈出了一大步,因此Xen的创始人成立了他们自己的公司XenSource(最近被Citrix收购)。他们成立XenSource的目的是为了基于Xen hypervisor而提供一个完善的虚拟化解决方案,与其它虚拟化产品(如VMwareESX)竞争。其它企业也在它们自己的产品中综合应用了Xen hypervisor。例如,Linux厂商RedHat和Novell公司都在自己的操作系统中包含了各自版本的Xen。由于Xen的大多数部分都是开源的,所以这些解决方案都非常相似。在本系列的下文中,我们将重点探讨Xen虚拟化解决方案的开源部分。
  
原文地址http://www.searchsv.com.cn/ShowContent_13689.htm?info=svtechguide20090714?

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-56745-1-1.html 上篇帖子: 【转】xen虚拟机的disk磁盘类型 下篇帖子: xen导出所有虚机的配置文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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