XEN 简介

  XEN 是一个基于X86架构、发展最快、性能最稳定、占用资源最少的开源虚拟化技术。Xen可以在一套物理硬件上安全的执行多个虚拟机,与 Linux 是一个完美的开源组合,Novell SUSE Linux Enterprise Server 最先采用了XEN虚拟技术。它特别适用于服务器应用整合,可有效节省运营成本,提高设备利用率,最大化利用数据中心的IT基础架构。

XEN 是英国剑桥大学计算机实验室开发的一个虚拟化开源项目,XEN 可以在一套物理硬件上安全的执行多个虚拟机,它和操作平台结合的极为密切,占用的资源最少。目前稳定版本为XEN3.0。支持万贯虚拟化和超虚拟化。以高性能、占用资源少著称,赢得了IBM、AMD、HP、Red Hat和Novell等众多世界级软硬件厂商的高度认可和大力支持,已被国内外众多企事业用户用来搭建高性能的虚拟化平台。

VMware与XEN比较

 

XEN架构如图所示:

XEN 虚拟化技术特性

  Xen 是目前业界性能最高的超级管理 程序,其开销比同类专有产品低十倍。 Xen 独特的性能价值来自超虚拟化的使 用。超虚拟化使托管虚拟服务器可以与 超级管理程序共同协作,使企业应用程 序达到最佳的性能。其他供应商 (例如 Microsoft) 正争先恐后地实施自己的超 级管理程序,但至少已落后 Xen 项目 3 年。另外,Xen 还利用了 Intel VT 和 AMD 虚拟化处理器的硬件虚拟化能力。

XEN 虚拟化技术的主要特性如下所示:

◆  虚拟机的性能更接近真实的硬件平台;

◆  可实现物理平台和虚拟平台间的自由切换;

◆  在每个客户虚拟机支持到 32个虚拟CPU,通过VCPU热插拔;

◆  支持PAE指令集的x86/32, x86/64平台;

◆  能通过硬件辅助虚拟技术进行虚拟原始操作系统,可支持Microsoft Windows虚拟;

◆  得到广泛的硬件厂家的大力支持,支持几乎所有的Linux设备驱动。

XEN工作原理

  Xen通过hypervisor软件层来访问物理硬件,实现在一台单独的计算机上运行多个各自独立彼此隔离的子操作系统。hypervisor扮演着类似交通警察的角色,指挥硬件访问和协调来自各子操作系统的请求。

在Xen环境中,主要有两个组成部分。 一个是虚拟机监控器(VMM),也叫hypervisor。Hypervisor层硬件与虚拟机之间,最先被载入到硬件的第一层。 Hypervisor载入就可部署虚拟机。在Xen中,虚拟机叫做Domain。在这些虚拟机中,Domain0具有很高的特权,负责一些专门的工作。由于hypervisor中不包含任何与硬件对话的驱动,也没有与管理员对话的接口,这些驱动就由 domain0来提供了。通过domain0,管理员可以利用一些Xen工具来创建其它虚拟机(DomainU)。这些domainU属于无特权domain。

在domain0中,还会载入一个xend进程。这个进程会管理所有其它虚拟机,并提供这些虚拟机控制台的访问。在创建虚拟机时,管理员使用配置程序与domain0直接对话

