《基于io_uring和双virtqueue队列的virtio-blk数据通路加速方案》-孟繁瑞.pdf

编号:1152840 PDF 21页 4.92MB 下载积分:VIP专享
下载报告请您先登录!

1、基于io_uring和双virtqueue队列Virtio-blk 数据通路加速方案阿里云基础软件-开发工程师孟繁瑞技术背景社区现状应用场景Vblk 直通Virtio-blk 直通设备双向命令的支持Ring Pair设计双 virtqueue 队列设计扩大并发度总结与展望技术路线上游贡献技术背景NVMe 支持 io_uring passthrough 能力通用字符设备接口新特性兼容较好,不需额外开发减少内核栈路径,有助于提升性能io_uring 提供伸缩性社区现状线上云盘场景,存在 virtio-blk 盘提供类似的接口,利用 io_uring passthrough 能力减少内核路径增强可扩

2、展性技术背景图片盘古存储架构,在神龙服务器上,基于SDK进行请求下发。经过virtio-blk层下发的请求,在后端(PoV Server)上重新拼接。整个过程,Virtio-blk 的协议格式被用作 RPC 通道SDK的请求下发转化为virtio-blk的读写应用场景技术背景SDK的请求下发转化为virtio-blk的读写:1、上层用户的每个读写,实际都对应了至少一次 write+read 行为。2、存在读写放大现象两类读写放大1、单个 I/O 的规格上限,可能发生的 bio_split()2、提前切分,额外的带宽开销 更灵活的数据通道 减少放大读写Virtio-blk 直通&双向命令Virt

3、io-blk 直通1、借助 io_uring passthrough 提供的 uring_cmd()接口,直通驱动层灵活用户态包装命令2、驱动侧包装命令,借助 request 队列管理命令3、缓冲区映射为bio4&5、blk-mq 机制管理和下发请求6、沿用 sgs virtio_desc 的接口下发至后端Virtio-blk 直通uring_cmd 用户态定义数据格式:out_hdr 内容直接拷贝至 virtio_blk_outhdrType 当前仅支持读写Sector 代表其实扇区Data:用户态缓冲区地址,或者 iovec 的首地址指针Data_len:用户态缓冲区长度,或者 iovec

4、 的向量长度Flag:用于表示当前是为向量请求,可扩展。双向命令:对双向命令解析时,根据 write_iov_count 区分读写缓冲区的数量。当前仅支持先写后读Virtio-blk 直通 创建/dev/vdXc0 通用字符接口 提供 uring_cmd 句柄 直通 virtio-blk 驱动层 复用 request 和 blk-mq 机制 Hctx 分发框架 请求管理机制 vbr sgs virtio descs 复用原有逻辑 iopoll 提供轮询方式Virtio-blk 双向命令支持思路核心:在 io_uring passthrough 路径上,原有结构体能否搭载两个方向的读写信息图片用

5、户态缓冲区 struct bio:走两次映射,通过 bio-bi_opf 来区分读写 每个双向命令,struct request 结构体中会包含一个 bio链表,总元素数为2 由于 bi_opf 相反,不会发生 merge 行为struct bio struct vbr:添加额外的 sgl_extra 链表指针两个链表指针保存读、写缓冲区信息。无需修改 virtqueue_add_sgs()接口Vring Pair 支持Vring Pair 支持技术背景:后端链路较长,传统的virtio_ring只有 I/O完成时才能回收 slot解决方案:利用两条Virtqueue队列,一条负责发送请求,一

6、条回收完成信息需要后端支持依赖设备驱动层的状态保存依赖设备驱动层管理DMA映射Vring Pair 支持1、根据 tag 定位请求信息2、indirect desc 保存进 L1 中(非必须)3、复用 ioprio 字段高16位4、保存 L1 指针,根据 tag 索引SQ下发Vring Pair 支持SQ回收1、后端收到请求,回填used_index通知前端不产生中断后端提供支持2、回收 desc slot3、indirect(L1区域)部分不释放请求尚未完成Vring Pa

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(《基于io_uring和双virtqueue队列的virtio-blk数据通路加速方案》-孟繁瑞.pdf)为本站 (表表) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
客服
商务合作
小程序
服务号
折叠