Xen 虚拟化技术
Xen 是一种开源的、属于类型1(裸金属虚拟化,Baremetal Hypervisor)的虚拟化技术,它使多个同样操作系统或不同操作系统的虚拟机运行在同一个物理主机节点上成为可能并实现。
Xen 是唯一的属于类型1(裸金属虚拟化,Baremetal Hypervisor)并且开源的虚拟化技术,它被作为商业应用或开源应用的基础而加以使用,如服务器虚拟化、Infrastructure as a service(Iaas)、桌面虚拟化、安全应用、嵌入式和硬件设备等。
Xen 虚拟化技术的关键特性:
1) 轻便小型的设计:核心代码有1MB左右,它使用了微小内核设计,占用极少内存,加上有限的接口设计,使得它比其他虚拟化技术更健壮、更安全。
2) 操作系统无关性:Domain0 一般安装在Linux 操作系统中,也可以使用其他操作系统代替。如NetBSD、OpenSolaris等。
3) 驱动分离:Xen 虚拟化技术允许主要的硬件设备驱动运行与虚拟机内部,当驱动出现 crash(宕机)或者报错时,包含该驱动的虚拟机可以重启,该驱动也可以重启,这样不会影响其他的虚拟机。
4) 半虚拟化技术:运行在半虚拟化技术上的虚拟机已经经过优化,它们可以运行得更加流畅,比运行在需要硬件扩展支持的全虚拟化管理程序(HVM)上的虚拟机更快。
Xen 虚拟化关键技术有3点(包括类型、Domain0、Toolstacks)
类型:Xen 虚拟机技术支持半虚拟化(Para-Virtualization,PV)和全虚拟化(Hardware-assisted Virtualization,HVM)两种类型。
Domain0:Xen 虚拟化架构中包含一个特殊的域(Domain0),其包括硬件设备驱动和控制虚拟机的Toolstack。
Toolstacks:其涵盖各种不同的Toolstack。
普及知识点:
裸金属虚拟化(Baremetal Hypervisor),类型1:该类型的虚拟化技术直接运行在物理主机节点硬件上设备上,并且管理虚拟机操作系统。
可托管的虚拟化(Hosted Hypervisor),类型2:该类型的虚拟化技术允许运行在普通的操作系统上,和普通的计算机程序类似。
Xen 架构的重点:
1) Xen 虚拟化管理程序是一个极小的软件程序,包含大概15万行代码。Xen 虚拟化管理程序本没有I/O功能。
2) 虚拟机是一个虚拟化的环境,每个虚拟机都运行着自己的操作系统和应用程序。Xen 支持两种虚拟化模式:半虚拟化和全虚拟化模式。在同一个虚拟化管理程序上可以同时并行使用两种虚拟化模式,也可以串行在全虚拟化模式上使用半虚拟化模式,以此保证半虚拟化和全虚拟化的连续性。虚拟机与硬件之间的完全隔离的,它们没有任何权限可以访问底层的硬件和I/O设备等,因此它们也被叫做DomainU(Unprivileged Domain)。
3) Domain0:是一个特殊的虚拟机,其具备特殊的、足够的权限直接访问底层的硬件设备,处理所有底层的I/O设备请求,并与其他虚拟机(DomainU)进行交互通信。Domain0对外部开放一个接口,使用户可以控制整个系统。没有Domain0,Xen 虚拟化管理程序是无法使用的,它是整个系统启动后加载的第一个虚拟机。
4) Toolstack:包含在Domain0中,也叫作控制栈,其允许用户管理虚拟机,包括虚拟机创建、删除和配置等。
5) 终端是Toolstack 对外部开放的一个接口,用户可以通过命令行或图形化界面控制整个系统,OpenStack 和CloudStack 中的编排服务也被支持。
6) Domain0 要求一个支持 Xen 虚拟化管理程序的内核,半虚拟化的虚拟机(DomainU)要求一个支持半虚拟化的内核。比较新的Linux 操作系统基本都支持,也包括Toolstack。
虚拟化类型
半虚拟化(PV):
半虚拟化是由 Xen 虚拟化管理程序引入的一个轻量级、高效的虚拟化模式,之后被其他虚拟化平台所被采用。半虚拟化不要求物理主机节点CPU具备扩展性,但是其需要支持半虚拟化的内核和驱动。因此,虚拟机能够感知到虚拟化管理程序;同时,因为没有硬件仿真,所以运行非常高效。支持半虚拟化的内核包括Linux、FreeBSD、NetBSD和OpenSolaris。
全虚拟化(HVM):
全虚拟化需要物理主机节点CPU扩展特性的支持,为此,Intel和AMD厂商提供了Intel VT和AMD-V技术。Xen 虚拟化管理程序使用QEMU 仿真硬件设备,包括BIOS、IDE磁盘控制器、VGA图形适配器、USB控制器和网络适配器等。硬件的扩展特性提高了仿真性能,同时,全虚拟化模式下的虚拟机不再需要特殊内核的支持,这也意味着Windows 操作系统在基于Xen全虚拟化的平台也是被支持的。一般情况下,半虚拟化的虚拟机比全虚拟化的虚拟机性能表现更好,因为全虚拟化的虚拟机需要硬件仿真,会消耗一部分性能。在某些情况下,可以使用半虚拟化驱动加速全虚拟化虚拟机的I/O性能。在Windows 虚拟机中,需要安装合适的虚拟化驱动。
全虚拟化模式+半虚拟化驱动(PVHVM)
全虚拟化模式下的虚拟机可以使用指定的半虚拟化驱动,以此达到增强系统性能的目的。这些驱动是为全虚拟化环境而优化的半虚拟化驱动,绕过磁盘和网络的模式仿真,从而在全虚拟化模式下获得更好的性能。这也就意味着在使用一些虚拟机操作系统时会获得更好的性能。
基于Xen 虚拟化管理程序的半虚拟化虚拟机可以自动使用半虚拟化驱动,全虚拟化模式下使用的半虚拟化驱动仅使用于全虚拟化模式的虚拟机。
半虚拟化+硬件扩展特性(PVH)
Xen虚拟化管理程序4.4 版本中包含一种虚拟化模式,叫做基于DomainU的PVH;4.5版本又开发了一种基于Domain0(Linux和BSD)的PVH虚拟化模式,其实质是半虚拟化的虚拟机可以使用半虚拟化驱动以提高I/O性能,也可以使用硬件扩展特性提高系统性能,不需要硬件仿真。从本质上讲,PVH对两种虚拟化模式进行了合并,简化Xen虚拟化管理程序的架构。
简而言之,PVH在linux和BSD中使用了极少的代码和接口,从而减少了TCB和攻击的可能性,降低了风险。一旦对其进行相应的优化,它将具备更好的性能和更低的延迟,特别是在64位的操作系统上表现更优。PVH要求虚拟机操作系统对其提供支持,在配置文件中设置pvh=1即可启用PVH支持。
Xen 虚拟化技术的更多相关文章
- Xen虚拟化技术中PV和HVM的区别
转自 这里 Xen是一个开源的type-1或者裸机管理程序,它使得一个物理主机能够同时并行运行多个相同的或者不同的操作系统实例.Xen是目前唯一的开源可得的type-1管理程序.Xen被应用于许多商业 ...
- Xen虚拟化技术详解---第四章----申请超级调用
内核驱动程序privcmd负责将位于GuestOS用户空间的超级调用请求传递到GuestOS内核中,与Linux系统的内核驱动程序相同,该操作要在系统调用ioctl()的帮助下完成. 1.关于ioct ...
- 基于KVM、Xen、OpenVZ等虚拟化技术的WEB在线管理工具
1.Proxmox proxmox是一个开源的虚拟化管理平台,支持集群管理和HA.在存储方面,proxmox除了支持常用的lvm,nfs,iscsi,还支持集群存储glusterfs和ceph,这也是 ...
- VPS的虚拟化技术—-XEN,KVM,OPENVZ
市场上的VPS商家主要有 Xen ,KVM 和 OpenVZ 三种开源的虚拟化技术 Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发.它打算在单个计算机上运行多达 100个满特征的操作系统.操作系 ...
- 虚拟化技术对比:Xen vs KVM
恒天云:http://www.hengtianyun.com/download-show-id-68.html 一.说明 本文主要从功能方面和性能方面对Xen和KVM对比分析,分析出其优缺点指导我们恒 ...
- 云计算大数据:Xen、KVM、VMware、hyper-v等虚拟化技术的比较
1.Xen.KVM.VMware.hyper-v等虚拟化技术的比较,xen和kvm,是开源免费的虚拟化软件. vmware是付费的虚拟化软件. hyper-v比较特别,是微软windows 2008 ...
- Xen,VMware ESXi,Hyper-V和KVM等虚拟化技术的原理解析
Xen,VMware ESXi,Hyper-V和KVM等虚拟化技术的原理解析 2018年04月03日 13:51:55 阅读数:936 XEN 与 VMware ESXi,Hyper-V 以及 K ...
- 虚拟化技术:Xen与KVM的对比
作为开源的虚拟化技术,对比Xen和KVM可以看到,Xen以6个无与伦比的优势领先:更好的可用资源.平台支持.可管理性.实施.动态迁移和性能基准. 可用资源:Xen的问世要比KVM早4年之久(两者分别是 ...
- Amzaon EC2虚拟化技术演进:从 Xen 到 Nitro
今年2月,由光环新网运营的 AWS 中国(北京)区域和由西云数据运营的 AWS 中国 (宁夏)区域发布新的实例类型,新的实例类型包括 C5.C5d.R5.R5d.除了这四种之外,在AWS国外部分区 ...
随机推荐
- iOS开发设计模式
ios开发学习中,经常弄不清楚ios的开发模式,今天我们就来进行简单的总结和探讨~ (一)代理模式 应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现. 优势:解耦合 敏捷 ...
- .Net Core 3.0 关于Windows Form和WPF的全面支持
引言 ".NET 核心是开源和跨平台.您可以使用 .NET Core 在 Windows.Mac.十几个 Linux.iPhone.IoT 设备等上运行服务器应用程序! .NET 酷睿是开源 ...
- todolist形式的搜索框,分开组件写的,点击上下键时,框内显示当前选中的内容
### 首先 安装react 脚手架 cnpm install create-react-app -g //只需要在电脑上安装一次就好了,以后不用再下载了 ### 创建项目 crea ...
- [转]NopCommerce中的多商店支持:权威指南
[转]NopCommerce中的多商店支持:权威指南 多商店支持是最强大的nopCommerce功能之一.但究竟什么是多店支持?它是谁的?如何在nopCommerce中设置多个商店?在今天的帖子中,我 ...
- CentOS系统安装配置JDK
我们可以通过xftp工具将jdk文件上传至CentOS系统指定文件夹中 一.安装jdk 进入jdk存放目录,将jdk解压至install文件夹中: tar -zxf jdk-8u151-linux-x ...
- CentOS7.5下安装nginx --项目部署
1.安装ngnix一些依赖包 [root@VM_39_157_centos ~]# yum -y install gcc gcc-c++ openssl-devel pcre-devel httpd- ...
- 写一个单独的qt模块 -- ongoing
彩阳发的链接: https://wiki.qt.io/Creating_a_new_module_or_tool_for_Qt
- Mui 沉浸模式以及状态栏颜色改变
手机的顶部状态栏,也就是信号.电量那条,有4种状态,分别是正常.变色.透明(也称沉浸式状态栏).消失(也就是全屏).后3种特殊用法,具体见下: 这些都是真机运行不生效,需提交App云端打包后才生效: ...
- 【转帖】iPhone 11 Pro Max皇帝版物料成本不足3500元 卖一赚二
iPhone 11 Pro Max皇帝版物料成本不足3500元 卖一赚二 https://www.cnbeta.com/articles/tech/894449.htm 供应链的掌控力很重要 苹果今年 ...
- S03_CH11_基于TCP的QSPI Flash bin文件网络烧写
S03_CH11_基于TCP的QSPI Flash bin文件网络烧写 11.1概述 针对ZYNQ中使用QSPI BOOT的应用,将BOOT.bin文件烧写至QSPI Flash基本都是通过USB C ...