CN112597243B - Ceph集群中加速同步状态的方法及装置 - Google Patents
Ceph集群中加速同步状态的方法及装置 Download PDFInfo
- Publication number
- CN112597243B CN112597243B CN202011527605.8A CN202011527605A CN112597243B CN 112597243 B CN112597243 B CN 112597243B CN 202011527605 A CN202011527605 A CN 202011527605A CN 112597243 B CN112597243 B CN 112597243B
- Authority
- CN
- China
- Prior art keywords
- slave
- osd
- version number
- master
- message sent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种Ceph集群中加速同步状态的方法及装置,该方法应用于主PG,主PG包括第一结构体以及第二结构体,该方法包括:当Peering流程启动后,判断第一结构体中是否已存储从PG发送的pg_info消息;如果第一结构体中未存储从PG发送的pg_info消息,则判断第二结构体中是否已存储主PG向从PG发送的查询消息的版本号;如果第二结构体中已存储主PG向所述从PG发送的查询消息的版本号,则判断从PG对应映射的OSD的状态变化;如果第二结构体中记录的OSD的原始版本号与OSD的当前版本号之间包括的各版本号所对应的OSD状态均为up,则不再向从PG发送查询消息。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种Ceph集群中加速同步状态的方法及装置。
背景技术
目前,分布式存储***(Ceph)已成为最流行的开源存储解决方案之一。如图1所示,图1为现有技术中Ceph存储架构示意图。
在图1中,Ceph存储架构包括RADOS块设备(英文:RADOS Block Device,简称:RBD)、RADOS网关(英文:RADOS GateWay,简称:RADOS GW)、Ceph文件***(英文:Ceph FileSystem,简称:Ceph FS)、Ceph中用来简化访问RADOS的库(librados)以及RADOS对象存储***。
上层应用向Ceph的客户端发送业务请求。客户端根据业务请求的类型,调用RBD、或RADOS GW、或Ceph FS后,将业务请求转发至librados。由librados调用其包括的对象存储设备客户端(英文:Object Store Device Client,简称:OSDC)模块,访问RADOS对象存储***。
其中,RADOS对象存储***主要由两种节点组成。一种是用于完成数据存储和维护功能的存储节点;另一种则是用于完成***状态检测和维护的监控节点。存储节点内包括多个对象存储设备(英文:Object Store Device,简称:OSD)。若应用程序访问RADOS对象存储***并执行写操作,则数据将会以对象的形式存储在OSD中。
图2为现有技术中Ceph寻址流程示意图。首先,根据预设的文件大小,将用户待存储的文件切割成多个对象(Objects)。每个对象通过哈希(hash)算法映射至某一个PG中。放置组(英文:Placement Group,简称: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的当前版本号之间包括的各版本号所对应的OSD状态均为up,则主PG不再向从PG发送查询消息。
如此,解决了现有技术中从PG重复接收到大量的query消息,导致GetInfo阶段耗时较长,进一步使得Peering流程也耗时较长的问题。实现了减少Peering流程中查询消息的发送数量,减少了从PG处理大量且重复的查询消息的工作。
附图说明
图1为现有技术中Ceph存储架构示意图;
图2为现有技术中Ceph寻址流程示意图;
图3为本申请实施例提供的Ceph集群中加速同步状态的方法的流程图;
图4为本申请实施例提供的Ceph集群中加速同步状态的装置结构图;
图5为本申请实施例提供的一种网络设备硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施例并不代表与本申请相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相对应的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
下面对本申请实施例提供的Ceph集群中加速同步状态的方法进行详细地说明。参见图3,图3为本申请实施例提供的Ceph集群中加速同步状态的方法的流程图。该方法应用于主PG,本申请实施例提供的Ceph集群中加速同步状态的方法可包括如下所示步骤。
步骤310、当Peering流程启动后,判断所述第一结构体中是否已存储从PG发送的pg_info消息。
具体地,当PG映射至OSD的过程中发生变化时,Peering流程被触发。在一种场景中,假设Ceph集群包括三个存储节点,每个存储节点包括36个OSD,配置为EC4+2:1纠删码池和三副本池。存储节点A包括的OSD编号为0-35,存储节点B包括的OSD编号为36-71,存储节点C包括的OSD编号为72-107。
对于三副本来说,若存储节点C包括的所有OSD的状态均为down且离开Ceph集群后,某一个副本,例如,PG1.1(其作为主PG,其他两个副本为从PG)此时映射的OSD为[0,36]。后续,若存储节点C包括的OSD的状态按顺序逐个变为up后,集群中全部PG(包括PG1.1)均会向正在变为up的OSD中映射对象,进而多次触发Peering流程。
例如,存储节点C包括的OSD72的状态变为up后,以PG1.1作为主PG为例进行说明。主PG1.1会向OSD72中映射对象,Peering流程被触发,进入GetInfo阶段。主PG1.1向映射至OSD36、OSD72的多个从PG分别发送查询消息,并等待多个从PG反馈pg_info消息。
当存储节点C包括的OSD73的状态变为up后,主PG1.1会向OSD73中映射对象,Peering流程再次被触发,再次进入GetInfo阶段。在现有实现方式中,主PG1.1应向映射至OSD36、OSD72、OSD73的多个从PG分别发送查询消息,并等待多个从PG反馈pg_info消息。
但此时,主PG1.1判断第一结构体中是否已存储从PG发送的pg_info消息。
在本申请实施例中,主PG1.1包括第一结构体以及第二结构体。两个结构体的具体形式如下:
第一结构体:map<pg_shard_t,pg_info_t>h_peer_info;
第二结构体:map<pg_shard_t,epoch_t>peer_log_requested_epoch;
其中,h_peer_info用于存储从PG的标识以及从PG发送的pg_info消息,当从GetInfo阶段进入GetLog阶段,或,当PG的角色从主PG变更为从PG时,清空第一结构体中存储的从PG的标识以及从PG发送的pg_info消息;
peer_log_requested_epoch用于存储从PG的标识以及主PG向该从PG发送查询消息的版本号,当从GetInfo阶段进入GetLog阶段,或,当PG的角色从主PG变更为从PG时,清空第一结构体中存储的从PG的标识以及主PG向该从PG发送查询消息的版本号。
在本步骤中,主PG1.1判断第一结构体中是否已存储从PG发送的pg_info消息后,如果第一结构体中未存储从PG发送的pg_info消息,则主PG1.1执行步骤320。如果第一结构体中已存储从PG发送的pg_info消息,则主PG1.1不再向从PG发送查询消息。
根据前述的例子,主PG1.1向映射至OSD36、OSD72的从PG1.1、从PG3.1分别发送查询消息,并等待从PG2.1、从PG3.1反馈pg_info消息。
若从PG2.1向主PG1.1发送pg_info消息,则主PG1.1将从PG2.1的标识以及从PG2.1发送的pg_info消息存储至第一结构体中;并将从PG2.1的标识、从PG3.1的标识以及主PG1.1向从PG2.1、从PG3.1发送查询消息的版本号存储至第二结构体中。
此时,从PG3.1未向主PG1.1发送pg_info消息。
当存储节点C包括的OSD73的状态变为up后,主PG1.1会向OSD73中映射对象,Peering流程再次被触发,再次进入GetInfo阶段。主PG1.1判断第一结构体中是否已存储从PG 2.1、从PG3.1发送的pg_info消息。
在本示例中,根据从PG2.1的标识,主PG1.1在第一结构体中查找到从PG2.1发送的pg_info消息,则主PG1.1不再向从PG2.1发送查询消息。
根据从PG3.1的标识,主PG1.1在第一结构体中未查找到从PG3.1发送的pg_info消息,则主PG1.1执行步骤320。
步骤320、如果所述第一结构体中未存储所述从PG发送的,则判断所述第二结构体中是否已存储向所述从PG发送的查询消息的版本号。
具体地,根据步骤310的判断,如果第一结构体中未存储从PG发送的pg_info消息,则主PG判断第二结构体中是否已存储向该从PG发送的查询消息的版本号。
如果第二结构体中已存储向该从PG发送的查询消息的版本号,则主PG执行步骤330。第二结构体中未存储向该从PG发送的查询消息的版本号,则主PG向从PG再次发送查询消息。
根据前述的示例,主PG1.1在第一结构体中未查找到从PG3.1发送的pg_info消息,则主PG1.1判断第二结构体中是否已存储向从PG3.1发送的查询消息的版本号。
在本示例中,根据从PG3.1的标识,主PG1.1在第二结构体中查找到主PG1.1向从PG3.1发送查询消息的版本号,则主PG1.1执行步骤330。
根据从PG3.1的标识,主PG1.1在第二结构体中未查找到主PG1.1向从PG3.1发送查询消息的版本号,则主PG1.1再次向从PG3.1发送查询消息,并等待从PG3.1反馈pg_info消息。主PG1.1将从PG3.1的标识以及主PG1.1向从PG3.1发送查询消息的版本号存储至第二结构体中。
步骤330、如果所述第二结构体中已存储向所述从PG发送的查询消息的版本号,则判断所述从PG对应映射的OSD的状态变化,所述OSD的状态变化为所述第二结构体中记录的所述OSD的原始版本号与所述OSD的当前版本号之间包括的各版本号所对应的OSD状态改变。
具体地,根据步骤320的判断,如果第二结构体中已存储向从PG发送的查询消息的版本号,则主PG判断从PG对应映射的OSD的状态变化,该状态变化是指,第二结构体中记录的OSD的原始版本号与OSD的当前版本号之间包括的每个版本号对应的OSD状态是否改变,即OSD状态从up变更为down,或,OSD状态从down变更为up,或,OSD状态维持up、down。
如果从PG对应映射的OSD在第二结构体中记录的原始版本号与该OSD的当前版本号之间包括的每个版本号所对应的OSD状态均为up,则主PG执行步骤340。如果从PG对应映射的OSD在第二结构体中记录的原始版本号与该OSD的当前版本号之间包括的每个版本号所对应的OSD状态不均为up,也即是OSD状态出现过down,则主PG向从PG再次发送查询消息。
根据前述的示例,主PG1.1在第二结构体中查找到从PG3.1的标识以及主PG1.1向从PG3.1发送查询消息的版本号,主PG1.1获取从PG3.1对应映射的OSD的当前状态,并判断从PG3.1对应映射的OSD的当前状态。
在本示例中,如果从PG3.1对应映射的OSD在第二结构体中记录的原始版本号与该OSD的当前版本号之间包括的每个版本号所对应的OSD状态均为up,则主PG1.1执行步骤340。如果从PG3.1对应映射的OSD在第二结构体中记录的原始版本号与该OSD的当前版本号之间包括的每个版本号所对应的OSD状态不均为up,也即是OSD状态出现过down,则主PG1.1向从PG3.1再次发送查询消息,并等待从PG3.1反馈pg_info消息。主PG1.1将从PG3.1的标识以及主PG1.1向从PG3.1发送查询消息的版本号存储至第二结构体中。
需要说明的是,主PG1.1可通过OSD Map获取每个OSD的当前状态,在OSD Map图中存储了每个OSD在每个版本号下的down/up状态、最近一次OSD状态变更为down对应的版本号、最近一次OSD状态变更为up对应的版本号、每个OSD对应映射的PG。
步骤340、如果所述第二结构体中记录的所述OSD的原始版本号与所述OSD的当前版本号之间包括的各版本号所对应的OSD状态均为up,则不再向所述从PG发送所述查询消息。
具体地,根据步骤330的判断,如果从PG对应映射的OSD在第二结构体中记录的原始版本号与该OSD的当前版本号之间包括的每个版本号所对应的OSD状态均为up,则主PG不再向该从PG发送查询消息,主PG等待从PG反馈pg_info消息。
根据前述的示例,如果从PG3.1对应映射的OSD在第二结构体中记录的原始版本号与该OSD的当前版本号之间包括的每个版本号所对应的OSD状态均为up,则主PG1.1不再向该从PG3.1发送查询消息,主PG1.1等待从PG3.1反馈pg_info消息,避免重复向从PG3.1发送查询消息。
因此,通过应用本申请提供的Ceph集群中加速同步状态的方法,当Peering流程启动后,主PG判断第一结构体中是否已存储从PG发送的pg_info消息。如果第一结构体中未存储从PG发送的pg_info消息,则主PG判断第二结构体中是否已存储主PG向从PG发送的查询消息的版本号。如果第二结构体中已存储主PG向从PG发送的查询消息的版本号,则主PG判断从PG对应映射的OSD的状态变化,该OSD的状态变化为所述第二结构体中记录的所述OSD的原始版本号与所述OSD的当前版本号之间包括的各版本号所对应的OSD状态是否改变。如果第二结构体中记录的OSD的原始版本号与OSD的当前版本号之间包括的各版本号所对应的OSD状态均为up,则主PG不再向从PG发送查询消息。
如此,解决了现有技术中从PG重复接收到大量的query消息,导致GetInfo阶段耗时较长,进一步使得Peering流程也耗时较长的问题。实现了减少Peering流程中查询消息的发送数量,减少了从PG处理大量且重复的查询消息的工作。
基于同一发明构思,本申请实施例还提供了与上述Ceph集群中加速同步状态的方法对应的Ceph集群中加速同步状态的装置。参见图4,图4为本申请实施例提供的Ceph集群中加速同步状态的装置结构图,所述装置应用于主PG,所述主PG包括第一结构体以及第二结构体,所述装置包括:
第一判断单元410,用于当Peering流程启动后,判断所述第一结构体中是否已存储从PG发送的pg_info消息;
第二判断单元420,用于如果所述第一结构体中未存储所述从PG发送的pg_info消息,则判断所述第二结构体中是否已存储所述主PG向所述从PG发送的查询消息的版本号;
第三判断单元,430用于如果所述第二结构体中已存储所述主PG向所述从PG发送的查询消息的版本号,则判断所述从PG对应映射的OSD的状态变化,所述OSD的状态变化为所述第二结构体中记录的所述OSD的原始版本号与所述OSD的当前版本号之间包括的各版本号所对应的OSD状态是否改变;
处理单元440,用于如果所述第二结构体中记录的所述OSD的原始版本号与所述OSD的当前版本号之间包括的各版本号所对应的OSD状态均为up,则不再向所述从PG发送所述查询消息。
可选地,所述处理单元440还用于,如果所述第一结构体中已存储所述从PG发送的pg_info消息,则不再向所述从PG发送所述查询消息。
可选地,所述装置还包括:发送单元(图中未示出),用于如果所述第二结构体中未存储所述主PG向所述从PG发送的查询消息的版本号,则向所述从PG再次发送所述查询消息。
可选地,所述发送单元(图中未示出)还用于,如果所述第二结构体中记录的所述OSD的原始版本号与所述OSD的当前版本号之间包括的各版本号所对应的OSD状态不均为up,则向所述从PG再次发送所述查询消息。
可选地,所述发送单元(图中未示出)还用于,在GetInfo阶段中,向所述从PG发送所述查询消息;
所述装置还包括:存储单元(图中未示出),用于将所述从PG的标识以及所述查询消息的版本号存储至所述第二结构体中;
当所述装置包括的接收单元(图中未示出)接收到所述从PG发送的pg_info消息时,将所述从PG的标识以及所述从PG发送的pg_info消息存储至所述第一结构体中。
因此,通过应用本申请提供的Ceph集群中加速同步状态的装置,当Peering流程启动后,该装置判断第一结构体中是否已存储从PG发送的pg_info消息。如果第一结构体中未存储从PG发送的pg_info消息,则该装置判断第二结构体中是否已存储主PG向从PG发送的查询消息的版本号。如果第二结构体中已存储主PG向从PG发送的查询消息的版本号,则该装置判断从PG对应映射的OSD的状态变化,该OSD的状态变化为所述第二结构体中记录的所述OSD的原始版本号与所述OSD的当前版本号之间包括的各版本号所对应的OSD状态是否改变。如果第二结构体中记录的OSD的原始版本号与OSD的当前版本号之间包括的各版本号所对应的OSD状态均为up,则该装置不再向从PG发送查询消息。
如此,解决了现有技术中从PG重复接收到大量的query消息,导致GetInfo阶段耗时较长,进一步使得Peering流程也耗时较长的问题。实现了减少Peering流程中查询消息的发送数量,减少了从PG处理大量且重复的查询消息的工作。
基于同一发明构思,本申请实施例还提供了一种网络设备,如图5所示,包括处理器510、收发器520和机器可读存储介质530,机器可读存储介质530存储有能够被处理器510执行的机器可执行指令,处理器510被机器可执行指令促使执行本申请实施例所提供的Ceph集群中加速同步状态的方法。前述图4所示的Ceph集群中加速同步状态的装置,可采用如图5所示的网络设备硬件结构实现。
上述计算机可读存储介质530可以包括随机存取存储器(英文:Random AccessMemory,简称:RAM),也可以包括非易失性存储器(英文:Non-volatile Memory,简称:NVM),例如至少一个磁盘存储器。可选的,计算机可读存储介质530还可以是至少一个位于远离前述处理器510的存储装置。
上述处理器510可以是通用处理器,包括中央处理器(英文:Central ProcessingUnit,简称:CPU)、网络处理器(英文:Network Processor,简称:NP)等;还可以是数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:ApplicationSpecific Integrated Circuit,简称:ASIC)、现场可编程门阵列(英文:Field-Programmable Gate Array,简称:FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例中,处理器510通过读取机器可读存储介质530中存储的机器可执行指令,被机器可执行指令促使能够实现处理器510自身以及调用收发器520执行前述本申请实施例描述的Ceph集群中加速同步状态的方法。
另外,本申请实施例提供了一种机器可读存储介质530,机器可读存储介质530存储有机器可执行指令,在被处理器510调用和执行时,机器可执行指令促使处理器510自身以及调用收发器520执行前述本申请实施例描述的Ceph集群中加速同步状态的方法。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
对于Ceph集群中加速同步状态的装置以及机器可读存储介质实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
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消息存储至所述第一结构体中。
6.一种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发送所述查询消息。
7.根据权利要求6所述的装置,其特征在于,所述处理单元还用于,如果所述第一结构体中已存储所述从PG发送的pg_info消息,则不再向所述从PG发送所述查询消息。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
发送单元,用于如果所述第二结构体中未存储所述主PG向所述从PG发送的查询消息的版本号,则向所述从PG再次发送所述查询消息。
9.根据权利要求8所述的装置,其特征在于,所述发送单元还用于,如果所述第二结构体中记录的所述OSD的原始版本号与所述OSD的当前版本号之间包括的各版本号所对应的OSD状态不均为up,则向所述从PG再次发送所述查询消息。
10.根据权利要求8所述的装置,其特征在于,所述发送单元还用于,在GetInfo阶段中,向所述从PG发送所述查询消息;
所述装置还包括:存储单元,用于将所述从PG的标识以及所述查询消息的版本号存储至所述第二结构体中;
当所述装置包括的接收单元接收到所述从PG发送的pg_info消息时,将所述从PG的标识以及所述从PG发送的pg_info消息存储至所述第一结构体中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011527605.8A CN112597243B (zh) | 2020-12-22 | 2020-12-22 | Ceph集群中加速同步状态的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011527605.8A CN112597243B (zh) | 2020-12-22 | 2020-12-22 | Ceph集群中加速同步状态的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112597243A CN112597243A (zh) | 2021-04-02 |
CN112597243B true CN112597243B (zh) | 2022-05-27 |
Family
ID=75199966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011527605.8A Active CN112597243B (zh) | 2020-12-22 | 2020-12-22 | Ceph集群中加速同步状态的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112597243B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103561095A (zh) * | 2013-11-04 | 2014-02-05 | 金蝶软件(中国)有限公司 | 一种数据同步方法、节点及存储服务集群 |
CN107678923A (zh) * | 2017-09-29 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种分布式文件***消息处理的优化方法 |
CN108958970A (zh) * | 2018-05-29 | 2018-12-07 | 新华三技术有限公司 | 一种数据恢复方法、服务器和计算机可读介质 |
CN109495543A (zh) * | 2018-10-16 | 2019-03-19 | 新华三技术有限公司 | 一种ceph集群中监视器的管理方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103558998B (zh) * | 2013-11-07 | 2016-03-30 | 华为技术有限公司 | 一种数据操作的方法和设备 |
US10003649B2 (en) * | 2015-05-07 | 2018-06-19 | Dell Products Lp | Systems and methods to improve read/write performance in object storage applications |
-
2020
- 2020-12-22 CN CN202011527605.8A patent/CN112597243B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103561095A (zh) * | 2013-11-04 | 2014-02-05 | 金蝶软件(中国)有限公司 | 一种数据同步方法、节点及存储服务集群 |
CN107678923A (zh) * | 2017-09-29 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种分布式文件***消息处理的优化方法 |
CN108958970A (zh) * | 2018-05-29 | 2018-12-07 | 新华三技术有限公司 | 一种数据恢复方法、服务器和计算机可读介质 |
CN109495543A (zh) * | 2018-10-16 | 2019-03-19 | 新华三技术有限公司 | 一种ceph集群中监视器的管理方法及装置 |
Non-Patent Citations (2)
Title |
---|
云计算分布式存储***典型运维问题的分析;蓝青;《通信与信息技术》;20170925(第05期);35-36、60 * |
机顶盒播放***的开发研究;王燕文;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑(月刊)》;20200415(第04期);I136-203 * |
Also Published As
Publication number | Publication date |
---|---|
CN112597243A (zh) | 2021-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8375001B2 (en) | Master monitoring mechanism for a geographical distributed database | |
EP3620905B1 (en) | Method and device for identifying osd sub-health, and data storage system | |
CN110012437B (zh) | 一种组播报文的发送方法、装置及*** | |
CN102447624B (zh) | 在服务器集群上实现负载均衡的方法、节点服务器及集群 | |
CN106911728A (zh) | 分布式***中主节点的选取方法和装置 | |
CN110536330B (zh) | 一种ue迁移方法、装置、***及存储介质 | |
US20120137012A1 (en) | Method for Dynamic On Demand Startup of a Process or Resource | |
CN102025630A (zh) | 负载均衡方法及负载均衡*** | |
WO2018090677A1 (zh) | 一种nf组件异常的处理方法、设备及*** | |
CN109495383B (zh) | 一种数据处理方法、装置、通信***及网络设备 | |
EP3232609A1 (en) | Locking request processing method and server | |
CN104506372A (zh) | 一种实现主备服务器切换的方法及*** | |
CN112367257B (zh) | 路由通告方法及装置 | |
CN103546315A (zh) | 一种dhcp服务器的备份***、方法及设备 | |
CN103259866A (zh) | 一种多点传输dns区文件的方法和*** | |
CN111491017B (zh) | Cors基准站数据分发***、方法、装置 | |
CN112492030B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN112597243B (zh) | Ceph集群中加速同步状态的方法及装置 | |
CN107483628B (zh) | 基于dpdk的单向代理方法及*** | |
CN106209680A (zh) | 信息处理装置以及方法 | |
US20180069768A1 (en) | Method and apparatus for establishing interface between vnfms, and system | |
CN100423514C (zh) | 分布式设备中地址解析协议数据同步的方法 | |
CN103140851A (zh) | 包括中间件机环境的*** | |
US20180270105A1 (en) | Handling control-plane connectivity loss in virtualized computing environments | |
CN108418863B (zh) | 控制器集群的管理方法、sdn控制器及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |