[发明专利]一种读写性能优化方法及装置有效
申请号: | 202110481138.8 | 申请日: | 2021-04-30 |
公开(公告)号: | CN113253925B | 公开(公告)日: | 2022-08-30 |
发明(设计)人: | 王润强 | 申请(专利权)人: | 新华三大数据技术有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 450000 河南省郑州市郑州高*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 读写 性能 优化 方法 装置 | ||
本申请涉及分布式存储技术领域,特别涉及一种读写性能优化方法及装置。该方法包括:接收目标客户端发送的业务命令,并判断所述业务命令的类型;若判定所述业务命令为目标对象的读/写请求,则基于所述业务命令对所述目标对象进行读/写处理;在所述读/写请求执行完成后,若object‑map中所述目标对象的状态不变/由其它状态调整为有数据状态,则不通知除所述目标客户端之外的其它客户端更新object‑map;否则,通知所述其它客户端更新object‑map。
技术领域
本申请涉及分布式存储技术领域,特别涉及一种读写性能优化方法及装置。
背景技术
Ceph是开源的软件定义存储,在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。
在支持object-map特性之前,组成image的各数据对象的存在状态是未知的。当需要做一些遍历image所有数据对象的操作时,即使组成image的真实存在的数据对象非常稀疏,执行类似于克隆分离、已使用容量计算等操作时,依然需要遍历整个image的所有数据对象,导致执行时间较长。
引入object-map特性可以有效缓解上述问题,就是将image中所有数据对象的存在状态记录在一个独立的元数据对象中,也即rbd_object_map对象。每个数据对象的状态使用两个比特位进行表示。
虽然引入object-map特性,解决了遍历image所有数据对象的耗时问题。但维护object-map也需要付出一定的性能代价。实际应用中,IO请求会修改object-map,因此多客户端场景下发IO请求时,客户端首先需要竞争到exclusive-lock锁,才能下发IO写数据,将多客户端的并发IO请求限制为串行下发。为了保证多客户端场景下的object-map准确性,所有涉及object-map的操作,首先需要获取exclusive-lock,重新加载object-map,或者将请求发送到持有exclusive-lock的客户端去执行,在多客户端场景,严重影响了image的写IO性能。对于上述问题,目前尚未提出有效的解决方案。
发明内容
本申请提供了一种读写性能优化方法及装置,用以解决现有技术中存在的多客户端场景下IO性能低的问题。
第一方面,本申请提供了一种读写性能优化方法,应用于分布式存储块设备,所述方法包括:
接收目标客户端发送的业务命令,并判断所述业务命令的类型;
若判定所述业务命令为目标对象的读/写请求,则基于所述业务命令对所述目标对象进行读/写处理;
在所述读/写请求执行完成后,若object-map中所述目标对象的状态不变/由其它状态调整为有数据状态,则不通知除所述目标客户端之外的其它客户端更新object-map;否则,通知所述其它客户端更新object-map。
可选地,所述业务命令为管理流请求,所述方法还包括:
将独占锁配置给所述目标客户端发送的所述管理流请求,并基于所述独占锁,执行所述目标客户端发送的所述管理流请求,以及基于所述管理流请求调整object-map中各对象的状态,得到更新后的object-map。
可选地,所述其它状态包括:无数据状态,待删除状态和快照保护状态;
所述管理流请求包括:分布式存储块设备的扩容请求,元数据设置请求,元数据删除请求,分布式存储块设备快照的创建请求、快照的删除请求、快照的回滚请求。
可选地,基于所述管理流请求调整object-map中各对象的状态之后,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新华三大数据技术有限公司,未经新华三大数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110481138.8/2.html,转载请声明来源钻瓜专利网。