CN117873709B - 基于数据库的pg副本均衡方法、装置、设备及存储介质 - Google Patents

基于数据库的pg副本均衡方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117873709B
CN117873709B CN202311773890.5A CN202311773890A CN117873709B CN 117873709 B CN117873709 B CN 117873709B CN 202311773890 A CN202311773890 A CN 202311773890A CN 117873709 B CN117873709 B CN 117873709B
Authority
CN
China
Prior art keywords
copies
suggested
copy
slave
thread
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
Application number
CN202311773890.5A
Other languages
English (en)
Other versions
CN117873709A (zh
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.)
Yunhe Enmo Beijing Information Technology Co ltd
Original Assignee
Yunhe Enmo Beijing Information 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 Yunhe Enmo Beijing Information Technology Co ltd filed Critical Yunhe Enmo Beijing Information Technology Co ltd
Priority to CN202311773890.5A priority Critical patent/CN117873709B/zh
Publication of CN117873709A publication Critical patent/CN117873709A/zh
Application granted granted Critical
Publication of CN117873709B publication Critical patent/CN117873709B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling 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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals

Landscapes

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

Abstract

本申请实施例提供了一种基于数据库的PG副本均衡方法、装置、设备及存储介质,属于分布式数据存储技术领域。该方法包括:将PG副本平均分配到每个OSD上,根据节点均衡映射表,确定每个OSD上三种副本角色的建议数量,再根据每个OSD上三种副本角色的建议数量,将每个OSD上PG副本的角色进行切换。节点均衡映射表存储不同OSD数量下,每一建议PG副本数量和建议日志副本数量、建议主副本数量和建议从副本数量之间的映射关系,进而能够通过获得建议日志副本数量、建议主副本数量和建议从副本数量,将每个OSD上PG副本的角色进行切换,实现物理节点间PG副本的均衡分布,提高分布式存储系统的性能。

Description

