(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211060455.3
(22)申请日 2022.08.30
(71)申请人 阿里巴巴 (中国) 有限公司
地址 310023 浙江省杭州市余杭区五常街
道文一西路969号3幢5层5 54室
(72)发明人 巩小东
(74)专利代理 机构 北京太合九思知识产权代理
有限公司 1 1610
专利代理师 邓春燕
(51)Int.Cl.
G06F 9/455(2006.01)
G06F 9/50(2006.01)
(54)发明名称
一种云环 境下的I/O卸载方法、 设备、 系统及
存储介质
(57)摘要
本申请实施例提供一种云环 境下的I/O卸载
方法、 设备、 系统及存储介质。 在本申请实施例
中, 宿主机的CP U中增配了队列组件, 且创新性地
提出将队列组件用于I/O的处理过程中。 基于此,
可通过队列组件为宿主机上的实例提供虚拟I/O
设备以及与虚拟I/O设备对应的设备队列; 在CP U
内, 利用设备队列对实例与虚拟I/O设备之间发
生的I/O请求进行调度; 而原 本的I/O卸载卡则只
需负责监听设备队列中的I/O请求并传递I/O请
求所相关的数据即可。 这样, 可将I/O 处理过程中
的设备队列上移 到CPU内, 从而在I/O调度过程中
可与CPU内各部件 联动, 获取到CP U内各核心的实
时负载, 从而可更加合理地实现I/O调度, 而不再
盲目调度, 这可有效提高I/O的处 理效率。
权利要求书3页 说明书16页 附图6页
CN 115408108 A
2022.11.29
CN 115408108 A
1.一种云环境下的I/O卸载系统, 包括: 宿主机的CPU以及插接在所述宿主机上的I/O卸
载卡, 所述CPU内装配有队列组件;
所述队列组件, 用于为所述宿主机上的实例提供虚拟I/O设备以及与所述虚拟I/O设备
对应的设备队列; 在所述CPU内, 利用所述设备队列对所述实例与所述虚拟I/O设备之间发
生的I/O请求进行调度;
所述I/O卸载卡, 用于监听所述设备队列中的I/O请求; 在所述实例与所述虚拟I/O设备
对应的物理I/O 设备之间传递 监听到的I/O请求所相关的数据。
2.根据权利要求1所述的系统, 采用专用集成电路ASIC构建所述队列组件, 所述队列组
件接入所述CPU的内部总线。
3.根据权利要求1所述的系统, 所述设备队列分别与所述虚拟I/O设备和所述I/O卸载
卡对接, 所述虚拟I/O设备将其与所述实例之间发生的I/O请求传递至所述设备队列, 所述
设备队列将所述 I/O请求传递至所述 I/O卸载卡, 以使所述 I/O卸载卡感知到所述 I/O请求。
4.根据权利要求1所述的系统, 所述设备队列包括第 一层队列和第 二层队列, 所述队列
组件还用于:
为所述虚拟I/O 设备关联第一指定数量的第一层队列和第二指定数量的第二层队列;
建立所述虚拟I/O 设备关联的第一层队列和第二层队列之间的映射关系;
将所述虚拟I/O 设备关联的第一层队列对接 至所述实例下的各个VCPU;
将所述虚拟I/O设备关联的第二层队列 通过I/O卸载卡对接至所述虚拟I/O设备对应的
物理I/O设备。
5.根据权利要求 4所述的系统, 所述 I/O卸载卡, 还用于:
对所述物理I/O 设备进行模拟, 以产生所述物理I/O 设备对应的模拟设备;
将所述虚拟I/O设备关联的第二层队列绑定至所述模拟设备, 以将所述虚拟I/O设备关
联的第二层队列对接 至所述物理I/O 设备。
6.根据权利要求4所述的系统, 所述队列组件在利用所述设备队列对所述实例与所述
虚拟I/O设备之间发生的I/O请求进行调度的过程中, 用于:
在所述实例向所述虚拟I/O设备发起读请求的过程中, 读取所述实例下的各个VCPU 的
负载信息;
根据所述负载信 息将所述读请求调度至所述虚拟I/O设备关联的第 一层队列中的第一
队列, 以使用所述第一队列所对接的VCPU处 理所述读 请求。
7.根据权利要求6所述的系统, 所述I/O卸载卡, 还用于: 获取所述读请求对应的响应报
文; 将所述响应报文中的元数据信息加入所述虚拟I/O设备关联的第二层队列中的指定队
列;
所述队列组件在根据 所述负载信息将所述读请求调度至所述虚拟I/O设备关联的第一
层队列中的第一队列的过程中, 用于: 根据所述负载信息将所述指定队列中的所述元数据
信息调度至所述第一队列中。
8.根据权利要求7所述的系统, 所述I/O卸载卡在所述实例与所述虚拟I/O设备对应的
物理I/O设备之间传递监听到的I/O请求所相关的数据的过程中, 用于: 将所述响应报文中
的数据部分写入所述 实例对应的内存空间; 将所述数据部 分所在的内存地址添加至所述元
数据信息中;权 利 要 求 书 1/3 页
2
CN 115408108 A
2所述队列组件, 还用于: 触发目标队列对接的VCPU按照所述元数据信息中的内存地址
读取所述响应报文中的数据部分。
9.根据权利要求4所述的系统, 所述队列组件在利用所述设备队列对所述实例与所述
虚拟I/O设备之间发生的I/O请求进行调度过程中, 用于: 将所述 实例向所述虚拟I/O设备发
起的写请求的元数据信息加入所述虚拟I/O设备关联的第一层队列中; 将所述写请求的元
数据信息调度至所述虚拟I/O 设备关联的第二层队列中的第二队列;
所述I/O卸载卡, 还用于: 利用所述第二队列对接的物理I/O 设备处理所述写请求。
10.根据权利要求9所述的系统, 所述队列组件, 还用于: 将所述写请求对应的数据部分
写入所述实例对应的内存空间; 将所述数据部分所在的内存地址添加至所述元数据信息
中;
所述I/O卸载卡在所述实例与所述虚拟I/O设备对应的物理I/O设备之间传递监听到的
I/O请求所相关的数据的过程中, 用于: 从所述第二队列中读取所述元数据信息; 按照所述
元数据信息中的内存地址获取所述写请求的数据部 分; 将所述数据部 分发送至所述第二队
列对接的所述物理I/O 设备中。
11.根据权利要求1所述的系统, 所述队列组件在为所述宿主机上的实例提供虚拟I/O
设备的过程中, 用于:
对需要与所述实例进行I/O的物理I/O设备进行I/O虚拟化, 以产 生所述物理I/O设备对
应的虚拟I/O 设备。
12.根据权利要求11所述的系统, 所述队列组件在对需要与所述实例进行I/O的物理I/
O设备进行I/O虚拟化的过程中, 用于:
采用SRIOV技术, 为 需要与所述实例进行I/O的物理I/O设备创建VF设备, 所述VF设备用
于与所述实例下的各个VCPU 进行数据交换;
利用所述实例的操作系统将所述VF设备注 册为指定类型的虚拟I/O 设备。
13.根据权利要求1所述的系统, 所述实例与所述虚拟I/O设备之间发生的I/O请求采用
io‑uring协议。
14.根据权利要求1所述的系统, 所述队列组件中还 包括加速模块, 所述加速模块用于:
对所述实例与所述虚拟I/O设备之间发生的I/O请求所相关的数据执行加速处理, 所述
加速处理包括: 加解密、 压缩和统计卸载中的一种或多种处 理。
15.根据权利要求14所述的系统, 所述加速模块绑定至所述宿主机为所述虚拟I/O设备
分配的内存地址, 所述虚拟I/ O设备将其与所述 实例之间发生的I/ O请求传递至所述设备队
列; 所述设备队列触发所述加速模块访问所述内存地址并对所述I/O请求所相关的数据进
行加速处理; 所述设备队列将所述I/O请求传递至所述I/O卸载卡, 以使 所述I/O卸载卡 感知
到所述I/O请求并从所述内存地址读取 所述加速处 理后的数据。
16.一种云环境下的I/O卸载方法, 适用于宿主机中的CPU, 所述CPU中装配有队列组件,
所述方法包括:
利用所述队列组件为所述宿主机上的实例提供虚拟I/O 设备;
利用所述队列组件为所述虚拟I/O 设备配置对应的设备队列;
在所述CPU内, 利用所述设备队列对所述实例与所述虚拟I/O设备之间发生的I/O请求
进行调度, 以供所述宿主机上插接的I/ O卸载卡监听所述设备队列中的I/O请求并在所述 实权 利 要 求 书 2/3 页
3
CN 115408108 A
3
专利 一种云环境下的I O卸载方法、设备、系统及存储介质
文档预览
中文文档
26 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共26页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 13:07:21上传分享