Xen 半虚拟化(PV)和完全虚拟化(HVM)
2014-12-05 by dongnan
概念
在 Xen的技术栈中将虚拟机划分为两类,半虚拟化(Paravirtualization
)和完全虚拟化(Hardware VirtualMachine
)。
目前主流的虚拟化技术方案可以在同一个 Hypervisor
上同时运行这两类Guest
虚拟机类型。
半虚拟化
半虚拟化(Paravirtualization
)也称超虚拟化简称为PV
,由Xen
开发的高效且轻量级的虚拟化技术。
这种技术允许Guest
操作系统感知到自己运行在Xen Hypervisor
上而不是直接运行在硬件上,由于它不需要仿真硬件可以高效率运行。
在Xen
上运行的半虚拟化的Guest
操作系统,为了调用系统管理程序(Hypervisor
),要有选择地修改操作系统。
PV
不要求CPU
支持虚拟化扩展,但依赖于Xen-PV-enabled
内核和PV
驱动程序。
目前自2.6.24
起 Linux内核已经通过Linux pvops framework
原生支持Xen-PV
,因此大多数的 Linux发行版都能直接运行于PV
环境。
PV客户机中包含两类特殊驱动:
网络前端驱动(Network Frontend Driver
)和块设备前端驱动(Block Frontend Driver
),
分别用以与Dom0
中对应的后端驱动通信以完成网络访问和块设备访问。
全虚拟化
全虚拟化(Hardware Virtual Machine
)又称硬件虚拟化简称HVM
,是指运行在虚拟环境上的虚拟机在运行过程中始终感觉自己是直接运行在硬件之上的,
并且感知不到在相同硬件环境下运行着其他虚拟机的虚拟技术。
在Xen Hypervisor
运行的完全虚拟化虚拟机,所运行的操作系统都是标准操作系统,即无需任何修改的操作系统版本,同时也需要提供特殊的硬件设备。
HVM
依赖于Intel VT
或AMD-V
硬件扩展,同时Xen
还使用Qemu
来为HVM
模拟PC
硬件,而CPU
的虚拟化扩展技术还能够大大提升这些仿真硬件的性能。
但需要注意的是HVM
虚拟机需要仿真多种硬件,因此其性能不如PV虚拟机。
值的注意的是在Xen
上虚拟的Windows
虚拟机必须采用完全虚拟化技术。