virtio 传输协议简介

virtio是一种用于para-virtualization的IO传输协议,旨在解决IO虚拟化的效率问题,提供接近native IO的性能。该协议简化了VM中的处理,减少了代码开发量。然而, virtio需要guest kernel与host的配合,驱动安装可能成为闭源OS的问题。本文概述了virtio的优点、缺点,并以virtio-blk为例,详细解释了read请求的处理流程。
摘要由CSDN通过智能技术生成

作者:John.Gong        微信:hitgom

本打算放上前段时间team内部share的pdf的,但是pdf过于简单,只涉及了virtio-blk中读请求的实现。对于没有virtio基础的同学来说比较难于理解,故打算写一篇稍微详细点的关于virtio的文章。

一、virtio是什么?

virtio是一个传输协议,只在para-virtualization中使用的一个IO传输协议。它的出现解决了IO虚拟化效率低下的问题,基本可以达到native IO的90%以上,在各个虚拟化平台中(xen、kvm、vmware、lguest)得到广泛应用。

二、virtio优点

 

  • 性能突出:传统的full-virtualization中,IO设备是由qemu模拟实现,qemu不仅需要模拟真实设备的内部处理过程,还需要模拟设备发现、中断等与具体总线、接口(ide、scsi)相关的处理,具体总线、接口的模拟导致VM exit的频繁发生以及一些不必要的IO操作,导致了qemu模拟的设备IO效率低下。而virtio正是为了解决这些问题出现的。virtio传输协议简化了VM中guest的处理,所以能够提高IO效率。
  • 接口简化:在不同的虚拟化平台中可以使用相同的一套传输机制,减少平台的代码开发量。

三、virtio缺点

 

  • 驱动安装:显然,作为para-virtualization的virtio,需要VM中的guest kernel(front end)与host(back end)的配
  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值