随着云计算技术的发展及其应用的普及和深入,云平台资源的高效利用成为越来越重要的问题,而服务器虚拟化技术是云计算实现资源有效利用的关键技术。 云计算的云端系统, 其实质上就是一个大型的分布式系统。 虚拟化通过在一个物理平台上虚拟出更多的虚拟平台, 而其中的每一个虚拟平台则可以作为独立的终端加入云端的分布式系统。 比起直接使用物理平台, 虚拟化在资源的有效利用、 动态调配和高可靠性方面有着巨大的优势。
一、虚拟化技术
服务器拟化技术是指能够在一台物理服务器上运行多台虚拟服务器的技术,并且上述虚拟服务器在用户、应用软件甚至操作系统看来,几乎与物理服务器没有区别,用户可以在虚拟服务器上灵活地安装任何软件。除此以外,服务器虚拟化技术还应该确保上述多个虚拟服务器之间的数据隔离,资源占用可控。
在X86平台虚拟化技术中,新引入的虚拟化层通常称为虚拟机监控器(Virtual MachineMonitor, VMM), 也叫做Hypervisor。 虚拟机监控器运行的环境,也就是真实的物理平台,称之为宿主机(host machine)。而虚拟出来的平台通常称为客户机(guest machine),里面运行的系统对应地也称为客户机操作系统,如下图:

1974年,Popek和Goldberg在一篇论文中定义了"经典虚拟化(Classical virtualization)"的基本需求,他们认为,一款真正意义上的VMM至少要符合三个方面的标准:
等价执行(Equivalient execution):除了资源的可用性及时间上的不同之外,程序在虚拟化 环境中及真实环境中的执行是完全相同的。
性能(Performance):指令集中的大部分指令要能够直接运行于CPU上。
安全(Safety):VMM要能够完全控制系统资源。
二、 CPU虚拟化技术实现
软件虚拟化和硬件虚拟化
1)软件虚拟化
纯软件虚拟化,顾名思义,就是用纯软件的方法在现有的物理平台上(往往并不支持硬件虚拟化) 实现对物理平台访问的截获和模拟。常见的软件虚拟机例如QEMU,它是通过纯软