Xen VMM

Xen VMMXen虚拟机即XenVMM(VirtualMachineMonitor),是剑桥大学计算机实验室开发的一个开源项目,它能够使用户创建更多的虚拟机,而每一个虚拟机都是运行在同一个操作系统上的实例。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

 

一、Xen起源

 

Xen VMM(virtual machine monitor)是由剑桥大学计算机实验室开发的一个Open Source 项目,目前稳定版本为Xen 3.0,主要目的是为了建立更多的虚拟机器。XenSource 的创始人Ian Pratt表示,Xen 在2002年前诞生于英国的剑桥大学,这家新创公司有意把Xen虚拟功能变成标准的计算机功能。「我们第一部是在Linux系统上普及化。」他说。 Xen 这类能将一台计算机划分为多个不同分割区的方法依赖一种被称为虚拟化(virtualization)的概念,它们使软件能够仿真真实的硬件来作执行。在VMware中,这一基础被称作是虚拟机器(virtual machine)。 VMware和Xen 之间的差异点在于:前者完全仿真计算机,因此理论上操作系统可不需更动就直接在虚拟机器上执行;Xen 则使用了被称为「paravirtualization」的技术,Pratt表示,它的效能更快,但需要对操作系统进行适当的修改。不过较高阶的软件并不需经过修正,VMware 和Xen 之间的差异点在于:VMware 完全仿真计算机,因此理论上操作系统可不需更动就直接在虚拟机器上执行;Xen 则使用了被称为「Paravirtualizatio」的技术,它的效能更快。

2005年12月Xen开发组发布了Xen 3.0,这是第一款支持芯片辅助技术的免费hypervisor软件。有了VT-x或AMD-V的硬件支持,Xen 3.0能支持任何没修改过的操作系统。XEN 3.0 所采用的虚拟技术为半虚拟化(Paravirtualization),与VMware所采用的完全虚拟化的差异,在于对底层硬件的控制效率接近实机操作,包括中断控制(IRQ)等,以及等同于实体处理器的运作效能,但也因此对硬件的支持度并不高。由于半虚拟化(Paravirtualization)技术需要对操作系统进行适当的修改,所以目前Xen 只能够在一些Linux-based 的系统上运作,也陆续受到一些信息大厂的支持,Xen 并不是第一个提出半虚拟化的软件,但执行Xen 时,消秏系统资源非常少,大约占3%,所以Xen 可算是技术上的突破。半虚拟化必须修改系统的内核,不过如果处理器能支持虚拟化,所就内核就无需异动了,例如Intel 的VT 和AMD 的Pacifica 处理器都将包括这种支持。AMD 的CPU 只有Opteron 支持AMD-V 技术,而INTEL则有Intel Core 2 Duo 及Xeon 系列才支持VT 技术。

 

Xen虚拟机有两种运行方式:完全虚拟化(full virtualization)和半虚拟化(para virtualization)。完全虚拟化提供底层物理系统的全部抽象化,且创建一个新的虚拟系统,客户机操作系统可以在里面运行。不需要对客户机操作系统或者应用程序进行修改(客户机操作系统或者应用程序像往常一样运行,意识不到虚拟环境的存在)。半虚拟化需要对运行在虚拟机上的客户机操作系统进行修改(这些客户机操作系统会意识到它们运行在虚拟环境里)并提供相近的性能,但半虚拟化的性能要比完全虚拟化更优越。  如果硬件系统中有符合Intel VT和AMD SVM的CUP,Xen虚拟化系统允许运行未经修改的客户机内核。在Intel VT或AMD SVM系统里,不必移植操作系统来部署这个体系结构。

Xen虚拟化系统支持以下内容:
支持用于完全和半虚拟化的Intel VT-x,或AMD-V Pacifica、Vanderpool技术;
支持用于ia64的Intel VT-i;
支持Linux和UNIX操作系统,包括NetBSD、FreeBSD和Solaris;
支持作为应用Intel Vanderpool或AMD Pacifica技术的未经修改的Windows客户机操作系统。
   
二、Xen支持的操作系统

主机操作系统即(Host Operating System) 在物理计算机(宿主机)上运行的操作系统,在它之上运行虚拟机软件。客户操作系统 (Guest Operating System) 运行在虚拟机中的操作系统。注意,在此它不等于桌面操作系统(Desktop Operating System)和客户端操作系统(Client Operating System),因为虚拟机中的客户操作系统可以是服务器操作系统。表1是 Xen 3.0支持的主机操作系统和客户操作系统。

