蓝盟IT小贴士,来喽!
虚拟化技术的分类主要包括服务器虚拟化、存储虚拟化、网络虚拟化和应用程序虚拟化。
服务器虚拟化技术按虚拟对象分为CPU虚拟化、内存虚拟化和I/O虚拟化。根据虚拟化的程度,服务器虚拟化技术分为全虚拟化、半虚拟化和硬件辅助虚拟化。
将不同的虚拟化对象与级别结合起来,可以获得9种不同的服务器虚拟化技术。
首先详细介绍服务器虚拟化的CPU虚拟化,然后详细介绍内存虚拟化和I/O虚拟化。
CPU虚拟化
CPU全虚拟化技术
主要采用优先级压缩技术( Ring Compression )和二进制代码翻译技术( BinaryTranslation )。 优先级压缩技术使VMM和Guest在不同的权限级别运行。 在x86体系结构中,VMM运行在***特权级别Ring 0上,来宾os运行在Ring 1上,用户应用程序运行在Ring 3上。 因此,来宾操作系统的核心命令不能直接在计算机系统的硬件上运行,而必须在VMM捕获和模拟中运行(某些难以虚拟化的命令必须通过Binary Translation技术进行转换)。
CPU的半虚拟化技术
主要采用Hypercall技术。 客户操作系统代码的一部分发生了更改,客户操作系统将权限命令相关操作转换为向VMM发送的hypercall(supercall ),VMM将继续处理。 Hypercall支持的批处理和异步优化方法可以通过Hypercall实现接近于物理机的速度。
CPU硬件辅助虚拟化技术
目前有两种技术:英特尔的VT-x和AMD的AMD-V。 其核心思路是,通过导入新的指令和执行模式,使VMM和客户os分别以不同的模式( ROOT模式和非ROOT模式)执行,客户os以Ring 0执行。 客户操作系统核心命令通常可以直接在计算机系统的硬件上运行,而无需通过VMM。 来宾操作系统执行特殊命令时,将切换到VMM,以便VMM能够处理特殊命令。