CN117827762A - 集群跨区域双活读写方法、装置、计算机设备及存储介质 - Google Patents

集群跨区域双活读写方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN117827762A
CN117827762A CN202311699085.2A CN202311699085A CN117827762A CN 117827762 A CN117827762 A CN 117827762A CN 202311699085 A CN202311699085 A CN 202311699085A CN 117827762 A CN117827762 A CN 117827762A
Authority
CN
China
Prior art keywords
osd
group
write
file
writing
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.)
Pending
Application number
CN202311699085.2A
Other languages
English (en)
Inventor
郑玉杰
侯金红
沈军
李婧
陈必财
刘潇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianyi Cloud Technology Co Ltd
Original Assignee
Tianyi Cloud Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianyi Cloud Technology Co Ltd filed Critical Tianyi Cloud Technology Co Ltd
Priority to CN202311699085.2A priority Critical patent/CN117827762A/zh
Priority to PCT/CN2023/143169 priority patent/WO2024212615A1/zh
Publication of CN117827762A publication Critical patent/CN117827762A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及分布式云存储技术领域,具体公开了一种集群跨区域双活读写方法、装置、计算机设备及存储介质。通过判断写入对象为新写或者改写来对PG成员的执行写入OSD位置进行实时规划和优化,即可实现数据优先本地写入,可以减少在不同AZ(可用区)间转发请求寻找主OSD的时延损耗;并通过解决现有Ceph中只有PG组中主OSD才能对I O执行处理的限制,提高客户端在本地接入、读写的能力,解决跨地域集群中大量的I O转发寻找主OSD的操作,从而提升双活场景下存储性能。

Description