表1 Xen 3.0支持的主机操作系统和客户操作系统


操作系统名称

Runs as Dom0 (主机操作系统)

Runs as DomU(客户操作系统)

Linux 2.6

可以

可以

NetBSD 3.1

不可以

可以

NetBSD 4.0_BETA2 and -CURRENT

可以

可以

Solaris 10

未知

可以


Xen Enterprise 3.2明显扩大了支持范围,新增了对Windows 2000的支持。另外,可以使用对称多处理(Symmetric Multiprocessing ,SMP)技术支持Windows Server 2003和Windows XP操作系统,使得Exchange和SQL Server可以运行地更好。客户操作的支持还增加了Red Hat的企业版Linux服务器RHEL 5和Novell的SUSE Linux企业服务器10 SP1。另外Linux的两个最成功的商业版,红帽企业版Linux 5.0和Novell的Suse Linux 10.0企业服务器版都集成了Xen。

    

 

三、Xen的原理和体系结构

虚拟化CPU对guest OS(客户操作系统)提出了几个要求。因为hypervisor插在操作系统的下层违背了惯常的关于操作系统在整个系统中特权最高的假设。为了保护hypervisor不会受到操作系统不正确行为的影响(即domain不受另一个domain的影响),guest OS就必须被改造为能够运行在较低的特权级上。很多处理器体系结构只是提供了两个特权级。在这些情况下,guest OS和应用程序共享较低的特权级。

同时,guest OS运行在单独的地址空间中以保护自己不会受到应用程序执行的影响。guest OS通过hypervisor设定虚拟的特权级和改变当前的地址空间来间接地和应用之间进行控制传递。另外,如果处理器的TLB支持地址空间标记,那么也就可以避免TLB刷新带来的高昂代价。在x86架构上有效地实现特权级的虚拟化是可能的,因为x86架构在硬件上支持四个不同的特权级。x86架构的特权级往往用圈(ring)来表示,从ring 0(最高特权)到ring 3(最低特权)。操作系统的代码运行在ring 0这个特权级上,因为再没有其它的ring能够执行那些特权指令。

ring 3通常用于执行应用代码。就我们所知,自OS/2起到现在的各个知名的x86 架构上的操作系统都还没有利用ring 1和ring 2这两个特权级的。那么,任何遵循这个通常的安排的操作系统就都可以移植到Xen上来。这个移植过程只需要做一些改动使操作系统改为运行在ring 1特权级上。这就防止了guest OS会直接执行特权指令,也保证了操作系统与运行在ring 3上的应用程序之间相隔离的安全性。图1是Xen 和Ring 关系图。图2 是Xen的体系结构。

Xen VMM

图1是Xen 和Ring 关系图

Xen VMM

图2 Xen的体系结构

 


 

在完全虚拟化环境下需要仿真现有的硬件设备,而Xen不同于此。Xen给出了一套清楚、简单的设备抽象。这就使得我们能够设计一个接口以有效地满足我们对保护性和隔离性的需求。为了做到这一点,I/O和各个domain之间的数据传递都是要经过Xen的,可以使用的方法有共享内存,异步缓冲区描述符环等。这些方法能够在Xen有效地执行确认检查的同时,为在系统中的竖直方向上传递缓冲区信息提供了一个高性能的通信机制。图3是Xen的网络接口结构。图4 是逻辑网络接口连接dom1和dom0示意图。

Xen VMM

图3 Xen的网络接口结构

讲到Xen,不能不提Xensource公司,它由原Xen项目组主要成员创立,坐落在美国硅谷的Palo Alto市。Xensource是一个典型的将学校研究成果转化为生产力的创业型企业。2006年11月,XenSource对外发布了他的第一个正式产品XenEnterprise。XenEnterprise基于Xen 3.0.3。在此之前,Red Hat在他的Fedora Core 4.0和Fedora Core 5.0中已经集成了Xen,Novell在SUSE Linux 10.1和SLES 10中也已经集成了Xen。同时Redhat他的企业版Linux中即RHEL5.0中也集成Xen。

Xen VMM

图4 逻辑网络接口连接dom1和dom0示意图

表-2是xen家族产品参数

性能参数

XenEnterprise XenServer

Multi-OS

Windows XenExpress

Virtualization

Virtualization On-Ramp to Xen

物理内存

无限制

8GB 最大

4GB最大

物理CPU

最大32 路

最大2 路

最大2 路

共享存储器

ISCSI、SAN

不支持

不支持

Windows 客户机类型

