Ceph集群中加速同步状态的方法及装置制造方法及图纸

技术编号:27935512 阅读:22 留言:0更新日期:2021-04-02 14:15
本申请提供一种Ceph集群中加速同步状态的方法及装置,该方法应用于主PG,主PG包括第一结构体以及第二结构体,该方法包括:当Peering流程启动后,判断第一结构体中是否已存储从PG发送的pg_info消息;如果第一结构体中未存储从PG发送的pg_info消息,则判断第二结构体中是否已存储主PG向从PG发送的查询消息的版本号;如果第二结构体中已存储主PG向所述从PG发送的查询消息的版本号,则判断从PG对应映射的OSD的状态变化;如果第二结构体中记录的OSD的原始版本号与OSD的当前版本号之间包括的各版本号所对应的OSD状态均为up,则不再向从PG发送查询消息。

【技术实现步骤摘要】
Ceph集群中加速同步状态的方法及装置
本申请涉及通信
,尤其涉及一种Ceph集群中加速同步状态的方法及装置。
技术介绍
目前,分布式存储系统(Ceph)已成为最流行的开源存储解决方案之一。如图1所示,图1为现有技术中Ceph存储架构示意图。在图1中,Ceph存储架构包括RADOS块设备(英文:RADOSBlockDevice,简称:RBD)、RADOS网关(英文:RADOSGateWay,简称:RADOSGW)、Ceph文件系统(英文:CephFileSystem,简称:CephFS)、Ceph中用来简化访问RADOS的库(librados)以及RADOS对象存储系统。上层应用向Ceph的客户端发送业务请求。客户端根据业务请求的类型,调用RBD、或RADOSGW、或CephFS后,将业务请求转发至librados。由librados调用其包括的对象存储设备客户端(英文:ObjectStoreDeviceClient,简称:OSDC)模块,访问RADOS对象存储系统。其中,RADOS对象存储系统主要由两种节点组成。一种是用于完成数据存储和维护功能的存储节点;另一种则是用于完成系统状态检测和维护的监控节点。存储节点内包括多个对象存储设备(英文:ObjectStoreDevice,简称:OSD)。若应用程序访问RADOS对象存储系统并执行写操作,则数据将会以对象的形式存储在OSD中。图2为现有技术中Ceph寻址流程示意图。首先,根据预设的文件大小,将用户待存储的文件切割成多个对象(Objects)。每个对象通过哈希(hash)算法映射至某一个PG中。放置组(英文:PlacementGroup,简称:PG)是一组对象的逻辑集合,在集合中包含多个对象。然后,再通过CRUSH算法,将该PG映射值一组OSD中。这组OSD中存储映射至PG中的对象。同步状态(Peering)流程是Ceph集群中保障数据恢复以及数据一致性的流程。当PG映射至OSD的过程中发生变化时,Peering流程被触发。Peering流程主要包括三个阶段,即GetInfo阶段、GetLog阶段以及GetMissing阶段。在GetInfo阶段中,主(Primary)PG向相关的全部从(Stray)PG发送查询(query)消息,以获取从PG的pg_info消息。待全部从PG均反馈pg_info消息消息后,进入GetLog阶段。在GetLog阶段中,主PG根据全部从PG的pg_info消息,选择权威PG,并获取权威PG的pg_log信息。主PG获取到权威PG的pg_log信息后,进入GetMissing阶段。在GetMissing阶段中,主PG根据权威PG的pg_log信息生成missing列表,该missing列表中,记录每个从PG缺失的数据信息,为后续数据重构做准备。在实际运行中,假设Ceph集群包括三个存储节点,每个存储节点包括36个OSD,配置为EC4+2:1纠删码池和三副本池。当某个存储节点反复故障、恢复、再故障、在恢复,导致该存储节点包括的OSD状态持续改变。即OSD状态反复从down变更为up,再从up变更为down。OSD反复离开Ceph集群、加入Ceph集群。OSD状态持续改变,也导致PG的映射在持续的变化。当故障存储节点包括的OSD的状态从down变为up并加入Ceph集群后,由于存储节点为三个且池类型为三副本,全部的PG均会向正在变为up的OSD中映射对象,进而触发Peering流程中的GetInfo阶段。在GetInfo阶段中,每一个OSD的状态从down变为up并加入Ceph集群后,主PG均会向全部的从PG发送一次query消息。从PG重复接收到大量的query消息,导致GetInfo阶段耗时较长,进一步使得Peering流程也耗时较长。
技术实现思路
有鉴于此,本申请提供了一种Ceph集群中加速同步状态的方法及装置,用以解决现有技术中从PG重复接收到大量的query消息,导致GetInfo阶段耗时较长,进一步使得Peering流程也耗时较长的问题。第一方面,本申请提供了一种Ceph集群中加速同步状态的方法,所述方法应用于主PG,所述主PG包括第一结构体以及第二结构体,所述方法包括:当Peering流程启动后,判断所述第一结构体中是否已存储从PG发送的pg_info消息;如果所述第一结构体中未存储所述从PG发送的pg_info消息,则判断所述第二结构体中是否已存储所述主PG向所述从PG发送的查询消息的版本号;如果所述第二结构体中已存储所述主PG向所述从PG发送的查询消息的版本号,则判断所述从PG对应映射的OSD的状态变化,所述OSD的状态变化为所述第二结构体中记录的所述OSD的原始版本号与所述OSD的当前版本号之间包括的各版本号所对应的OSD状态是否改变;如果所述第二结构体中记录的所述OSD的原始版本号与所述OSD的当前版本号之间包括的各版本号所对应的OSD状态均为up,则不再向所述从PG发送所述查询消息。第二方面,本申请提供了一种Ceph集群中加速同步状态的装置,所述装置应用于主PG,所述主PG包括第一结构体以及第二结构体,所述装置包括:第一判断单元,用于当Peering流程启动后,判断所述第一结构体中是否已存储从PG发送的pg_info消息;第二判断单元,用于如果所述第一结构体中未存储所述从PG发送的pg_info消息,则判断所述第二结构体中是否已存储所述主PG向所述从PG发送的查询消息的版本号;第三判断单元,用于如果所述第二结构体中已存储所述主PG向所述从PG发送的查询消息的版本号,则判断所述从PG对应映射的OSD的状态变化,所述OSD的状态变化为所述第二结构体中记录的所述OSD的原始版本号与所述OSD的当前版本号之间包括的各版本号所对应的OSD状态是否改变;处理单元,用于如果所述第二结构体中记录的所述OSD的原始版本号与所述OSD的当前版本号之间包括的各版本号所对应的OSD状态均为up,则不再向所述从PG发送所述查询消息。第三方面,本申请提供了一种网络设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使执行本申请第一方面所提供的方法。因此,通过应用本申请提供的Ceph集群中加速同步状态的方法及装置,当Peering流程启动后,主PG判断第一结构体中是否已存储从PG发送的pg_info消息。如果第一结构体中未存储从PG发送的pg_info消息,则主PG判断第二结构体中是否已存储主PG向从PG发送的查询消息的版本号。如果第二结构体中已存储主PG向从PG发送的查询消息的版本号,则主PG判断从PG对应映射的OSD的状态变化,该OSD的状态变化为所述第二结构体中记录的所述OSD的原始版本号与所述OSD的当前版本号之间包括的各版本号所对应的OSD状态是否改变。如果第二结构体中记录的OSD的原始版本号与OSD的当前版本号之间包括本文档来自技高网
...

