硬件辅助虚拟化,顾名思义,就是在CPU、芯片组以及I/O设备等硬件中加入专门针对虚拟化的支持,使系统软件可以更高效、更简易的实现虚拟化。


为何需要硬件辅助?原因有三:

1,原有的硬件体系结构在虚拟化方面存在缺陷;

2,由于硬件结构的限制,某些虚拟化功能的软件实现太复杂,比如说影子页表;

3,软件实现的虚拟化性能不佳,比如说I/O设备的虚拟化。


常见的硬件虚拟化技术主要是intel VT 和AMD-V,其实两家的区别真的不是很大,鉴于AMD在server端CPU可怜的市占率,我们还是聊聊intel的VT吧。


intel VT,intel Virtualization Technology,是intel平台上虚拟化技术的总称,包含对CPU、内存、中断、时间、I/O等各方面的虚拟化支持。

在CPU虚拟化方面,有VT-x技术,intel Virtualization Technology for x86;

在内存虚拟化方面,有EPT,Extend Page Table;

在I/O设备虚拟化方面,有VT-d,intel Virtualization Technology for Direct I/O。


个人觉得,这里面CPU和I/O设备的虚拟化(即VT-x和VT-d)则是最常用的也是最重要的,后面的文章将会做稍微详细的介绍。