Xen 的特点

  在目前Linux的世界,XEN并不是唯一的,除了XEN这一架构外,另外还有一个KVM(Kernel based Vitrual Machine),从2.6.20版本之后的Linux Kernel就支持其功能。因为KVM的做法是以原本Kernel为依据,只要将其module加载即可使用,唯一较XEN弱势的是KVM以单一Full Virtuallization为服务方式。

  1. Xen是一款虚拟化软件,支持半虚拟化和完全虚拟化。它在不支持VT技术的cpu上也能使用,但是只能以半虚拟化模式运行。
    1. 半虚拟化的意思是需要修改被虚拟系统的内核,以实现系统能被完美的虚拟在Xen上面。完全虚拟化则是不需要修改系统内核则可以直接运行在Xen上面。
    2. VMware是一款完全虚拟化软件。完全虚拟的弱点是效率不如半虚拟化的高。半虚拟化系统性能可以接近在裸机上的性能。
  2. Xen是由一个后台守护进程维护的,叫做xend,要运行虚拟系统,必须先将它开启。它的配置文件在/etc/xen/xend-config.sxp, 内容包括宿主系统的类型,网络的连接结构、宿主操作系统的资源使用设定,以及vnc连接的一些内容。(如果你想增加一个虚拟网络设备的话,是需要在这里设 定的)
  3. /etc/xen/auto 的含义是如果你想让被虚拟系统随着宿主系统一同启动的话,就把虚拟系统的配置文件放到这个目录下面来。
  4. /etc/xen/scripts 是些脚本文件,用于初始化各种虚拟设备,比如虚拟网桥等。(如果要增加一个虚拟网络设备,同样需要在此处调节)
  5. 在/etc/xen下面会有些配置文件,这就是虚拟系统引导时所必须的些文件,里面记录了引导和硬件信息。
  6. Xen的配置工具有许多,我使用的是virt-manager(GUI)、virt-install和xm。第一个用于管理和安装系统,第二个只用于安装系统,第三个用于启动系统。
  7. 安装半虚拟Linux有两种方法,一种是利用Linux的网络安装方式安装,http、ftp、nfs方式都是可以的(特别注意:半虚拟环境下安装 Linux是不支持本地光驱或者iso镜像安装的!),并且RHEL5会自动生成配置文件。第二种是先建立镜像文件,并格式化,然后挂载到本地文件系统上 来,将虚拟系统需要用到的文件拷贝进去并修改,然后手工创建配置文件并启动。
  8. 虚拟网络设备有三种模式:bridge桥模式、router路由模式和nat模式。其中桥模式是默认模式,在这种模式下,虚拟系统和宿主系统被认为是并列的关系,虚拟系统被配置IP或者dhcp后即可联通网络。
  9. 原来的iptables无法对桥模式下的数据包做处理,RHEL5的iptables中增加了一个physdev的模块,可用iptables -m physdev -h查看帮助

XEN 虚拟化的效益

  ·虚拟化的效益包括下列:

  ◆ 降低硬件成本 — 有了虚拟化技术,您便可减少所要维护的实体服务器数量,进而降低成本。整合服务器可以降低对于实体空间与电源的需求,同时维持规模弹性以配合其它计划。

  ◆ 提高服务器使用率 — 虚拟化技术可让多个应用程序在一部实体服务器上共存,因此能以更高效率使用资源、进一步利用每一服务器的容量,并提高服务器使用率。虚拟化技术能以 12:1的整合比率,

  在每一实体服务器上部署 12 部或更多部的虚拟机器。此外,CPU 使用率最多能增加 30%。

  ◆ 缩短服务器的配置时间— 虚拟化技术能将服务器的供应时间缩短达 90%,大幅增进组织对于客户需求的反应能力。即使现场已有合适的实体服务器,传统的服务器部署工作可能耗时6 小时以上。

  在现有实体服务器上部署虚拟机器,所需的时间则短得多。如果您将取得实体服务器的时间列入计算 — 采购程序通常耗费 6 至 8 周时间 — 则省下的成本更多。

  ◆ 远程管理虚拟机实例— 服务器的疑难排解可在网络上随时随地进行,不需要组织的技术人员亲自到机器前操作。因此,IT 可透过中央位置全球支持全球的 VM 执行个体,

  不需要派遣技术人员到实体服务 器的位置。

  ◆ 增强灵活性和扩展性— 因为能轻易部署新的虚拟机器,IT 团队将能以更快的速度、更高的弹性响应企业对于新IT 资源的需求。

  ◆ 升生产效率 — 由于能在单一计算机上执行多个操作系统,因此组织能进行更多深入开发与测试,并同时进行更多计划。

  ◆ 可用性与不间断维护 — 虚拟机器与其应用程序可以轻易重新分配到替代的位置或远程数据中心。移转虚拟服务器与代管的应用程序的能力,可让系统不需要停用应用程序就能执行事先规划的硬件与软           件维护工作。

  ◆ 用程序更安全 — 针对每个应用程序建立虚拟机器,可将弱点隔离并减至最少。保护范围可能延伸到应用程序、链接库、服务与操作系统。

  ◆ 强对配置更改的管理 — 透过能将服务器复原至已仓储影像的功能,可免除对执行中生产应用程序进行的未经批准变更。

◆ 按需扩展— 能将虚拟机器映像自动部署到现有硬件上,在颠峰需求时刻增加更多处理能力。在使用量暴增的情况逐渐消退之后,可将运算资源重新分配至其它活动。

