zhaogw

导航

I/0虚拟化技术

没有虚拟化时I/O设备如何工作?

 

I/O虚拟化解决的问题:

由于计算虚拟化的出现,物理服务器上会创建出许许多多的虚拟机,并且每台虚拟机都需要访问物理主机的 I/O 设备。但 I/O 设备的数量毕竟是有限的,为了满足多个虚拟机共同使用 I/O设备的需求,就需要虚拟机监视器 VMM 的参与。VMM 用于截获虚拟机对 I/O 设备的访问请求,再通过软件去模拟真实的 I/O 设备,进而响应 I/O 请求。从而让多个虚拟机访问有限的 I/O资源。——《HCIA-Cloud ComputingV4.0学习指导》

实现I/O虚拟化的方式:全虚拟化、半虚拟化、硬件辅助虚拟化。

实现I/O虚拟化的方式 全虚拟化 半虚拟化 硬件辅助虚拟化
原理 通过 VMM 为虚拟机模拟出一个与真实设备类似的虚拟 I/O 设备,当虚拟机对 I/O 设备发起 I/O 请求时,VMM 截获虚拟机下发的 I/O 访问请求,再由 VMM 将真实的访问请求发送到物理设备进行处理。 需要建立一个特权级别的虚拟机,即特权虚拟机。半虚拟化方式要求各个虚拟机运行前端驱动程序,当需要访问 I/O 设备时,虚拟机通过前端驱动程序把 I/O 请求发送给特权虚拟机,由特权虚拟机的后端驱动收集每个虚拟机所发出的 I/O 请求,再由后端驱动对多个 I/O 请求进行分时分通道处理。特权虚拟机运行真实的物理 I/O 设备驱动,将 I/O 请求发送给物理 I/O 设备,I/O 设备处理完成后再将结果返回给虚拟机。 将 I/O 设备驱动直接安装在虚拟机操作系统中,不需要对操作系统做任何修改即可使用。这种方式与我们熟悉的传统 PC主机操作系统直接访问硬件是相同的。
优点 虚拟机无论使用任何类型的操作系统,操作系统都不需要为 I/O 虚拟化做任何修改,就可以让多个虚拟机直接使用物理服务器的 I/O 设备。 主动让虚拟机把 I/O 请求发送给特权虚拟机,再由特权虚拟
机访问真实的 I/O 设备,这就减少了VMM的性能损耗。
在 I/O 性能上远远超过全虚拟化和半虚拟化方式。虚拟机访问 I/O 硬件所需的时间与传统PC机的访问时间相同。
缺点 VMM 需要实时截获每个虚拟机下发的 I/O 请求,截获请求后模拟到真实的 I/O 设备中。实时监控和模拟的操作都是通过 CPU 运行软件程序来实现的,因此会给服务器带来较严重的性能损耗。 需要修改虚拟机操作系统,改变操作系统对自身 I/O 请求的处理方式,将 I/O 请求全部发给特权虚拟机处理。这就要求虚拟机操作系统必须是可以被修改的(通常是Linux操作系统)。

需要特殊的硬件支持。

posted on 2022-01-13 09:10  zhaogw  阅读(318)  评论(0)    收藏  举报