服务器虚拟化的实现有三个部分的实现,包括CPU虚拟化,内存虚拟化和IO虚拟化。

一、CPU虚拟化:
CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。虚拟化技术与多任务以及超线程技术是完全不同的。多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟化技术中,则可以同时运行多个操作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上;而超线程技术只是单CPU模拟双CPU来平衡程序运行性能,这两个模拟出来的CPU是不能分离的,只能协同工作。
CPU的虚拟化技术是一种硬件方案,支持虚拟技术的 CPU带有特别优化过的指令集来控制虚拟过程,通过这些指令集,VMM会很容易提高性能,相比软件的虚拟实现方式会很大程度上提高性能。虚拟化技术可提供基于芯片的功能,借助兼容VMM软件能够改进纯软件解决方案。由于虚拟化硬件可提供全新的架构,支持操作系统直接在上面运行,从而无需进行二进制转换,减少了相关的性能开销,极大简化了VMM设计,进而使VMM能够按通用标准进行编写,性能更加强大。CPU的虚拟化技术除支持广泛的传统操作系统之外,还支持64位客户操作系统。
虚拟化技术是一套解决方案。完整的情况需要 CPU、主板芯片组、BIOS和软件的支持,
Intel和AMD分别开发出VT-x和AMD-V技术,在硬件增加虚拟化功能后,通过CPU截获客户机操作系统对敏感指令的执行或者对敏感指令的访问,并通过异常的方式报告给VMM,VMM接受到报告后,找到对应的虚拟化模块进行模拟,并把最终结果反映在客户机运行环境中。
 
二、内存虚拟化机制
1. 内存虚拟化的要点:VMM必须对物理内存有最终的控制权,也就是说,它必须控制将客户物理地址空间映射到主机物理地址空间的操作。这样,才可以顺利的实现内存虚拟化
2. 内存虚拟化的方法:内存虚拟化方法:VMM维护一个虚拟机内存管理数据结构——镜像页表(shadow page table)。VMM通过镜像页表给不同的虚拟机分配机器的内存页,如操作系统虚拟内存一样,VMM能将虚拟机内存换页到磁盘,因此,虚拟机申请的内存可以超过机器的物理内存。VMM也可以根据每个虚拟机的要求,动态地分配相应的内存。
 
三、IO虚拟化
1. 宿主型I/O虚拟化
用宿主型的体系结构,使用宿主操作系统的L/0设备驱动程序。这种结构的缺点之一是大大增加了虚拟化的性能开销;另一个缺点是现代操作系统如Windows和linux并没有资源管理的支持为虚拟机×××能隔离和服务保证,而这是很多服务器环境的基本要求。
 
2.硬件I/O虚拟化
I/O子系统的产业趋势是朝着硬件支持的方向发展。拥有足够的硬件支持,直接传送I/O设备到虚拟机中的软件是完全可能的,这将有效地消除所有I/O虚拟开销。要做到这一点, I/O装置需要了解虚拟机的情况和能够支持多个虚拟接口,以便VMM能安全地映射接口到虚拟机。
Intel VT-d是目前硬件I/O虚拟化的代表