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

私有


 

 

 

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ioctl函数详解_lseek函数

    ioctl函数详解_lseek函数ioctl 函数 本函数影响由fd 参数引用的一个打开的文件。 #include<unistd.h>int ioctl(intfd,intrequest,…/*void*arg*/);返回0 :成功   -1 :出错 第三个参数总是一个指针,但指针的类型依赖于request 参数。我们可以把和网络相关的请求划分为6&nbsp…

    2022年10月17日
    0
  • DataGrip使用教程(GIF版)

    DataGrip使用教程背景今天给大家介绍一款数据库连接工具,可能你正在使用navicat、workbench、sqlyog、DBeaver等等,这里不做拉踩,没有最好的工具,更没有完美的工具,即便众多连接工具的目标肯定是趋于完美,笔者认为,适合自己的才是最好的,下面给大家介绍一下jetbrain大家族中dataGrip,特色功能很多,下面只是列举了开发中常见的操作,欢迎大家评论补充。正文1、下载和安装https://www.jetbrains.com/datagrip/激活方式和IDEA一样

    2022年4月6日
    183
  • pytorch dropout用法

    pytorch dropout用法链接:https://www.zhihu.com/question/67209417/answer/302434279刚踩的坑,差点就哭出来了TT.—我明明加了一百个dropout,为什么结果一点都没变使用F.dropout(nn.functional.dropout)的时候需要设置它的training这个状态参数与模型整体的一致.比如: Cla…

    2022年6月12日
    48
  • 8000—0004显示设备出现问题_错误0x8007005

    8000—0004显示设备出现问题_错误0x8007005关于COM类工厂80070005和8000401a错误分析及解决办法 问题描述:最近做一个web应用程序需要操作Excel文件,在开发环境下程序测试正常,部署到IIS后程序操作Excel文件,IIS报错,错误出现在创建Excel进程的语句,如下:Application myExcelApp= new ApplicationClass(); IIS提示信息如下:检索 COM 类

    2022年8月20日
    5
  • 哈希冲突原因「建议收藏」

    哈希冲突原因「建议收藏」哈希计算就是努力的把比较大的数据存放到相对较小的空间中。最常见的哈希算法是取模法。下面简单讲讲取模法的计算过程。比如:数组的长度是5。这时有一个数据是6。那么如何把这个6存放到长度只有5的数组中呢。按照取模法,计算6%5,结果是1,那么就把6放到数组下标是1的位置。那么,7就应该放到2这个位置。到此位置,哈斯冲突还没有出现。这时,有个数据是11,按照取模法,11%5=1,也等于1。那

    2022年6月18日
    35
  • DNS负载均衡与CDN内容分发技术

    DNS负载均衡与CDN内容分发技术负载均衡:负载均衡技术能平衡服务器及群众所有的服务器和请求应用之间的通信负载,根据实时响应时间进行判断,将任务交由负载最轻的服务器来处理,以实现真正的智能通信管理和最佳的服务器群性能,从而使网站始终保持运行和保证其可访问性。DNS负载均衡:为了充分利用现有服务器软件的种种优势,负载均衡最好是在服务器软件之外来完成。而最早使用的负载均衡技术是通过DNS服务中的随即名字解析来实现的。这就是

    2022年7月14日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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