网卡直通SR-IOV技术

IO虚拟化简介
全虚拟化
通过VMM来模拟IO设备实现,VMM截获GuestOS的IO请求,通过软件模拟真实的硬件。VMM必须处理所有虚机的IO请求,然后将所有的IO情况序列化为可以被底层硬件处理的单一IO流。好处是GuestOS不需要考虑硬件设备的情况。问题是效率相对较低。例如 qemu。


一个完整的数据包从虚拟机到物理机的路径是:虚拟机--QEMU虚拟网卡--虚拟化层--内核网桥--物理网卡。
半虚拟化
通过前端和后端模拟实现虚拟化。GuestOS中的半虚拟化驱动为前端,VMM 提供的与GuestOS 通讯的驱动程序为后端。前端驱动将GuestOS的请求通过与VMM之间的特殊通信机制发生给VMM后端需求,后端驱动处理完IO请求之后再发送给物理驱动。全虚拟化为了完成一次操作要涉及到多个寄存器的操作,使得VMM要截获每个寄存器访问并进行相应的模拟,就会导致多次上下文切换。这种方式能很大程度的减少上下文切换的频率,提供更大的优化空间。例如 virtio 。

猜你喜欢

转载自www.cnblogs.com/liuhongru/p/11067706.html
sr