[发明专利]一种ceph存储osd读均衡方法及其系统有效
申请号: | 202110015293.0 | 申请日: | 2021-01-07 |
公开(公告)号: | CN112346667B | 公开(公告)日: | 2021-05-18 |
发明(设计)人: | 吴日明;闵宇;史伟 | 申请(专利权)人: | 广东睿江云计算股份有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 佛山市禾才知识产权代理有限公司 44379 | 代理人: | 梁永健 |
地址: | 528000 广东省佛山市禅*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 ceph 存储 osd 均衡 方法 及其 系统 | ||
1.一种ceph存储osd读均衡方法,其特征在于,包括以下步骤:
步骤S1、客户端将用户写入的数据发送给ceph存储模块;
步骤S2、ceph存储模块将数据均分成若干数据块,并将每一数据块发送给对应存储单元的读写请求队列模块;读写请求队列模块将数据块写入主副本存储模块,主副本存储模块将数据块同步写入第一从副本存储模块和第二从副本存储模块;
其中,存储单元包括读写请求队列模块、主副本存储模块、第一从副本存储模块和第二从副本存储模块;
步骤S3、当客户端需要读取数据时,ceph存储模块将读取数据块指令发给读写请求队列模块;读写请求队列模块根据读取数据块指令得到具体所需要读取的数据块,将此具体所需要读取的数据块称为对象数据块;
步骤S4、读写请求队列模块将对象数据块的读请求和写请求放在读写请求队列模块中,当读写请求队列模块收到对象数据块的读请求时,读写请求队列模块分析读写请求队列模块有没有同时对对象数据块进行写请求;
若读写请求队列模块收到对象数据块的读请求时,读写请求队列模块有同时对对象数据块进行写请求,则读写请求队列模块直接将对象数据块写入主副本存储模块,主副本存储模块将数据块同步写入第一从副本存储模块和第二从副本存储模块,并在主副本存储模块上读取对象数据块且将对象数据块发送给ceph存储模块;
若读写请求队列模块收到对象数据块的读请求时,读写请求队列模块没有同时对对象数据块进行写请求,则读写请求队列模块判断主副本存储模块的io使用率是否超过一定阈值;
若主副本存储模块的io使用率没有超过一定阈值,则读写请求队列模块从主副本存储模块中读取对象数据块且将对象数据块发送给ceph存储模块;
若主副本存储模块的io使用率超过一定阈值,则读写请求队列模块判断第一从副本存储模块的io使用率是否超过规定阈值;若第一从副本存储模块的io使用率没有超过规定阈值,则读写请求队列模块从第一从副本存储模块中读取对象数据块且将对象数据块发送给ceph存储模块;
若第一从副本存储模块的io使用率超过规定阈值,则读写请求队列模块从第二从副本存储模块中读取对象数据块且将对象数据块发送给ceph存储模块;
步骤S5、ceph存储模块接收各个存储单元的读写请求队列模块发送过来的对象数据块进行合并得到数据后,将数据发给客户端。
2.一种ceph存储osd读均衡系统,其特征在于,包括客户端、ceph存储模块以及若干存储单元,所述存储单元包括读写请求队列模块、主副本存储模块、第一从副本存储模块和第二从副本存储模块;
所述客户端用于将用户写入的数据发送给所述ceph存储模块;
所述ceph存储模块用于将用户写入的数据分成若干数据块,并将每一数据块发送给对应存储单元的读写请求队列模块;
所述读写请求队列模块用于将数据块写入主副本存储模块;所述主副本存储模块用于将数据块同步写入第一从副本存储模块和第二从副本存储模块;
所述客户端还用于向所述ceph存储模块读取数据;
所述ceph存储模块还用于:当客户端需要读取数据时,ceph存储模块将读取数据块指令发给读写请求队列模块;读写请求队列模块根据读取数据块指令得到具体所需要读取的数据块,将此具体所需要读取的数据块称为对象数据块;
所述读写请求队列模块还用于:读写请求队列模块将对象数据块的读请求和写请求放在读写请求队列模块中,当读写请求队列模块收到对象数据块的读请求时,读写请求队列模块分析读写请求队列模块有没有同时对对象数据块进行写请求;若读写请求队列模块收到对象数据块的读请求时,读写请求队列模块有同时对对象数据块进行写请求,则读写请求队列模块直接将对象数据块写入主副本存储模块,主副本存储模块将数据块同步写入第一从副本存储模块和第二从副本存储模块,并在主副本存储模块上读取对象数据块且将对象数据块发送给ceph存储模块;若读写请求队列模块收到对象数据块的读请求时,读写请求队列模块没有同时对对象数据块进行写请求,则读写请求队列模块判断主副本存储模块的io使用率是否超过一定阈值;若主副本存储模块的io使用率没有超过一定阈值,则读写请求队列模块从主副本存储模块中读取对象数据块且将对象数据块发送给ceph存储模块;若主副本存储模块的io使用率超过一定阈值,则读写请求队列模块判断第一从副本存储模块的io使用率是否超过规定阈值;若第一从副本存储模块的io使用率没有超过规定阈值,则读写请求队列模块从第一从副本存储模块中读取对象数据块且将对象数据块发送给ceph存储模块;若第一从副本存储模块的io使用率超过规定阈值,则读写请求队列模块从第二从副本存储模块中读取对象数据块且将对象数据块发送给ceph存储模块;
所述ceph存储模块还用于接收各个存储单元的读写请求队列模块发送过来的对象数据块进行合并得到数据后,将数据发给客户端。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东睿江云计算股份有限公司,未经广东睿江云计算股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110015293.0/1.html,转载请声明来源钻瓜专利网。