什么是虚拟化
虚拟化技术是云计算的根基,在计算机技术中,虚拟化(技术)或虚拟技术(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。由此,打破实体结构间的不可切割的障碍,使用户可以比原本的配置更好的方式来应用这些电脑硬件资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理配置所限制。一般所指的虚拟化资源包括计算(CPU+内存),网络,存储。
虚拟化的本质
虚拟化本质是指资源的抽象化,要想资源充分利用,必须把资源最小单位化(池化),这样上层才能按需使用资源,虚拟化不但解放了操作系统,也解放了物理硬件,大大提高了资源的利用率。
-
虚拟化管理程序Hypervisor(VMM),位于虚拟机与底层硬件设备之间的虚拟层,直接运行于硬件设备之上,负责对硬件资源进行抽象,为上层虚拟机提供运行环境所需资源,并使每个虚拟机都能够互不干扰、相互独立地运行于同一个系统中。
虚拟化主要分为几大类:
-
计算虚拟化,针对CPU和内存资源虚拟化技术。
-
网络虚拟化,针对网络链路资源虚拟化技术。
-
IO虚拟化,针对IO资源虚拟化技术。
-
存储虚拟化,针对磁盘存储资源虚拟化技术。
计算虚拟化
计算虚拟化通过虚拟化管理程序(Hypervisor或VMM)将物理服务器的硬件资源与上层应用进行解耦,形成统一的计算资源池,然后可弹性分配给逻辑上隔离的虚拟机共享使用。如图2、基于VMM所在位置与虚拟化范围可以分三种类型。
全虚拟化 |
硬件辅助虚拟化 |
操作系统协助/半虚拟化 |
|
实现技术 | 二进制翻译,BT 和直接执行 |
遇到特权指令转到root模式执行 |
Hyper call |
客户操作系统修改/兼容性 | 无需修改客户操作系统,最佳兼容性 |
无需修改客户操作系统,最佳兼容性 |
客户操作系统需要修改来支持hypercall,因此它不能运行在物理硬件本身或其他的hypervisor上,兼容性差,不支持Windows |
性能 | 差 |
全虚拟化下,CPU需要在两种模式之间切换,带来性能开销;但是,其性能在逐渐逼近半虚拟化。 |
好。半虚拟化下CPU性能开销几乎为0,虚机的性能接近于物理机。 |
应用厂商 |