7.5.2 Xen虚拟化技术
本节中将以主流的Xe n体系架构为例说明虚拟化系统的一般技术架构和工作原理。
1 Xe n体系结构Xe n Hype rvis or
Xen Hypervisor 即Xen的VMM位于操作系统和硬件之间负责为上层运行的操作系统内核提供虚拟化的硬件资源负责管理和分配这些资源并确保上层虚拟机称为域之间的相互隔离。Xe n采用混合模式 因而设定了一个特权域用以辅助Xen管理其他的域并提供虚拟的资源服务该特权域称为Domain 0而其余的域则称为DomainU。
Xe n的体系架构如图7-25所示。Xe n向Do ma in提供了一个抽象层其中包含了管理和虚拟硬件的API。 Do m0内部包含了真实的设备驱动原生设备驱动 可直接访问物理硬件负责与Xe n提供的管理AP I交互并通过用户模式下的管理工具来管理Xe n的虚拟机环境。
Xen向Do main提供了VCPU、虚拟MMUMemo ry Management Unit等基本的虚拟硬件和基本机制事件通道 并向Domain提供了虚拟域管理API 控制接口 。对Domain设备的访问 Xen也提供了相应的硬件接口 安全硬件接口 以保证设备访问得以安全进行。
在Xe n体系架构中涉及到的基本概念包括
控制接口仅能被Do m0使用用于帮助Do m0控制和管理其他的Do main。控制接口提供的具体功能包括Domain的创建、销毁、暂停、恢复及迁移对其他Domain的CPU调度、 内存分配及设备访问等。
安全硬件接口提供除虚拟CPU、MMU之外的所有硬件虚拟工作包括DMA/IO、驱动程序、虚拟的PCI地址配置、虚拟硬件中断等。该接口只能被具有原生设备驱动的Do ma in使用而向其他Do ma in则仅通过设备通道提供虚拟硬件服务。VCPU Xen为每个Domain建立了VCPU结构用以接收Gue st O S中传递的指令其中大部分的指令被VCPU直接提交到物理CPU执行而对于特权指令则需要经过确认后交由Xe n代为执行。
虚拟MMU用于帮助Guest O S完成虚拟地址到机器地址的转换。 Xen系统中增加了客户物理地址层 因而地址由原来的二层结构变为三层结构。Xe n通过虚拟MMU仍能使用硬件MMU来完成地址转换。
事件通道是用于Do main和Xen之间、Do main相互之间的一种异步事件通知机制用于处理Guest OS中的虚拟中断、物理中断以及Domain之间的通信。设备管理器位于Dom0和IDDIndependent Device Domain中可作为系统BIO S的扩展用于向所有的设备提供通用的管理接口并负责在Domain启动时加载特定的设备驱动、建立管理设备通道、提供硬件设备配置接口并处理设备访问错误。
2 C PU虚拟化
1半虚拟化
对CPU指令集不提供硬件支持的情况 Xen只能采取半虚拟化的方案通过修改Guest OS的内核对有缺陷的指令进行替换。在这种模式下 Xen位于操作系统和硬件之间为其上运行的Guest OS内核提供虚拟化的硬件环境 因而Xen具有最高
特权级而Guest OS被迫迁移到相对低的特权级中称为特权解除Privilege Deprivile ging 。x86架构中 C P U提供了4个特权级0环到3环以及分段和分页的内存保护机制但目前多数操作系统中均只使用到了0环和3环两个特权级对应地存在两种特权解除方式 0/1/3模型操作系统运行在1环、 VMM运行在0环、应用程序运行在3环和0/3模型操作系统和应用程序运行在3环 VMM运行在0环 。无论采用哪种模型 Xe n都将替代原操作系统内核占据最高的特权级 因而在Xe n 下运行的Guest OS内核将无法执行某些特权指令并将产生一般保护性错误 Xen 必须通过超级调用向Guest OS提供执行这些特权指令执行的接口。
2硬件虚拟化
面前x86架构中通过引入新的指令和处理器运行模式使得VMM和Guest OS运行在不同的模式下 Guest OS只能在受控模式下运行而在需要VMM进行监控和模拟时由硬件支持模式的切换。在硬件虚拟化方式下不需要对Guest OS内核进行修改而是直接由硬件完成指令的捕获。
3 内存虚拟化
在半虚拟化模式下 Xe n的内存虚拟化通过内存分段保护机制使得Xe n和Guest O S共存于同一个内存地址空间中简化了Xe n对Do ma in内存的分配和管理工作同时利用内存分页机制 Xen可保证各Do ma in在内存上的有效隔离。
Xe n需要确保任意两个非特权Do ma in不会访问到同一内存区虚拟域 因而每一页或页目录的更新必须经过Xe n的确认 以保证每个Do ma in只能控制自己的页表。通过修改Guest OS的内核 Xen可让Guest OS也参与到内存管理工作中来 Xen 可更多关注于内存虚拟化中更重要的内存隔离工作 同时也可让硬件MMU在Guest OS的三层地址转换中发挥作用。
在物理内存的管理中 Xe n引入了VMwa re最先采用的气球驱动模型来调节分配给各Domain的物理内存。
气球驱动可作为驱动程序运行在Guest OS 即Domain中 Guest OS通过该驱动与Xe n通信。当Do ma in需要更多内存时将通过气球驱动向Xe n提交内存申请请求 Xe n可向气球驱动减压以便将将气球驱动所占用的部分空闲内存或通过气球驱动从其他Do ma in回收的内存分配给提交请求的Do main。如果Xen的可用空余内存过低需要从某个Domain回收部分占用的内存 Xen可向气球驱动加压使气球膨胀 Guest OS将回收页面、释放内存以便给本地气球分配足够的内存空间然后气球驱动将分配到的页面传给Xe n Xe n将这些空闲内存集中起来备用。相关的工作原理如图7-26所示。
4 I/O虚拟化
在半虚拟化模式下 Xe n采用了分离设备驱动模型来实现I/O的虚拟化。该模型将设备驱动划分为前端驱动程序、后端驱动程序和原生驱动三个部分其中前端驱动在Do mU中运行而后端驱动和原生驱动在Do m0 IDD中运行。前端驱动负责将Guest O S的I/O请求传递到Dom0 IDD中的后端驱动后端驱动对I/O请求解析并映射到物理设备提交给相应的设备驱动程序控制硬件完成I/O操作。后端驱动检查接收到的I/O请求的有效性并进行虚拟设备地址到物理设备地址的转换。转换之后后端驱动将通过Dom0 IDD中Guest OS提供I/O接口 间接地控制原生设备驱动完成提交的请求。
前端驱动和后端驱动之间I/O请求的传递是通过Xe n内部的一个环形队列I/O环来实现的其结构参见图7-27所示。 I/O环实际上是Xen提供的一块供Do mU和Do m0 IDD访问的共享内存。
针对大量DMA数据在Do mU和Do m0 IDD之间的高效传递需求 Xen提供了授权表Grant Tab le机制。每个Domain都有一个授权表用以指明其内部哪些页面可以被哪些Domain所访问。而Xen内部存在一个活动授权表Active Grant Tab le用于缓存来自各Do ma in授权表的活动表项内容。
当DomU中的Guest OS需要进行DMA操作时前端驱动会为对应的数据页面生成一个授权描述Grant Reference,GR并将授权描述和请求一起放入I/O环。当Do m0 I DD从I/O环中取出请求时将根据授权描述 向Xe n请求锁定该页面。Xen接收到请求后在活动授权表或Guest OS的授权表中确认是否已授权特权域访问该页面通过检查后表明该页面可安全地进行DM A操作。Do m0 I DD在接收到Xe n的响应后即可开始向真实硬件发送DM A请求了。
7.5.3其他虚拟化产品
1 VMware VI Virtual Infrastructure
其实VMware VI不是一款服务器虚拟化软件而是一组服务器虚拟化软件的组合包具体包括了
VMware ESX Server用于虚拟化服务器、存储和网络的平台。
VMware VMFS Virtual Machine F ile S ystem 用于存储虚拟化的高性能群集文件系统。
VMware Virtual SMP为虚拟机提供多处理器支持。
VMware VirtualCenter为IT基础架构提供集中化管理、操作自动化和优化。VMware High Availab ility HA 为虚拟机提供经济高效的高可用性。
VMware DRS Distributed Resource Scheduler 为虚拟机提供动态平衡和资源分配。
VMware VMotion虚拟机实时迁移且服务不中断。
VMware Conso lidated Backup用于虚拟机的集中式备份软件。
VMware ESX Server采用半虚拟化技术可直接将其安装到服务器裸机上并配置虚拟机而无需宿主操作系统。VMware ESX Server将每个虚拟机与服务器硬件和其他虚拟机进行隔离 以确保单个虚拟机崩溃不会影响到其他虚拟机应用程序只能通过配置的网络连接进行通信。 VMware ESX Server将虚拟机环境封装为一组文件 以便于备份、移动和复制。
VMware ESX Server将物理机器的资源分离出来形成一个逻辑的资源池并负责按需将系统资源分配给虚拟机使用并确保服务器资源能被远程管理、 自动预制和标准化。 ESX Server提供了过量使用内存的功能 即虚拟机的内存总和可以安全地超越服务器的物理内存总量该特性可提高服务器内存的整体利用效率。
2微软Hype r-V
微软的Windows Server 2008是一个原生架构的虚拟机产品可直接控制硬件资源其中的Hypervisor部分被称为Hyper-V。 Hyper-V在Windows Server 2008中仅是一个服务器角色但其功能几乎涵盖了VMware ESX的所有功能范围直接挑战VMwa re的行业霸主地位。
Hyper-V的系统架构如图7-28所示。其中的每个分区都代表了一台虚拟机父分区必须运行Windows Server 2008其中包含了一个虚拟化堆栈该堆栈包括了管理工具和自动操作组件如WMI界面 。每个子分区可以运行各自的子操作系统。所有的操作系统都必须运行在分区中。
子分区和父分区之间的通信主要通过VMBus进行 VMBus使用共享内存在同一主机服务器上与虚拟机进行安全通信。
Hyper-V采用了微内核架构使得Hypervisor本身很小只有300k左右 只有少量的程序运行在具有特权的Hypervisor层次上也可保证系统整体更安全系统的稳定性也得以大幅提高。
Hyper-V采用了VSP/VSC架构其中VSP是虚拟化服务提供方运行在宿主操作系统之上而VSC是虚拟化服务客户端运行在虚拟机操作系统之上两者之间将通过VMBus组件进行连接。位于子分区的应用程序发出I/O操作请求后将通过本地虚拟机操作系统平台的I/O堆栈调用虚拟的设备驱动VSC 。VSC接收到I/O请求后通过VMBus将请求转发到父分区的对应VSP VSP对操作请求进行验证和处理后最终通过本地的I/O堆栈和硬件设备驱动访问物理设备完成操作。Hyper-V可支持4 CPU的Windows Server 2008虚拟机和2 CPU的Windows Server 2003虚拟机。当然该特性并非Hyper-V所独有。多处理器虚拟机可支持更高的工作负载但管理更多的处理器也将带来额外的处理负荷 因而应该按需使用多处理器虚拟机。
buyvm正式对外开卖第四个数据中心“迈阿密”的块存储服务,和前面拉斯维加斯、纽约、卢森堡一样,依旧是每256G硬盘仅需1.25美元/月,最大支持10T硬盘。配合buyvm自己的VPS,1Gbps带宽、不限流量,在vps上挂载块存储之后就可以用来做数据备份、文件下载、刷BT等一系列工作。官方网站:https://buyvm.net支持信用卡、PayPal、支付宝付款,支付宝付款用的是加元汇率,貌似...
diyvm怎么样?diyvm商家VPS主机均2GB内存起步,三个地区机房可选,使用优惠码后每月69元起;DiyVM独立服务器开设在香港沙田电信机房,CN2线路,5M带宽,自动化开通上架,最低499元/月,配置是L5630*2/16G内存/120G SSD硬盘。DiyVM是一家成立于2009年的国人主机商,提供的产品包括VPS主机、独立服务器租用等,产品数据中心包括中国香港、日本大阪和美国洛杉矶等,...
小渣云 做那个你想都不敢想的套餐 你现在也许不知道小渣云 不过未来你将被小渣云的产品所吸引小渣云 专注于一个套餐的商家 把性价比 稳定性 以及价格做到极致的商家,也许你不相信36元在别人家1核1G都买不到的价格在小渣云却可以买到 8核8G 高配云服务器,并且在安全性 稳定性 都是极高的标准。小渣云 目前使用的是美国超级稳定的ceranetworks机房 数据安全上 每5天备份一次数据倒异地 支持一...