Xen

Posted 赏月斋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xen相关的知识,希望对你有一定的参考价值。

Xen是一个开放源代码虚拟机监视器,由剑桥大学开发。它打算在单个计算机上运行多达128个有完全功能的操作系统

在旧(无虚拟硬件)的处理器上执行Xen,操作系统必须进行显式地修改(“移植”)以在Xen上运行(但是提供对用户应用的兼容性)。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。

2013年4月,Linux基金会宣布Xen成为Linux基金会合作项目。[2]

技术分享

使用

IBM经常在其主机和服务器上使用虚拟机来尽可能发挥其性能,并类似chroot监禁那样将程序置于隔离的虚拟OS中以增强安全性。除此之外,它还能使不同和不兼容的OS运行在同一台计算机上。Xen支持在运行时进行迁移,保证正常运行并且避免宕机。

Xen的半虚拟化

Xen通过一种叫做半虚拟化的技术获得高效能的表现(较少的效能损失,典型的情况下大约损失2%,在最糟的情况下会有8%的效能耗损;与其它使用完全的虚拟化却造成最高到20%损耗的其他解决方案形成一个明显的对比),甚至在某些与传统虚拟技术不友好的架构上(如x86),Xen也有极佳的表现。但是这要求虚拟机使用经过修改的客户端操作系统,早期能有限的支持Linux,后来支持将BSD等部分类Unix系统作为客户端操作系统。与那些传统透过软件模拟实现硬件的虚拟机不同,在3.0版本及在Intel VT-X支援前的Xen需要让客户端操作系统(guest operating systems)与Xen API进行连接。到目前为止,这样连结已经可以运用在NetBSDGNU/LinuxFreeBSD贝尔实验室Plan 9系统上。在Brainshare 2005会议上,Novell展示了NetWare与Xen的连通。与Windows XP连通的技术曾在Xen开发初期进行,但微软的协议未能允许它发布。Sun微系统公司也正积极研究Solaris与Xen的连结,使其能在Xen平台上运作。

Xen的完全虚拟化

Intel为Xen贡献了补丁以支持其VT-X架构扩展,而AMD则进行修改以支持其AMD-V架构扩展。如果系统处理器支持虚拟硬件扩展(Intel和AMD对本地支持虚拟化的扩展),这项技术将允许未经修改的操作系统运行在Xen虚拟机中。事实上,这意味着性能的提升,用户也可以在不违背任何修改限制协议的情况下对Windows进行虚拟。也就是说,Xen的完全虚拟化模式允许Xen虚拟机运行未经修改的Windows等操作系统。但是在x86平台上,只有支持x86虚拟化的电脑才支持Xen的全虚拟化模式。

虚拟机的迁移

Xen 虚拟机可以在不停止的情况下在多个物理主机之间即时迁移(live migration)。在操作过程中,虚拟机在没有停止工作的情况下内存被反复的复制到目标机器。虚拟机在最终目的地开始执行之前,会有一次60-300 毫秒的非常短暂的暂停以执行最终的同步化,给人无缝迁移的感觉。类似的技术被用来暂停一台正在运行的虚拟机到磁盘,并切换到另外一台,第一台虚拟机在以后 可以恢复。

系统平台支援

Xen目前可以运行在x86x86-64系统上,并正在向IA64PPC移植。移植到其他平台从技术上是可行的,未来有可能会实现。

Unix-like系统中的Xen

参见

Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发。它打算在单个计算机上运行多达100个满特征的操作系统操作系统必须进行显式地修改(“移植”)以在Xen上运行(但是提供对用户应用的兼容性)。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。
中文名
 Xen
采    用
ICA协议 
技    术
做准虚拟化 
实    质
开源虚拟化技术 

定义

编辑
Xen采用ICA协议[1]  ,通过一种叫做准虚拟化的技术获得高性能,甚至在某些与传统虚拟技术极度不友好的架构上(x86),Xen也有上佳的表现。与那些传统通过软件模拟实现硬件的虚拟机不同,在Intel VT-X支持下3.0版本之前的Xen需要系统的来宾权限,用来和Xen API进行连接。到目前为止,这种技术已经可以运用在NetBSD, GNU/Linux, FreeBSD和Plan 9系统上。Sun微系统公司也正在积极地将Solaris移植到Xen平台之上。
Xen虚拟机可以在不停止的情况下在多个物理主机之间实时迁移。在操作过程中,虚拟机在没有停止工作的情况下内存被反复的复制到目标机器。虚拟机在最终目的地开始执行之前,会有一次60-300毫秒的非常短暂的暂停以执行最终的同步化,给人无缝迁移的感觉。类似的技术被用来暂停一台正在运行的虚拟机到磁盘,并切换到另外一台,第一台虚拟机在以后可以恢复。
XEN 是一个基于X86架构、发展最快、性能最稳定、占用资源最少的开源虚拟化技术。Xen可以在一套物理硬件上安全的执行多个虚拟机,与 Linux 是一个完美的开源组合,Novell SUSE Linux Enterprise Server 最先采用了XEN虚拟技术。它特别适用于服务器应用整合,可有效节省运营成本,提高设备利用率,最大化利用数据中心的IT基础架构。
XEN 是英国剑桥大学计算机实验室开发的一个虚拟化开源项目,XEN 可以在一套物理硬件上安全的执行多个虚拟机,它和操作平台结合的极为密切,占用的资源最少。编写文档时稳定版本为XEN3.0。支持万贯虚拟化和超虚拟化。以高性能、占用资源少著称,赢得了IBM、AMD、HP、Red Hat和Novell等众多世界级软硬件厂商的高度认可和大力支持,已被国内外众多企事业用户用来搭建高性能的虚拟化平台。
IBM经常在其主机和服务器上使用虚拟机来尽可能发挥其性能,并类似chroot监禁那样将程序置于隔离的虚拟OS中以增强安全性。除此之外,它还能使不同和不兼容的OS运行在同一台计算机上。Xen对虚拟机活跃迁移的支持允许工荷平衡和避免停时。

