CN115202589B - 放置组成员选择方法、装置、设备及可读存储介质 - Google Patents

放置组成员选择方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN115202589B
CN115202589B CN202211112880.2A CN202211112880A CN115202589B CN 115202589 B CN115202589 B CN 115202589B CN 202211112880 A CN202211112880 A CN 202211112880A CN 115202589 B CN115202589 B CN 115202589B
Authority
CN
China
Prior art keywords
nodes
node
placement
members
placement group
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
CN202211112880.2A
Other languages
English (en)
Other versions
CN115202589A (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.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry 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 Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN202211112880.2A priority Critical patent/CN115202589B/zh
Publication of CN115202589A publication Critical patent/CN115202589A/zh
Application granted granted Critical
Publication of CN115202589B publication Critical patent/CN115202589B/zh
Priority to PCT/CN2023/078429 priority patent/WO2024055529A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了计算机技术领域内的一种放置组成员选择方法、装置、设备及可读存储介质。本申请先确定作为基准的第一放置组的各成员所在的目标节点,若第一放置组的成员个数不小于要选择成员的第二放置组的成员个数,则在目标节点中选择N个节点,在N个节点中的每个节点中选择一个磁盘得到第二放置组的N个成员,那么第二放置组的各成员所在节点与目标节点重合,后续可方便使第一放置组和第二放置组的主成员在同一节点上,那么这两个放置组的数据转发就能够在同一节点上完成,而不用经过网络,由此可提高相互对应的放置组的数据转发效率。本申请提供的一种放置组成员选择装置、设备及可读存储介质,也同样具有上述技术效果。

Description

放置组成员选择方法、装置、设备及可读存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种放置组成员选择方法、装置、设备及可读存储介质。
背景技术
在分布式存储场景下,两个绑定的存储池中存在相互对应的放置组。例如:存储池A中的放置组A1对应存储池B中的放置组B1,那么放置组A1中的主成员可以将要处理的数据转发至放置组B1进行处理。当然,放置组B1中的主成员也可以将要处理的数据转发至放置组A1进行处理。其中,某一放置组中的主成员是相应放置组的各成员中的任一个。一个放置组中有几个成员取决于当前存储池的纠删设计和冗余副本数。
需要说明的是,当系统压力达到一定程度时,相互对应的放置组的转发效率会降低;若达到网络瓶颈,转发的速度会被限制,那么分布式存储集群的性能就达不到预期。
因此,如何提高相互对应的放置组的数据转发效率,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种放置组成员选择方法、装置、设备及可读存储介质,以提高相互对应的放置组的数据转发效率。其具体方案如下:
第一方面,本申请提供了一种放置组成员选择方法,包括:
确定第一存储池中的任一个第一放置组在第二存储池中对应的放置组集合;其中,所述第一存储池包括多个第一放置组,所述第二存储池包括多个第二放置组;所述第一存储池中的放置组总数小于所述第二存储池中的放置组总数;
在所述放置组集合中任选一个第二放置组,并确定所述第一放置组的各成员所在的目标节点;
若所述第一放置组的成员个数不小于所述第二放置组的成员个数,则在所述目标节点中选择N个节点;N为所述第二放置组的成员个数;
在所述N个节点中的每个节点中选择一个磁盘,得到所述第二放置组的N个成员。
可选地,所述在所述目标节点中选择N个节点,包括:
将所述目标节点按照节点对应的第二放置组个数升序排列,得到节点序列,并选择该节点序列中的前N个节点;
将所述目标节点按照节点对应的第二放置组个数降序排列,得到节点序列,并选择该节点序列中的后N个节点。
可选地,所述在所述N个节点中的每个节点中选择一个磁盘,包括:
在所述N个节点中的每个节点中选择对应的第二放置组个数最少的磁盘。
可选地,还包括:
若所述第一放置组的成员个数小于所述第二放置组的成员个数,则在当前分布式系统中确定除所述目标节点之外的其他节点,在其他节点中选择节点使所选节点与所述目标节点的个数之和为N后,执行所述在所述N个节点中的每个节点中选择一个磁盘,得到所述第二放置组的N个成员的步骤。
可选地,所述在其他节点中选择节点使所选节点与所述目标节点的个数之和为N,包括:
将其他节点按照节点对应的第二放置组个数升序排列,得到节点序列,并选择该节点序列中的前N-M个节点;M为所述第一放置组的成员个数;
将其他节点按照节点对应的第二放置组个数降序排列,得到节点序列,并选择该节点序列中的后N-M个节点;M为所述第一放置组的成员个数。
可选地,还包括:
在所述放置组集合中任选一个第二放置组之后,若所述放置组集合中还有其他未被选择的第二放置组,则在所述N个节点中的每个节点中为其他未被选择的第二放置组选择成员。
可选地,还包括:
若任一存储池中的成员故障,则确定故障成员所属的故障放置组,并将所述故障放置组的各成员所在的节点组成对象节点集;
确定所述故障放置组在另一存储池中对应的放置组,并将该放置组的各成员所在节点组成对应节点集;
确定属于所述对应节点集但不属于所述对象节点集的非重合节点;
在所述非重合节点中选择对应的放置组个数最少的节点,在所选节点中选择对应的放置组个数最少的磁盘,用当前所选磁盘替换所述故障成员。
可选地,所述将所述故障放置组的各成员所在的节点组成对象节点集,包括:
确定所述故障放置组的各成员所在的对象节点,从所述对象节点中删除所述故障成员所在节点,并将剩余节点组成所述对象节点集。
可选地,还包括:
若所述故障放置组在另一存储池中对应的放置组有多个,则确定每个放置组的各成员所在节点,得到多个对应节点集;
在所述多个对应节点集中选择一个对应节点集,并执行所述确定属于所述对应节点集但不属于所述对象节点集的非重合节点的步骤。
可选地,还包括:
若不存在所述非重合节点,或从所述非重合节点中选择的节点无可用磁盘,则在当前分布式系统中确定除所述对象节点集之外的其他节点,在其他节点中选择对应的放置组个数最少的节点后,执行所述在所选节点中选择对应的放置组个数最少的磁盘,用当前所选磁盘替换所述故障成员的步骤。
可选地,所述用当前所选磁盘替换所述故障成员之后,还包括:
将所述故障成员中的数据恢复至当前所选磁盘。
可选地,还包括:
在相互对应的第一放置组和第二放置组中分别选择节点相同的成员作为相应放置组的主成员。
第二方面,本申请提供了一种放置组成员选择装置,包括:
确定模块,用于确定第一存储池中的任一个第一放置组在第二存储池中对应的放置组集合;所述第一存储池中的放置组总数小于所述第二存储池中的放置组总数;其中,所述第一存储池包括多个第一放置组,所述第二存储池包括多个第二放置组;所述第一存储池中的放置组总数小于所述第二存储池中的放置组总数;
放置组选择模块,用于在所述放置组集合中任选一个第二放置组,并确定所述第一放置组的各成员所在的目标节点;
节点选择模块,用于若所述第一放置组的成员个数不小于所述第二放置组的成员个数,则在所述目标节点中选择N个节点;N为所述第二放置组的成员个数;
成员选择模块,用于在所述N个节点中的每个节点中选择一个磁盘,得到所述第二放置组的N个成员。
可选地,所述节点选择模块具体用于:
将所述目标节点按照节点对应的第二放置组个数升序排列,得到节点序列,并选择该节点序列中的前N个节点;
将所述目标节点按照节点对应的第二放置组个数降序排列,得到节点序列,并选择该节点序列中的后N个节点。
可选地,所述成员选择模块具体用于:
在所述N个节点中的每个节点中选择对应的第二放置组个数最少的磁盘。
可选地,还包括:
另一节点选择模块,用于若所述第一放置组的成员个数小于所述第二放置组的成员个数,则在当前分布式系统中确定除所述目标节点之外的其他节点,在其他节点中选择节点使所选节点与所述目标节点的个数之和为N后,执行所述在所述N个节点中的每个节点中选择一个磁盘,得到所述第二放置组的N个成员的步骤。
可选地,所述另一节点选择模块具体用于:
将其他节点按照节点对应的第二放置组个数升序排列,得到节点序列,并选择该节点序列中的前N-M个节点;M为所述第一放置组的成员个数;
将其他节点按照节点对应的第二放置组个数降序排列,得到节点序列,并选择该节点序列中的后N-M个节点;M为所述第一放置组的成员个数。
可选地,还包括:
其他第二放置组的选择成员模块,用于在所述放置组集合中任选一个第二放置组之后,若所述放置组集合中还有其他未被选择的第二放置组,则在所述N个节点中的每个节点中为其他未被选择的第二放置组选择成员。
可选地,还包括:故障处理模块,故障处理模块包括:
对象节点集确定单元,用于若任一存储池中的成员故障,则确定故障成员所属的故障放置组,并将所述故障放置组的各成员所在的节点组成对象节点集;
对应节点集确定单元,用于确定所述故障放置组在另一存储池中对应的放置组,并将该放置组的各成员所在节点组成对应节点集;
非重合节点确定单元,用于确定属于所述对应节点集但不属于所述对象节点集的非重合节点;
成员替换单元,用于在所述非重合节点中选择对应的放置组个数最少的节点,在所选节点中选择对应的放置组个数最少的磁盘,用当前所选磁盘替换所述故障成员。
可选地,所述对象节点集确定单元具体用于:
确定所述故障放置组的各成员所在的对象节点,从所述对象节点中删除所述故障成员所在节点,并将剩余节点组成所述对象节点集。
可选地,对应节点集确定单元还用于:
若所述故障放置组在另一存储池中对应的放置组有多个,则确定每个放置组的各成员所在节点,得到多个对应节点集;
在所述多个对应节点集中选择一个对应节点集,并执行所述确定属于所述对应节点集但不属于所述对象节点集的非重合节点的步骤。
可选地,成员替换单元还用于:
若不存在所述非重合节点,或从所述非重合节点中选择的节点无可用磁盘,则在当前分布式系统中确定除所述对象节点集之外的其他节点,在其他节点中选择对应的放置组个数最少的节点后,执行所述在所选节点中选择对应的放置组个数最少的磁盘,用当前所选磁盘替换所述故障成员的步骤。
可选地,故障处理模块还包括:
数据恢复单元,用于在所述用当前所选磁盘替换所述故障成员之后,将所述故障成员中的数据恢复至当前所选磁盘。
可选地,还包括:
主成员选择模块,用于在相互对应的第一放置组和第二放置组中分别选择节点相同的成员作为相应放置组的主成员。
第三方面,本申请提供了一种分布式存储系统,其特征在于,包括多个节点,每个节点包括:多个磁盘;
其中,所有磁盘中的一部分磁盘构成上述任一项所述的第一存储池,另一部分磁盘构成上述任一项所述的第二存储池。
优选地,所述第一存储池的各磁盘性能高于所述第二存储池的各磁盘性能。
第四方面,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的放置组成员选择方法。
第五方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的放置组成员选择方法。
通过以上方案可知,本申请提供了一种放置组成员选择方法,包括:确定第一存储池中的任一个第一放置组在第二存储池中对应的放置组集合;其中,所述第一存储池包括多个第一放置组,所述第二存储池包括多个第二放置组;所述第一存储池中的放置组总数小于所述第二存储池中的放置组总数;在所述放置组集合中任选一个第二放置组,并确定所述第一放置组的各成员所在的目标节点;若所述第一放置组的成员个数不小于所述第二放置组的成员个数,则在所述目标节点中选择N个节点;N为所述第二放置组的成员个数;在所述N个节点中的每个节点中选择一个磁盘,得到所述第二放置组的N个成员。
可见,本申请以放置组总数较少的存储池中的一个放置组为基准,能够为该放置组在另一存储池中对应的放置组选择成员。在进行具体选择时,先确定作为基准的第一放置组的各成员所在的目标节点,如果第一放置组的成员个数不小于要选择成员的第二放置组的成员个数,则表明目标节点的个数足以支持分布第二放置组的各成员,因此直接在目标节点中选择N个节点,N第二放置组的成员个数,之后在N个节点中的每个节点中选择一个磁盘,就可以选择到第二放置组的N个成员,那么第二放置组的这N个成员所在的节点就与目标节点重合,后续为第一放置组和第二放置组指定主成员时,此二者的主成员就大概率在一个节点上。而相互对应的放置组的主成员在同一节点上时,这两个放置组的数据转发就只需在同一节点上完成,而不用经过网络,由此就可以提高相互对应的放置组的数据转发效率。
相应地,本申请提供的一种放置组成员选择装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种放置组成员选择方法流程图;
图2为本申请公开的两个存储池中的PG对应关系示意图;
图3为本申请公开的一种放置组成员选择示意图;
图4为本申请公开的一种故障处理示意图;
图5为本申请公开的另一种故障处理示意图;
图6为本申请公开的一种放置组成员选择装置示意图;
图7为本申请公开的一种电子设备示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,当分布式存储系统的压力达到一定程度时,相互对应的放置组的转发效率会降低;若达到网络瓶颈,转发的速度会被限制,那么分布式存储集群的性能就达不到预期。为此,本申请提供了一种放置组成员选择方案,能够提高相互对应的放置组的数据转发效率。
参见图1所示,本申请实施例公开了一种放置组成员选择方法,包括:
S101、确定第一存储池中的任一个第一放置组在第二存储池中对应的放置组集合。
其中,第一存储池包括多个第一放置组,第二存储池包括多个第二放置组;第一存储池中的放置组总数小于第二存储池中的放置组总数。假设第一存储池用A表示,其中的各个第一放置组为:A1~A4,共4个第一放置组;第二存储池用B表示,其中的各个第二放置组为:B1~A8,共8个第二放置组;那么,第一存储池A中的一个第一放置组对应第二存储池B中的两个第二放置组,具体对应关系为:A1对应B1和B5,A2对应B2和B6,A3对应B3和B7,A4对应B4和B8。据此,A1对应的放置组集合为{B1,B5},A2对应的放置组集合为{B2,B6},A3对应的放置组集合为{B3,B7},A4对应的放置组集合为{B4,B8}。第一存储池可以为高速缓存池,第二存储池为低速存储池。
S102、在放置组集合中任选一个第二放置组,并确定第一放置组的各成员所在的目标节点。
放置组(Placement Group,简称PG)是用于放置对象的一个载体。一个放置组对应多个对象,一个对象对应一个磁盘。一个放置组的各成员即:该放置组对应的各磁盘。由于各磁盘分布在分布式系统的各个节点上,因此针对一个放置组,可确定该放置组中各成员所在的节点。
在分布式存储系统中,存储的内容按照固定大小切割,这一块固定大小的数据称为一个对象,PG就是多个对象的聚合,是一个逻辑上的概念。PG和对象之间通过一致性哈希算法对应起来。而PG与磁盘的对应是通过数据分布算法对应起来的。本实施例所述的磁盘即OSD(Object-based Storage Device,对象存储设备)。
S103、若第一放置组的成员个数不小于第二放置组的成员个数,则在目标节点中选择N个节点;N为第二放置组的成员个数。
需要说明的是,一个放置组的成员个数取决于该放置组所属存储池的纠删设计和冗余副本数。若某一放置组所属存储池是4+2的纠删设计,则该放置组的成员个数为6;若某一放置组所属存储池的冗余副本数为3,则该放置组的成员个数为3。
由于本实施例的目的是:让两个存储池中相互对应的放置组中的各成员所在节点重复,因此在确定第一放置组中各成员所在的节点后,在这些节点中为第一放置组对应的第二放置组选择成员,那么相互对应的第一放置组和第二放置组中的各成员所在节点就是重复的。
当第一放置组的成员个数M不小于第二放置组的成员个数N时(即M≥N),表明第一放置组的各成员所在的目标节点有M个,那么可在M个节点中直接选择N个节点,并在所选的N个节点中为第二放置组选择成员。在M≥N时,优先选择第二放置组个数较少的节点。因此在一种具体实施方式中,在目标节点中选择N个节点,包括:将目标节点按照节点对应的第二放置组个数升序排列,得到节点序列,并选择该节点序列中的前N个节点;或将目标节点按照节点对应的第二放置组个数降序排列,得到节点序列,并选择该节点序列中的后N个节点。在某一个节点上为第二放置组选择一个成员后,该节点对应的第二放置组个数加一。相应的,该节点还对应记录有第一放置组个数,若在一个节点上为第一放置组选择一个成员,则该节点对应的第一放置组个数加一。
当第一放置组的成员个数M小于第二放置组的成员个数N时(即M<N),表明M个节点不足以为第二放置组选择成员,需要额外再找M-N个节点,以凑够N个节点,然后在N个节点中为第二放置组选择成员。在M<N时,优先选择第一放置组的各成员所在的M个节点,然后在系统的其他节点中选择第二放置组个数较少的节点,以凑够N个节点。因此在一种具体实施方式中,还包括:若第一放置组的成员个数小于第二放置组的成员个数,则在当前分布式系统中确定除目标节点之外的其他节点,在其他节点中选择节点使所选节点与目标节点的个数之和为N后,执行在N个节点中的每个节点中选择一个磁盘,得到第二放置组的N个成员的步骤。
在一种具体实施方式中,在其他节点中选择节点使所选节点与目标节点的个数之和为N,包括:将其他节点按照节点对应的第二放置组个数升序排列,得到节点序列,并选择该节点序列中的前N-M个节点;M为第一放置组的成员个数;或将其他节点按照节点对应的第二放置组个数降序排列,得到节点序列,并选择该节点序列中的后N-M个节点;M为第一放置组的成员个数。
S104、在N个节点中的每个节点中选择一个磁盘,得到第二放置组的N个成员。
在所选节点中选择磁盘时,也优先选择第二放置组个数较少的磁盘。也就是说,任一个磁盘在某一次被选为第二放置组的成员后,该磁盘对应的第二放置组个数加一。相应的,该磁盘还对应记录有第一放置组个数,若一个磁盘某一次被选为第一放置组的成员,则该磁盘对应的第一放置组个数加一。因此在一种具体实施方式中,在N个节点中的每个节点中选择一个磁盘,包括:在N个节点中的每个节点中选择对应的第二放置组个数最少的磁盘。
在一种具体实施方式中,在放置组集合中任选一个第二放置组之后,若放置组集合中还有其他未被选择的第二放置组,则在N个节点中的每个节点中为其他未被选择的第二放置组选择成员。也就是说,放置组集合中其他未被选择的第二放置组按照已确定成员的第二放置组选择成员。假设针对放置组集合{B1,B5},先确定了B1的成员,且在为B1选择成员时确定的N个节点为:D1~DN,那么直接在D1~DN中为B5选择成员。即:在D1~DN的每个节点中选择第二放置组个数最少的一个磁盘,那么所选的N个磁盘即为B5的成员。当然在选择后,相应节点和相应磁盘对应的第二放置组个数加一。其中,N个节点D1~DN可以是:M≥N时,在M个节点中选择的N个节点;或M<N时,M个节点与额外选择的M-N个节点之和。
按照本实施例选够N个节点后,在每个节点中选择一个磁盘,就能选到N个磁盘,这N个磁盘就是第二放置组的N个成员。如此一来,相互对应的第一放置组和第二放置组的成员所在的节点就有重合,后续为第一放置组和第二放置组指定主成员时,此二者的主成员就大概率能在一个节点上。相互对应的放置组的主成员在同一节点上时,这两个放置组的数据转发就只需在同一节点上完成,而不用经过网络,由此就可以提高相互对应的放置组的数据转发效率。
基于上述实施例,需要说明的是,若任一存储池中的成员故障,则确定故障成员所属的故障放置组,并将故障放置组的各成员所在的节点组成对象节点集;确定故障放置组在另一存储池中对应的放置组,并将该放置组的各成员所在节点组成对应节点集;确定属于对应节点集但不属于对象节点集的非重合节点;在非重合节点中选择对应的放置组个数最少的节点,在所选节点中选择对应的放置组个数最少的磁盘,用当前所选磁盘替换故障成员。
在一种具体实施方式中,将故障放置组的各成员所在的节点组成对象节点集,包括:确定故障放置组的各成员所在的对象节点,从对象节点中删除故障成员所在节点,并将剩余节点组成对象节点集。需要说明的是,无论是否从对象节点中删除故障成员所在节点,都不影响本发明的实现,只是删除与否对系统均衡存在影响。具体的,若从对象节点中删除故障成员所在节点,那么就可能在故障成员所在节点中重新选择另一磁盘来替换故障成员,后续在进行数据恢复时,既需要从故障成员所在节点读取待恢复数据,又需要从其他节点读取待恢复数据,同时还需要将恢复得到的数据写入故障成员所在节点。因此在整个数据恢复过程中,各个节点都有参与,系统整体压力比较均衡。若不从对象节点中删除故障成员所在节点,那么就不会在故障成员所在节点中重新选择另一磁盘来替换故障成员,而是在其他节点选择磁盘来替换故障成员,后续在进行数据恢复时,只需从故障成员所在节点读取待恢复数据,故障成员所在节点无需进行其他操作,因此故障成员所在节点相对其他节点较空闲。
在一种具体实施方式中,若故障放置组在另一存储池中对应的放置组有多个,则确定每个放置组的各成员所在节点,得到多个对应节点集;在所述多个对应节点集中选择一个对应节点集,并执行确定属于对应节点集但不属于对象节点集的非重合节点的步骤。
在一种具体实施方式中,若不存在非重合节点,或从非重合节点中选择的节点无可用磁盘,则在当前分布式系统中确定除对象节点集之外的其他节点,在其他节点中选择对应的放置组个数最少的节点后,执行在所选节点中选择对应的放置组个数最少的磁盘,用当前所选磁盘替换故障成员的步骤。
在一种具体实施方式中,用当前所选磁盘替换故障成员之后,还包括:将故障成员中的数据恢复至当前所选磁盘。
基于上述实施例,需要说明的是,还包括:在相互对应的第一放置组和第二放置组中分别选择节点相同的成员作为相应放置组的主成员,以使第一放置组和第二放置组的主成员在一个节点上,这两个放置组的数据转发就只需在同一节点上完成,而不用经过网络,由此就可以提高相互对应的放置组的数据转发效率。
下述实施例以缓存池和数据池为例进行方案介绍。缓存池和数据池创建完成后,其中的PG需要进行绑定操作,在绑定时本实施例对PG数目较多的存储池内的PG分布进行调整,具体为:已知存储池创建完成后存储池内的PG已均衡分布。以PG数较少的存储池作为基准池(base_pool),另一存储池称为该基准池的绑定池(tier_pool)。
由于存储池中PG个数为2的整数次幂,所以即便两个存储池的PG数目不同,也是成2的整数倍的关系。由此可知下列PG对应关系总是成立:以PG个数较少的存储池pool1作为基准,PG个数较多的存储池内的PG可按照pool1的PG数进行切分,切分的每一份中的PG数与pool1的PG数相等,现在将每一份都与pool1的PG进行一一对应,即可得到PG的对应关系。例如:将pool2中4096个PG按照1024分为4份,每份分别和pool1的1024个PG对应,得PG的对应关系,具体可参照图2。
在调整PG分布之前,设磁盘和节点被两个存储池的引用计数(被PG选择的次数)均为0。也即:一个磁盘对应有两个引用计数,一个引用计数用于记录被基准池中的PG选择的次数(即上述实施例所述的“磁盘对应的第一放置组个数”),另一个引用计数用于记录被绑定池中的PG选择的次数(即上述实施例所述的“磁盘对应的第二放置组个数”)。
调整PG分布时,遍历到基准池中的一个PG(记为base_pg)后,按照图2所示的对应关系确定当前base_pg在绑定池中的对应的tier_pg,如果base_pg在绑定池中对应多个tier_pg,则选择PG ID最小的一个。遍历当前base_pg的成员,并获取各成员所在的节点id,将该节点id插入到一个数列S中,该数列S的长度为tier_pg的成员个数;当该数列S被插满但还有剩余节点id没有被处理,选择小于当前数列S中的最大引用计数的节点id插入,同时删除当前数列S中的最大引用计数的节点id,直至所有节点id被处理,如此可获得一个内有节点id的数列S。如果base_pg各成员所在的节点id都插入到数列S,但数列S未满,则往里插入UNDEF,直至其满。之后据此数列S为PG ID最小的一个tier_pg(记为X)进行成员的选择,具体过程为:遍历数列S,如果数列S的某一位置为节点id,则选择该节点内引用计数最小的磁盘作为X的一个成员,同时该磁盘和该节点的引用计数加1;如果数列S的某一位置为UNDEF,则在系统中的其他节点中选择引用计数最小的节点,并在引用计数最小的节点中选择引用计数最小的磁盘作为X的一个成员,同时该磁盘和该节点的引用计数加1。数列S被遍历完后,可为X选到各个成员。
如图3所示,假设pool1(基准池)中的1号PG(图3中的1.1)的成员1、10、20所在节点分别为节点1、节点2、节点3,而按照上述流程为pool2(绑定池)中与1.1对应的2.1所确定的由节点标识组成的数列为:节点1、节点2、节点3、UNDEF、UNDEF、UNDEF。据此数列为pool2中的1号PG:2.1,确定的各成员为:2、11、21、31、41、51。那么这些成员的引用计数均由0递增为1,同时,数列中各节点的引用计数均由0递增为1。
对于base_pg在绑定池中对应的、除X以外的其他tier_pg(记为Y),按照数列S为其选择成员。同理,遍历数列S,如果数列S的某一位置为节点id,则选择该节点内引用计数最小的磁盘作为Y的一个成员,同时该磁盘和该节点的引用计数加1;如果数列S的某一位置为UNDEF,则在系统中的其他节点中选择引用计数最小的节点,并在引用计数最小的节点中选择引用计数最小的磁盘作为Y的一个成员,同时该磁盘和该节点的引用计数加1。数列S被遍历完后,可为Y选到各个成员。
按照上述即可确定绑定池中各PG的成员,并且使两个存储池中相互对应的PG中的各成员所在节点尽可能重复,为二者的主成员位于同一节点提供便利条件。
如果基准池中的成员故障,首先获取故障成员的id,并据此id确定故障成员所在节点id,收集故障成员所属PG(记为R1)的各成员所在节点id,并去除故障成员所在节点id,组成对象节点集。确定R1在绑定池中对应的某一个tier_pg,获取该tier_pg中的所有成员的节点id,组成对应节点集。找到所有满足在对应节点集中但不在对象节点集中的节点id,如果有多个,则选择引用计数最小的节点,并在该节点内选择一个引用计数最小的磁盘;如果找不到满足条件的节点id或满足条件的节点中没有可用的磁盘供其选择,则记为UNDEF。针对UNDEF,在系统里的其他节点中选择、与已选节点不重合的、引用计数最小的节点,并在该节点内选择一个引用计数最小的磁盘。同时,相应磁盘和相应节点的引用计数加1。如此可使新选的磁盘尽量属于对应PG的成员所在节点上,可见故障处理后,相互对应的两个PG的成员所在的节点也尽可能重合。
如图4所示,基准池中的base_pg的各成员所在节点为:节点1、节点2、节点3,且base_pg的其中一个成员故障,且该故障成员所在节点为节点1,而在绑定池中与该base_pg对应的tier_pg的各成员所在节点为:节点1、节点2、节点3、节点4、节点5、节点6。按照上述原理,找出在tier_pg成员所在节点但不在base_pg成员所在节点的节点,其结果为:节点1、节点4、节点5、节点6,然后在这些节点中选择引用计数最小的节点,并在所选节点中选择一个引用计数最小的磁盘,来base_pg中的替换故障成员。
如果绑定池中的成员故障,首先获取故障成员的id,并据此id确定故障成员所在节点id,收集故障成员所属PG(记为R2)的各成员所在节点id,并去除故障成员所在节点id,组成对象节点集。确定R2在基准池中对应的一个base_pg,获取该base_pg中的所有成员的节点id,组成对应节点集。找到所有满足在对象节点集中但不在对应节点集中的节点id,如果有多个,则选择引用计数最小的节点,并在该节点内选择一个引用计数最小的磁盘;如果找不到满足条件的节点id或满足条件的节点中没有可用的磁盘供其选择,则记为UNDEF。针对UNDEF,在系统里的其他节点中选择、与已选节点不重合的、引用计数最小的节点,并在该节点内选择一个引用计数最小的磁盘。同时,相应磁盘和相应节点的引用计数加1。如此可使新选的磁盘尽量属于对应PG的成员所在节点上,可见故障处理后,相互对应的两个PG的成员所在的节点也尽可能重合。
如图5所示,基准池中的base_pg的各成员所在节点为:节点1、节点2、节点3,在绑定池中与该base_pg对应的tier_pg的各成员所在节点为:节点1、节点2、节点3、节点4、节点5、节点6,但tier_pg中位于节点1的成员故障,按照上述原理,找出在base_pg成员所在节点但不在tier_pg成员所在节点的节点,其结果为:节点1,然后在节点1中选择选择一个引用计数最小的磁盘,来替换tier_pg中的故障成员。
可见,本实施例提供了一种在分布式存储中为放置组进行成员优化的方案,尽量保证两个存储池中相互对应的PG的成员可以选择到同一个节点上,为后续选主成员提供便利。在成员故障时,对PG成员的选择优化也能避免多余重构的产生,适应性更广泛,尽量减少了业务数据通过网络进行转发的次数,减小了网络的压力,提高了存储集群的性能,提高了产品竞争力。
下面对本申请实施例提供的一种放置组成员选择装置进行介绍,下文描述的一种放置组成员选择装置与上文描述的一种放置组成员选择方法可以相互参照。
参见图6所示,本申请实施例公开了一种放置组成员选择装置,包括:
确定模块601,用于确定第一存储池中的任一个第一放置组在第二存储池中对应的放置组集合;第一存储池中的放置组总数小于第二存储池中的放置组总数;其中,第一存储池包括多个第一放置组,第二存储池包括多个第二放置组;第一存储池中的放置组总数小于第二存储池中的放置组总数;
放置组选择模块602,用于在放置组集合中任选一个第二放置组,并确定第一放置组的各成员所在的目标节点;
节点选择模块603,用于若第一放置组的成员个数不小于第二放置组的成员个数,则在目标节点中选择N个节点;N为第二放置组的成员个数;
成员选择模块604,用于在N个节点中的每个节点中选择一个磁盘,得到第二放置组的N个成员。
在一种具体实施方式中,节点选择模块具体用于:
将目标节点按照节点对应的第二放置组个数升序排列,得到节点序列,并选择该节点序列中的前N个节点;
将目标节点按照节点对应的第二放置组个数降序排列,得到节点序列,并选择该节点序列中的后N个节点。
在一种具体实施方式中,成员选择模块具体用于:
在N个节点中的每个节点中选择对应的第二放置组个数最少的磁盘。
在一种具体实施方式中,还包括:
另一节点选择模块,用于若第一放置组的成员个数小于第二放置组的成员个数,则在当前分布式系统中确定除目标节点之外的其他节点,在其他节点中选择节点使所选节点与目标节点的个数之和为N后,执行在N个节点中的每个节点中选择一个磁盘,得到第二放置组的N个成员的步骤。
在一种具体实施方式中,另一节点选择模块具体用于:
将其他节点按照节点对应的第二放置组个数升序排列,得到节点序列,并选择该节点序列中的前N-M个节点;M为第一放置组的成员个数;
将其他节点按照节点对应的第二放置组个数降序排列,得到节点序列,并选择该节点序列中的后N-M个节点;M为第一放置组的成员个数。
在一种具体实施方式中,还包括:
其他第二放置组的选择成员模块,用于在放置组集合中任选一个第二放置组之后,若放置组集合中还有其他未被选择的第二放置组,则在N个节点中的每个节点中为其他未被选择的第二放置组选择成员。
在一种具体实施方式中,还包括:故障处理模块,故障处理模块包括:
对象节点集确定单元,用于若任一存储池中的成员故障,则确定故障成员所属的故障放置组,并将故障放置组的各成员所在的节点组成对象节点集;
对应节点集确定单元,用于确定故障放置组在另一存储池中对应的放置组,并将该放置组的各成员所在节点组成对应节点集;
非重合节点确定单元,用于确定属于对应节点集但不属于对象节点集的非重合节点;
成员替换单元,用于在非重合节点中选择对应的放置组个数最少的节点,在所选节点中选择对应的放置组个数最少的磁盘,用当前所选磁盘替换故障成员。
在一种具体实施方式中,对象节点集确定单元具体用于:
确定故障放置组的各成员所在的对象节点,从对象节点中删除故障成员所在节点,并将剩余节点组成对象节点集。
在一种具体实施方式中,对应节点集确定单元还用于:
若故障放置组在另一存储池中对应的放置组有多个,则确定每个放置组的各成员所在节点,得到多个对应节点集;
在所述多个对应节点集中选择一个对应节点集,并执行确定属于对应节点集但不属于对象节点集的非重合节点的步骤。
在一种具体实施方式中,成员替换单元还用于:
若不存在非重合节点,或从非重合节点中选择的节点无可用磁盘,则在当前分布式系统中确定除对象节点集之外的其他节点,在其他节点中选择对应的放置组个数最少的节点后,执行在所选节点中选择对应的放置组个数最少的磁盘,用当前所选磁盘替换故障成员的步骤。
在一种具体实施方式中,故障处理模块还包括:
数据恢复单元,用于在用当前所选磁盘替换故障成员之后,将故障成员中的数据恢复至当前所选磁盘。
在一种具体实施方式中,还包括:
主成员选择模块,用于在相互对应的第一放置组和第二放置组中分别选择节点相同的成员作为相应放置组的主成员。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种放置组成员选择装置,能够使两个存储池中相互对应的放置组中的各成员所在节点重复,使二者的主成员尽可能在一个节点上,这两个放置组的数据转发也就能在同一节点上完成,而不用经过网络,由此就可以提高相互对应的放置组的数据转发效率。
下面对本申请实施例提供的一种分布式存储系统进行介绍,下文描述的一种分布式存储系统与上文描述的一种放置组成员选择方法及装置可以相互参照。
本申请实施例提供了一种分布式存储系统,包括多个节点,每个节点包括:多个磁盘;其中,所有磁盘中的一部分磁盘构成上述任一实施例所述的第一存储池,另一部分磁盘构成上述任一实施例所述的第二存储池。
在一种示例中,第一存储池的各磁盘性能高于第二存储池的各磁盘性能。例如第一存储池为高速缓存池,第二存储池为低速存储池。
下面对本申请实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与上文描述的一种放置组成员选择方法及装置可以相互参照。
参见图7所示,本申请实施例公开了一种电子设备,包括:
存储器701,用于保存计算机程序;
处理器702,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
进一步的,本申请实施例还提供了一种服务器来作为上述电子设备。该服务器,具体可以包括:至少一个处理器、至少一个存储器、电源、通信接口、输入输出接口和通信总线。其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行,以实现前述任一实施例公开的放置组成员选择方法中的相关步骤。
本实施例中,电源用于为服务器上的各硬件设备提供工作电压;通信接口能够为服务器创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统、计算机程序及数据等,存储方式可以是短暂存储或者永久存储。
其中,操作系统用于管理与控制服务器上的各硬件设备以及计算机程序,以实现处理器对存储器中数据的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序除了包括能够用于完成前述任一实施例公开的放置组成员选择方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据除了可以包括虚拟机等数据外,还可以包括虚拟机的开发商信息等数据。
进一步的,本申请实施例还提供了一种终端来作为上述电子设备。该终端具体可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
通常,本实施例中的终端包括有:处理器和存储器。
其中,处理器可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器还可以包括AI(ArtificialIntelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器至少用于存储以下计算机程序,其中,该计算机程序被处理器加载并执行之后,能够实现前述任一实施例公开的由终端侧执行的放置组成员选择方法中的相关步骤。另外,存储器所存储的资源还可以包括操作系统和数据等,存储方式可以是短暂存储或者永久存储。其中,操作系统可以包括Windows、Unix、Linux等。数据可以包括但不限于应用程序的更新信息。
在一些实施例中,终端还可包括有显示屏、输入输出接口、通信接口、传感器、电源以及通信总线。
在一种示例中,电子设备可以是分布式系统中任一具备管理功能的节点。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种放置组成员选择方法、装置及设备可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的放置组成员选择方法。
本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (14)

1.一种放置组成员选择方法,其特征在于,包括:
确定第一存储池中的任一个第一放置组在第二存储池中对应的放置组集合;其中,所述第一存储池包括多个第一放置组,所述第二存储池包括多个第二放置组;所述第一存储池中的放置组总数小于所述第二存储池中的放置组总数;
在所述放置组集合中任选一个第二放置组,并确定所述第一放置组的各成员所在的目标节点;
若所述第一放置组的成员个数不小于所述第二放置组的成员个数,则在所述目标节点中选择N个节点;N为所述第二放置组的成员个数;
在所述N个节点中的每个节点中选择一个磁盘,得到所述第二放置组的N个成员;
在相互对应的第一放置组和第二放置组中分别选择节点相同的成员作为相应放置组的主成员。
2.根据权利要求1所述的方法,其特征在于,所述在所述目标节点中选择N个节点,包括:
将所述目标节点按照节点对应的第二放置组个数升序排列,得到节点序列,并选择该节点序列中的前N个节点;
将所述目标节点按照节点对应的第二放置组个数降序排列,得到节点序列,并选择该节点序列中的后N个节点。
3.根据权利要求1所述的方法,其特征在于,所述在所述N个节点中的每个节点中选择一个磁盘,包括:
在所述N个节点中的每个节点中选择对应的第二放置组个数最少的磁盘。
4.根据权利要求1所述的方法,其特征在于,还包括:
若所述第一放置组的成员个数小于所述第二放置组的成员个数,则在当前分布式系统中确定除所述目标节点之外的其他节点,在其他节点中选择节点使所选节点与所述目标节点的个数之和为N后,执行所述在所述N个节点中的每个节点中选择一个磁盘,得到所述第二放置组的N个成员的步骤。
5.根据权利要求4所述的方法,其特征在于,所述在其他节点中选择节点使所选节点与所述目标节点的个数之和为N,包括:
将其他节点按照节点对应的第二放置组个数升序排列,得到节点序列,并选择该节点序列中的前N-M个节点;M为所述第一放置组的成员个数;
将其他节点按照节点对应的第二放置组个数降序排列,得到节点序列,并选择该节点序列中的后N-M个节点;M为所述第一放置组的成员个数。
6.根据权利要求1所述的方法,其特征在于,还包括:
在所述放置组集合中任选一个第二放置组之后,若所述放置组集合中还有其他未被选择的第二放置组,则在所述N个节点中的每个节点中为其他未被选择的第二放置组选择成员。
7.根据权利要求1至6任一项所述的方法,其特征在于,还包括:
若任一存储池中的成员故障,则确定故障成员所属的故障放置组,并将所述故障放置组的各成员所在的节点组成对象节点集;
确定所述故障放置组在另一存储池中对应的放置组,并将该放置组的各成员所在节点组成对应节点集;
确定属于所述对应节点集但不属于所述对象节点集的非重合节点;
在所述非重合节点中选择对应的放置组个数最少的节点,在所选节点中选择对应的放置组个数最少的磁盘,用当前所选磁盘替换所述故障成员。
8.根据权利要求7所述的方法,其特征在于,所述将所述故障放置组的各成员所在的节点组成对象节点集,包括:
确定所述故障放置组的各成员所在的对象节点,从所述对象节点中删除所述故障成员所在节点,并将剩余节点组成所述对象节点集。
9.根据权利要求7所述的方法,其特征在于,还包括:
若所述故障放置组在另一存储池中对应的放置组有多个,则确定每个放置组的各成员所在节点,得到多个对应节点集;
在所述多个对应节点集中选择一个对应节点集,并执行所述确定属于所述对应节点集但不属于所述对象节点集的非重合节点的步骤。
10.根据权利要求7所述的方法,其特征在于,还包括:
若不存在所述非重合节点,或从所述非重合节点中选择的节点无可用磁盘,则在当前分布式系统中确定除所述对象节点集之外的其他节点,在其他节点中选择对应的放置组个数最少的节点后,执行所述在所选节点中选择对应的放置组个数最少的磁盘,用当前所选磁盘替换所述故障成员的步骤。
11.根据权利要求7所述的方法,其特征在于,所述用当前所选磁盘替换所述故障成员之后,还包括:
将所述故障成员中的数据恢复至当前所选磁盘。
12.一种放置组成员选择装置,包括:
确定模块,用于确定第一存储池中的任一个第一放置组在第二存储池中对应的放置组集合;其中,所述第一存储池包括多个第一放置组,所述第二存储池包括多个第二放置组;所述第一存储池中的放置组总数小于所述第二存储池中的放置组总数;
放置组选择模块,用于在所述放置组集合中任选一个第二放置组,并确定所述第一放置组的各成员所在的目标节点;
节点选择模块,用于若所述第一放置组的成员个数不小于所述第二放置组的成员个数,则在所述目标节点中选择N个节点;N为所述第二放置组的成员个数;
成员选择模块,用于在所述N个节点中的每个节点中选择一个磁盘,得到所述第二放置组的N个成员;
主成员选择模块,用于在相互对应的第一放置组和第二放置组中分别选择节点相同的成员作为相应放置组的主成员。
13.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至11任一项所述的方法。
14.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至11任一项所述的方法。
CN202211112880.2A 2022-09-14 2022-09-14 放置组成员选择方法、装置、设备及可读存储介质 Active CN115202589B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211112880.2A CN115202589B (zh) 2022-09-14 2022-09-14 放置组成员选择方法、装置、设备及可读存储介质
PCT/CN2023/078429 WO2024055529A1 (zh) 2022-09-14 2023-02-27 放置组成员选择方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211112880.2A CN115202589B (zh) 2022-09-14 2022-09-14 放置组成员选择方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN115202589A CN115202589A (zh) 2022-10-18
CN115202589B true CN115202589B (zh) 2023-02-24

Family

ID=83571761

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211112880.2A Active CN115202589B (zh) 2022-09-14 2022-09-14 放置组成员选择方法、装置、设备及可读存储介质

Country Status (2)

Country Link
CN (1) CN115202589B (zh)
WO (1) WO2024055529A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115202589B (zh) * 2022-09-14 2023-02-24 浪潮电子信息产业股份有限公司 放置组成员选择方法、装置、设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112181736A (zh) * 2020-09-23 2021-01-05 星辰天合(北京)数据科技有限公司 分布式存储系统及分布式存储系统的配置方法
CN113791730A (zh) * 2021-08-16 2021-12-14 济南浪潮数据技术有限公司 基于双存储池的放置组调整方法、系统、装置及存储介质
WO2022028033A1 (zh) * 2020-08-01 2022-02-10 广西大学 一种基于分级映射的Ceph存储系统自动均衡存储方法
CN114138181A (zh) * 2021-10-24 2022-03-04 济南浪潮数据技术有限公司 一种绑定池放置组选主的方法、装置、设备及可读介质
CN114756620A (zh) * 2020-12-25 2022-07-15 深信服科技股份有限公司 数据存储方法、分布式存储系统及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109002259B (zh) * 2018-06-28 2021-03-09 苏州浪潮智能科技有限公司 一种归置组所属硬盘分配方法、系统、装置及存储介质
CN110018800A (zh) * 2019-04-12 2019-07-16 苏州浪潮智能科技有限公司 分布式存储系统中归置组选主方法、装置、设备和介质
CN111124289B (zh) * 2019-12-06 2022-02-18 浪潮电子信息产业股份有限公司 一种分布式存储系统归置组成员的选择方法、装置及介质
CN114546286B (zh) * 2022-02-27 2023-08-08 苏州浪潮智能科技有限公司 一种归置组成员选择方法、系统、存储介质及设备
CN115202589B (zh) * 2022-09-14 2023-02-24 浪潮电子信息产业股份有限公司 放置组成员选择方法、装置、设备及可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022028033A1 (zh) * 2020-08-01 2022-02-10 广西大学 一种基于分级映射的Ceph存储系统自动均衡存储方法
CN112181736A (zh) * 2020-09-23 2021-01-05 星辰天合(北京)数据科技有限公司 分布式存储系统及分布式存储系统的配置方法
CN114756620A (zh) * 2020-12-25 2022-07-15 深信服科技股份有限公司 数据存储方法、分布式存储系统及存储介质
CN113791730A (zh) * 2021-08-16 2021-12-14 济南浪潮数据技术有限公司 基于双存储池的放置组调整方法、系统、装置及存储介质
CN114138181A (zh) * 2021-10-24 2022-03-04 济南浪潮数据技术有限公司 一种绑定池放置组选主的方法、装置、设备及可读介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
云计算分布式存储系统典型运维问题的分析;蓝青;《通信与信息技术》;20170925(第05期);28-29+53 *

Also Published As

Publication number Publication date
WO2024055529A1 (zh) 2024-03-21
CN115202589A (zh) 2022-10-18

Similar Documents

Publication Publication Date Title
US10379951B2 (en) Hierarchic storage policy for distributed object storage systems
CN109725830B (zh) 管理独立磁盘冗余阵列的方法、设备和存储介质
CN109582213B (zh) 数据重构方法及装置、数据存储系统
US20190220377A1 (en) Method and device of data rebuilding in storage system
US10324794B2 (en) Method for storage management and storage device
EP3739450A1 (en) Data processing method and apparatus, and computing device
CN115576505B (zh) 一种数据存储方法、装置、设备及可读存储介质
US11385828B2 (en) Method and apparatus for calculating storage system available capacity
CN110147203B (zh) 一种文件管理方法、装置、电子设备及存储介质
US20210216231A1 (en) Method, electronic device and computer program product for rebuilding disk array
US20190129646A1 (en) Method, system, and computer program product for managing storage system
CN115202589B (zh) 放置组成员选择方法、装置、设备及可读存储介质
US11188247B2 (en) Method, device, and computer program product for managing storage system
US11287996B2 (en) Method, device and computer program product for storing data
CN110083379A (zh) 一种服务器部件升级方法及相关装置
US20210334183A1 (en) Method, device, and storage medium for managing stripe in storage system
CN115048254B (zh) 数据分配策略的仿真测试方法、系统、设备和可读介质
CN106775481B (zh) 数据读取方法及设备
CN113590019A (zh) 用于存储管理的方法、电子设备和计算机程序产品
CN114924923A (zh) 一种硬盘写入点正确性验证方法、系统、设备及介质
US11269521B2 (en) Method, device and computer program product for processing disk unavailability states
CN108536822A (zh) 数据迁移方法、装置、系统及存储介质
US11163642B2 (en) Methods, devices and computer readable medium for managing a redundant array of independent disks
CN113254271B (zh) 一种数据序列恢复方法、装置、设备及存储介质
US11620080B2 (en) Data storage method, device and computer program product

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