常见虚拟化技术:ESXI、Hyper-V、Xen和KVM

2022-5-30 316 5/30
   本文只针对常见的服务器虚拟化技术VMware ESXI、KVM、Microsoft Hyper-V、KVM的一个简单科普,不包含详细的架构说明,个人PC端涉及较多的如WindowsVirtual PCVMware WorkstationVirtual Box不涉及。

什么是虚拟化?

   借用RadHat的解释:借助虚拟化技术,用户能以单个物理硬件系统为基础创建多个模拟环境或专用资源。称为"Hypervisor" (虚拟机监控程序)的软件可直接连接到硬件,从而将一个系统划分为不同的、单独安全环境,即虚拟机(VM)。虚拟机监控程序能够将计算机资源与硬件分离并适当分配资源。配备了虚拟机监控程序的物理硬件叫做"主机",而使用其资源的虚拟机则被称为虚拟客户机。这些虚拟客户机将计算资源(如 CPU、内存和存储器)视为一组可进行重新分配的资源。操作员可以控制 CPU、内存、存储器和其他资源的虚拟实例,以便虚拟客户机能在需要时收到所需资源。

全虚拟化和半虚拟化

   全虚拟化:运行在虚拟机上的操作系统通过Hypervisor来最终分享硬件,所以虚拟机发出的指令需经过Hypervisor捕获并处理。
   半虚拟化:在全虚拟化的基础上,把客户操作系统进行了修改,增加了一个专门的API,这个API可以将客户操作系统发出的指令进行最优化,即不需要Hypervisor耗费一定的资源进行翻译操作,因此Hypervisor的工作负担变得非常的小,因此整体的性能也有很大的提高。

VMware ESXI

ESXI和ESXI

   VMware ESXI是VMware ESX的改进版,在vSphere 5之前,vSphere有2个虚拟机管理程序ESX和ESXi。随着vSphere 5.0的发布,ESXi是唯一的虚拟机管理程序,ESXi将组件整合进linux操作系统内,却剔除了无用繁杂的linux文件,只保留了VMkernel虚拟化内核对资源进行管理,ESXI大大的降低了虚拟化层的大小,减小了虚拟化层对物理化层的开销,将控制台从虚拟化程序中移除,变成一个独立的组件,即Vsphere Client,使得管理工作更加的轻松便捷。

    VMware ESXi是VMware vSphere最核心组件,核心服务是Hypervisor - VMkernel,ESXi用于协调物理计算机的资源,同时通过ESXi管理其上的虚拟机,如部署、迁移等操作。同时还可以通过ESXi对物理计算机上的网络存储资源进行管理,ESXi通过配置虚拟交换机上的vSwitch管理配置网络资源,通过VMfs和nfs管理虚拟存储资源。VMware ESXi是以ISO形式提供的软件,可直接安装在物理硬件上,如Windows或Linux操作系统。VMware ESXI是典型的全虚拟化技术。

Hyper-V

   Hyer-V是微软提出的一种系统管理程序虚拟化技术。主要作用就是管理 、调度虚拟机的创建和运行。并提供硬件资源的虚拟化。Hyper-V 可部署在win 8.x 64位 pro以上版本中,和Windows2008以上服务器的版本中。Hyper-V的Hypervisor是一个非常精简的软件层,不包含任何物理驱动,物理服务器的设备驱动均是驻留在父分区的Windows Server 中,驱动程序的安装和加载方式与传统Windows系统没有任何区别。因此,只要是Windows支持的硬件,也都能被Hyper-V所兼容。
   Hyper-V可以采用半虚拟化(Para-virtualization)和全虚拟化(Full-virtualization)两种模拟方式创建虚拟机。半虚拟化方式要求虚拟机与物理主机的操作系统(通常是版本相同的Windows)相同,以使虚拟机达到高的性能;全虚拟化方式要求CPU支持全虚拟化功能(如Inter-VT或AMD-V),以便能够创建使用不同的操作系统(如Linux和Mac OS)的虚拟机。

Xen

   XEN最初是剑桥大学Xensource的一个开源研究项目,2003年9月发布了首个版本XEN 1.0,2007年Xensource被Citrix公司收购,开源XEN转由www.xen.org继续推进,该组织成员包括个人和公司(如 Citrix、Oracle等)。相对于ESX和Hyper-V来说,XEN支持更广泛的CPU架构,前两者只支持CISC的X86/X86_64 CPU架构,XEN除此之外还支持RISC CPU架构,如IA64、ARM等。
   XEN支持两种类型的虚拟机,一类是半虚拟化(PV,Paravirtualization),另一类是全虚拟化(XEN称其为 HVM,Hardware Virtual Machine)。半虚拟化需要特定内核的操作系统,如基于Linux paravirt_ops(Linux内核的一套编译选项)框架的Linux内核,而Windows操作系统由于其封闭性则不能被XEN的半虚拟化所支持,XEN的半虚拟化有个特别之处就是不要求CPU具备硬件辅助虚拟化,这非常适用于2007年之前的旧服务器虚拟化改造。全虚拟化支持原生的操作系统, 特别是针对Windows这类操作系统,XEN的全虚拟化要求CPU具备硬件辅助虚拟化,它修改的Qemu仿真所有硬件,包括:BIOS、IDE控制器、 VGA显示卡、USB控制器和网卡等。
   目前主要的Xen虚拟化厂商不多,比如Citrix。

KVM

   KVM的全称是Kernel-based Virtual Machine,字面意思是基于内核虚拟机,KVM是一个开源项目,由RedHat、IBM等厂商支持。
   KVM支持广泛的CPU架构,除了X86/X86_64 CPU架构之外,还将会支持大型机(S/390)、小型机(PowerPC、IA64)及ARM等。
   KVM本身并不是 Hypervisor,它仅是Linux内核中的一个可装载模块,其功能是将Linux内核转换成一个裸金属的Hypervisor,主要负责CPU和内存的虚拟化,而其他IO设备(磁盘,网卡,显卡等)的虚拟以及对各种虚拟设备的创建与调用,则通过QEMU完成,KVM加上QEMU后就是完整意义上的KVM服务器虚拟化,但是,由于qemu模拟io设备效率不高的原因,现在常常采用半虚拟化的virtio方式来虚拟IO设备。
   国内绝大部分云平台厂商都是基于KVM虚拟化技术进行开发。

总结

   当前具备虚拟化功能的技术有多种,如Hyper-V、ESXI、KVM、Xen等,为了方便管理多种虚拟化技术并向上提供统一、标准的接口,业界开始推出开源云管理平台项目,即以虚拟化平台为基础的云计算平台,当前影响最大的当属OpenStack,国内大部分厂商也都是基于Openstack进行二次开发。
- THE END -

Tenkms

12月01日00:17

最后修改:2023年12月1日
1

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论