[发明专利]一种ceph存储osd读均衡方法及其系统有效
申请号: | 202110015293.0 | 申请日: | 2021-01-07 |
公开(公告)号: | CN112346667B | 公开(公告)日: | 2021-05-18 |
发明(设计)人: | 吴日明;闵宇;史伟 | 申请(专利权)人: | 广东睿江云计算股份有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 佛山市禾才知识产权代理有限公司 44379 | 代理人: | 梁永健 |
地址: | 528000 广东省佛山市禅*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 ceph 存储 osd 均衡 方法 及其 系统 | ||
本发明公开了一种ceph存储osd读均衡方法及其系统,方法步骤包括:将数据均分成若干数据块发送给读写请求队列模块;将数据块写入主副本存储模块,主副本存储模块将数据块同步写入第一从副本存储模块和第二从副本存储模块;当需要读取数据时,判断在读取对象数据块时,是否也需要向对象数据块进行写入操作;若读写请求队列模块包含相应数据块的写入操作,则读操作由主副本模块完成,否则把数据块读操作分发给第一从副本存储模块或第二从副本存储模块进行对象数据块的读取,并将读取的对象数据块发送给ceph存储模块。本发明通过算法把读请求均衡的分配给所有从副本处理,从而减轻主副本的压力,减少数据读取的响应时间。
技术领域
本发明涉及ceph存储技术领域,特别涉及一种ceph存储osd读均衡方法及其系统。
背景技术
ceph是一款开源的分布式存储系统,其对外提供块服务、文件系统服务以及对象存储服务,在市场上应用广泛。
ceph分布式存储系统的数据由分布在不同主机的不同磁盘进行存储,每一块磁盘由一个命名为osd的守护进程处理数据读写请求。ceph采用object代表一块数据,object归属于一个pg,pg默认采用3副本实现数据可靠性,3个副本对应3个osd,也就是1个object在3个osd上存在副本,3个osd又区分为1个主副本和2个从副本。
为了保证数据一致性,ceph默认采取数据读写都由主副本发起,从副本只做备份,其中读数据只会从主副本中读取。由于数据读写都落在了主副本身上,磁盘io操作频繁时,磁盘io又属于相对耗时操作,必然会加重主副本的负载,导致拖慢了客户端的响应,这是现有技术所存在的问题。
发明内容
本发明要解决的技术问题在于,提供一种ceph存储osd读均衡方法及其系统,本发明则统计所有的读请求,通过算法把读请求均衡的分配给所有从副本处理,从而减轻主副本的压力,减少数据读取的响应时间。
为解决上述技术问题,本发明提供如下技术方案:一种ceph存储osd读均衡方法,包括以下步骤:
步骤S1、客户端将用户写入的数据发送给ceph存储模块;
步骤S2、ceph存储模块将数据均分成若干数据块,并将每一数据块发送给对应存储单元的读写请求队列模块;读写请求队列模块将数据块写入主副本存储模块,主副本存储模块将数据块同步写入第一从副本存储模块和第二从副本存储模块;
其中,存储单元包括读写请求队列模块、主副本存储模块、第一从副本存储模块和第二从副本存储模块;
步骤S3、当客户端需要读取数据时,ceph存储模块将读取数据块指令发给读写请求队列模块;读写请求队列模块根据读取数据块指令得到具体所需要读取的数据块,将此具体所需要读取的数据块称为对象数据块;
步骤S4、读写请求队列模块判断在读写请求队列模块读取对象数据块时,读写请求队列模块是否也需要向对象数据块进行写入操作;
若在读写请求队列模块读取对象数据块时,读写请求队列模块也需要向对象数据块进行写入操作,则读写请求队列模块直接将对象数据块写入主副本存储模块,主副本存储模块将数据块同步写入第一从副本存储模块和第二从副本存储模块,并在主副本存储模块上读取对象数据块且将对象数据块发送给ceph存储模块;
若在读写请求队列模块读取对象数据块时,读写请求队列模块无需向对象数据块进行写入操作,则读写请求队列模块判断主副本存储模块的io使用率是否超过一定阈值;
若主副本存储模块的io使用率没有超过一定阈值,则读写请求队列模块从主副本存储模块中读取对象数据块且将对象数据块发送给ceph存储模块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东睿江云计算股份有限公司,未经广东睿江云计算股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110015293.0/2.html,转载请声明来源钻瓜专利网。