Windows Server 2003, Windows Server 2003 R2,Windows XP SP2,

Windows 2000 SP4

Windows Server 2003, Windows Server 2003 R2,Windows XP SP2,

Windows 2000 SP4

Windows Server 2003, Windows Server 2003 R2,Windows XP SP2,

Windows 2000 SP4

Linux 客户机类型

RHEL 3.6–5.0 RHEL 3.6–5.0

SLES 9.2–10.1 SLES 9.2–10.1

Debian Sarge Debian Sarge

其它标准虚​拟​主​机​(HVM)

不支持

RHEL 3.6–5.0

SLES 9.2–10.1 SLES 9.2–10.1

Debian Sarge Debian Sarge

其它标准虚​拟​主​机​(HVM)

动态移植

支持

不支持

不支持

Qos支持

支持

不支持

不支持

用户定位

OEM用户

Windows IT Pro

IT研究人员

Vlan支持

支持

不支持

不支持

64-bit 客户机支持

不支持

不支持

不支持

管理特性

一个管理终端可以多个Xen host

一个管理终端可以多个Xen host

一个管理终端可以一个Xen host

费用

每客户端需 $1,000 USD

每客户端需 $1,00 USD

免费

另外全球应用程序供应基础架构领导厂商 Citrix Systems完成收购企业级虚拟化基础架构解决方案领导商 XenSource 。透过这项合并, Citrix 成为业界最完整的虚拟化技术供应商,提供业界唯一完整涵盖应用系统、服务器及桌面虚拟化技术的端对端应用供应 基础架构。根据 Citrix 预估,该市场在未来四年将成长至近 50 亿美元的规模。随着 XenSource 的加入, Citrix 推出 Citrix XenServer 及 Citrix XenDesktop 两款全新的虚拟化解决方案,分别专攻服务器及桌面虚拟化市场,也配合 Citrix 原有的应用系统虚拟化产品,打造出业界最完整的端对端虚拟化产品。

    

 

总结:

Xen的超虚拟化(paravirtualization)是另外一种流行的虚拟化技术,它与完全虚拟化有一些类似。这种方法使用了一个 hypervisor 来实现对底层硬件的共享访问,还将与虚拟化有关的代码集成到了操作系统本身中。这种方法不再需要重新编译或捕获特权指令,因为操作系统本身在虚拟化进程中会相互紧密协作。通常通过虚拟化(Virtualization)将同一硬件上的应用程序和系统彼此隔离开来。从硬件模拟到完全硬件虚拟化,Linux 支持很多种不同形式的虚拟化。在不断增加的虚拟化技术列表中,Xen 是近来最引人注目的技术之一,它由剑桥大学开发。Xen 值得您关注,因为它具有空前的性能与安全性。

表-3是 xen和Linux 操作系统下其它虚拟技术的对比:

表 -3 Xen 与 Linux 有关的虚拟化项目对比

虚拟机名称

开发厂商及其简介

虚拟类型

执行效率

处理器体系

GuestOS是否可以跨平台

许可证类型

Xen

Virtual Iron

http://www.xensource.com/

超虚拟化

非常高

i686, x86-64, IA64, PPC

可以

GPL

OpenVZ

Swsoft

http://www.openvz.org/ ,一个操作系统级虚拟化解决方案,可以支持检查点和动态迁移。

操作系统级虚拟化

i686, x86-64, IA64, PPC, SPARC

GPL

Vmware

Vmware

http://www.vmware.com/ ,VMware 是一个流行的完全虚拟化的商业解决方案,它可以对未经修改的操作系统进行虚拟化。

完全虚拟化

中等

i686, x86-64

可以

私有

QEMU

QEMU

http://www.qemu.com/ ,QEMU 是 PC 仿真器,它们允许诸如 Windows 或 Linux 之类的操作系统在 Linux 操作系统的用户空间中运行。

仿真

i686, x86-64, IA64, PPC

可以

LGPL/GPL

KVM

http://kvm.sourceforge.net/

第一个集成到主流 Linux 内核中的虚拟化技术。通过一个可加载的内核模块,运行于可虚拟化的硬件上的 Linux 内核可以充当 hypervisor 并可支持未经修改的 Linux 和 Windows 客户操作系统。

完全虚拟化

中等

i686, x86-64

可以

GPL

z/VM

IBM

http://www.vm.ibm.com/ ,z/VM 是 System z 上的操作系统 hypervisor。其核心是 Control Program(CP),它为客户操作系统,包括 Linux。

完全虚拟化

非常高

s390

私有


 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/190685.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号