SPDK virtio驱动模块介绍及使用

本文介绍了SPDK virtio驱动模块,包括用户模式和PCI模式的使用示例,展示了如何通过SPDK vhost加速块设备IO性能。通过bdevperf测试,对比了不同模式下的性能差异。
摘要由CSDN通过智能技术生成

一. SPDK virtio模块介绍

众所周知,Virtio协议定义了两个块设备驱动,virtio-blk和virtio-scsi。SPDK Vhost target提供了VM中virtio-blk/scsi半虚拟化IO请求的加速器,相比较原来的QEMU virtio-blk方案以及kernel vhost-scsi方案极大的提高了性能,VM内置的内核半虚拟化驱动即可使用。

现在SPDK在使用相同的vhost target基础上,更进一步的提供了一个用户态的virtio bdev模块,有两个传输层:

  • * PCI:在VM中使用,该模块提供了在VM中使用用户态驱动访问后端块设备的能力,用户需要卸载掉原内核的virtio-blk/scsi驱动,绑定virtio控制器到uio模块
  • * Vhost-user模式:提供进程间使用virtio-blk/scsi协议访问vhost target的块设备驱动,可以直接集成到用户的独立进程中使用,例如container。

目前SPDK virtio驱动模块只实现了virtio 1.0 版本。

下图是SPDK virtio整体介绍:

二. SPDK virtio用户模式使用示例

SPDK virtio用户模式的使用场景可以参考下图:

如上图所示,SPDK vhost socket和使用virtio块设备的SPDK进程在同一台机器。

参考步骤如下:

在host机器中,使用如下命令配置和编译SPDK:

[root@]./configure --with-vhost --with-virtio && make

启动vhost主进程:

[root@] ./app/vhost/vhost -i 0

创建vhost controller,以下是vhost blk示例:

[root@]./scripts/rpc.py bdev_malloc_creat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值