网络:Xen理解

  Xen是由剑桥大学计算机实验室开发的一个开源项目。是一个直接运行在计算机硬件之上的用以替代操作系统的软件层,它能够在计算机硬件上并发的运行多个客户操作系统(Guest OS)。

一.Xen虚拟化类型

  Xen对虚拟机的虚拟化分为两大类,半虚拟化(Paravirtualization)和完全虚拟化(Hardware VirtualMachine)。

  1.半虚拟化:

    半虚拟化(Paravirtualization)有些资料称为“超虚拟化”,简称为PV,是Xen主导的虚拟化技术。这种技术允许虚拟机操作系统感知到自己运行在Xen Hypervisor上而不是直接运行在硬件上,同时也可以识别出其他运行在相同环境中的客户虚拟机。

  在Xen Hypervisor上运行的半虚拟化的操作系统,为了调用系统管理程序(Xen Hypervisor),要有选择地修改操作系统,当前系统必须已经移植到 Xen 架构的Linux 内核。

  2.完全虚拟化:

    完全虚拟化(Hardware Virtual Machine)又称“硬件虚拟化”,简称HVM,是指运行在虚拟环境上的虚拟机在运行过程中始终感觉自己是直接运行在硬件之上的,并且感知不到在相同硬件环境下运行着其他虚拟机的虚拟技术。

    在Xen Hypervisor运行的完全虚拟化虚拟机,所运行的操作系统都是标准的操作系统,即:无需任何修改的操作系统版本,在Xen上虚拟的Windows虚拟机必须采用完全虚拟化技术。

二.Xen基本组件

  1.Xen Hypervisor:

    直接运行于硬件之上,是Xen客户操作系统与硬件资源之间的访问接口。通过将客户操作系统与硬件进行分类,Xen管理系统可以允许客户操作系统安全,独立的运行在相同硬件环境之上。Xen Hypervisor是直接运行在硬件与所有操作系统之间的基本软件层。它负责为运行在硬件设备上的不同种类的虚拟机(不同操作系统)进行CPU调度和内存分配。Xen Hypervisor对虚拟机来说不单单是硬件的抽象接口,同时也控制虚拟机的执行,让他们之间共享通用的处理环境。

    注:Xen Hypervisor不负责处理诸如网络、外部存储设备、视频或其他通用的I/O处理。

  2.Domain 0:

    运行在Xen管理程序之上,具有直接访问硬件和管理其他客户操作系统的特权的客户操作系统。

    Domain 0 是经过修改的Linux内核,是运行在Xen Hypervisor之上独一无二的虚拟机,拥有访问物理I/O资源的特权,并且可以与其他运行在Xen Hypervisor之上的其他虚拟机进行交互。所有的Xen虚拟环境都需要先运行Domain 0,然后才能运行其他的虚拟客户机。Domain 0 在Xen中担任管理员的角色,它负责管理其他虚拟客户机。

    在Domain 0中包含两个驱动程序,用于支持其他客户虚拟机对于网络和硬盘的访问请求。这两个驱动分别是Network Backend Driver和Block Backend Driver。Network Backend Driver直接与本地的网络硬件进行通信,用于处理来自Domain U客户机的所有关于网络的虚拟机请求。根据Domain U发出的请求Block Backend Driver直接与本地的存储设备进行通信然后,将数据读写到存储设备上。

  3.Domain U:

    运行在Xen管理程序之上的普通客户操作系统或业务操作系统,不能直接访问硬件资源(如:内存,硬盘等),但可以同时存在多个。

    作为客户虚拟机系统,Domain U在Xen Hypervisor上运行并行的存在多个,他们之间相互独立,每个Domain U都拥有自己所能操作的虚拟资源(如:内存,磁盘等)。Xen允许单独一个Domain U进行重启和关机操作而不影响其他Domain U。

三.Xen体系架构

    Xen 的 VMM ( Xen Hypervisor ) 位于操作系统和硬件之间,负责为上层运行的操作系统内核提供虚拟化的硬件资源,负责管理和分配这些资源,并确保上层虚拟机(称为域 Domain)之间的相互隔离。Xen采用混合模式,因而设定了一个特权域用以辅助Xen管理其他的域,并提供虚拟的资源服务,该特权域称为Domain 0,而其余的域则称为Domain U。

    Xen向Domain提供了一个抽象层,其中包含了管理和虚拟硬件的API。Domain 0内部包含了真实的设备驱动(原生设备驱动),可直接访问物理硬件,负责与 Xen 提供的管理 API 交互,并通过用户模式下的管理工具来管理 Xen 的虚拟机环境。

    Xen2.0之后,引入了分离设备驱动模式。该模式在每个用户域(Domain U)中建立前端(frontend)设备,在特权域(Domain 0)中建立后端(backend)设备。所有的用户域操作系统像使用普通设备一样向前端设备发送请求,而前端设备通过IO请求描述符(IO descripror ring)和设备通道(device channel)将这些请求以及用户域的身份信息发送到处于特权域中的后端设备。这种体系将控制信息传递和数据传递分开处理。

    在Xen体系结构设计中,后端设别运行的特权域被赋予一个特有的名字——隔离设备域(Isolation Device Domain, IDD),而在实际设计中,IDD 就处在Domain 0中。所有的真实硬件访问都由特权域的后端设备调用本地设备驱动(native device drive)发起。前端设备的设计十分简单,只需要完成数据的转发操作,由于它们不是真实的设备驱动程序,所以也不用进行请求调度操作。而运行在IDD中的后端设备,可以利用Linux的现有设备驱动来完成硬件访问,需要增加的只是IO请求的桥接功能——能完成任务的分发和回送。

