Xen虚拟化简介以及其他虚拟化方案
裸金属虚拟化(类型1):直接运行在物理机节点硬件设备上,并且管理虚拟机操作系统
可托管虚拟化(类型2):允许运行在普通的操作系统上
linux的KVM和Free BSD的BHyV是基于内核的虚拟化技术,将传统的操作系统转化为类似裸金属类型的管理程序。而linux发行版与Free BSD仍为通用操作系统,与其他应用一起竞争虚拟机操作系统可使用的资源。统上KVM和Free BSD的BHyVe为可托管虚拟化。
Xen是一门开源的裸金属虚拟化技术
特点:轻便小型(内核代码1MB左右),操作系统无关性,半虚拟化
驱动分离:允许主要的硬件设备驱动运行于虚拟机内部,当驱动crash(宕机)或报错时,包含该驱动的虚拟机可重启不影响其他虚拟机
架构
含虚拟化操作系统启动中,Boot Loader加载完成退出后,首先加载Xen程序,在其上运行虚拟机。运行的虚拟机为Domain或Guest,其中特殊Domain0包含了所有硬件设备的驱动,控制栈。
特点
类型:支持半虚拟化(PV)和全虚拟化(HVM)
Domain 0:含特殊的域Domain0,其包括硬件设备驱动和控制虚拟机的Toolstack
Toolstack:涵盖各种不同的Toolstack
注意:
1.Xen虚拟化管理程序是一个极小的软件程序,约为15w代码,本身无I/O功能虚拟化
2.Xen支持半虚拟化和全虚拟化,并且同一个虚拟机管理程序可同时使用两种虚拟化。虚拟机与硬件之间完全隔离,无权限访问底层硬件和IO,被称为DomainU
3.Domain0是一个特殊虚拟机,有权限直接访问底层的硬件设备,处理IO请求并与其他虚拟机DomainU交互通信
4.Toolstack,包含在Domain0中,叫控制栈。允许用户管理虚拟机
5.终端是Toolstack对外部开放的一个接口,命令行/图形化可控制界面。支持Openstack和CloudStack中的编排服务
6.Domain0要求一个支持Xen虚拟化管理程序的内核。半虚拟化的DomainU要有支持内核半虚拟化
全虚拟化模式+半虚拟化驱动(PVHVM)
全虚拟化模式下的虚拟机可以使用指定的半虚拟化驱动
半虚拟化+硬件扩展特性(PVH)
4.5以上版本可以使用。PVH要求虚拟机操作系统对其提供支持,在配置文件中设置pvh=1,即可使用
- VMware
1.VMware Workstation是VMware公司销售的虚拟化软件,采用二进制翻译技术。
2.VMware ESX Server。ESX服务器是能直接在硬件上运行的企业级的虚拟平台,虚拟的SMP,能让一个虚拟机同时使用多个物理处理器。公司还提供一个虚拟中心来控制和管理虚拟化的IT环境:Vmotion
- VirtualBox
1.是甲骨文公司xVM虚拟化平台技术的一部分。提供使用者在32or64为的Windows、Linux、Solaris操作系统上虚拟其他x86的操作系统。
2.VirtualBox既支持纯软件虚拟化,也支持Intel VT-x与AMD AMD-V硬件虚拟化技术。可以读写VMware VMDK格式和VIrtualPC VHD格式的虚拟磁盘文件。
- Hyper-V
1.微软提出的一种系统管理程序虚拟化技术。借鉴Xen,采用微内核的架构,兼顾性能和安全性
2.Hyper-V底层的Hypervisor运行在最高级别特权下,称为ring -1,虚拟机的操作系统内核和驱动运行在ring 0 ,应用程序运行在ring 3.
3.Hyper-V采用基于VMbus的高速内存总线架构,来自虚拟机的硬件请求可以直接经过VSC,通过VMbus总线发送到根分区的VSP,VSP调用对应的设备驱动,直接访问硬件。中间不需要Hypervisor的帮助