返回首页

ZVM特性:内置 VirtIO 框架

01 VirtIO 定义与标准化架构

VirtIO 是一种标准化的 I/O 虚拟化机制,旨在保证设备抽象一致性的前提下,实现客户操作系统对物理 I/O 设备的高效访问。通过VirtIO,一个物理I/O设备可以被多个客户OS同时使用,而无需为每个客户OS分配独立的硬件资源,该机制已广泛应用于网络、块设备等虚拟化场景。它主要由三个核心部分构成,协同实现在虚拟化环境中高效、低开销的数据通路:

VirtIO 前端 (Frontend)

运行在客户 OS 中,对上呈现标准驱动接口,负责将客户 OS 发起的 I/O 请求提交至虚拟化层

VirtIO 后端 (Backend)

负责接收来自前端的I/O请求,并将其转换为对真实物理设备的访问操作。后端通常运行在Hypervisor内部,或具备特权的管理域(如Domain 0)中

共享内存 Virtqueue

前后端之间共享的数据队列结构,用于传递I/O描述符与状态信息,是VirtIO实现高效通信的核心机制

在典型的工作流程中,客户OS中的VirtIO前端将I/O请求写入共享内存Virtqueue,并通过事件通知机制通知VirtIO后端;后端从Virtqueue中取出请求并执行相应的物理设备访问操作。 对于客户操作系统而言,该过程表现为对“本地设备”的直接访问,从而屏蔽了底层虚拟化实现细节。 通过上述组件协同工作,VirtIO在虚拟化环境中实现了高效、低开销的I/O数据通路。

02 ZVM 核心特性:内嵌 VirtIO 架构实现

1. 什么是内嵌 VirtIO

内嵌 VirtIO 是 ZVM 在虚拟 I/O 架构上的一项核心设计选择。ZVM 将 VirtIO 后端直接实现于自身内核中,由 ZVM 统一完成 VirtIO 请求的调度、转发与物理设备访问,不再依赖额外的特权客户操作系统作为中间层。

在该架构下,客户 OS 仍通过标准 VirtIO 前端与虚拟设备进行交互,但所有 VirtIO 后端逻辑均由 ZVM 内部直接处理。I/O 请求在 ZVM 内部即可完成从虚拟设备到物理设备的映射与访问,无需跨越额外的客户操作系统边界。通过这种方式,ZVM 将 I/O 虚拟化从依赖特定客户 OS 的功能模块转变为由虚拟化层直接提供的基础能力,使其成为架构中的核心组成部分,而非附属于某个特权客户OS的外部组件。

ZVM内VirtIO时分复用网络设备

图1. ZVM 内 VirtIO 时分复用网络设备

ZVM内VirtIO空间隔离块设备

图2. ZVM 内 VirtIO 空间隔离块设备

2. 为什么选择内嵌 VirtIO

如图3所示,在以 Xen 为代表的传统虚拟化系统中,VirtIO 后端通常采用 Domain 0 架构实现(如图 3 所示)。该架构通过引入一个具备特权的客户 OS (Domain 0),由其负责后端逻辑与物理设备访问。由此,I/O 请求需要在客户 OS、Hypervisor 与 Domain 0 之间多次转发,形成相对较长的访问路径。

ZVM采用内嵌VirtIO架构,将VirtIO后端直接集成于ZVM内核中,避免了I/O请求在不同客户操作系统之间的转发过程。如图4所示:

Domain 0 架构 (如 Xen)
基于Domain 0架构的传统VirtIO实现

图3. 基于 Domain 0 架构的传统实现

ZVM 内嵌架构
ZVM内嵌VirtIO架构实现

图4. ZVM 内嵌 VirtIO 架构实现

以网络设备为例,ZVM 直接优化了“Hypervisor → Domain 0”这一 I/O 路径。两种架构的访问路径对比如下:

● Domain 0 架构

客户 OS → Hypervisor → Domain 0 → 物理网卡

● ZVM 内嵌架构

客户 OS → ZVM (Hypervisor) → 物理网卡

内嵌架构的显著优势:

  • 极致减负:减少跨域通信与上下文切换带来的额外开销。
  • 消除抖动:避免 Domain 0 中软中断与后台调度引入的时延抖动。
  • 精准时序:消除用户态与内核态切换对 I/O 时序的影响。
  • 高确定性:提供更可预测的 I/O 延迟特性,适配实时性要求极高的嵌入式场景。

04 内嵌VirtIO表现

内嵌VirtIO作为ZVM的基础特性之一,已经应用于ZVM的四款发行版中。支持网络设备(VirtIO-net)与块设备(VirtIO-blk)的虚拟化,并在配套可视化管理工具VisualZVM中提供相关功能的快速测试与验证能力。

92.9
VirtIO-net 吞吐 (Mbps)
100M 物理网卡并发多客户 OS
< 5%
VirtIO-blk 性能损耗
相对于裸金属设备的 I/O 损耗

“ZVM 内嵌 VirtIO 架构通过缩短 I/O 路径,实现了极致的性能表现与可预测的时延,为嵌入式混合关键应用场景提供了稳定、高效的 I/O 虚拟化基础。”

扫码查看视频介绍

小红书二维码

小红书视频

微信二维码

微信视频号/公众号