原文地址:https://www.cnblogs.com/apak/p/9090293.html

时间: 2024-08-09 18:45:29

网络:Xen理解的相关文章

Tensorflow的MNIST进阶教程CNN网络参数理解

背景 问题说明 分析 LeNet5参数 MNIST程序参数 遗留问题 小结 背景 之前博文中关于CNN的模型训练功能上是能实现,但是研究CNN模型内部结构的时候,对各个权重系数w,偏差b的shape还是存在疑惑,为什么要取1024,为什么取7*7*64,最近找到了一些相关资料,对这个问题有了新的理解,下面和大家分享一下. 问题说明 # Input Layer x = tf.placeholder('float',[None,784]) y_ = tf.placeholder('float',[N

Docker 网络之理解 bridge 驱动

笔者在前文<Docker 网络之进阶篇>中介绍了 CNM(Container Network Model),并演示了 bridge 驱动下的 CNM 使用方式.为了深入理解 CNM 及最常用的 bridge 驱动,本文将探索 bridge 驱动的实现机制.说明:本文的演示环境为 ubuntu 16.04. dokcer0 网桥 在 Ubuntn 上安装 docker 后,宿主机上默认被创建了一个名为 docker0 的网卡,其 IP 为 172.17.0.1/16: 有了这个网卡,宿主机还会在

python网络编程理解

TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Microsoft都有各自的网络协议,互不兼容,这就好比一群人有的说英语,有的说中文,有的说德语,说同一种语言的人可以交流,不同的语言之间就不行了. 为了把全世界的所有不同类型的计算机都连接起来,就必须规定一套全球通用的协议,为了实现互联网这个目标,互联网协议簇(Internet Protocol Suite

对sppnet网络的理解

前言: 接着上一篇文章提到的RCNN网络物体检测,这个网络成功的引入了CNN卷积网络来进行特征提取,但是存在一个问题,就是对需要进行特征提取图片大小有严格的限制.当时面对这种问题,rg大神采用的是对分割出的2000多个候选区域,进行切割或者缩放形变处理到固定大小,这样虽然满足了CNN对图片大小的要求,确造成图片的信息缺失或者变形,会降低图片识别的正确率. 如下图所示: 正文: 何凯明大神在看到RCNN模型,分析了CNN模型的特点后:由卷积部分和全连接两部分构成,而对于卷积部分而言,比如任意图片大

理解OAuth 2.0 - 阮一峰的网络日志

原文:理解OAuth 2.0 - 阮一峰的网络日志 理解OAuth 2.0 作者: 阮一峰 日期: 2014年5月12日 OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版. 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749. 一.应用场景 为了理解OAuth的适用场合,让我举一个假设的例子. 有一个"云冲印"的网站,可以将用户储存在Google的照片,冲印出来.用户为了使用

xen下载

Citrix Xenserver,思杰基于Linux的虚拟化服务器.Citrix XenServer是一种全面而易于管理的服务器虚拟化平台,基于强大的 Xen Hypervisor 程序之上.Xen技术被广泛看作是业界最快速.最安全的虚拟化软件.XenServer 是为了高效地管理 Windows(R) 和 Linux(R)虚拟服务器而设计的,可提供经济高效的服务器整合和业务连续性. 网站连接来原网络 xen下载http://www.52yunan.com/2016/09/13/xen%e4%b

浅谈iOS网络编程之一入门

计算机网络,基本上可以抽象是端的通信.实际在通讯中会用到不同的设备,不同的硬件中,为了能友好的传输信息,那么建立一套规范就十分必要了.先来了解一些基本概念 了解网络中传输的都是二进制数据流.  2.了解网络编程概念. 认识网络: // 网络概念 <1> 经常见到的: 网卡/网线/IP地址/子网掩码/路由地址/DNS服务器地址 作用? // <2> 容易忽略的:MAC地址/数据/数据包 // <3> 网络编程的概念:客户端/服务器/请求/响应/数据流 // 网络是数据交互

西安网络推广公司哪家好-诺可可网络

要想深入了解网络推广,首先你必须的知道什么是网络推广,广义上讲,企业从开始申请域名.租用空间.网站备案.建立网站.直到网站正式上线开始就算是介入了网络推广活动,而通常我们所指的网络推广是指通过互联网的种种手段,进行的宣传推广等活动,确切的说这也是一种互联网营销的一部分,即通过互联网这类的推广最终达到提高转化率.叫网络推广.但其实也有狭义的意思,网络推广的载体是互联网,离开了互联网的推广就不算是网络推广. 这点我们可以分为两种:1.做好自身的用户体验,即口碑. 2.利用互联网平台工具进行推广.  

oracle网络 监听

这里讲解一下我对oracle网络的理解(静态监听): 监听的工作原理: 监听说白了,就是个套接字+PROTOCOL(协议) 套接字是通信的基石,是支持TCP/IP协议网络通信的基本单元.可以将套接字看作不同主机 之间的进程双向通信的端点. 一个完整的网络通讯必须具备协议.本地地址.本地端口.远程地址.远程端口和协议这5个基本要素,在创建套接字时确定了协议类型,而在绑定套接字确定了本地地址和本地端口,远程地址和远程端口.套接字即就是ip+port . 1.数据库启动起来之后(数据文件.控制文件.日