集群跨区域双活读写方法、装置、计算机设备及存储介质
技术领域
本申请涉及分布式存储技术领域,尤其涉及一种集群跨区域双活读写方法、装置、计算机设备及存储介质。
背景技术
双活方案要求在两个跨地域的站点中同时为前端提供服务,因此要求存储在多个站点具备相同数据的多个副本,且可以由多个站点同时接入进行读写。在Ceph的架构下,可以支持将集群的多个节点跨地域部署,并通过多副本技术保证在各个站点均具备数据副本,在任意站点故障后,通过其他站点可以支持业务的继续读写。Ceph引擎在本质上是分布式软件的架构,因此终极目的是要在所有节点上均衡分布数据及IO访问。在具体实现上PG是通过CRASH算法来实现在所有集群节点上的均匀分布,所以在前端的对象写入过程中,每个PG中的主OSD也被均匀分布在所有存储节点上。这样从全局来看实现了所有存储节点和OSD的访问均衡。当前Ceph引擎的IO处理流程基于PG的模式,组成PG的OSD成员有主OSD和从OSD的区别,即所有的数据写入均会通过PG的主OSD负责处理,有主节点负责分发到其他从OSD,并通过所有OSD完成写入再返回写入完成的方式来实现数据强一致性。但是在双活的场景下,跨地域的站点间存在一定距离,通常二者时延可以达到1.5ms以上。当ceph集群为了满足上层应用的双活诉求使用跨站点部署后,集群的存储节点间存在跨地域网络,因此在标准的Ceph引擎IO处理过程中会有大量由于寻找PG主OSD而产生的在两个站点间的数据流量,造成网络资源的消耗,从而影响性能。因此如何减少在双活方案中多副本部署后站点间数据的转发、交互过程,从而提升Ceph架构在双活方案中的性能成为了亟需解决的问题。
发明内容
本申请提供了一种集群跨区域双活读写方法、装置、计算机设备及存储介质,以提升Ceph架构在双活方案中的性能。
第一方面,本申请提供了一种集群跨区域双活读写方法,所述方法包括:
在接收到客户端的文件写入请求时,基于所述文件写入请求,获得接收所述文件写入请求的可用区AZ位置;
基于所述文件写入请求中的待写入文件,获得放置组标识pgid;
基于所述AZ位置以及所述pgid对应的放置组PG组,确定执行所述待写入文件写入操作的目标存储进程OSD;
基于写入IO以及所述目标OSD,执行所述待写入文件写入操作,获得写入结果,并基于读取IO,进行读取,获得读取结果。
进一步地,所述基于所述文件写入请求中的待写入文件,获得放置组标识pgid,包括:
对待写入文件进行切片处理,获得切片对象,计算所述切片对象的对象标识OID;
将所述OID作为输入参数,基于静态哈希函数以及掩膜mask计算,获得所述放置组标识pgid。
进一步地,所述基于所述AZ位置以及所述pgid对应的放置组PG组,确定执行所述待写入文件写入操作的目标存储进程OSD,包括:
判断所述PG组是否已存在数据;
当所述PG组中已存在数据时,获取所述PG组中主OSD的位置;
在所述主OSD的位置与所述AZ位置不相同时,将所述pgid作为crush算法的输入参数进行计算,获得所述PG组的至少一个成员OSD;
在至少一个成员OSD中确定与所述AZ位置相同的成员OSD作为待确定OSD;
当所述待确定OSD是所述PG组的主OSD时,将所述待确定OSD确定为所述目标OSD。
进一步地,所述判断所述PG组是否已存在数据之后,还包括:
当所述PG组不存在数据时,将本地OSD设置为所述目标OSD。
进一步地,所述在至少一个成员OSD中确定与所述AZ位置相同的成员OSD作为待确定OSD之后,还包括:
当所述待确定OSD不是所述PG组的主OSD时,调用读写锁程序,向所述PG组的主OSD发送写入权限申请请求;
接收所述PG组的主OSD基于当前锁状态以及所述写入权限申请请求返回的请求结果;
在所述请求结果为请求成功时,将所述待确定OSD作为所述目标OSD,并更新预留信息字段。
进一步地,所述预留信息字段包括OSD编号以及所述当前锁状态。
进一步地,所述当所述PG组中已存在数据时,获取所述PG组中主OSD的位置之后,还包括:
在所述主OSD的位置与所述AZ位置相同时,将所述主OSD作为所述目标OSD。
第二方面,本申请还提供了一种集群跨区域双活读写装置,所述装置包括:
可用区位置获得模块,用于在接收到客户端的文件写入请求时,基于所述文件写入请求,获得接收所述文件写入请求的可用区AZ位置;
放置组标识获得模块,用于基于所述文件写入请求中的待写入文件,获得放置组标识pgid;
目标OSD确定模块,用于基于所述AZ位置以及所述pgid对应的放置组PG组,确定执行所述待写入文件写入操作的目标存储进程OSD;
写入执行模块,用于基于写入IO以及所述目标OSD,执行所述待写入文件写入操作,获得写入结果,并基于读取IO,进行读取,获得读取结果。
第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的集群跨区域双活读写方法。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的集群跨区域双活读写方法。
本申请公开了一种集群跨区域双活读写方法、装置、计算机设备及存储介质,在接收到客户端的文件写入请求时,基于所述文件写入请求,获得接收所述文件写入请求的可用区AZ位置;基于所述文件写入请求中的待写入文件,获得放置组标识pgid;基于所述AZ位置以及所述pgid对应的放置组PG组,确定执行所述待写入文件写入操作的目标存储进程OSD;基于写入IO以及所述目标OSD,执行所述待写入文件写入操作,获得写入结果,并基于读取IO,进行读取,获得读取结果。本申请可以实现根据AZ位置来确定目标OSD,通过目标OSD执行写入操作,无需转发至主OSD所在AZ才能执行写入操作,极大地提高了处理效率以及Ceph架构在双活方案中的性能。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的实施例提供的一种集群跨区域双活读写方法的第一实施例示意流程图;
图2是本申请的实施例提供的一种集群跨区域双活读写方法的实施流程图;
图3是本申请的实施例提供的一种集群跨区域双活读写方法的第二实施例示意流程图;
图4是本申请的实施例提供的一种集群跨区域双活读写方法的客户端本地写入示意图;
图5为本申请的实施例提供的一种集群跨区域双活读写装置的示意性框图;
图6为本申请的实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本申请的实施例提供了一种集群跨区域双活读写方法、装置、计算机设备及存储介质。其中,该集群跨区域双活读写方法可以应用于服务器中,用于提升Ceph架构在双活方案中的性能。其中,该服务器可以为独立的服务器,也可以为服务器集群。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参阅图1,图1是本申请的实施例提供的一种集群跨区域双活读写方法的示意流程图。该集群跨区域双活读写方法可应用于服务器中,用于提升Ceph架构在双活方案中的性能。
如图1所示,该集群跨区域双活读写方法具体包括步骤S101至步骤S104。
S101、在接收到客户端的文件写入请求时,基于所述文件写入请求,获得接收所述文件写入请求的可用区AZ位置;
S102、基于所述文件写入请求中的待写入文件,获得放置组标识pgid;
进一步地,所述基于所述文件写入请求中的待写入文件,获得放置组标识pgid,包括:对待写入文件进行切片处理,获得切片对象,计算所述切片对象的对象标识OID;将所述OID作为输入参数,基于静态哈希函数以及掩膜mask计算,获得所述放置组标识pgid。
S103、基于所述AZ位置以及所述pgid对应的放置组PG组,确定执行所述待写入文件写入操作的目标存储进程OSD;
S104、基于写入IO以及所述目标OSD,执行所述待写入文件写入操作,获得写入结果,并基于读取IO,进行读取,获得读取结果。
在一个实施例中,通过判断写入对象为新写或者改写来对PG成员的执行写入OSD位置进行实时规划和优化,即可实现数据优先本地写入,可以减少在不同AZ(可用区)间转发请求寻找主OSD的时延损耗。
在一个实施例中,设定一个双活应用场景,每个AZ中的客户端均有读写IO下发,但是不存在或极少有AZ1的客户端写入数据被AZ2客户端改写的,即两个AZ上的客户端部署的应用为无状态应用。
在一个实施例中,如图2所示,在接收到客户端的文件写入请求时,将客户端写入文件正常进行切片和计算切片对象的对象标识OID,此时需要记录客户端请求所处的AZ信息,即接受请求所在的AZ位置,便于后续对客户端和PG中主OSD位置信息匹配操作。
在一个实施例中,PG(placement group,放置组)是一个放置策略组,它是对象的集合,该集合里的所有对象都具有相同的放置策略;简单点说就是相同PG内的对象都会放到相同的硬盘上;PG是ceph(一个统一的分布式存储系统)的核心概念,服务端数据均衡和恢复的最小粒度就是PG;OSD是负责物理存储的进程,一般配置成和磁盘一一对应,一块磁盘启动一个OSD进程。
在一个实施例中,OID作为输入通过静态hash(哈希)函数进行计算,与mask(掩膜)计算后得出pgid。如果该PG为首次写入数据,则设置本地OSD为目标OSD。如果该PG已经包含数据,此时需要判断该PG中的主OSD所在位置是否与记录的AZ位置相同,如果为是,则将该主OSD作为目标OSD;
在一个实施例中,如果位置不相同,则将pgid作为输入通过CRUSH算法进行计算,得到PG组的成员OSD信息(OSD1,OSD2,OSD3),假定OSD1所处位置与客户端为相同AZ。
在一个实施例中,对PG组中的主OSD进行判断,如果当前主OSD为OSD1,则执行IO写入;如果OSD1不为主,则调用读写锁流程为OSD1申请写权限。
在一个实施例中,将写入IO在本地执行写入,并启动peering(对称互联)进程进行副本同步后,向客户端返回写入成功。
在一个实施例中,对于读取IO,每个AZ中的副本OSD成员均具备完整数据,因此不必单独申请读权限,只需要判断当前副本是否完整即可返回读结果。
在一个实施例中,容灾建设在当前IT系统中的重要程度越来越明显,尤其是对于关键应用、核心应用,所需要达到的RPO和RTO更为严格。因此能够达到RPO=0,RTO≈0的双活方案的需求变得越来越强烈。现有Ceph的IO仅仅能够保证数据在所有OSD上的均衡,但是会存在大量寻找主OSD出现的IO转发。在跨地域访问的转发会在时延上存在对性能的损耗。通过本文中方案的修改,可以优化IO流程,达到客户端优先写入本地的OSD,避免了IO寻主处理时的转发,同时客户端在多个站点允许读取,由此可以让Ceph存储更好的适配双活方案,达到更好的性能。
上述实施例提供了一种集群跨区域双活读写方法,通过判断PG写入数据状态主动规划主OSD角色,并通过解决现有Ceph中只有PG组中主OSD才能对IO执行处理的限制,提高客户端在本地接入、读写的能力,解决跨地域集群中大量的IO转发寻找主OSD的操作,从而提升双活场景下存储性能。
请参阅图3,图3是本申请的实施例提供的一种集群跨区域双活读写方法的示意流程图。该集群跨区域双活读写方法可应用于服务器中,用于提升Ceph架构在双活方案中的性能。
如图3所示,该集群跨区域双活读写方法具体包括步骤S201至步骤S205。
S201、判断所述PG组是否已存在数据;
进一步地,所述判断所述PG组是否已存在数据之后,还包括:当所述PG组不存在数据时,将本地OSD设置为所述目标OSD。
S202、当所述PG组中已存在数据时,获取所述PG组中主OSD的位置;
进一步地,所述当所述PG组中已存在数据时,获取所述PG组中主OSD的位置之后,还包括:在所述主OSD的位置与所述AZ位置相同时,将所述主OSD作为所述目标OSD。
S203、在所述主OSD的位置与所述AZ位置不相同时,将所述pgid作为crush算法的输入参数进行计算,获得所述PG组的至少一个成员OSD;
S204、在至少一个成员OSD中确定与所述AZ位置相同的成员OSD作为待确定OSD;
进一步地,所述在至少一个成员OSD中确定与所述AZ位置相同的成员OSD作为待确定OSD之后,还包括:当所述待确定OSD不是所述PG组的主OSD时,调用读写锁程序,向所述PG组的主OSD发送写入权限申请请求;接收所述PG组的主OSD基于当前锁状态以及所述写入权限申请请求返回的请求结果;在所述请求结果为请求成功时,将所述待确定OSD作为所述目标OSD,并更新预留信息字段。
进一步地,所述预留信息字段包括OSD编号以及所述当前锁状态。
S205、当所述待确定OSD是所述PG组的主OSD时,将所述待确定OSD确定为所述目标OSD。
在一个实施例中,修改PG中OSD角色的限定,每个OSD均可以处理IO,通过读写锁的方式为每个OSD赋予执行写入的可能性,保证数据可以由多端写入。
在一个实施例中,PG中主、从OSD的角色不再区别处理IO的能力,即所有OSD均可以接收IO写入的请求。
在一个实施例中,增加读写锁请求和分配机制,在单个PG的成员同时接收写入请求时保证写入数据一致性。在OSD中设置一个预留信息字段(op_status,OSD_id),op_status为0时表示未被操作,1表示正在写入操作,OSD_id发起该写入操作申请的ods(Operational Data Store,操作数据存储)。在PG管理及peering操作时同步更新该标记字段。
具体实施例中,前端文件分片、hash计算流程保持不变,根据客户端的请求记录客户端所在AZ信息。确定pgid后通过CRUSH算法得出当前PG成员名单,如(OSD1主,OSD2,OSD3,假定OSD1为主)。引擎将IO下发给本地副本所在的OSD,即与客户端相同AZ的OSD成员,此处假设为OSD2。
具体实施例中,因为OSD2非主,默认不具备写入权限,此时需要调用读写锁申请流程,向OSD1申请写入权限。
具体实施例中,OSD1收到请求后根据当前锁状态向OSD2返回是否申请成功。如果当前其他OSD正在执行写入,则进入等待,否则返回预留成功,同时更新预留信息字段为(1,ods2),并向所有OSD更新该信息。
具体实施例中,如图4所示,ods2收到确认后,开始写入磁盘IO,并同时向其他两个OSD进行数据同步。
具体实施例红,所有IO确认写入完成后,向客户端返回写入成功,同时更新op_stauts为0。
请参阅图5,图5是本申请的实施例提供一种集群跨区域双活读写装置的示意性框图,该集群跨区域双活读写装置用于执行前述的集群跨区域双活读写方法。其中,该集群跨区域双活读写装置可以配置于服务器。
如图5所示,该集群跨区域双活读写装置300,包括:
可用区位置获得模块301,用于在接收到客户端的文件写入请求时,基于所述文件写入请求,获得接收所述文件写入请求的可用区AZ位置;
放置组标识获得模块302,用于基于所述文件写入请求中的待写入文件,获得放置组标识pgid;
目标OSD确定模块303,用于基于所述AZ位置以及所述pgid对应的放置组PG组,确定执行所述待写入文件写入操作的目标存储进程OSD;
写入执行模块304,用于基于写入IO以及所述目标OSD,执行所述待写入文件写入操作,获得写入结果,并基于读取IO,进行读取,获得读取结果。
进一步地,所述放置组标识获得模块302,包括:
对象标识获得单元,用于对待写入文件进行切片处理,获得切片对象,计算所述切片对象的对象标识OID;
放置组标识获得单元,用于将所述OID作为输入参数,基于静态哈希函数以及掩膜mask计算,获得所述放置组标识pgid。
进一步地,所述目标OSD确定模块303,包括:
数据存在判断单元,用于判断所述PG组是否已存在数据;
主OSD位置获取单元,用于当所述PG组中已存在数据时,获取所述PG组中主OSD的位置;
成员OSD获得单元,用于在所述主OSD的位置与所述AZ位置不相同时,将所述pgid作为crush算法的输入参数进行计算,获得所述PG组的至少一个成员OSD;
待确定OSD获得单元,用于在至少一个成员OSD中确定与所述AZ位置相同的成员OSD作为待确定OSD;
目标OSD确定单元,用于当所述待确定OSD是所述PG组的主OSD时,将所述待确定OSD确定为所述目标OSD。
进一步地,所述目标OSD确定模块303,还包括:
目标OSD设置单元,用于当所述PG组不存在数据时,将本地OSD设置为所述目标OSD。
进一步地,所述目标OSD确定模块303,还包括:
写入权限申请单元,用于当所述待确定OSD不是所述PG组的主OSD时,调用读写锁程序,向所述PG组的主OSD发送写入权限申请请求;
请求结果获得单元,用于接收所述PG组的主OSD基于当前锁状态以及所述写入权限申请请求返回的请求结果;
目标OSD确定单元,用于在所述请求结果为请求成功时,将所述待确定OSD作为所述目标OSD,并更新预留信息字段。
进一步地,所述预留信息字段包括OSD编号以及所述当前锁状态。
进一步地,所述目标OSD确定模块303,还包括:
目标OSD确定单元,用于在所述主OSD的位置与所述AZ位置相同时,将所述主OSD作为所述目标OSD。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和各模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
上述的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图6所示的计算机设备上运行。
请参阅图6,图6是本申请的实施例提供的一种计算机设备的结构示意性框图。该计算机设备可以是服务器。
参阅图6,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括非易失性存储介质和内存储器。
非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种集群跨区域双活读写方法。
处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种集群跨区域双活读写方法。
该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
在接收到客户端的文件写入请求时,基于所述文件写入请求,获得接收所述文件写入请求的可用区AZ位置;
基于所述文件写入请求中的待写入文件,获得放置组标识pgid;
基于所述AZ位置以及所述pgid对应的放置组PG组,确定执行所述待写入文件写入操作的目标存储进程OSD;
基于写入IO以及所述目标OSD,执行所述待写入文件写入操作,获得写入结果,并基于读取IO,进行读取,获得读取结果。
在一个实施例中,所述处理器在实现基于所述文件写入请求中的待写入文件,获得放置组标识pgid时,用于实现:
对待写入文件进行切片处理,获得切片对象,计算所述切片对象的对象标识OID;
将所述OID作为输入参数,基于静态哈希函数以及掩膜mask计算,获得所述放置组标识pgid。
在一个实施例中,所述处理器在实现基于所述AZ位置以及所述pgid对应的放置组PG组,确定执行所述待写入文件写入操作的目标存储进程OSD时,用于实现:
判断所述PG组是否已存在数据;
当所述PG组中已存在数据时,获取所述PG组中主OSD的位置;
在所述主OSD的位置与所述AZ位置不相同时,将所述pgid作为crush算法的输入参数进行计算,获得所述PG组的至少一个成员OSD;
在至少一个成员OSD中确定与所述AZ位置相同的成员OSD作为待确定OSD;
当所述待确定OSD是所述PG组的主OSD时,将所述待确定OSD确定为所述目标OSD。
在一个实施例中,所述处理器在实现判断所述PG组是否已存在数据之后,还用于实现:
当所述PG组不存在数据时,将本地OSD设置为所述目标OSD。
在一个实施例中,所述处理器在实现在至少一个成员OSD中确定与所述AZ位置相同的成员OSD作为待确定OSD之后,还用于实现:
当所述待确定OSD不是所述PG组的主OSD时,调用读写锁程序,向所述PG组的主OSD发送写入权限申请请求;
接收所述PG组的主OSD基于当前锁状态以及所述写入权限申请请求返回的请求结果;
在所述请求结果为请求成功时,将所述待确定OSD作为所述目标OSD,并更新预留信息字段。
在一个实施例中,所述预留信息字段包括OSD编号以及所述当前锁状态。
在一个实施例中,所述处理器在实现当所述PG组中已存在数据时,获取所述PG组中主OSD的位置之后,还用于实现:
在所述主OSD的位置与所述AZ位置相同时,将所述主OSD作为所述目标OSD。
本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的任一项集群跨区域双活读写方法。
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种集群跨区域双活读写方法,其特征在于,包括:
在接收到客户端的文件写入请求时,基于所述文件写入请求,获得接收所述文件写入请求的可用区AZ位置;
基于所述文件写入请求中的待写入文件,获得放置组标识pgid;
基于所述AZ位置以及所述pgid对应的放置组PG组,确定执行所述待写入文件写入操作的目标存储进程OSD;
基于写入IO以及所述目标OSD,执行所述待写入文件写入操作,获得写入结果,并基于读取IO,进行读取,获得读取结果。
2.根据权利要求1所述的集群跨区域双活读写方法,其特征在于,所述基于所述文件写入请求中的待写入文件,获得放置组标识pgid,包括:
对待写入文件进行切片处理,获得切片对象,计算所述切片对象的对象标识OID;
将所述OID作为输入参数,基于静态哈希函数以及掩膜mask计算,获得所述放置组标识pgid。
3.根据权利要求1所述的集群跨区域双活读写方法,其特征在于,所述基于所述AZ位置以及所述pgid对应的放置组PG组,确定执行所述待写入文件写入操作的目标存储进程OSD,包括:
判断所述PG组是否已存在数据;
当所述PG组中已存在数据时,获取所述PG组中主OSD的位置;
在所述主OSD的位置与所述AZ位置不相同时,将所述pgid作为crush算法的输入参数进行计算,获得所述PG组的至少一个成员OSD;
在至少一个成员OSD中确定与所述AZ位置相同的成员OSD作为待确定OSD;
当所述待确定OSD是所述PG组的主OSD时,将所述待确定OSD确定为所述目标OSD。
4.根据权利要求3所述的集群跨区域双活读写方法,其特征在于,所述判断所述PG组是否已存在数据之后,还包括:
当所述PG组不存在数据时,将本地OSD设置为所述目标OSD。
5.根据权利要求3所述的集群跨区域双活读写方法,其特征在于,所述在至少一个成员OSD中确定与所述AZ位置相同的成员OSD作为待确定OSD之后,还包括:
当所述待确定OSD不是所述PG组的主OSD时,调用读写锁程序,向所述PG组的主OSD发送写入权限申请请求;
接收所述PG组的主OSD基于当前锁状态以及所述写入权限申请请求返回的请求结果;
在所述请求结果为请求成功时,将所述待确定OSD作为所述目标OSD,并更新预留信息字段。
6.根据权利要求5所述的集群跨区域双活读写方法,其特征在于,所述预留信息字段包括OSD编号以及所述当前锁状态。
7.根据权利要求3至6任一项所述的集群跨区域双活读写方法,其特征在于,所述当所述PG组中已存在数据时,获取所述PG组中主OSD的位置之后,还包括:
在所述主OSD的位置与所述AZ位置相同时,将所述主OSD作为所述目标OSD。
8.一种集群跨区域双活读写装置,其特征在于,包括:
可用区位置获得模块,用于在接收到客户端的文件写入请求时,基于所述文件写入请求,获得接收所述文件写入请求的可用区AZ位置;
放置组标识获得模块,用于基于所述文件写入请求中的待写入文件,获得放置组标识pgid;
目标OSD确定模块,用于基于所述AZ位置以及所述pgid对应的放置组PG组,确定执行所述待写入文件写入操作的目标存储进程OSD;
写入执行模块,用于基于写入IO以及所述目标OSD,执行所述待写入文件写入操作,获得写入结果,并基于读取IO,进行读取,获得读取结果。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如权利要求1至7中任一项所述的集群跨区域双活读写方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如权利要求1至7中任一项所述的集群跨区域双活读写方法。
CN202311699085.2A 2023-12-12 2023-12-12 集群跨区域双活读写方法、装置、计算机设备及存储介质 Pending CN117827762A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202311699085.2A CN117827762A (zh) 2023-12-12 2023-12-12 集群跨区域双活读写方法、装置、计算机设备及存储介质
PCT/CN2023/143169 WO2024212615A1 (zh) 2023-12-12 2023-12-29 集群跨区域双活读写方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311699085.2A CN117827762A (zh) 2023-12-12 2023-12-12 集群跨区域双活读写方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN117827762A true CN117827762A (zh) 2024-04-05

