天天看点

KVM虚拟化专题(1)系统虚拟化

虚拟化

云计算的一个核心思想就是在服务器端提供集中的计算资源。这些计算资源可以被分解成更小的单位去独立服务于不同的用户,也就是在共享物理资源的同时,为每个用户提供隔离,安全,可信的虚拟工作环境,而这一切不可避免的要依赖于虚拟化技术。

KVM虚拟化专题(1)系统虚拟化

这种硬件抽象层的虚拟化又被称为系统虚拟化,是指将一台物理计算系统虚拟化为一台或多台虚拟计算机主机。每个虚拟计算机系统(简称虚拟机)都拥有自己的虚拟硬件,如内存,CPU,网卡等设备,并提供一个独立的虚拟机执行环境。通过虚拟机监控器(VMM,也可以称为Hypervisor)的模拟,虚拟机中的操作系统(Guest OS,客户机操作系统)认为自己仍然是独占一个系统在运行。在一台物理机上运行的每个虚拟机中的操作系统都是完全可以不同的,并且它们的执行环境是完全独立的。

KVM虚拟化专题(1)系统虚拟化

VMM直接运行在硬件平台上,控制所有硬件并管理客户操作系统。客户操作系统运行在比VMM更高的级别。比如Xen。

VMM运行在一个传统的操作系统里(第一层软件),可以看作是第二层软件,而客户机操作系统则是第三层软件层了。KVM跟VitualBOX就是这种实现。

KVM虚拟化专题(1)系统虚拟化

基于二进制翻译的全虚拟化

Hypervisor运行在Ring 0

Guest OS运行在Ring 1

机制:异常、捕获、翻译

示例:

VMware Workstation

QEMU

Virtual PC

运行方式:Hypervisor模拟一个CPU给VM,来宾操作系统不需要做任何修改。Hypervisor对来宾操作系统上的ring0上的一些指令进行翻译,变成真正的CPU指令。

KVM虚拟化专题(1)系统虚拟化

半虚拟化也称为:超虚拟化,操作系统辅助虚拟化

Guest OS不能直接运行在Ring 0,需要对kernel进行修改,将运行在Ring 0上的,指令转为调用Hypervisor,guest操作系统是直到自己运行在虚拟化平台的,省去了全虚拟化的大量的捕获模拟等操作

Guest OS上的APP运行在Ring 3

示例:Xen

KVM虚拟化专题(1)系统虚拟化

Intel VT和AMD-V创建一个新的Ring -1单独给Hypervisor使用

Guest OS可以直接使用Ring 0而无需修改

VMware Esxi

Microsoft Hyper-V

Xen3.0

KVM

继续阅读