工作原理

编辑
在Xen使用的方法中,没有指令翻译。这是通过两种方法之一实现的。第一,使用一个能理解和翻译虚拟操作系统发出的未修改指令的CPU(此方法称作完全虚拟化或full virtualization)。另一种,修改操作系统,从而使它发出的指令最优化,便于在虚拟化环境中执行(此方法称作准虚拟化或paravirtualization)。 
在Xen环境中,主要有两个组成部分。一个是虚拟机监控器(VMM),也叫hypervisor。Hypervisor层在硬件与虚拟机之间,是必须最先载入到硬件的第一层。Hypervisor载入后,就可以部署虚拟机了。在Xen中,虚拟机叫做“domain”。在这些虚拟机中,其中一个扮演着很重要的角色,就是domain0,具有很高的特权。通常,在任何虚拟机之前安装的操作系统才有这种特权。
Domain0要负责一些专门的工作。由于hypervisor中不包含任何与硬件对话的驱动,也没有与管理员对话的接口,这些驱动就由domain0来提供了。通过domain0,管理员可以利用一些Xen工具来创建其它虚拟机(Xen术语叫domainU)。这些domainU也叫无特权domain。这是因为在基于i386的CPU架构中,它们绝不会享有最高优先级,只有domain0才可以。
在domain0中,还会载入一个xend进程。这个进程会管理所有其它虚拟机,并提供这些虚拟机控制台的访问。在创建虚拟机时,管理员使用配置程序与domain0直接对话。 [2]   

性能比较

编辑
与其它VMM的比较
Denali使用准虚拟化技术来提高x86电脑上虚拟机的性能。Denali的虚拟机为因特网服务专门支持了最小化的操作系统。系统可以运行上千虚拟机。Xen与Denali不同,因为它试图运行适当数量的完整操作系统,而非大量轻量级操作系统。
VMware为x86提供虚拟机,这些虚拟机可以运行未修改的PC操作系统。所涉及的技术极为复杂,也导致了性能的(有时相当显著)下降。Xen牺牲了完全的二进制兼容,换取相对的简易性和改善的性能。
KVM在全虚拟化情况下性能优于Xen,但Xen在运行修改过的操作系统时效率更高。

半虚拟化

编辑
Xen通过一种叫做半虚拟化的技术获得高效能的表现(较少的效能损失, 典型的情况下大约损失 2%, 在最糟的情况下会有 8% 的效能耗损; 与其它使用完全的虚拟化却造成最高到 20% 损耗的其他解决方案形成一个明显的对比),甚至在某些与传统虚拟技术极度不友好的架构上(x86),Xen也有极佳的表现。与那些传统通过软件模拟实现硬件的虚拟机不同,在3.0版本及在Intel VT-X支援前的Xen需要让客户操作系统(guest operating systems)与Xen API进行连接。到目前为止,这样连结已经可以运用在NetBSD, GNU/Linux, FreeBSD和贝尔实验室的Plan 9系统上。在Brainshare 2005会议上,Novell展示了NetWare与 Xen的连通。与Windows XP连通的技术曾在Xen开发初期进行,但微软的协议未能允许它发布。Sun微系统公司也正积极研究Solaris与Xen的连结,使其能在Xen平台上运作。

全虚拟化

编辑
Intel对Xen贡献修改以支持其VT-X Vanderpool架构扩展。如果主系统支持Vanderpool或者Pacifica扩展(Intel和AMD对本地支持虚拟化的扩展),这项技术将允许未修改的客作业系统运行在Xen虚拟机中。事实上,那意味著性能的提升,并且你可以在没有进行任何协议不允许的修改的情况下对Windows进行虚拟。

平台支持

编辑
Xen可以运行在x86,x86_64和ARM系统上,并正在向IA64、PPC移植。移植到其他平台从技术上是可行的,未来有可能会实现。