整理Xen理论知识的更多相关文章

  1. 分析技术和方法论营销理论知识框架,营销方面4P、用户使用行为、STP,管理方面5W2H、逻辑树、金字塔、生命周期

    原文:五种分析框架:PEST.5W2H.逻辑树.4P.用户使用行为 最近在一点点的啃<谁说菜鸟不懂得数据分析>,相当慢,相当的费脑力,总之,真正的学习伴随着痛苦:) 最初拿到这本书的时候, ...

  2. Web前端理论知识记录

      Web前端理论知识记录 Elena· 5 个月前 cookies,sessionStorage和localStorage的区别? sessionStorage用于本地存储一个会话(session) ...

  3. js中函数的一些理论知识

      函数的一些理论知识 1. 函数:                执行一个明确的动作并提供一个返回值的独立代码块.同时函数也是javascript中的一级公民(就是函数和其它变量一样). 2.函数的 ...

  4. 用VC进行COM编程所必须掌握的理论知识

    一.为什么要用COM 软件工程发展到今天,从一开始的结构化编程,到面向对象编程,再到现在的COM编程,目标只有一个,就是希望软件能象积方块一样是累起来的,是组装起来的,而不是一点点编出来的.结构化编程 ...

  5. 图形学理论知识 BRDF 双向反射分布函数(Bidirectional Reflectance Distribution Function)

    图形学理论知识 BRDF 双向反射分布函数 Bidirectional Reflectance Distribution Function BRDF理论 BRDF表示的是双向反射分布函数(Bidire ...

  6. TestNG学习-001-基础理论知识

    此 文主要讲述用 TestNG 的基础理论知识,TestNG 的特定,编写测试过程三步骤,与 JUnit4+ 的差异,以此使亲对 TestNG 测试框架能够有一个简单的认知. 希望能对初学 TestN ...

  7. [转] DDD领域驱动设计(三) 之 理论知识收集汇总

    最近一直在学习领域驱动设计(DDD)的理论知识,从网上搜集了一些个人认为比较有价值的东西,贴出来和大家分享一下: 我一直觉得不要盲目相信权威,比如不能一谈起领域驱动设计,就一定认为国外的那个Eric ...

  8. Winsock网络编程笔记(4)----基本的理论知识

    前面的笔记记录了Winsock的入门编程,领略了Winsock编程的乐趣..但这并不能算是掌握了Winsock,加深理论知识的理解才会让后续学习更加得心应手..因此,这篇笔记将记录一些有关Winsoc ...

  9. Android初级教程对大量数据的做分页处理理论知识

    有时候要加载的数据上千条时,页面加载数据就会很慢(数据加载也属于耗时操作).因此就要考虑分页甚至分批显示.先介绍一些分页的理论知识.对于具体用在哪里,会在后续博客中更新. 分页信息 1,一共多少条数据 ...

随机推荐

  1. 文档资源搜索小工具 - 支持PDF,DOC,PPT,XLS

    最近做了一个文档搜索小工具,当然不是网盘搜索工具,这个工具支持四种文件格式搜索(pdf,doc,ppt,xls),你只需要在搜索框中输入你想要搜索资源的关键词,点击搜索按钮即可获取相关资源,点击下载按 ...

  2. 项目启动失败,异常代码(StandardEngine[Catalina].StandardHost[localhost].StandardContext[/credit]]) ,dataSource 也报错

    问题:tomcat 项目启动失败(有多个springboot项目)! 28-Apr-2019 12:01:12.162 严重 [localhost-startStop-1] org.apache.ca ...

  3. io读取遇到的问题

    使用Inputstream输入流读取数据的时候总要使用一个额byte[]数组进行读取 byte[] b= new byte[1024]; while((len = in.read(b)) != -1) ...

  4. java中next()和nextLine()的区别

    首先,next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键.Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后 ...

  5. java-多线程(上)

    ###24.01_多线程(多线程的引入)(了解) * 1.什么是线程     * 线程是程序执行的一条路径, 一个进程中可以包含多条线程     * 多线程并发执行可以提高程序的效率, 可以同时完成多 ...

  6. jQuery基础之一

    jQuery基础之一   初识jQuery jQuery封装JavaScript中多个好用的函数成为并形成代码库,操作时也更符合我们的习惯,并且减少了浏览器之间的兼容性. jQuery官网 引入 本地 ...

  7. viewport定义,弹性布局,响应式布局及LESS和SASS框架应用

    一,移动端宽度设置 viewport视图窗口,<meta name="viewport" content="width=device-width,initial-s ...

  8. java项目---用java重命名文件(1星)

    package Demo; import java.io.File; public class FileRename { public static boolean Rename(String old ...

  9. CF285D.Permutation Sum

    想了很久觉得自己做法肯定T啊,就算是CF机子的3s时限,但我毕竟是 O ( C(15,7)*7!*log ) .... 果然在n=15的点T了...贱兮兮地特判了15过掉了,结果发现题解说就是打表.. ...

  10. 0. General-purpose tools (通用工具 8个)

    http://en.wikipedia.org/wiki/Netcat这个简单的实用程序通过TCP或UDP网络连接读写数据. 它被设计为一个可靠的后端工具,可以直接或轻松地使用其他程序和脚本驱动. 同 ...