基于数据库的PG副本均衡方法、装置、设备及存储介质
技术领域
本申请涉及分布式数据存储技术领域,尤其涉及一种基于数据库的PG副本均衡方法、装置、设备及存储介质。
背景技术
分布式存储系统(Distributed File System,DFS)是一种能够将大量数据分散存储在不同物理节点上的存储系统,PG(Placement Group,放置组)是数据存储的最小逻辑单元。PG副本是PG中的数据副本,在一个分布式存储系统中存在一定数量的PG副本,这些PG副本会被分布在多个OSD(Object Storage Device,对象存储设备)上。Logger三副本存储模式是一种基于分布式存储系统的数据存储模式,在Logger三副本存储模式中,PG副本包括主副本、从副本和日志副本,同一个PG的三个副本分别存储在不同的物理节点上,用于实现数据的冗余和容错性,当一个物理节点发生故障时,数据仍然可以从另外两个物理节点的副本中恢复。
相关技术中,分布式存储系统通过伪随机(Controlled Replication UnderScalable Hashing,Crush)算法把所有PG副本放置在不同物理节点的OSD上,实现存储系统数据的整体基本均衡,但实际每种副本角色的数量在OSD上的分布并不均衡,主副本角色数量多的OSD读写命中率高,反之,OSD读写命中率低,读写命中率低的OSD成为整个分布式存储系统的性能瓶颈。尤其在Logger三副本存储模式中,因为多了新的副本角色日志副本,在保证物理节点间主副本均衡分布的情况下,无法保证日志副本的均衡分布,导致一些物理节点的OSD利用率低,不能充分发挥分布式存储系统的性能。因此,如何在Logger三副本存储模式下,实现物理节点间PG副本的均衡分布,提高分布式存储系统的性能,成为了亟待解决的技术问题。
发明内容
本申请实施例的主要目的在于提出一种基于数据库的PG副本均衡方法、装置、设备及存储介质,旨在实现物理节点间PG副本的均衡分布,提高分布式存储系统的性能。
为实现上述目的,本申请实施例的第一方面提出了一种基于数据库的PG副本均衡方法,所述方法包括:
获取所有物理节点上对象存储设备的存储设备数量和PG副本的PG副本数量;
根据所述存储设备数量和所述PG副本数量,将所述PG副本平均分配到每个所述对象存储设备上;其中,所述PG副本的角色包括主副本、从副本和日志副本;
获取所述对象存储设备分配的所述PG副本的数量,得到建议PG副本数量;
根据所述存储设备数量、所述建议PG副本数量和预设的节点均衡映射表,确定每个所述对象存储设备上的建议日志副本数量、建议主副本数量和建议从副本数量;其中,所述节点均衡映射表包括不同存储设备数量下,每一所述建议PG副本数量和建议日志副本数量、建议主副本数量和建议从副本数量之间的映射关系;
根据每个所述对象存储设备上所述建议日志副本数量、所述建议主副本数量和所述建议从副本数量,将每个所述对象存储设备上所述PG副本的角色进行切换。
在一些实施例,所述根据所述存储设备数量、所述建议PG副本数量和预设的节点均衡映射表,确定每个所述对象存储设备上的建议日志副本数量、建议主副本数量和建议从副本数量,包括:
根据所述存储设备数量在所述节点均衡映射表进行存储设备数量查找,得到所述节点均衡映射表中所述存储设备数量下的每一建议PG副本数量;
根据所述建议PG副本数量,在所述节点均衡映射表中所述存储设备数量下的每一建议PG副本数量进行建议PG副本数量查找,得到所述建议PG副本数量对应的所述对象存储设备上的建议日志副本数量、建议主副本数量和建议从副本数量。
在一些实施例,所述根据每个所述对象存储设备上所述建议日志副本数量、所述建议主副本数量和所述建议从副本数量,将每个所述对象存储设备上所述PG副本的角色进行切换,包括:
根据每个所述对象存储设备上所述建议日志副本数量、所述建议主副本数量和所述建议从副本数量,构建建议PG映射视图;
根据所述建议PG映射视图,将每个所述对象存储设备上所述PG副本的角色进行切换。
在一些实施例,所述根据每个所述对象存储设备上所述建议日志副本数量、所述建议主副本数量和所述建议从副本数量,将每个所述对象存储设备上所述PG副本的角色进行切换之后,所述方法还包括:
接收节点变更信息;
根据所述节点变更信息获取变更后的所述对象存储设备的数量,得到更新设备数量;
根据所述更新设备数量和所述PG副本数量将所述PG副本平均分配到每个所述对象存储设备上;
获取所述对象存储设备分配的所述PG副本的数量,得到更新PG副本数量;
根据所述更新设备数量、所述更新PG副本数量和所述节点均衡映射表,确定每个所述对象存储设备上的更新日志副本数量、更新主副本数量和更新从副本数量;
根据每个所述对象存储设备上所述更新日志副本数量、所述更新主副本数量和所述更新从副本数量,构建更新PG映射视图;
根据所述更新PG映射视图,将每个所述对象存储设备上PG副本的角色进行切换。
在一些实施例,所述方法还包括:
获得源对象存储设备和目标对象存储设备;其中,所述源对象存储设备为存在迁移PG副本的对象存储设备,所述目标对象存储设备为接收所述迁移PG副的对象存储设备;
在所述源对象存储设备中对所述迁移PG副本进行备份,得到备份PG副本;
将所述迁移PG副本发送至所述目标对象存储设备;
在所述目标对象存储设备接收到所述迁移PG副本后,删除所述备份PG副本。
在一些实施例,所述根据每个所述对象存储设备上所述建议日志副本数量、所述建议主副本数量和所述建议从副本数量,构建建议PG映射视图之后,所述方法还包括:
从每个所述物理节点的线程中选出主线程,通过所述主线程获取所述建议PG映射视图,并根据所述建议PG映射视图,依次选择当前物理节点对应的PG副本标识信息,将所述PG副本标识信息分配给对应角色数量最少的从线程;其中,每个所述物理节点包括一个所述主线程和至少一个所述从线程;
通过所述主线程获取所述PG副本标识信息和所述从线程的分布视图;其中,所述分布视图包括每一所述从线程和所述PG副本标识信息的映射关系;
通过所述主线程和所述分布视图检测每个所述物理节点的从线程是否满足预设的线程均衡标准;其中,所述线程均衡标准为每个所述物理节点的从线程间PG副本数量、主副本数量和日志副本数量的差值都不超过预设值;
若所述物理节点的从线程不满足所述线程均衡标准,通过所述主线程和所述线程均衡标准对所述物理节点上的从线程进行PG副本标识信息迁移。
在一些实施例,若所述物理节点的从线程不满足所述线程均衡标准,通过所述主线程和所述线程均衡标准对所述物理节点上的所有从线程进行PG副本标识信息迁移,包括:
遍历所述物理节点上的所有所述从线程,将所述主副本数量最多的线程,记为第一从线程,将所述主副本数量最少的线程,记为第二从线程,将所述日志副本数量最多的线程,记为第三从线程,将所述日志副本数量最少的线程,记为第四从线程,将所述PG副本数量最多的线程,记为第五从线程,将所述PG副本数量最少的线程,记为第六从线程;
若所述第一从线程的主副本数量和所述第二从线程的主副本数量的差超过预设值,通过所述主线程将所述第一从线程的一个主副本标识信息迁移到所述第二从线程,直到所述第一从线程的主副本数量和所述第二从线程的主副本数量的差不超过预设值;
若所述第三从线程的日志副本数量和所述第四从线程的日志副本数量的差超过预设值,通过所述主线程将所述第三从线程的一个日志副本标识信息迁移到所述第四从线程,直到所述第三从线程的日志副本数量和所述第四从线程的日志副本数量的差不超过预设值;
若所述第五从线程的PG副本数量和所述第六从线程的PG副本数量的差超过预设值,通过所述主线程将所述第五从线程的一个从副本标识信息迁移到所述第六从线程,直到所述第五从线程的PG副本数量和所述第六从线程的PG副本数量的差不超过预设值。
为实现上述目的,本申请实施例的第二方面提出了一种基于数据库的PG副本均衡装置,所述装置包括:
第一获取模块,用于获取所有物理节点上对象存储设备的存储设备数量和PG副本的PG副本数量;
分配模块,用于根据所述存储设备数量和所述PG副本数量,将所述PG副本平均分配到每个所述对象存储设备上;其中,所述PG副本的角色包括主副本、从副本和日志副本;
第二获取模块,用于获取所述对象存储设备分配的所述PG副本的数量,得到建议PG副本数量;
建议模块,用于根据所述存储设备数量、所述建议PG副本数量和预设的节点均衡映射表,确定每个所述对象存储设备上的建议日志副本数量、建议主副本数量和建议从副本数量;其中,所述节点均衡映射表包括不同存储设备数量下,每一所述建议PG副本数量和建议日志副本数量、建议主副本数量之间的映射关系;
切换模块,用于根据每个所述对象存储设备上所述建议日志副本数量、所述建议主副本数量和所述建议从副本数量,将每个所述对象存储设备上所述PG副本的角色进行切换。
为实现上述目的,本申请实施例的第三方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法。
为实现上述目的,本申请实施例的第四方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法。
本申请提出的基于数据库的PG副本均衡方法、装置、设备及存储介质将所有PG副本平均分配到每个对象存储设备上,获取对象存储设备分配的PG副本数量,得到建议PG副本数量,根据存储设备数量、建议PG副本数量和节点均衡映射表,确定每个对象存储设备上的建议日志副本数量、建议主副本数量和建议从副本数量,再根据每个对象存储设备上建议日志副本数量、建议主副本数量和建议从副本数量,将每个对象存储设备上PG副本的角色进行切换。由于将PG副本平均分配到每个对象存储设备上时,每个对象存储设备上PG副本的分布并不均衡,通过预先设置节点均衡映射表,且节点均衡映射表存储有不同存储设备数量下,每一建议PG副本数量和建议日志副本数量、建议主副本数量和建议从副本数量之间的映射关系,进而能够通过获得建议日志副本数量、建议主副本数量和建议从副本数量,将每个对象存储设备上PG副本的角色进行切换,实现物理节点间PG副本的均衡分布,提高分布式存储系统的性能。
附图说明
图1是本申请实施例提供的物理节点上PG副本分布不均衡的示意图;
图2是本申请实施例提供的基于数据库的PG副本均衡方法的流程图;
图3是本申请实施例提供的第一种物理节点上PG副本分布的示意图;
图4是图2中的步骤S204的流程图;
图5是图2中的步骤S205的流程图;
图6是本申请实施例提供的建议PG映射视图的示意图;
图7是本申请另一实施例提供的基于数据库的PG副本均衡方法的流程图;
图8是本申请实施例提供的第二种物理节点上PG副本分布的示意图;
图9是本申请实施例提供的第三种物理节点上PG副本分布的示意图;
图10是本申请第三种实施例提供的基于数据库的PG副本均衡方法的流程图;
图11是本申请实施例提供的物理节点上从线程PG副本分布不均衡的示意图;
图12是图5中的步骤S501的流程图;
图13是本申请实施例提供的物理节点上从线程PG副本分布均衡的示意图;
图14是本申请另一实施例提供的物理节点上从线程PG副本分布不均衡的示意图;
图15是本申请另一实施例提供的物理节点上从线程PG副本分布均衡的示意图;
图16是图12中的步骤S1204的流程图;
图17是本申请实施例提供的从线程进行PG副本标识信息迁移的示意图;
图18是本申请实施例提供的基于数据库的PG副本均衡装置的结构示意图;
图19是本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
首先,对本申请中涉及的若干名词进行解析:
PG(Placement Group,放置组):是数据存储的最小逻辑单元,用于管理数据的分布和复制。
PG副本:在Logger三副本存储模式下,PG副本包括主副本、从副本和日志副本。
对象存储设备(Object Storage Device,OSD):是一种专门用来存储和管理海量数据的设备,对于每个PG,可以设置多个PG副本,PG副本放置在不同的OSD上,用于实现数据的冗余和备份。
Logger三副本存储模式:两数据副本,一日志副本的主从复制模式,两数据副本分别为主副本和从副本,主从副本存储有实际数据,其中,主副本用于处理读写请求,从副本只能处理读请求,不处理写请求,日志副本用于记录操作日志信息。
分布式存储系统通过Crush算法把所有PG副本放置在不同物理节点的OSD上,实现存储系统数据的整体基本均衡,但实际每种副本角色的数量在OSD上的分布并不均衡。在Logger三副本存储模式中,在保证物理节点间主副本均衡分布的情况下,无法保证日志副本的均衡分布,导致一些物理节点的OSD利用率低,不能充分发挥分布式存储系统的性能。
示例性的,请参阅图1,大正方形表示OSD,也即对象存储设备,小正方形表示主副本,菱形表示日志副本,圆形表示从副本,n01、n02和n03分别为不同的物理节点,下述实施例中的附图均如此表示。为了方便说明,图1中每个物理节点上仅有一个OSD,节点n01上的副本类型都是主副本,节点n02上的副本类型都是日志副本,节点n03上的副本类型都是从副本。当客户端发来写请求时,写IO操作只会集中在节点n01上,出现热点现象,而对于节点n02,读写请求都不会处理,OSD2上没有存储实际的数据,浪费了存储资源,减少分布式存储系统吞吐量,导致分布式存储系统的性能差。
基于此,本申请实施例提供了一种基于数据库的PG副本均衡方法、装置、设备及存储介质,旨在设置节点均衡映射表,通过将所有PG副本平均的分配到每个对象存储设备上,再根据节点均衡映射表得到每个对象存储设备上的建议日志副本数量、建议主副本数量和建议从副本数量。根据建议的每种副本的数量将每个对象存储设备上PG副本的角色进行切换,实现物理节点间PG副本的均衡分布,提高分布式存储系统的性能。其中,本申请中物理节点间PG副本分布均衡表示为物理节点间主副本和从副本分布均衡。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请实施例提供的基于数据库的PG副本均衡方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现基于数据库的PG副本均衡方法的应用等,但并不局限于以上形式。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本申请实施例提供的基于数据库的PG副本均衡方法、装置、设备及存储介质,具体通过如下实施例进行说明,首先描述本申请实施例中的基于数据库的PG副本均衡方法。
请参照图2,图2是本申请实施例提供的基于数据库的PG副本均衡方法的流程图,图2中的方法可以包括但不限于包括步骤S201至步骤S205:
步骤S201,获取所有物理节点上对象存储设备的存储设备数量和PG副本的PG副本数量;
步骤S202,根据存储设备数量和PG副本数量,将PG副本平均分配到每个对象存储设备上;其中,PG副本的角色包括主副本、从副本和日志副本;
步骤S203,获取对象存储设备分配的PG副本的数量,得到建议PG副本数量;
步骤S204,根据存储设备数量、建议PG副本数量和预设的节点均衡映射表,确定每一对象存储设备上的建议日志副本数量、建议主副本数量和建议从副本数量;其中,节点均衡映射表包括不同存储设备数量下,每一建议PG副本数量和建议日志副本数量、建议主副本数量和建议从副本数量之间的映射关系;
步骤S205,根据每个对象存储设备上建议日志副本数量、建议主副本数量和建议从副本数量,将每个对象存储设备上PG副本的角色进行切换。
在一些实施例的步骤S201至步骤S203中,对象存储设备的缩写为OSD,为了实现OSD上PG副本均衡,需要先实现OSD上PG副本数量的均衡,因此需要先获取所有物理节点上OSD的数量和所有PG副本数量,不考虑具体的副本角色,通过Crush算法将PG副本平均分配到每个OSD上。例如,分布式存储系统中总共有3个物理节点,每个物理节点包括1个OSD,则OSD的数量为3个,总共有8个PG,每个PG总共有3个副本,则所有PG副本数量为24个,将24个PG副本平均分配到3个OSD上,则每个OSD上有8个PG副本,则建议PG副本数量为8个,其中,PG副本的角色包括主副本、从副本和日志副本。
在一些实施例的步骤S204中,预先设置好节点均衡映射表,节点均衡映射表中存储有不同存储设备数量下,每一建议PG副本数量和建议日志副本数量、建议主副本数量和建议从副本数量之间的映射关系。当共有8个PG时,主副本数量、日志副本数量和从副本数量均为8个,因此所有OSD上的建议主副本数量的总数、建议日志副本数量的总数和建议从副本数量的总数均为8个。其中,用户可以根据不同的均衡要求对节点均衡映射表进行修改,例如,当某个物理节点的性能较好时,可以适当的多分配主副本到高物理节点对应的OSD上。
在一示例中,节点均衡映射表中,OSD数量为3个,建议PG副本数量为8时,对应的每个OSD上的建议主副本数量、建议日志副本数量和建议从副本数量可以分别为(3,2,3)、(3,3,2)和(2,3,3)。
在一些实施例的步骤S205中,得到每个OSD上的建议日志副本数量、建议主副本数量和建议从副本数量后,将每个OSD上PG副本的角色进行切换,使每个OSD上的每种PG副本角色的数量与建议日志副本数量、建议主副本数量和建议从副本数量一致。
具体的,请参阅图3,图3中的(3a)表示通过Crush算法将PG副本平均分配到每个OSD上,正方形中的1表示PG1中的主副本,菱形中的5表示PG5中的日志副本,其他图形的表示方式也是如此,在此不再赘述。此时OSD1上有4个主副本,1个日志副本和3个从副本,OSD2上有3个主副本,4个日志副本和1个从副本,OSD3上有1个主副本,3个日志副本和4个从副本,即物理节点上PG副本的分布并不均衡。图3中的(3b)是根据每个OSD上建议日志副本数量、建议主副本数量和建议从副本数量,将每个OSD上PG副本的角色进行切换后得到的,由上述可知,每个OSD上的建议主副本数量、建议日志副本数量和建议从副本数量可以分别为(3,2,3)、(3,3,2)和(2,3,3)。因此使OSD1对应(3,2,3),OSD2对应(3,3,2),OSD3对应(2,3,3),将每个OSD上PG副本的角色进行切换。例如,OSD1上建议主副本数量为3,建议日志副本数量为2,建议从副本数量为3,而实际OSD1上有4个主副本,1个日志副本和3个从副本,因此只需将OSD1上的一个主副本的角色切换为日志副本,其他两个OSD的切换方式也是如此,在此不再赘述。
本申请实施例所示意的步骤S201至步骤S205,通过将所有PG副本平均分配到每个OSD上,获取OSD分配的PG副本数量,得到建议PG副本数量,根据OSD数量、建议PG副本数量和节点均衡映射表,确定每个OSD上的建议日志副本数量、建议主副本数量和建议从副本数量,再根据每个OSD上建议日志副本数量、建议主副本数量和建议从副本数量,将每个OSD上PG副本的角色进行切换。由于将PG副本平均分配到每个OSD上时,每个OSD上PG副本的分布并不均衡,因此通过预先设置节点均衡映射表,使节点均衡映射表存储有不同OSD数量下,每一建议PG副本数量和建议日志副本数量、建议主副本数量和建议从副本数量之间的映射关系,进而能够通过获得建议日志副本数量、建议主副本数量和建议从副本数量,将每个OSD上PG副本的角色进行切换,实现物理节点间PG副本的均衡分布,提高分布式存储系统的性能。
请参阅图4,在一些实施例中,步骤S204可以包括但不限于包括步骤S401至步骤S402:
步骤S401,根据存储设备数量在节点均衡映射表进行存储设备数量查找,得到节点均衡映射表中存储设备数量下的每一建议PG副本数量;
步骤S402,根据建议PG副本数量,在节点均衡映射表中存储设备数量下的每一建议PG副本数量进行建议PG副本数量查找,得到对象存储设备上的建议日志副本数量、建议主副本数量和建议从副本数量。
在一些实施例的步骤S401至步骤S402中,节点均衡映射表中存储有不同存储设备数量下,每一建议PG副本数量和建议日志副本数量、建议主副本数量和建议从副本数量之间的映射关系。因此,节点均衡映射表中存储有两层对应关系,一层是不同存储设备数量和每一建议PG副本数量的对应关系,例如,存储设备数量为3和每一建议PG副本数量的对应关系,存储设备数量为4和每一建议PG副本数量的对应关系。另一层是每一建议PG副本数量和每个OSD上的建议日志副本数量、建议主副本数量和建议从副本数量的对应关系,例如,存储设备数量为3,建议PG副本数量为8时对应的建议主副本数量、建议日志副数量和建议从副本数量分别为(3,2,3)、(3,3,2)和(2,3,3),存储设备数量为3,建议PG副本数量为9时对应的建议主副本数量、建议日志副数量和建议从副本数量分别为(3,3,3)、(3,3,3)和(3,3,3)。其中,节点均衡映射表要根据实际情况进行设置,例如,由于一个PG的三个副本要分别分布在不同的物理节点上,因此至少要有3个物理节点,每个物理节点至少包括一个OSD。
在实际应用中,当每个OSD上分配的PG副本的数量较少时,即使物理节点上PG副本分布不均衡,也无法影响分布式存储系统的性能,因此当每个OSD上分配的PG副本的数量低于预设数量时,可以不执行基于数据库的PG副本均衡方法,即无需进行PG副本的角色切换。
请参阅图5,在一些实施例中,步骤S205可以包括但不限于包括步骤S501至步骤S502:
步骤S501,根据每个对象存储设备上建议日志副本数量、建议主副本数量和建议从副本数量,构建建议PG映射视图;
步骤S502,根据建议PG映射视图,将每个对象存储设备上PG副本的角色进行切换。
在一些实施例的步骤S501至步骤S502中,在存储系统中(如Ceph),PG map视图是一种用于显示和管理PG状态和分布的视图,它提供了有关每个PG副本分布在哪个物理节点的OSD上以及OSD的健康状态的详细信息。建议PG映射视图即为一种PG map视图,当得到每个OSD上建议日志副本数量、建议主副本数量和建议从副本数量后,即可构建出建议PG映射视图。
示例性的,请参阅图6,当得到OSD1上建议主副本数量为3,建议日志副本数量为2,建议从副本数量为3,OSD2上建议主副本数量为3,建议日志副本数量为3,建议从副本数量为2,OSD3上建议主副本数量为2,建议日志副本数量为3,建议从副本数量为3时,构建的建议PG映射视图为图6所示。图6中,PG1-PG8为8个PG,每个PG包含3个PG副本,分别为主副本、日志副本和从副本,主副本用正方形表示,日志副本用菱形表示,从副本用圆形表示,PG1下方的正方形中的n01-OSD1表示PG1的主副本分配在节点n01的OSD1上,其他图形的表示方式也是如此,在此不再赘述。由图3中的(3a)可知,PG1的主副本实际就是分配在节点n01的OSD1上,因此该PG1的主副本不需要进行切换。在图6中,PG4的主副本建议分配在节点n03的OSD1上,而PG4的日志副本建议分配在节点n01的OSD1上。由图3中的(3a)可知,PG4的主副本实际分配在节点n01的OSD1上,PG4的日志副本实际分配在节点n02的OSD1上,因此可将节点n01的OSD1上的PG4的主副本切换为PG4的日志副本,其他切换方式也是如此,在此不再赘述。
本实施例所示意的步骤S501至步骤S502,通过构建的建议PG映射视图,对每个OSD上PG副本的角色进行切换,可以实现精确切换,减少切换的次数。
请参阅图7,在一些实施例中,步骤S204之后,基于数据库的PG副本均衡方法还可以包括但不限于包括步骤S701至步骤S707:
步骤S701,接收节点变更信息;
步骤S702,根据节点变更信息获取变更后的对象存储设备的数量,得到更新设备数量;
步骤S703,根据更新设备数量和PG副本数量将PG副本平均分配到每个对象存储设备上;
步骤S704,获取对象存储设备分配的PG副本的数量,得到更新PG副本数量;
步骤S705,根据更新设备数量、更新PG副本数量和节点均衡映射表,确定每一对象存储设备上的更新日志副本数量、更新主副本数量和更新从副本数量;
步骤S706,根据每个对象存储设备上更新日志副本数量、更新主副本数量和更新从副本数量,构建更新PG映射视图;
步骤S707,根据更新PG映射视图,将每个对象存储设备上PG副本的角色进行切换。
在一些实施例的步骤S701至步骤S704中,当增删物理节点或增删OSD时,需要重新对PG副本进行分配,接收到节点变更信息,说明存在增删物理节点或增删OSD的情况。获取增删物理节点或增删OSD后对象存储设备的数量,得到更新设备数量,并将PG副本平均分配到现有的每个OSD上。例如,若有3个物理节点,每个物理节点有1个OSD,则新增1个物理节点后,变更设备数量为4,若所有PG副本数量为24,将24个PG副本平均分配到4个OSD上,则每个OSD有6个PG副本,即更新PG副本数量为6。
在一些实施例的步骤S705至步骤S707中,根据更新设备数量、更新PG副本数量和节点均衡映射表,确定每个对象存储设备上的更新日志副本数量、更新主副本数量和更新从副本数量的具体实现方式与上述步骤S204的实施例类似,在此不再赘述。根据每个对象存储设备上更新日志副本数量、更新主副本数量和更新从副本数量,构建更新PG映射视图与上述步骤S501的实施例类似,在此不再赘述。构建更新PG映射视图后,根据更新PG映射视图,将每个OSD上PG副本的角色进行切换。
示例性的,请参阅图8,图8中的(8a)为节点变更前,每个OSD上PG副本的角色已经进行了切换,实现PG副本均衡分布,图8中的(8b)为新增了一个物理节点n04,节点n04包含一个OSD4,图8中的(8c)为重新将所有PG副本平均分配在每个OSD上,每个OSD上有6个PG副本。此时,OSD1上的主副本数量为3个,日志副本数量为1,从副本数量为2,OSD2上的主副本数量为1个,日志副本数量为3,从副本数量为2,OSD3上的主副本数量为1个,日志副本数量为3,从副本数量为2,PG副本在每个OSD上的分布并不均衡。
节点均衡映射表中,更新设备数量为4、更新PG副本数量为6时,每个OSD上的更新主副本数量、更新日志副本数量和更新从副本数量均为(2,2,2)。请参阅图9,图9的(9a)是根据每个OSD上的更新主副本数量、更新日志副本数量和更新从副本数量均为(2,2,2)构建的更新PG映射视图。根据更新PG映射视图,将每个OSD上PG副本的角色进行切换,即由图8中的(8c)得到图9中的(9c)。
请参阅图10,在一些实施例,基于数据库的PG副本均衡方法还包括但不限于包括步骤S1001至步骤S1004:
步骤S1001,获得源对象存储设备和目标对象存储设备;其中,源对象存储设备为存在迁移PG副本的对象存储设备,目标对象存储设备为接收迁移PG副的对象存储设备;
步骤S1002,在源对象存储设备中对迁移PG副本进行备份,得到备份PG副本;
步骤S1003,将迁移PG副本发送至目标对象存储设备;
步骤S1004,在目标对象存储设备接收到迁移PG副本后,删除备份PG副本。
在一些实施例的步骤S1001至步骤S1004中,迁移PG副本为需要从当前OSD迁移到另一个OSD上的PG副本,在实现PG副本均衡分布在每个OSD上后,存在节点变更,将所有PG副本重新分配到每个OSD上时,由于一开始每个PG副本都有对应放置的OSD,重新分配会存在PG副本的迁移。而物理节点之间往往存在地域差,PG副本迁移的不确定因素高,因此,需要在源对象存储设备上先把迁移PG副本备份一份,得到备份PG副本,再将迁移PG副本发送至目标对象存储设备,在目标对象存储设备接收到迁移PG副本后,才能删除源对象存储设备上的备份PG副本。
在物理节点间完成PG副本的均衡分布时,还需完成线程间PG副本的均衡分布。请参阅图11,物理节点间PG副本均衡分布,但在节点n01上,从线程t2均为主副本的角色,从线程t3均为日志副本的角色,从线程t4均为从副本的角色,导致分布式存储系统的读写效率低,从而影响分布式存储系统的性能。基于此,通过下述实施例设置线程均衡标准,实现线程间PG副本均衡分布。
请参阅图12,在一些实施例,步骤S501还可以包括但不限于包括步骤S1201至步骤S1204:
步骤S1201,从每个物理节点的线程中选出主线程,通过主线程获取建议PG映射视图,并根据建议PG映射视图,依次选择当前物理节点对应的PG副本标识信息,将PG副本标识信息分配给对应角色数量最少的从线程;其中,每个物理节点包括一个主线程和至少一个从线程;
步骤S1202,通过主线程获取PG副本标识信息和从线程的分布视图;其中,分布视图包括每一从线程和PG副本标识信息的映射关系;
步骤S1203,通过主线程和分布视图检测每个物理节点的从线程是否满足预设的线程均衡标准;其中,线程均衡标准为每个物理节点的从线程间PG副本数量、主副本数量和日志副本数量的差值都不超过预设值;
步骤S1204,若物理节点的从线程不满足线程均衡标准,通过主线程和线程均衡标准对物理节点上的所有从线程进行PG副本标识信息迁移。
在一些实施例的步骤S1201至步骤S1202中,将PG副本标识信息分配给从线程后,从线程将本线程的所有PG副本标识信息保存在链表中,该从线程即可利用链表中PG副本标识信息对应的PG副本进行数据读写处理。由图6中的建议PG映射视图,可以得到每个物理节点上每个OSD所对应的PG数量,建议主副本数量和建议日志副本数量,由建议PG映射视图得到的节点n01的PG副本信息如图13中的(13a)所示。图13中的(13b)表示依次选择当前物理节点对应的PG副本标识信息,将PG副本标识信息分配给对应角色数量最少的从线程后,得到的分布视图。t2、t3和t4分别为不同的从线程,主线程选择PG1的正副本,并分配给从线程t2,选择PG2的从副本,此时从线程t2是查找到的第一个从副本数量最少的线程,因此分配给从线程t2,选择PG3的从副本,分配给从线程t3,以此类推,将当前物理节点的PG副本标识信息分配完成后,得到图13中的(13b)这样的分布视图。完成初步分配后,当建议PG视图变化时,分布视图也会变化,因此主线程在完成初步分配后,会周期性的查看分布视图是否满足线程均衡标准。
在一些实施例的步骤S1203中,若预设值为1,在图13的(13b)中,从线程t2-t4间PG副本数量、主副本数量和日志副本数量的差值都不超过1,说明该物理节点的从线程满足线程均衡标准。
在一些实施例的步骤S1204中,请参阅图14,图14的(14a)中,从线程t3的日志副本数量为2,从线程t3的日志副本数量为0,物理节点的从线程间日志副本数量的差值超过1,说明不满足线程均衡标准。图14的(14b)中,从线程t2的PG副本数量为4,从线程t3的PG副本数量为2,物理节点的从线程间PG副本数量的差值超过1,说明不满足线程均衡标准。在物理节点的从线程间不满足线程均衡标准时,通过主线程对物理节点上的从线程进行PG副本标识信息迁移,使物理节点的从线程间满足线程均衡标准,即图14中的(14a)变成图15中的(15a),图14中的(14b)变成图15中的(15b)。
请参照图16,在一些实施例中,步骤S1204还可以包括但不限于包括步骤S1601至步骤S1604:
步骤S1601,遍历物理节点上的所有从线程,将主副本数量最多的线程,记为第一从线程,将主副本数量最少的线程,记为第二从线程,将日志副本数量最多的线程,记为第三从线程,将日志副本数量最少的线程,记为第四从线程,将PG副本数量最多的线程,记为第五从线程,将PG副本数量最少的线程,记为第六从线程;
步骤S1602,若第一从线程的主副本数量和第二从线程的主副本数量的差超过预设值,通过主线程将第一从线程的一个主副本标识信息迁移到第二从线程,直到第一从线程的主副本数量和第二从线程的主副本数量的差不超过预设值;
步骤S1603,若第三从线程的日志副本数量和第四从线程的日志副本数量的差超过预设值,通过主线程将第三从线程的一个日志副本标识信息迁移到第四从线程,直到第三从线程的日志副本数量和第四从线程的日志副本数量的差不超过预设值;
步骤S1604,若第五从线程的PG副本数量和第六从线程的PG副本数量的差超过预设值,通过主线程将第五从线程的一个从副本标识信息迁移到第六从线程,直到第五从线程的PG副本数量和第六从线程的PG副本数量的差不超过预设值。
具体的迁移步骤如下:
步骤一:主副本标识信息迁移
遍历物理节点上所有从线程,找到主副本数量最多的线程T_max1(如果存在多个,选择遍历到的第一个从线程),对应的主副本数量为max1,找到主副本数量最少的线程T_min1(如果存在多个,选择遍历到的第一个从线程),对应的主副本数量为min1。
若max1–min1>1,选择一个主副本标识信息(从左往右,选择先遍历到的主副本标识信息)从T_max1迁移到T_min1,重复步骤一,直到max1-min1<=1,执行步骤二。
步骤二:日志副本标识信息迁移
遍历物理节点上所有从线程,找到日志副本数量最多的线程T_max2(存在多个选第一个从线程),日志副本数量为max2,找到日志副本数量最少的线程T_min2(存在多个选第一个从线程),日志副本数量为min2。
若max2–min2>1,把一个日志副本标识信息(从左往右,选择先遍历到的日志副本标识信息)从T_max2迁移到T_min2,重复步骤二,直到max2–min2<=1,执行步骤三。
步骤三:从副本标识信息迁移。
遍历物理节点上所有从线程,找到PG副本数量最多的线程T_max3(存在多个选第一个从线程),PG副本数量为max3,找到PG副本数量最少的线程T_min3(存在多个选第一个从线程),PG副本数量为min3。
若max3–min3>1,把一个从副本(从左往右,选择先遍历到的从副本)从T_max3迁移到T_min3,重复步骤三,直到max3-min3<=1。
示例性的,请参阅图17,图17中的(17a)中,从线程t4的主副本数量和从线程t3的主副本数量的差超过1,将从线程t4中第一个遍历到的主副本标识信息迁移到从线程t3,得到图17中的(17b),主副本标识信息迁移完成。从线程t3的日志副本数量和从线程t2的日志副本数量的差超过1,将从线程t3中第一个遍历到的日志副本标识信息迁移到从线程t2,得到图17中的(17c),日志副本标识信息迁移完成。从线程t2的PG副本数量和从线程t3的PG副本数量的差超过1,将从线程t2中第一个遍历到的从副本标识信息迁移到从线程t3,得到图17中的(17d)。
请参阅图18,本申请实施例还提供一种基于数据库的PG副本均衡装置,可以实现上述基于数据库的PG副本均衡装置,该装置包括:
第一获取模块1801,用于获取所有物理节点上对象存储设备的存储设备数量和PG副本的PG副本数量;
分配模块1802,用于根据存储设备数量和PG副本数量,将PG副本平均分配到每个对象存储设备上;其中,PG副本的角色包括主副本、从副本和日志副本;
第二获取模块1803,用于获取对象存储设备分配的PG副本的数量,得到建议PG副本数量;
建议模块1804,用于根据存储设备数量、建议PG副本数量和预设的节点均衡映射表,确定每个对象存储设备上的建议日志副本数量、建议主副本数量和建议从副本数量;其中,节点均衡映射表包括不同存储设备数量下,每一建议PG副本数量和建议日志副本数量、建议主副本数量和建议从副本数量之间的映射关系;
切换模块1805,用于根据每个对象存储设备上建议日志副本数量、建议主副本数量和建议从副本数量,将每个对象存储设备上PG副本的角色进行切换。
该基于数据库的PG副本均衡装置的具体实施方式与上述基于数据库的PG副本均衡方法的具体实施例基本相同,在此不再赘述。
本申请实施例还提供了一种电子设备,电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述基于数据库的PG副本均衡方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
请参阅图18,图18示意了另一实施例的电子设备的硬件结构,电子设备包括:
处理器301,可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器302,可以采用只读存储器(Read Only Memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(Random Access Memory,RAM)等形式实现。存储器302可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器302中,并由处理器301来调用执行本申请实施例的基于数据库的PG副本均衡方法;
输入/输出接口303,用于实现信息输入及输出;
通信接口304,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
总线305,在设备的各个组件(例如处理器301、存储器302、输入/输出接口303和通信接口304)之间传输信息;
其中处理器301、存储器302、输入/输出接口303和通信接口304通过总线305实现彼此之间在设备内部的通信连接。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述基于数据库的PG副本均衡方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。

Claims (8)

1.一种基于数据库的PG副本均衡方法,其特征在于,所述方法包括:
获取所有物理节点上对象存储设备的存储设备数量和PG副本的PG副本数量;
根据所述存储设备数量和所述PG副本数量,将所述PG副本平均分配到每个所述对象存储设备上;其中,所述PG副本的角色包括主副本、从副本和日志副本;
获取所述对象存储设备分配的所述PG副本的数量,得到建议PG副本数量;
根据所述存储设备数量、所述建议PG副本数量和预设的节点均衡映射表,确定每个所述对象存储设备上的建议日志副本数量、建议主副本数量和建议从副本数量;其中,所述节点均衡映射表包括不同存储设备数量下,每一所述建议PG副本数量和建议日志副本数量、建议主副本数量和建议从副本数量之间的映射关系;所述根据所述存储设备数量、所述建议PG副本数量和预设的节点均衡映射表,确定每个所述对象存储设备上的建议日志副本数量、建议主副本数量和建议从副本数量,包括:
根据所述存储设备数量在所述节点均衡映射表进行存储设备数量查找,得到所述节点均衡映射表中所述存储设备数量下的每一建议PG副本数量;
根据所述建议PG副本数量,在所述节点均衡映射表中所述存储设备数量下的每一建议PG副本数量进行建议PG副本数量查找,得到所述建议PG副本数量对应的所述对象存储设备上的建议日志副本数量、建议主副本数量和建议从副本数量;
根据每个所述对象存储设备上所述建议日志副本数量、所述建议主副本数量和所述建议从副本数量,将每个所述对象存储设备上所述PG副本的角色进行切换;所述根据每个所述对象存储设备上所述建议日志副本数量、所述建议主副本数量和所述建议从副本数量,将每个所述对象存储设备上所述PG副本的角色进行切换,包括:
根据每个所述对象存储设备上所述建议日志副本数量、所述建议主副本数量和所述建议从副本数量,构建建议PG映射视图;
根据所述建议PG映射视图,将每个所述对象存储设备上所述PG副本的角色进行切换。
2.根据权利要求1所述的方法,其特征在于,所述根据每个所述对象存储设备上所述建议日志副本数量、所述建议主副本数量和所述建议从副本数量,将每个所述对象存储设备上所述PG副本的角色进行切换之后,所述方法还包括:
接收节点变更信息;
根据所述节点变更信息获取变更后的所述对象存储设备的数量,得到更新设备数量;
根据所述更新设备数量和所述PG副本数量将所述PG副本平均分配到每个所述对象存储设备上;
获取所述对象存储设备分配的所述PG副本的数量,得到更新PG副本数量;
根据所述更新设备数量、所述更新PG副本数量和所述节点均衡映射表,确定每个所述对象存储设备上的更新日志副本数量、更新主副本数量和更新从副本数量;
根据每个所述对象存储设备上所述更新日志副本数量、所述更新主副本数量和所述更新从副本数量,构建更新PG映射视图;
根据所述更新PG映射视图,将每个所述对象存储设备上PG副本的角色进行切换。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获得源对象存储设备和目标对象存储设备;其中,所述源对象存储设备为存在迁移PG副本的对象存储设备,所述目标对象存储设备为接收所述迁移PG副本的对象存储设备;
在所述源对象存储设备中对所述迁移PG副本进行备份,得到备份PG副本;
将所述迁移PG副本发送至所述目标对象存储设备;
在所述目标对象存储设备接收到所述迁移PG副本后,删除所述备份PG副本。
4.根据权利要求1所述的方法,其特征在于,所述根据每个所述对象存储设备上所述建议日志副本数量、所述建议主副本数量和所述建议从副本数量,构建建议PG映射视图之后,所述方法还包括:
从每个所述物理节点的线程中选出主线程,通过所述主线程获取所述建议PG映射视图,并根据所述建议PG映射视图,依次选择当前物理节点对应的PG副本标识信息,将所述PG副本标识信息分配给对应角色数量最少的从线程;其中,每个所述物理节点包括一个所述主线程和至少一个所述从线程;
通过所述主线程获取所述PG副本标识信息和所述从线程的分布视图;其中,所述分布视图包括每一所述从线程和所述PG副本标识信息的映射关系;
通过所述主线程和所述分布视图检测每个所述物理节点的从线程是否满足预设的线程均衡标准;其中,所述线程均衡标准为每个所述物理节点的从线程间PG副本数量、主副本数量和日志副本数量的差值都不超过预设值;
若所述物理节点的从线程不满足所述线程均衡标准,通过所述主线程和所述线程均衡标准对所述物理节点上的从线程进行PG副本标识信息迁移。
5.根据权利要求4所述的方法,其特征在于,若所述物理节点的从线程不满足所述线程均衡标准,通过所述主线程和所述线程均衡标准对所述物理节点上的所有从线程进行PG副本标识信息迁移,包括:
遍历所述物理节点上的所有所述从线程,将所述主副本数量最多的线程,记为第一从线程,将所述主副本数量最少的线程,记为第二从线程,将所述日志副本数量最多的线程,记为第三从线程,将所述日志副本数量最少的线程,记为第四从线程,将所述PG副本数量最多的线程,记为第五从线程,将所述PG副本数量最少的线程,记为第六从线程;
若所述第一从线程的主副本数量和所述第二从线程的主副本数量的差超过预设值,通过所述主线程将所述第一从线程的一个主副本标识信息迁移到所述第二从线程,直到所述第一从线程的主副本数量和所述第二从线程的主副本数量的差不超过预设值;
若所述第三从线程的日志副本数量和所述第四从线程的日志副本数量的差超过预设值,通过所述主线程将所述第三从线程的一个日志副本标识信息迁移到所述第四从线程,直到所述第三从线程的日志副本数量和所述第四从线程的日志副本数量的差不超过预设值;
若所述第五从线程的PG副本数量和所述第六从线程的PG副本数量的差超过预设值,通过所述主线程将所述第五从线程的一个从副本标识信息迁移到所述第六从线程,直到所述第五从线程的PG副本数量和所述第六从线程的PG副本数量的差不超过预设值。
6.一种基于数据库的PG副本均衡装置,其特征在于,所述装置包括:
第一获取模块,用于获取所有物理节点上对象存储设备的存储设备数量和PG副本的PG副本数量;
分配模块,用于根据所述存储设备数量和所述PG副本数量,将所述PG副本平均分配到每个所述对象存储设备上;其中,所述PG副本的角色包括主副本、从副本和日志副本;
第二获取模块,用于获取所述对象存储设备分配的所述PG副本的数量,得到建议PG副本数量;
建议模块,用于根据所述存储设备数量、所述建议PG副本数量和预设的节点均衡映射表,确定每个所述对象存储设备上的建议日志副本数量、建议主副本数量和建议从副本数量;其中,所述节点均衡映射表包括不同存储设备数量下,每一所述建议PG副本数量和建议日志副本数量、建议主副本数量之间的映射关系;所述根据所述存储设备数量、所述建议PG副本数量和预设的节点均衡映射表,确定每个所述对象存储设备上的建议日志副本数量、建议主副本数量和建议从副本数量,包括:
根据所述存储设备数量在所述节点均衡映射表进行存储设备数量查找,得到所述节点均衡映射表中所述存储设备数量下的每一建议PG副本数量;
根据所述建议PG副本数量,在所述节点均衡映射表中所述存储设备数量下的每一建议PG副本数量进行建议PG副本数量查找,得到所述建议PG副本数量对应的所述对象存储设备上的建议日志副本数量、建议主副本数量和建议从副本数量;
切换模块,用于根据每个所述对象存储设备上所述建议日志副本数量、所述建议主副本数量和所述建议从副本数量,将每个所述对象存储设备上所述PG副本的角色进行切换;所述根据每个所述对象存储设备上所述建议日志副本数量、所述建议主副本数量和所述建议从副本数量,将每个所述对象存储设备上所述PG副本的角色进行切换,包括:
根据每个所述对象存储设备上所述建议日志副本数量、所述建议主副本数量和所述建议从副本数量,构建建议PG映射视图;
根据所述建议PG映射视图,将每个所述对象存储设备上所述PG副本的角色进行切换。
7.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至5任一项所述的基于数据库的PG副本均衡方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的基于数据库的PG副本均衡方法。
CN202311773890.5A 2023-12-21 2023-12-21 基于数据库的pg副本均衡方法、装置、设备及存储介质 Active CN117873709B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311773890.5A CN117873709B (zh) 2023-12-21 2023-12-21 基于数据库的pg副本均衡方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311773890.5A CN117873709B (zh) 2023-12-21 2023-12-21 基于数据库的pg副本均衡方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN117873709A CN117873709A (zh) 2024-04-12
CN117873709B true CN117873709B (zh) 2024-07-09

Family

ID=90583866

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311773890.5A Active CN117873709B (zh) 2023-12-21 2023-12-21 基于数据库的pg副本均衡方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117873709B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021217864A1 (zh) * 2020-04-29 2021-11-04 平安科技(深圳)有限公司 存储集群的负载均衡方法、装置、计算机设备及存储介质
CN115309550A (zh) * 2022-08-04 2022-11-08 天津神舟通用数据技术有限公司 Mpp并行数据库实例级副本均衡方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114637475B (zh) * 2022-04-13 2024-06-25 苏州浪潮智能科技有限公司 一种分布式存储系统控制方法、装置及可读存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021217864A1 (zh) * 2020-04-29 2021-11-04 平安科技(深圳)有限公司 存储集群的负载均衡方法、装置、计算机设备及存储介质
CN115309550A (zh) * 2022-08-04 2022-11-08 天津神舟通用数据技术有限公司 Mpp并行数据库实例级副本均衡方法

Also Published As

Publication number Publication date
CN117873709A (zh) 2024-04-12

Similar Documents

Publication Publication Date Title
US10209893B2 (en) Massively scalable object storage for storing object replicas
US11210279B2 (en) Distributed offline indexing
US10002148B2 (en) Memory-aware joins based in a database cluster
CN112507023B (zh) 用于在集群重新配置后的工作负载平衡的复制数据库分布
EP2996308B1 (en) Massively scalable object storage system
US8838595B2 (en) Operating on objects stored in a distributed database
US20190266131A1 (en) Scalable Grid Deduplication
CN107710193A (zh) 分布式计算环境的数据放置控制
CN102708165B (zh) 分布式文件系统中的文件处理方法及装置
CN106843745A (zh) 容量扩展方法及装置
JP2009522660A5 (zh)
Xu et al. Drop: Facilitating distributed metadata management in eb-scale storage systems
CN103067525A (zh) 一种基于特征码的云存储数据备份方法
CN110321225B (zh) 负载均衡方法、元数据服务器及计算机可读存储介质
CN105005611A (zh) 一种文件管理系统及文件管理方法
CN113742135A (zh) 数据备份方法、装置及计算机可读存储介质
US20140279883A1 (en) Method and a system for distributed processing of a dataset
CN111400301B (zh) 一种数据查询方法、装置及设备
CN117873709B (zh) 基于数据库的pg副本均衡方法、装置、设备及存储介质
CN116595015A (zh) 数据处理方法、装置、设备及存储介质
Ochiai et al. Facility information management on hbase: Large-scale storage for time-series data
CN108958967A (zh) 一种数据处理的方法以及服务器
CN104537081A (zh) 文件管理系统和方法
US11394780B2 (en) System and method for facilitating deduplication of operations to be performed
EP0204994A2 (en) Generalized directory data model

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