应用领域

编辑
Xen凭着独特的虚拟化性能优势赢得了越来越的广泛应用。被用户充分应用在以下领域:
◆ 服务器应用整合:在虚拟机范围内,在一台物理主机上虚拟出多台服务器, 以安装多个不同的应用,充分利用服务器的物理性能,灵活进行服务器的应用迁移。
软件开发测试:用户可利用Linux的低成本优势非常灵活地搭建多个应用系统开发平台,由此节省了大量的开发成本,加快了开发进程。
◆ 集群运算:和单独的管理每个物理主机相比较,虚拟机管理更加灵活,同时在负载均衡方面,更易于控制和隔离。
◆ 多操作系统配置:以开发和测试为目的,同时运行多个操作系统;
◆ 内核开发:在虚拟机的沙盒中,做内核的测试和调试,无需为了测试而单独架设一台独立的机器;
◆ 为客户操作系统提供硬件技术支持:可以开发新的操作系统, 以得益于现存操作系统的广泛硬件支持,比如Linux;

应用案例

编辑
1) 腾讯公司---中国最大的Web服务公司
腾讯公司经过多方测试比较后,最终选择了Novell SUSE Linux Enterprise Server中的Xen超虚拟化技术。该技术帮助腾讯改善了硬件利用率以及提高系统负载变化时的灵活性。客户说:“在引入Xen超虚拟化技术后,我们可以在每台物理机器上运行多个虚拟服务器,这意味着我们可以潜在的显著扩大用户群,而不用相应地增加硬件成本。”
2) 宝马集团----驰名世界的高档汽车生产企业
宝马集团(BMW Group)利用Novell带有集成Xen虚拟化软件的SUSE Linux Enterprise Server来执行其数据中心的虚拟化工作量,从而降低硬件成本、简化部署流程。采用虚拟化技术使该公司节省了高达70%的硬件成本,同时也节省了大量的电力成本。
3)云谷科技---基于Xen的VPS管理平台研发公司
XenSystem,是基于Xen的虚拟技术开发的一款VPS管理系统。这一款功能VPS智能管理平台,运用IT业界最新的“云计算”和“云储存”的设计理念,支持自动化的VPS云主机和服务器的实时管理功能,具备良好的兼容性和稳定性,从而简单高效地管理VPS主机的运作,与Hyper-V基于Xen的虚拟化技术后使VPS更趋稳定,运作更为高效。这也意味着IDC的运作成本会大大地降低,利润得以增加。

Xen与其它开源项目

编辑
使用Xen时,开源项目与其它项目的一些差异有时会让人感到迷惑。Xen 起源于英国的剑桥大学计算机实验室,该实验室开发了Xen开源项目。这个项目包括虚拟机监控器,即Xen环境的核心组成部分。除了剑桥大学的科学家以外, 很多其它IT领域集团也都参与了Xen开源项目,其中包括IBM、AMD、HP、Red Hat和Novell。
由于Xen方法使虚拟化领域迈出了一大步,因此Xen的创始人成立了他们 自己的公司XenSource(已被Citrix收购)。他们成立XenSource的目的是为了基于Xen hypervisor而提供一个完善的虚拟化解决方案,与其它虚拟化产品(如VMware ESX)竞争。其它企业也在它们自己的产品中综合应用了Xen hypervisor。例如,Linux厂商Red Hat和Novell公司都在自己的操作系统中包含了各自版本的Xen。由于Xen的大多数部分都是开源的,所以这些解决方案都非常相似。

版本发布

编辑
2010年04月08日,开源虚拟机 Xen 发布了4.0.0 正式版。
主要的新特性包括:
改进性能和可扩展性,客户机支持64个虚拟CPU,主机支持1 TB RAM和128个物理CPU;支持blktap2 for VHD image,包括快照和克隆;HVM客户机支持虚拟内存页共享和页到内存;支持Citrix WHQL认证的Windows PV驱动等等。
2011年04月10日,Xen 4.1 发布,开源虚拟机,变化:这个版本添加了一个架构XL toolstack,它在功能上几乎相当于XM / XEND原型credit2调度程序设计为对延迟敏感的工作负载和非常大的系统中,CPU池为先进的分区,支持大型系统(> 255处理器和1 gb / 2 mb超级页面支持),支持x86先进向量扩展(AVX),和一个新的内存访问API启用集成第三方安全解决方案到Xen虚拟化环境。
2013年04月16日,开源虚拟机 Xen成为 Linux 基金会项目。

2014年03月11日,Xen发布4.4版本,更好地支持ARM架构。

以上是关于Xen的主要内容,如果未能解决你的问题,请参考以下文章

Xen

Xen入门

整理Xen理论知识

50 xen虚拟化技术基础xen虚拟化技术进阶

7xen虚拟机开机自启动配置

Xen-Server安装方法