Family

ID=90514451

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311699085.2A Pending CN117827762A (zh) 2023-12-12 2023-12-12 集群跨区域双活读写方法、装置、计算机设备及存储介质

Country Status (2)

Country Link
CN (1) CN117827762A (zh)
WO (1) WO2024212615A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9817703B1 (en) * 2013-12-04 2017-11-14 Amazon Technologies, Inc. Distributed lock management using conditional updates to a distributed key value data store
CN105187502A (zh) * 2015-08-07 2015-12-23 北京思特奇信息技术股份有限公司 一种基于分布式弹性块存储的方法和系统
CN108958984B (zh) * 2018-08-13 2022-02-11 深圳市证通电子股份有限公司 基于ceph的双活同步在线热备方法
CN111949217A (zh) * 2020-08-21 2020-11-17 广东韶钢松山股份有限公司 超融合一体机及其软件定义存储sds处理方法和系统
CN114637475B (zh) * 2022-04-13 2024-06-25 苏州浪潮智能科技有限公司 一种分布式存储系统控制方法、装置及可读存储介质
CN115794499B (zh) * 2023-02-03 2023-05-16 创云融达信息技术(天津)股份有限公司 一种用于分布式块存储集群间双活复制数据的方法和系统

Also Published As

Publication number Publication date
WO2024212615A1 (zh) 2024-10-17

