云虚拟化和嵌入式虚拟化采用的虚拟化技术是一样的,但并不是把云平台上的VMM直接照搬运行在嵌入式系统上,它就变成了嵌入式虚拟化VMM。
云虚拟化是指在数据中心采用服务器虚拟化技术构建云计算平台,主要用于数据中心物理资源的池化,从而可以弹性地分配资源给用户。虚拟服务器主要与客户端交互,处理并响应来自客户端的请求;嵌入式虚拟化是指在嵌入式终端设备上通过虚拟化技术构建终端计算平台,允许多个操作系统或者虚拟机同时运行在终端设备上来共享硬件资源,虚拟终端直接与用户进行交互,处理并响应用户的操作请求。
下面就两者在应用场景、作用目的、需求特征及关注因素等方面进行简单对比,如表2-1所示。
表2-1 云虚拟化和嵌入式虚拟化的对比
目前,嵌入式虚拟化面临的挑战依然是虚拟化技术本身所带来的开销问题。首先,从硬件辅助虚拟化的角度来讲,能够提供硬件加速支持的设备颇为有限,以多媒体设备为例,日益增长的设备类型使各类多媒体设备层出不穷,造成VT-d或SR-IOV等技术对多媒体设备的支持远远不足,从这一点来讲,即便是在服务器端目前也尚未得到有效支持。其次,从软件完全虚拟化的角度来讲,由于I/O虚拟化所带来的巨大开销令I/O虚拟化软件解决方案难担重任,对于一般外设的虚拟化,通常在性能上有10%~30%的额外开销,而对于多媒体设备,这种额外开销更为突出,有时竟能达到超过80%的额外开销用于I/O虚拟化,与此同时,电量使用时间和电池寿命也会相应缩短20%左右,以上这些因素都给嵌入式虚拟化带来了不小的挑战。
表2-2尝试把服务器虚拟化和嵌入式虚拟化所需要的功能进行对比,可以看到现有的服务器虚拟化技术并不适应嵌入式设备的特殊需求,嵌入式虚拟化面临特殊的挑战,需要在现有虚拟化技术的基础上专门进行开发和定制。
表2-2 服务器虚拟化和嵌入式虚拟化的功能的异同