当前位置:   article > 正文

I/O 虚拟化技术 — VirtIO_virtio方式

virtio方式

目录

虚拟化 I/O 设备

传统的 I/O 虚拟化方式是使用 QEMU 纯软件的方式来模拟 I/O 设备,包括:键盘、鼠标、显示器、硬盘和网卡等。

下图为在完全虚拟化的解决方案中,VM 访问硬件设备的路径模型,过程为:

  1. Guest(客户机)的设备驱动程序发起 I/O 请求操作请求。
  2. KVM 内核模块中的 I/O 操作捕获代码拦截这次 I/O 请求。
  3. KVM 经过加工处理后将本次 I/O 请求的信息放到 I/O 共享页(Sharing Page),并通知用户空间的 QEMU 程序。
  4. QEMU 程序获得 I/O 操作的具体信息之后,交由硬件模拟代码来模拟出本次 I/O 操作。(注:模拟设备可能会使用物理的设备,或者使用纯软件来模拟。)
  5. I/O 操作完成之后,QEMU 将结果放回 I/O 共享页,并通知 KVM 内核模块中的 I/O 操作捕获代码。
  6. KVM 模块的捕获代码读取 I/O 共享页中的操作结果,并把结果放回 Guest。

在这里插入图片描述

可见,完全虚拟化 I/O 模式的优点是可以模拟出各种各样的硬件设备,例如:网络驱动程序。尽管在该抽象中的模拟很干净且完整,但它同时也是最低效、最复杂的。在整个 I/O 流程中,Guest 作为 QEMU 的一个 Thread 在等待 I/O 时可能被阻塞(Block)住。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/998982
推荐阅读
相关标签
  

闽ICP备14008679号