Similar Documents

Publication Publication Date Title
US9304815B1 (en) Dynamic replica failure detection and healing
EP3594798B1 (en) Data storage method and device
CN107533438B (zh) 存储器系统中的数据复制
US10901785B2 (en) Task deployment method, task deployment apparatus, and storage medium
CN107402722B (zh) 一种数据迁移方法及存储设备
CN103152390B (zh) 分布式存储系统的节点配置方法、装置、节点及系统
JP6405255B2 (ja) 通信システム、キュー管理サーバ、及び、通信方法
CN109739435B (zh) 文件存储和更新方法及装置
CN111291062B (zh) 数据同步写入方法、装置、计算机设备及存储介质
CN109508912B (zh) 一种业务调度方法、装置、设备和存储介质
CN113411363A (zh) 一种镜像文件的上传方法、相关设备及计算机存储介质
CN112631680B (zh) 微服务容器调度系统、方法、装置和计算机设备
CN112256433B (zh) 基于Kafka集群的分区迁移方法和装置
CN112749178A (zh) 一种保证数据一致性的方法及相关设备
US20170366612A1 (en) Parallel processing device and memory cache control method
WO2018188959A1 (en) Method and apparatus for managing events in a network that adopts event-driven programming framework
CN112052104A (zh) 基于多机房实现的消息队列的管理方法及电子设备
CN117827762A (zh) 集群跨区域双活读写方法、装置、计算机设备及存储介质
JP4571090B2 (ja) スケジューラプログラム、サーバシステム、スケジューラ装置
CN109992447B (zh) 数据复制方法、装置及存储介质
EP3389222B1 (en) A method and a host for managing events in a network that adapts event-driven programming framework
US20220019462A1 (en) Event stream processing method and event stream processing program
JP4392343B2 (ja) メッセージ配布方法、待機系ノード装置およびプログラム
JP2014146366A (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法および制御プログラム
Chatterjee et al. Gossip based fault tolerant protocol in distributed transactional memory using quorum based replication system

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