【技术保护点】
1.一种Ceph集群中加速同步状态的方法,其特征在于,所述方法应用于主PG,所述主PG包括第一结构体以及第二结构体,所述方法包括:/n当Peering流程启动后,判断所述第一结构体中是否已存储从PG发送的pg_info消息;/n如果所述第一结构体中未存储所述从PG发送的pg_info消息,则判断所述第二结构体中是否已存储所述主PG向所述从PG发送的查询消息的版本号;/n如果所述第二结构体中已存储所述主PG向所述从PG发送的查询消息的版本号,则判断所述从PG对应映射的OSD的状态变化,所述OSD的状态变化为所述第二结构体中记录的所述OSD的原始版本号与所述OSD的当前版本号之间包括的各版本号所对应的OSD状态是否改变;/n如果所述第二结构体中记录的所述OSD的原始版本号与所述OSD的当前版本号之间包括的各版本号所对应的OSD状态均为up,则不再向所述从PG发送所述查询消息。/n

【技术特征摘要】
1.一种Ceph集群中加速同步状态的方法,其特征在于,所述方法应用于主PG,所述主PG包括第一结构体以及第二结构体,所述方法包括:
当Peering流程启动后,判断所述第一结构体中是否已存储从PG发送的pg_info消息;
如果所述第一结构体中未存储所述从PG发送的pg_info消息,则判断所述第二结构体中是否已存储所述主PG向所述从PG发送的查询消息的版本号;
如果所述第二结构体中已存储所述主PG向所述从PG发送的查询消息的版本号,则判断所述从PG对应映射的OSD的状态变化,所述OSD的状态变化为所述第二结构体中记录的所述OSD的原始版本号与所述OSD的当前版本号之间包括的各版本号所对应的OSD状态是否改变;
如果所述第二结构体中记录的所述OSD的原始版本号与所述OSD的当前版本号之间包括的各版本号所对应的OSD状态均为up,则不再向所述从PG发送所述查询消息。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述第一结构体中已存储所述从PG发送的pg_info消息,则不再向所述从PG发送所述查询消息。


3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述第二结构体中未存储所述主PG向所述从PG发送的查询消息的版本号,则向所述从PG再次发送所述查询消息。


4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述第二结构体中记录的所述OSD的原始版本号与所述OSD的当前版本号之间包括的各版本号所对应的OSD状态不均为up,则向所述从PG再次发送所述查询消息。


5.根据权利要求1所述的方法,其特征在于,所述当Peering流程启动后,判断所述第一结构体中是否已存储从PG发送的pg_info消息之前,所述方法还包括:
在GetInfo阶段中,向所述从PG发送所述查询消息;
将所述从PG的标识以及所述查询消息的版本号存储至所述第二结构体中;
当接收到所述从PG发送的pg_info消息时,将所述从PG的标识以及所述从PG发送的pg_info消息存储至所述第一结构体中。


...

【专利技术属性】
技术研发人员:孔令杰
申请(专利权)人:新华三大数据技术有限公司
类型:发明
国别省市:河南;41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1