整理Xen理论知识
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为服务方式。
- Xen是一款虚拟化软件,支持半虚拟化和完全虚拟化。它在不支持VT技术的cpu上也能使用,但是只能以半虚拟化模式运行。
- 半虚拟化的意思是需要修改被虚拟系统的内核,以实现系统能被完美的虚拟在Xen上面。完全虚拟化则是不需要修改系统内核则可以直接运行在Xen上面。
- VMware是一款完全虚拟化软件。完全虚拟的弱点是效率不如半虚拟化的高。半虚拟化系统性能可以接近在裸机上的性能。
- Xen是由一个后台守护进程维护的,叫做xend,要运行虚拟系统,必须先将它开启。它的配置文件在/etc/xen/xend-config.sxp, 内容包括宿主系统的类型,网络的连接结构、宿主操作系统的资源使用设定,以及vnc连接的一些内容。(如果你想增加一个虚拟网络设备的话,是需要在这里设 定的)
- /etc/xen/auto 的含义是如果你想让被虚拟系统随着宿主系统一同启动的话,就把虚拟系统的配置文件放到这个目录下面来。
- /etc/xen/scripts 是些脚本文件,用于初始化各种虚拟设备,比如虚拟网桥等。(如果要增加一个虚拟网络设备,同样需要在此处调节)
- 在/etc/xen下面会有些配置文件,这就是虚拟系统引导时所必须的些文件,里面记录了引导和硬件信息。
- Xen的配置工具有许多,我使用的是virt-manager(GUI)、virt-install和xm。第一个用于管理和安装系统,第二个只用于安装系统,第三个用于启动系统。
- 安装半虚拟Linux有两种方法,一种是利用Linux的网络安装方式安装,http、ftp、nfs方式都是可以的(特别注意:半虚拟环境下安装 Linux是不支持本地光驱或者iso镜像安装的!),并且RHEL5会自动生成配置文件。第二种是先建立镜像文件,并格式化,然后挂载到本地文件系统上 来,将虚拟系统需要用到的文件拷贝进去并修改,然后手工创建配置文件并启动。
- 虚拟网络设备有三种模式:bridge桥模式、router路由模式和nat模式。其中桥模式是默认模式,在这种模式下,虚拟系统和宿主系统被认为是并列的关系,虚拟系统被配置IP或者dhcp后即可联通网络。
- 原来的iptables无法对桥模式下的数据包做处理,RHEL5的iptables中增加了一个physdev的模块,可用iptables -m physdev -h查看帮助
XEN 虚拟化的效益
·虚拟化的效益包括下列:
◆ 降低硬件成本 — 有了虚拟化技术,您便可减少所要维护的实体服务器数量,进而降低成本。整合服务器可以降低对于实体空间与电源的需求,同时维持规模弹性以配合其它计划。
◆ 提高服务器使用率 — 虚拟化技术可让多个应用程序在一部实体服务器上共存,因此能以更高效率使用资源、进一步利用每一服务器的容量,并提高服务器使用率。虚拟化技术能以 12:1的整合比率,
在每一实体服务器上部署 12 部或更多部的虚拟机器。此外,CPU 使用率最多能增加 30%。
◆ 缩短服务器的配置时间— 虚拟化技术能将服务器的供应时间缩短达 90%,大幅增进组织对于客户需求的反应能力。即使现场已有合适的实体服务器,传统的服务器部署工作可能耗时6 小时以上。
在现有实体服务器上部署虚拟机器,所需的时间则短得多。如果您将取得实体服务器的时间列入计算 — 采购程序通常耗费 6 至 8 周时间 — 则省下的成本更多。
◆ 远程管理虚拟机实例— 服务器的疑难排解可在网络上随时随地进行,不需要组织的技术人员亲自到机器前操作。因此,IT 可透过中央位置全球支持全球的 VM 执行个体,
不需要派遣技术人员到实体服务 器的位置。
◆ 增强灵活性和扩展性— 因为能轻易部署新的虚拟机器,IT 团队将能以更快的速度、更高的弹性响应企业对于新IT 资源的需求。
◆ 升生产效率 — 由于能在单一计算机上执行多个操作系统,因此组织能进行更多深入开发与测试,并同时进行更多计划。
◆ 可用性与不间断维护 — 虚拟机器与其应用程序可以轻易重新分配到替代的位置或远程数据中心。移转虚拟服务器与代管的应用程序的能力,可让系统不需要停用应用程序就能执行事先规划的硬件与软 件维护工作。
◆ 用程序更安全 — 针对每个应用程序建立虚拟机器,可将弱点隔离并减至最少。保护范围可能延伸到应用程序、链接库、服务与操作系统。
◆ 强对配置更改的管理 — 透过能将服务器复原至已仓储影像的功能,可免除对执行中生产应用程序进行的未经批准变更。
◆ 按需扩展— 能将虚拟机器映像自动部署到现有硬件上,在颠峰需求时刻增加更多处理能力。在使用量暴增的情况逐渐消退之后,可将运算资源重新分配至其它活动。