[发明专利]一种面向NVMe和RDMA的分布式存储系统及轻量级同步通信方法有效
申请号: | 201910515887.0 | 申请日: | 2019-06-14 |
公开(公告)号: | CN110262754B | 公开(公告)日: | 2022-10-04 |
发明(设计)人: | 翁楚良;涂云山;储佳佳;张耀 | 申请(专利权)人: | 华东师范大学 |
主分类号: | G06F3/06 | 分类号: | G06F3/06;H04L67/1097;H04L67/1095;H04L67/56 |
代理公司: | 上海蓝迪专利商标事务所(普通合伙) 31215 | 代理人: | 徐筱梅;张翔 |
地址: | 200241 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 nvme rdma 分布式 存储系统 轻量级 同步 通信 方法 | ||
1.一种面向NVMe和RDMA的轻量级同步通信方法,其特征在于,所述方法包括轻量级的I/ O 软件堆栈、面向NVMe的表格存储机制、异步和同步的I /O 轮询模型以及基于RDMA 的数据通信同步策略;
所述轻量级的I / O 软件堆栈,由存储和网络两个软件栈组成,存储软件栈基于英特尔SPDK驱动模块,在用户态中,直接将关系表中数据以逐行方式,持久化到NVMe设备的逻辑块中,网络软件栈,基于RDMA提供的verbs接口,在用户态中,基于通信场景,混合使用单边和双边模型;
所述面向NVMe的表格存储机制,使用共享内存,减少RDMA 和NVMe 设备间的内存拷贝,将NVMe协议中混合使用的I / O队列对完全隔离开,划分为专用于写入的队列、专用于读取的队列以及共享读取和写入的队列,来自客户端的请求对写入较敏感,插入到专用于写入的提交队列中排队,来自客户端的请求对读取较敏感,插入到专用于读取的提交队列中排队,来自客户端的请求对读取或写入都不敏感,插入到共享读取和写入的提交队列中排队;
所述异步和同步的I /O 轮询模型,在异步轮询中,将所有完成队列绑定到某个特定的CPU 核心上,在同步轮询中,工作线程在提交请求后,该线程轮询对应的完成队列;
所述基于RDMA的数据通信同步策略,依据数据通信场景的不同,混合RDMA双边和单边数据同步通信,将分区子表数据从代理服务中写入远端存储服务中,采用双边模型主动地写入方式,从存储服务中读取子表数据到代理服务中,采用双边模型主动地读取方式,在主从代理服务间同步数据时,使用单边模型主动地写入方式;其中:
所述双边模型主动地写入方式,步骤如下:
第一步:代理服务所在节点的CPU 通过调用ibv_post_send() 函数,主动地将写入请求连同数据一起发送给远端的存储服务;
第二步:存储服务为该写入请求分配一段连续的内存空间,将数据填入到本地的内存当中;
第三步:当数据同步到NVMe 固态盘之后,便响应远端的代理服务;
所述双边模型主动地读取方式,步骤如下:
第一步:代理服务所在服务节点的CPU 通过调用ibv_post_send() 函数,将相应的读请求发送到远端的存储服务中;
第二步:远端的存储服务所在节点的CPU 解析该请求,查找待读取数据的存放位置;
第三步:将读取的数据随响应消息一同发送给远端的代理服务;
所述单边模型主动地写入方式,步骤如下:
第一步:主代理服务直接调用rdma_post_write() 函数,主动地将数据写入到远端从代理服务节点的内存中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华东师范大学,未经华东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910515887.0/1.html,转载请声明来源钻瓜专利网。