CN117061541A - 存储双池绑定方法、装置、电子设备及可读存储介质 - Google Patents
存储双池绑定方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN117061541A CN117061541A CN202311309006.2A CN202311309006A CN117061541A CN 117061541 A CN117061541 A CN 117061541A CN 202311309006 A CN202311309006 A CN 202311309006A CN 117061541 A CN117061541 A CN 117061541A
- Authority
- CN
- China
- Prior art keywords
- storage pool
- pool
- storage
- pgs
- osd
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 230000001105 regulatory effect Effects 0.000 claims abstract description 12
- 230000009977 dual effect Effects 0.000 claims description 58
- 238000004422 calculation algorithm Methods 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 10
- 238000013507 mapping Methods 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 5
- 230000005012 migration Effects 0.000 claims description 4
- 238000013508 migration Methods 0.000 claims description 4
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000005192 partition Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000002567 autonomic effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0894—Policy-based network configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- 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]
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种存储双池绑定方法、装置、电子设备及可读存储介质,应用于分布式存储技术领域。其中,方法包括根据处于绑定关系的第一存储池和第二存储池中的各放置策略组pg之间的对应关系,基于使每一组对应pg中的多个成员重合至同一个物理节点,对第一存储池和第二存储池中各pg的成员进行调整;基于每个对象存储设备osd的主引用次数,并根据双池对应pg的主节点位于同一物理节点上,从调整后的各pg成员中为第一存储池和第二存储池的各pg选择相应的主节点。本发明可以解决相关技术中由于存储池绑定所导致分布式存储系统的存储性能变差的问题,可以有效提升分布式存储系统的存储性能。
Description
技术领域
本发明涉及分布式存储技术领域,特别是涉及一种存储双池绑定方法、装置、电子设备及可读存储介质。
背景技术
分布式存储系统以存储池的方式将存储集群提供的存储服务逻辑分割为一个或多个存储区域, 在块纠删场景下,分布式存储系统具有两种不同功能的存储池,即缓存池和数据池,来自客户端的待存储数据均需经过缓存池的处理才能下发至数据池中。
相关技术通常将缓存池和数据池事先进行绑定,相应的,缓存池的pg(placementgroup,放置策略组)与数据池的pg也处于对应绑定关系下。当需要进行数据下发时,缓存池的pg的主数据节点将该数据转发至与之绑定的数据池的pg的主数据节点。当这两个主数据节点位于不同的物理节点时,数据转发需要通过网络实现,转发的数据量越大,占用的网络带宽也就越大,对分布式存储系统的存储性能影响也就越大。
鉴于此,解决相关技术中由于存储池绑定所导致分布式存储系统的存储性能变差的问题,是所属领域技术人员需要解决的问题。
发明内容
本发明提供了一种存储双池绑定方法、装置、电子设备及可读存储介质,可以有效提升分布式存储系统的存储性能。
为解决上述技术问题,本发明提供以下技术方案:
本发明一方面提供了一种存储双池绑定方法,包括:
根据处于绑定关系的第一存储池和第二存储池中的各放置策略组pg之间的对应关系,基于使每一组对应pg中的多个成员重合至同一个物理节点,对所述第一存储池和所述第二存储池中各pg的成员进行调整;
基于每个对象存储设备osd的主引用次数,并根据双池对应pg的主节点位于同一物理节点上,从调整后的各pg成员中分别选择所述第一存储池的第一pg主节点和所述第二存储池的第二pg主节点。
在第一种实施方式下,所述基于使每一组对应pg中的多个成员重合至同一个物理节点,对所述第一存储池和所述第二存储池中各pg的成员进行调整,包括:
通过确定所述第一存储池和所述第二存储池中的各pg之间的对应关系,得到多组对应pg;
根据每组对应pg的pg成员数之间的数值关系,在满足所述第一存储池和所述第二存储池的pg均衡的条件下,依次为各个pg确定相应的成员。
在第二种实施方式下,所述第一存储池的pg总数小于所述第二存储池的pg总数,所述根据每组对应pg的pg成员数之间的数值关系,在满足所述第一存储池和所述第二存储池的pg均衡的条件下,依次为各个pg确定相应的成员,包括:
遍历每一组对应pg,对当前组对应pg,从中选择属于所述第二存储池的pg且pg id小的pg,以作为第一目标pg;
基于所述当前组对应pg的pg成员数之间的数值关系,根据所述当前组对应pg中的所述第一存储池的pg成员所在物理节点,确定所述第一目标pg对应的目标物理节点;
调用crush算法,根据所述第一目标pg的pg id和各目标物理节点,得到所述第一目标pg的成员;
当每一组对应pg中属于所述第二存储池的pg且pg id小的pg均已确定相对应的成员,则将每一组对应pg中属于所述第二存储池的剩余pg中的一个pg作为所述第一目标pg,依次跳转执行所述基于所述当前组对应pg的pg成员数之间的数值关系的步骤,直至每组对应pg中属于所述第二存储池的所有pg均已确定相对应的成员。
在第三种实施方式下,所述直至每组对应pg中属于所述第二存储池的所有pg均已确定相对应的成员,包括:
预先设置外循环遍历次数以及定数器,所述定数器用于统计外循环遍历次数,且在当每一组对应pg中属于所述第二存储池的pg且pg id小的pg均已确定相对应的成员时被启动;
判断当前外循环遍历次数是否达到目标值;所述目标值为所述第一存储池pg数和所述第二存储池pg数的比值与1的差值;
若所述当前外循环遍历次数达到目标值,则每组对应pg中属于所述第二存储池的所有pg均已确定相对应的成员。
在第四种实施方式下,所述基于所述当前组对应pg的pg成员数之间的数值关系,根据所述当前组对应pg中的所述第一存储池的pg成员所在物理节点,确定所述第一目标pg对应的目标物理节点,包括:
若所述第一存储池的pg成员数大于所述第二存储池的pg成员数,从所述当前组对应pg中的所述第一存储池的pg成员所在物理节点中选择多个目标物理节点,所述目标物理节点的总数值为所有第二存储池中pg总数最小的第二存储池的pg成员个数;
若所述第一存储池的pg成员数小于所述第二存储池的pg成员数,根据预先设置的填充值和所述当前组对应pg中的所述第一存储池的pg成员对应的所有物理节点确定所述第一目标pg对应的目标物理节点。
在第五种实施方式下,所述根据预先设置的填充值和所述当前组对应pg中的所述第一存储池的pg成员对应的所有物理节点确定所述第一目标pg对应的目标物理节点,包括:
调用所述crush算法,确定各填充值;
将各填充值和所述当前组对应pg中的所述第一存储池的pg成员对应的所有物理节点,作为所述第一目标pg对应的目标物理节点。
在第六种实施方式下,所述根据处于绑定关系的第一存储池和第二存储池中的各放置策略组pg之间的对应关系,包括:
根据所述第一存储池和所述第二存储池的pg总数间的数值关系,按照对象id映射pg id的原理,得到所述第一存储池和所述第二存储池各pg之间的对应关系。
在第七种实施方式下,所述根据所述第一存储池和所述第二存储池的pg总数间的数值关系,按照对象id映射pg id的原理,得到所述第一存储池和所述第二存储池各pg之间的对应关系,包括:
若所述第一存储池的pg总数小于所述第二存储池的pg总数,则将所述第一存储池作为基准池,所述第二存储池作为绑定池,将所述绑定池pg按照pg id顺序划分为多个小组,每个小组包含pg数目与所述基准池pg总数相同,每个小组的各pg分别按照pg id顺序与所述基准池的pg一一对应;
若所述第一存储池的pg总数与所述第二存储池的pg总数相同,则所述第一存储池的各pg与所述第二存储池的各pg按照pg id顺序一一对应。
在第八种实施方式下,所述从调整后的各pg成员中分别选择所述第一存储池的第一pg主节点和所述第二存储池的第二pg主节点之后,还包括:
当检测到所述第一存储池和所述第二存储池不满足预设均衡条件,则对所述第一存储池和/或所述第二存储池进行先缩容后扩容的处理。
在第九种实施方式下,所述根据处于绑定关系的第一存储池和第二存储池中的各放置策略组pg之间的对应关系,包括:
当判定当前场景符合双池绑定条件,确定所述第一存储池和所述第二存储池中的各放置策略组pg之间的对应关系;
将所述第一存储池和所述第二存储池进行绑定。
在第十种实施方式下,所述判定当前场景符合双池绑定条件,包括:
当识别当前场景为双池绑定场景,判断所述第一存储池和所述第二存储池是否处于相同故障域类型;
若判定所述第一存储池和所述第二存储池处于相同故障域类型,则判断所述第一存储池和所述第二存储池是否包含虚拟节点;
若判定所述第一存储池和所述第二存储池不包含虚拟节点,则判断所述第一存储池和所述第二存储池是否为osd级故障域;
若判定所述第一存储池和所述第二存储池不为osd级故障域,则判定当前场景符合双池绑定条件。
在第十一种实施方式下,所述从调整后的各pg成员中分别选择所述第一存储池的第一pg主节点和所述第二存储池的第二pg主节点,包括:
将调整后的各pg成员、所述第一pg主节点和所述第二pg主节点封装至所有对象存储设备信息中,并下发至各osd中,以使各osd基于所述所有对象存储设备信息进行迁移和主节点变更操作。
在第十二种实施方式下,所述基于每个对象存储设备osd的主引用次数,并根据双池对应pg的主节点位于同一物理节点上,从调整后的各pg成员中分别选择所述第一存储池的第一pg主节点和所述第二存储池的第二pg主节点,包括:
按照所述第一存储池和所述第二存储池中的各pg之间的对应关系进行分组,得到多组对应pg;
通过遍历每一组对应pg,按照双池pg成员处于同一物理节点且满足预设主引用次数条件,生成各自相对应的osd组;
基于满足所述第一存储池和所述第二存储池的pg的主节点均衡的条件,从各osd组中选择所述第一存储池的第一pg主节点和所述第二存储池的第二pg主节点。
在第十三种实施方式下,所述第一存储池的pg总数小于所述第二存储池的pg总数,所述按照双池pg成员处于同一物理节点且满足预设主引用次数条件,生成各自相对应的osd组,包括:
对当前组对应pg,遍历所述当前组对应pg内属于所述第一存储池的各成员;
若当前成员的主引用次数满足预设主引用次数条件,通过遍历所述当前组对应pg内属于所述第二存储池的各成员,确定与所述当前成员属于同一物理节点的目标成员;
若所述目标成员的主引用次数满足预设主引用次数条件,则将所述目标成员和所述当前成员插入至所述当前组对应pg对应的osd组中。
在第十四种实施方式下,所述遍历所述当前组对应pg内属于所述第一存储池的各成员之前,还包括:
若所述当前组对应pg内属于所述第一存储池的各成员的主引用次数均不满足预设主引用次数条件,则判定所述当前组对应pg无法生成对应的osd组。
在第十五种实施方式下,所述基于满足所述第一存储池和所述第二存储池的pg的主节点均衡的条件,从各osd组中选择所述第一存储池的第一pg主节点和所述第二存储池的第二pg主节点,包括:
统计每一个osd组中所包含的各osd的主引用次数之和;
从各osd组中选择包含osd个数最多的候选osd组;
若候选osd组个数为1,则从所述候选osd组中分别确定所述第一存储池的第一pg主节点和所述第二存储池的第二pg主节点;
若候选osd组个数不为1,则从多个候选osd组中选择主引用次数之和最小的候选osd组作为目标osd组,从所述目标osd组中分别确定所述第一存储池的第一pg主节点和所述第二存储池的第二pg主节点。
在第十六种实施方式下,所述生成各自相对应的osd组之前,还包括:
根据所述第一存储池和所述第二存储池所包含的osd总数和pg总数,确定每个osd在所述第一存储池和所述第二存储池的pg的主节点均衡时的主引用计数,以作为各osd的标准选主次数。
在第十七种实施方式下,所述根据所述第一存储池和所述第二存储池所包含的osd总数和pg总数,确定每个osd在所述第一存储池和所述第二存储池的pg的主节点均衡时的主引用计数,包括:
获取所述第一存储池和所述第二存储池所包含的osd总数和pg总数;
调用第一标准选主次数计算关系,计算每个osd在所述第一存储池和所述第二存储池的pg的主节点均衡时的主引用计数;所述第一标准选主次数计算关系为:
;
其中,osd y0为所述标准选主次数,osd sum 为所述osd总数,pg sum 为所述pg总数。
在第十八种实施方式下,所述根据所述第一存储池和所述第二存储池所包含的osd总数和pg总数,确定每个osd在所述第一存储池和所述第二存储池的pg的主节点均衡时的主引用计数,包括:
获取所述第一存储池和所述第二存储池所包含的osd总数和pg总数;
调用第二标准选主次数计算关系,计算每个osd在所述第一存储池和所述第二存储池的pg的主节点均衡时的主引用计数;所述第二标准选主次数计算关系为:
;
其中,osd y0为所述标准选主次数,osd sum 为所述osd总数,pg sum 为所述pg总数。
本发明另一方面提供了一种存储双池绑定装置,包括:
成员调整模块,用于根据处于绑定关系的第一存储池和第二存储池中的各放置策略组pg之间的对应关系,基于使每一组对应pg中的多个成员重合至同一个物理节点,对所述第一存储池和所述第二存储池中各pg的成员进行调整;
选主模块,用于基于每个对象存储设备osd的主引用次数,并根据双池对应pg的主节点位于同一物理节点上,从调整后的各pg成员中分别选择所述第一存储池的第一pg主节点和所述第二存储池的第二pg主节点。
本发明还提供了一种电子设备,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述存储双池绑定方法的步骤。
本发明最后还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前任一项所述存储双池绑定方法的步骤。
本发明提供的技术方案的优点在于,当两个存储池绑定后,对双池的pg成员进行调整,使得双池对应pg的成员能够尽可能多的选在同一物理节点上,这样pg的成员在对应pg上也会存在同一物理节点的成员,从而可以最大可能将处于绑定关系中的两个pg的主节点选在同一个物理节点上,缓存池的pg的主节点转发数据到数据池的pg的主节点时就无需跨节点进行,双池数据的转发变成了节点内部的转发数据处理,能够有效大幅地降低外部网络带宽的消耗,也就不会挤占客户端写入分布式存储系统的带宽,可以有效分布式存储系统的存储性能。
此外,本发明还针对存储双池绑定方法提供了相应的实现装置、电子设备及可读存储介质,进一步使得所述方法更具有实用性,所述装置、电子设备及可读存储介质具有相应的优点。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
为了更清楚的说明本发明或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种存储双池绑定方法的流程示意图;
图2为本发明提供的一个示例性应用场景中的一组对应pg中各pg成员及物理节点的对应示意图;
图3为本发明提供的一个示例性应用场景中的双池pg成员数目在不同情况下的各pg的目标物理节点的选择示意图;
图4为本发明提供的一个示例性应用场景中的双池pg之间的对应关系的示意图;
图5为本发明提供的一个示例性应用场景中的一组对应pg之间成员和物理节点的部署示意图;
图6为本发明提供的一个示例性应用场景中的分布式文件系统的框架示意图;
图7为本发明提供的分布式文件系统在利用双池绑定方法进行双池绑定前后的双池数据下发对比示意图;
图8为本发明提供的分布式文件系统在利用双池绑定方法进行双池绑定后的双池成员分布示意图;
图9为本发明提供的存储双池的pg成员调整流程示意图;
图10为本发明提供的存储双池的选主流程示意图;
图11为本发明提供的分布式存储系统的监视器的数据处理流程示意图;
图12为本发明提供的存储双池绑定装置的一种具体实施方式结构图;
图13为本发明提供的电子设备的一种具体实施方式结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及二者的任何变形,意图在于覆盖不排他的包含。术语“示例性”意为“用作例子、实施例或说明性”。 这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。下面详细的说明本发明的各种非限制性实施方式。为了更好的说明本发明, 在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有这些具体细节,本发明同样可以实施。在另外一些实例中,对于所属领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
首先请参见图1,图1为本发明提供的一种存储双池绑定方法的流程示意图,本发明可包括以下内容:
S101:根据处于绑定关系的第一存储池和第二存储池中的各pg之间的对应关系,基于使每一组对应pg中的多个成员重合至同一个物理节点,对第一存储池和第二存储池中各pg的成员进行调整。
可以理解的是,分布式存储系统以存储池的方式,将存储集群提供的存储服务逻辑分割一个或多个存储区域,在块纠删场景下,根据存储池功能的不同包括缓存池和数据池,缓存池也即副本池,数据池也即纠删池。分布式算法不关注存储池的功能,约定双池中pg(Placement Group,放置策略组)数目较少的为基准池,pg数目较多的为绑定池。为了便于描述,本发明将分布式存储系统的存储池定义为第一存储池和第二存储池。其中,存储池的副本数在副本模式下为副本数,纠删模式下为K+M,K为原始数据块,M为校验块。pg为逻辑概念,用于描述对象object和osd(object storage device,对象存储设备)之间的地址映射关系,该集合里的所有对象都具有相同的映射策略,一个object只能映射到一个pg上,一个pg会被映射到多个osd上。osd为存储对象的逻辑分区,其规定了数据冗余的类型和对应的副本分布策略。分布式存储集群的每个集群节点均部署osd守护进程,该osd守护进程在每一个pg当中,会有主次之分,pg的主节点用于负责数据的读写交互,从节点用于负责数据副本的复制。所以为了提高分布式存储系统的存储系统,双池的pg的主节点应当选择在同一个物理节点上,避免跨节点进行数据转发。
在本步骤中,当分布式存储系统的缓存池和数据池,也即第一存储池和第二存储池,被创建出来后,可以对其进行绑定。双池绑定之后,两个存储池开始产生联系,为了增加选主节点的可能性,实现第一存储池中pg的主节点也即第一pg主节点对应的第二存储池的pg的主节点也即第二pg主节点在同一个物理节点上的目标,需要调整双池pg的成员使其满足双池对应pg成员尽可能多的重合在同一物理节点上,也即pg的成员在对应pg上也存在同一物理节点的成员, 尽可能多的需要受制于双池中存储池(也叫副本池)副本数(纠删池为K+M)较小的存储池。
S102:基于每个对象存储设备osd的主引用次数,并根据双池对应pg的主节点位于同一物理节点上,从调整后的各pg成员中分别选择第一存储池的第一pg主节点和第二存储池的第二pg主节点。
当上个步骤完成“双池对应pg的成员能够尽可能多的选在同一物理节点上这一目标之后,本步骤分别为第一存储池和第二存储池进行双池主的选择,为了便于描述,将第一存储池所选择出来的pg的主节点定义为第一pg主节点,将第二存储池所选择出来的pg的主节点定义为第二pg主节点。考虑到pg的主节点的均衡,在从每组对应pg中成员重合在同一个物理节点多的osd上选择的基础上,还需要考虑各osd的主引用次数,主引用次数用于osd被选择为pg的主节点的次数,每当osd被选择为一次pg的主节点时,则其主引用次数加一。
在本发明提供的技术方案中,当两个存储池绑定后,对双池的pg成员进行调整,使得双池对应pg的成员能够尽可能多的选在同一物理节点上,这样pg的成员在对应pg上也会存在同一物理节点的成员,从而可以最大可能将处于绑定关系中的两个pg的主节点选在同一个物理节点上,缓存池的pg的主节点转发数据到数据池的pg的主节点时就无需跨节点进行,双池数据的转发变成了节点内部的转发数据处理,能够有效大幅地降低外部网络带宽的消耗,也就不会挤占客户端写入分布式存储系统的带宽,可以有效分布式存储系统的存储性能。
在上述实施例中,对于如何对第一存储池和第二存储池中各pg的成员进行调整并不做任何限定,本实施例还给出一种双池对应pg的成员调整方式,可包括下述内容:
通过确定第一存储池和第二存储池中的各pg之间的对应关系,得到多组对应pg;根据每组对应pg的pg成员数之间的数值关系,在满足第一存储池和第二存储池的pg均衡的条件下,依次为各个pg确定相应的成员。
在本实施例中,为了便于对双池对应pg的成员进行调整,可按照第一存储池和第二存储池中的各pg之间的对应关系进行分组划分,得到多组对应pg,每一组对应pg包括第一存储池的pg和其绑定的第二存储池的pg,双池绑定可能是一对一绑定,也可能是一对多绑定,决定于双池的pg数目,也就是pg数据多的存储池至少存在2个pg同时绑定pg数目少的存储池的同一个pg。第一存储池和第二存储池均包括多个pg,而每个pg包括多个成员,在进行pg成员调整时,需要考虑每组对应pg的pg成员数之间的数值关系,基于每组对应pg的pg成员数之间的数值关系选择合适的物理节点,进而确定其所包含的成员。
作为一示例性的实施方式,为了便于描述,本实施例定义第一存储池的pg总数小于第二存储池的pg总数,也即在分布式算法中,第一存储池为基准池,第二存储池为绑定池,基于基准池对绑定池的pg成员进行调整。相应的,根据每组对应pg的pg成员数之间的数值关系,在满足第一存储池和第二存储池的pg均衡的条件下,依次为各个pg确定相应的成员的过程可包括:
遍历每一组对应pg,对当前组对应pg,从中选择属于第二存储池的pg且pg id(identity document,唯一标识号)小的pg,以作为第一目标pg;基于当前组对应pg的pg成员数之间的数值关系,根据当前组对应pg中的第一存储池的pg成员所在物理节点,确定第一目标pg对应的目标物理节点;调用crush算法,根据第一目标pg的pg id和各目标物理节点,得到第一目标pg的成员;当每一组对应pg中属于第二存储池的pg且pg id小的pg均已确定相对应的成员,则将每一组对应pg中属于第二存储池的剩余pg中的一个pg作为第一目标pg,依次跳转执行基于当前组对应pg的pg成员数之间的数值关系的步骤,直至每组对应pg中属于第二存储池的所有pg均已确定相对应的成员。
在本实施例中,为了保证第一存储池和第二存储池内的各osd承载pg数是均衡的,也即满足第一存储池和第二存储池的pg均衡条件,可以先对每一组对应pg中属于第二存储池的pg且pg id小的pg确定相对应的成员,然后在对每一组对应pg中属于第二存储池的剩余pg确定相对应的成员。对于每一组对应pg中的第二存储池的pg来说,当其第一个pg也即pg id小的pg的成员确定之后,该组第二存储池的剩余pg和该组第一个pg成员在物理节点上的完全对应。以图2举例来说,基准池pg1与绑定池pg1、绑定池pg1025为一组对应pg,绑定池pg1为该组对应pg中属于第二存储池的pg且pg id小的pg,物理节点.A0和物理节点.A1表示为同一物理节点,osd.a0、osd.a1、osd.a2表示为同一物理节点的osd。当绑定池pg1确定目标物理节点为物理节点.A1、物理节点.B1、物理节点.C1,其包含的成员osd为osd.a1、osd.b1、osd.c1。相应的,在确定绑定池pg1025的成员时,可以直接进行完全对应,也即绑定池pg1025的目标物理节点为物理节点.A1、物理节点.B1、物理节点.C1,其包含的成员osd为osd.a1、osd.b1、osd.c1。当为每个pg确定其对应的目标物理节点之后,可调用crush(Controlled Replication Under Scalable Hashing,受控的可扩展副本哈希)算法根据每个存储设备的权重来分布数据对象,使得整个分布近似于均匀分布。将 pg id 和目标物理节点输入crush算法,可以得到一组共n 个osd,这n 个OSD共同负责存储和维护一个pg中的所有object 。当然,为了进一步提高分布式存储系统的可靠性,可指定承载同一个pg的3个osd分别位于数据中心的不同服务器也即物理节点乃至机架上。
进一步的,为了提高双池对应pg的成员调整效率,基于上述实施例的循环遍历过程中,可预先设置一参数:外循环遍历次数,同时设置一定数器,如果分布式存储系统本身的定数器可用,可直接调用,定数器用于统计外循环遍历次数,且在当每一组对应pg中属于第二存储池的pg且pg id小的pg均已确定相对应的成员时被启动。在上述实施例遍历过程中,只需要关注定数器的计数便可及时确定每组对应pg中属于第二存储池的所有pg均已计算得到相对应的成员,无需再做一次判断操作。在上述实施例过程中,可判断当前外循环遍历次数是否达到目标值;目标值即为第一存储池pg数和第二存储池pg数的比值与1的差值;若当前外循环遍历次数达到目标值,则表示每组对应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成员数时,则选择这些物理节点的全部,不足的部分补入填充值。以图3为例来说,图3为第一存储池(也即图3中的基准池)和第二存储池(也即图3中的绑定池)的pg成员数不同时,一组对应pg中绑定池pg选择成员的两种情况。基准池pg1与绑定池pg1、绑定池pg1025为一组对应pg,物理节点.A0和物理节点.A1表示为同一物理节点,osd.a0、osd.a1、osd.a2表示为同一物理节点的osd。基准池的物理节点包括物理节点.A0、物理节点.B0、物理节点.C0、物理节点.D0、物理节点.E0、物理节点.F0,绑定池节点物理节点.A1物理节点.B1物理节点.C1物理节点.D1物理节点.E1物理节点.F1。当基准池pg成员数大于绑定池pg成员数时,基准池pg1的成员包括osd.a0、osd.b0、osd.c0、osd.d0、osd.e0、osd.f0,则在基准池的这6个物理节点选择承载绑定池pg数目最小的绑定池pg成员数个节点,相应的,绑定池pg1为物理节点.A1、物理节点.B1和物理节点.C1,对应的,绑定池pg1包含的成员为osd.a1、osd.b1、osd.c1。绑定池pg1025与绑定池pg1完全相同。当基准池pg成员数小于绑定池pg成员数时,也即基准池pg1的成员包括osd.a0、osd.b0、osd.c0 ,绑定池pg1包含的成员为osd.a1、osd.b1、osd.c1,则根据基准池pg1的这3个全部物理节点和由crush算法自主选择UNDEF作为填充值确定目标物理节点,相应的,绑定池pg1为物理节点.A1、物理节点.B1、物理节点.C1、UNDEF、UNDEF、UNDEF,绑定池pg1包含的成员为osd.a1、osd.b1、osd.c1、osd.d1、osd.e1、osd.f1,绑定池pg1025与绑定池pg1完全相同。
其中,由于第一存储池的pg成员数小于第二存储池的pg成员数,第一存储池的物理节点无法满足第二存储池所需目标物理节点,所以不足的部分需要补入相应的数据,也即填充值。为了最终所确定的成员的精准度,示例性的,可由crush算法自主选择,也即调用crush算法确定各填充值,将各填充值和当前组对应pg中的第一存储池的pg成员对应的所有物理节点,作为第一目标pg对应的目标物理节点。
由上可知,本实施例实现了在第一存储池和第二存储池的pg均衡和主pg均衡的基础上,将双池对应的pg的主节点选在同一物理节点上,从而使得缓存池和数据池的数据转发无需跨节点实现,提升分布式存储系统的存储性能。
上述实施例对如何确定双池pg之间的对应关系并不做任何限定,基于上述实施例,本发明还给出一示例性的实施方式,可包括下述内容:
根据第一存储池和第二存储池的pg总数间的数值关系,按照对象id映射pg id的原理,得到第一存储池和第二存储池各pg之间的对应关系。
其中,第一存储池的pg总数是指第一存储池所包含的pg的总个数,第二存储池的pg总数是指第二存储池所包含的pg的总个数,二者之间的数值关系也即第一存储池的pg总数与第二存储池的pg总数的大小关系。基于当前存储池一般场景下的pg数计算方式,也即存储池pg数为大于等于存储池osd数乘100除以副本数结果的2的整数次幂,可知,存储池pg数为2的整数次幂倍,所以本实施例可根据对象id映射pg id原理得到双池pg对应关系。
作为一种示例性的实施方式,可先判断第一存储池的pg总数是否小于等于第二存储池的pg总数;若第一存储池的pg总数与第二存储池的pg总数相同,则第一存储池的各pg与第二存储池的各pg按照pg id顺序一一对应。若第一存储池的pg总数小于第二存储池的pg总数,则将第一存储池作为基准池,第二存储池作为绑定池,将绑定池pg按照pg id顺序划分为多个小组,每个小组包含pg数目与基准池pg总数相同,每个小组的各pg分别按照pgid顺序与基准池的pg一一对应。以图4为例,如基准池和绑定池均包括1024个pg,则双池pg按照pg id顺序一一对应。双池pg数目不同时,针对绑定池,按照pg id顺序每基准池的pg数目个pg与基准池pg一一对应。假设基准池pg数目为1024,绑定池pg数目为2048,可将绑定池划分为2组,前1024为第一组,后1024为第二组,绑定池前1024个pg与基准池的pg一一对应,绑定池后1024个pg与基准池的pg一一对应,即一个基准池的pg对应两个绑定池的pg。
由上可知,本实施例通过根据对象id映射pg id原理,结合双池pg总数的大小将双池各pg进行对应,有利于后续pg成员的高效调整,有利于提升分布式存储系统的性能。
进一步的,为了提升分布式存储系统的存储性能,本发明还针对无法达到双池pg均衡和主pg均衡的情况,进行相应的处理,可包括下述内容:
当检测到第一存储池和第二存储池不满足预设均衡条件,则对第一存储池和/或第二存储池进行先缩容后扩容的处理。
在本实施例中,为了使双池主pg具有良好对应性的同时,pg均衡性,主pg均衡性仍能达到原有标准,或者是是用于指定的标准,也即预设均衡条件。可以对存储池也即第一存储池和第二存储池进行先缩容后扩容,可能会存在部分多余重构量,约占总重构量的10%。
进一步的,为了提升分布式存储系统的存储性能,高效实现双池pg的主节点的选取,本发明在执行本发明任何一实施例所记载的方法步骤之前,还可进行双池绑定适用条件的识别,可包括下述内容:
当判定当前场景符合双池绑定条件,确定第一存储池和第二存储池中的各放置策略组pg之间的对应关系,将第一存储池和第二存储池进行绑定,即可以按照上述本发明任一实施例所记载的方法执行存储双池绑定方法。
其中,双池绑定条件也即判断当前场景是否适用于本发明任一实施例所记载的存储双池绑定方法,示例性的,本实施例的存储双池绑定方法实现仅支持双池处于相同故障域类型、存储池中无虚拟节点且不为osd级故障域。相应的,判定当前场景符合双池绑定条件的过程可包括:
当识别当前场景为双池绑定场景,判断第一存储池和第二存储池是否处于相同故障域类型;
若判定第一存储池和第二存储池处于相同故障域类型,则判断第一存储池和第二存储池是否包含虚拟节点;
若判定第一存储池和第二存储池不包含虚拟节点,则判断第一存储池和第二存储池是否为osd级故障域;
若判定第一存储池和第二存储池不为osd级故障域,则判定当前场景符合双池绑定条件。
可以理解的是,OSDMAP(所有对象存储设备信息)为分布式存储集群中所有 OSD的信息,osd充分信任监视器 Monitor, 认为其维护的OSDMAP数据绝对正确,osd对pg 采取的所有动作都基于 OSDMAP所记载的数据。基于此,为了提高存储双池绑定效率,在上述实施例确定双池的pg的主节点之后,可将调整后的各pg成员、第一pg主节点和第二pg主节点封装至OSDMAP(所有osd信息)中,然后将该OSDMAP下发至各osd中,各osd基于该OSDMAP进行迁移和主节点变更操作。
上述实施例对如何为双池的pg的主节点进行选择并不做任何限定,本发明还提供了一示例性的实施方式,也即从调整后的各pg成员中分别选择第一存储池的第一pg主节点和第二存储池的第二pg主节点的过程可包括:
按照第一存储池和第二存储池中的各pg之间的对应关系进行分组,得到多组对应pg;通过遍历每一组对应pg,按照双池pg成员处于同一物理节点且满足预设主引用次数条件,生成各自相对应的osd组;基于满足第一存储池和第二存储池的pg的主节点均衡的条件,从各osd组中选择第一存储池的第一pg主节点和第二存储池的第二pg主节点。
在本实施例中,每一个第一存储池的pg及其对应的第二存储池中的pg仍然称之为一组对应pg,预设主引用次数条件为根据满足第一存储池和第二存储池的pg的主节点均衡条件下所设置的主引用次数阈值,或者是说第一存储池和第二存储池的pg的主节点均衡条件时,各osd应当选为主的次数,当然,所属领域技术人员也可根据实际情况进行灵活选择,这均不影响本发明的实现。由此可见,每个osd组的生成过程中排除掉不满足预设主引用次数条件如已经超过应当选为主次数的osd。在此基础上,选主的基本原则为:尽量选择该组对应pg中成员重合在同一个物理节点多的osd,且当前双池的pg的主均衡性更好时的osd,为各自pg的主。osd组表示在一组对应pg内,如果有一些第二存储池的pg成员与第一存储池的pg成员处于同一个节点,则这些osd为该组对应pg内所对应的osd组,即一个osd组中必须既有第一存储池的pg成员又有第二存储池的pg成员。
由上可知,本实施例能够实现双池在主pg均衡的基础上还能尽量做到双池对应pg的主在同一个物理节点上,进一步提升分布式存储系统的存储性能。
作为上述实施例的一示例性的实施方式,本发明还给出了如何形成osd组的一种方式,可包括下述内容:
对当前组对应pg,遍历当前组对应pg内属于第一存储池的各成员;若当前成员的主引用次数满足预设主引用次数条件,通过遍历当前组对应pg内属于第二存储池的各成员,确定与当前成员属于同一物理节点的目标成员;若目标成员的主引用次数满足预设主引用次数条件,则将目标成员和当前成员插入至当前组对应pg对应的osd组中。
在本实施例中,第一存储池的pg个数小于第二存储池的pg个数,在生成osd组之前,还是需要先双池pg对应关系进行分组,得到多组对应pg。对每一组对应pg,循环执行上述步骤,直至将符合要求的osd均放入至对应的osd组中。以预设主引用次数条件为第一存储池和第二存储池的pg的主节点均衡条件时,各osd应当选为主的次数,对当前组对应pg,遍历当前组对应pg内属于第一存储池的各成员;若当前成员的主引用次数大于应当选为主的次数,则从当前组对应pg内属于第一存储池的成员中在选择一个成员继续判断。若当前成员的主引用次数小于等于应当选为主的次数,通过遍历当前组对应pg内属于第二存储池的各成员,确定与当前成员属于同一物理节点的目标成员;若目标成员的主引用次数小于应当选为主的次数,则将目标成员和当前成员插入至当前组对应pg对应的osd组中,若目标成员的主引用次数大于应当选为主的次数,则从当前组对应pg内属于第二存储池的各成员中选择与当前成员属于同一物理节点的下一个目标成员。
可以理解的是,osd组生成过程会排除掉不满足预设主引用次数条件如已经超过应当选为主次数的osd,如果被排除掉的是第一存储池也即基准池的pg成员,则该对应osd组无法形成。也即在遍历当前组对应pg内属于第一存储池的各成员之前,可以先进行判断,若当前组对应pg内属于第一存储池的各成员的主引用次数均不满足预设主引用次数条件,则判定当前组对应pg无法生成对应的osd组,便可直接退出osd组生成流程,有效提升双池绑定效率。
作为上述实施例的一种示例性的实施方式,本发明还提供了一简单且高效的选主方式,可包括下述内容:
统计每一个osd组中所包含的各osd的主引用次数之和;从各osd组中选择包含osd个数最多的候选osd组;若候选osd组个数为1,则从候选osd组中分别确定第一存储池的第一pg主节点和第二存储池的第二pg主节点;若候选osd组个数不为1,则从多个候选osd组中选择主引用次数之和最小的候选osd组作为目标osd组,从目标osd组中分别确定第一存储池的第一pg主节点和第二存储池的第二pg主节点。
在本实施例中,选主的基本原则为:尽量选择该组对应pg中成员重合在同一个节点多的osd,且其中没有osd超过它应当选为主的次数,为各自pg的主,如果重合个数一样多,则选择物理节点中osd被选为主次数之和较少的。以图5举例来说,基准池pg1与绑定池pg1、绑定池pg1025为一组对应pg,物理节点.A0和物理节点.A1表示为同一物理节点,osd.a0、osd.a1、osd.a2表示为同一物理节点的osd。基准池的物理节点包括物理节点.A0、物理节点.B0、物理节点.C0、物理节点.D0、物理节点.E0、物理节点.F0,绑定池节点物理节点.A1物理节点.B1物理节点.C1物理节点.D1物理节点.E1物理节点.F1。基准池pg1的成员包括osd.a0、osd.b0、osd.c0、osd.d0、osd.e0、osd.f0,绑定池pg1的成员包括osd.a1、osd.b1、osd.c1,绑定池pg1025的成员包括osd.a2、osd.b2、osd.c2 。绑定池pg1和绑定池1025与对应的基准池pg1成员为完全对应,首先在形成对应的osd组时排除掉osd已经超过应当选为主次数的,假设为osd.b0,则生成的对应的osd组为(osd.a0,osd.a1,osd.a2),(osd.c0,osd,c1,osd.c2),然后在对应的osd组内osd个数最多的组中选主引用计数之和最小的一组,即分别计算(osd.a0,osd.a1,osd.a2)和(osd.c0,osd,c1,osd.c2)主引用计数之和。若(osd.c0,osd,c1,osd.c2)这一组最小,则将osd.c0设为基准池pg1的主,osd.c1设为绑定池pg1的主,osd.c2设为绑定池pg1025的主。若osd.a1,osd.c2也不满足要求,并最终选择了(osd.a0,osd.a2),则绑定池pg1选择成员里主引用计数最小的osd为主。
上述实施例对如何设置预设主引用次数条件并不做任何限定,为了进一步提升pg的主的均衡性,进而提升分布式存储系统的存储性能,基于上述实施例,本发明在生成各自相对应的osd组之前,还可根据第一存储池和第二存储池所包含的osd总数和pg总数,确定每个osd在第一存储池和第二存储池的pg的主节点均衡时的主引用计数,以作为各osd的标准选主次数,各osd的标准选主次数也即为每个osd在第一存储池和第二存储池的pg的主节点均衡时应当选为主的计数。若osd的主引用次数大于标准选主次数,则不满足预设主引用次数条件,若osd的主引用次数不大于标准选主次数,则满足预设主引用次数条件。
当osd每被选为一个pg的主时,其主引用计数增一,由于存储池内osd个数一定,pg数一定,可计算出主pg均衡时每个osd的主引用计数为(pg数/osd数)向下取整或取整后加一,将该值作为该osd应当选为主的次数,也即标准选主次数。
为了提高整个存储双池绑定效率,可通过直接调用关系式来计算标准选主次数,一种示例性的实施方式,可先获取第一存储池和第二存储池所包含的osd总数和pg总数;然后调用第一标准选主次数计算关系,计算每个osd在第一存储池和第二存储池的pg的主节点均衡时的主引用计数;第一标准选主次数计算关系可表示为:
;
其中,osd y0为标准选主次数,osd sum 为osd总数,pg sum 为pg总数。
作为与上述实施例并列的另一种实施方式,还可先获取第一存储池和第二存储池所包含的osd总数和pg总数;调用第二标准选主次数计算关系,计算每个osd在第一存储池和第二存储池的pg的主节点均衡时的主引用计数;第二标准选主次数计算关系可表示为:
;
其中,osd y0为标准选主次数,osd sum 为osd总数,pg sum 为pg总数。
为了使所属领域技术人员更加清楚明白本发明的技术方案,本发明还提供了一示例性的实施方式,在本实施例中,分布式存储系统为ceph(分布式文件系统),其系统框架图为图6所示,可包括下述内容:
ceph的核心为RADOS(Reliable Autonomic Distributed Object Store,可靠的自修复分布式对象存储)对象存储集群, RADOS对象存储集群包括多个osd,Monitor集群和客户端,osd和Monitor部署在物理节点上,客户端存储对象数据至ceph的过程为:客户端会根据ceph集群的配置,将客户端存储的对象数据切分多个固定大小的对象数据,然后再将这些固定大小的数据对象通过一致性哈希算法将对象数据映射至存储池里的pg,然后由crush算法计算以后,再将pg映射至对应osd,然后由Monitor返回osd的ID给客户端,客户端基于Monitor反馈的osd相关信息主动向对应osd所在物理节点的osd进程发送请求,进行数据存储操作。其中,Monitor为ceph集群的管理者,维护了整个集群的状态,负责收集集群信息、更新集群信息以及发布集群信息,所以本实施例由Monitor来执行本发明所提供的上述任一实施例所记载的存储双池绑定方法,从而实现将图7左边中客户端写入数据时,需要双池(也即数据池与缓存池)跨节点数据转发调整为右边的双池同一物理节点内进行转发,调整后的双池的成员分布与pg的主节点如图8所示,图8包括6个物理节点A到F,缓存池的副本数为3个,也即每个pg包括3个成员,如缓存池pg1包括osd.a0、osd.b0、osd.c0,缓存池共有1024个pg,数据池的纠删数为4+2个,也即每个pg包括6个成员,如绑定池pg1包括osd.a1、osd.b1、osd.c1、osd.d1、osd.e1、osd.f1,绑定池pg1025包括osd.a2、osd.b2、osd.c2、osd.d2、osd.e2、osd.f2。缓存池共有2048个pg,数据池pg1、数据池pg2与缓存池pg1为一组对应pg。缓存池pg1、绑定池pg1和绑定池pg1025的pg的主节点均位于物理节点C上。
首先,由Monitor进行场景识别,cpeh的场景包括但并不限制于双池绑定、双池故障、双池故障恢复、双池缩容、双池扩容,当Monitor识别到当前场景为双池绑定场景,则执行双池绑定方法。如图9所示,通过对双池pg数目确定基准池和绑定池,基准池的一个pg及其对应的绑定池的pg称为一组对应pg,以确定双池pg对应关系。以基准池的pg为基准,对绑定池的pg进行调整:取该组对应pg中绑定池pg id较小的一个先进行调整:当基准池pg成员数大于绑定池pg成员数时,则在基准池的物理节点中选择承载绑定池pg数目最小的绑定池pg成员数个节点作为选择出来的物理节点;当基准池pg成员数小于绑定池pg成员数时,则将基准池的物理节点和由crush算法自主选择的特殊标识符UNDFF作为选择出来的物理节点。然后将该绑定池的pg及选择出来的物理节点传入crush算法中确定该绑定池pg的osd。对下一组对应pg执行上述过程,直至每一组对应pg的首个绑定池pg的成员均已确定,也即每一组对应pg的首个绑定池pg均已调整完成。再次对各组对应pg进行遍历,对每组对应pg的剩余pg按照与其第一个绑定池pg在物理节点和成员进行完全对应,直至遍历次数达到绑定池pg数和基准池pg数的比值与1的差值,所有绑定池成员均调整完成,也即双池的各pg的成员调整完成。当双池的各pg成员调整完成之后,基于图10进行双池的主节点的选择:按照基准池和绑定池各pg之间的对应关系进行分组,得到多组对应pg;通过遍历每一组对应pg,按照双池pg成员处于同一物理节点且小于应当选为主的次数,生成各自相对应的osd组;选择该组对应pg中成员重合在同一个节点多的osd,且其中没有osd超过它应当选为主的次数,为各自pg的主节点。如无法确定满足条件的osd组,也即没有主的pg,则选择成员中主引用次数最小的osd作为主节点。最后,监视器将调整后的各pg成员、双池的pg的主节点封装至OSDMAP中,并下发至对应的osd中,以使各osd基于该OSDMAP的数据信息进行pg迁移和主节点变更操作,如图11所示。
由上可知,本实施例实现了在双池pg均衡和主pg均衡的基础上,将双池对应的pg的主节点选在同一物理节点上,从而使得缓存池和数据池的数据转发无需跨节点实现,提升ceph的存储性能。
需要说明的是,本发明中各步骤之间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图1、图9、图10和图11只是一种示意方式,并不代表只能是这样的执行顺序。
本发明还针对存储双池绑定方法提供了相应的装置,进一步使得方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。下面对本发明提供的存储双池绑定装置进行介绍,该装置用以实现本发明提供的存储双池绑定方法,在本实施例中,存储双池绑定装置可以包括或被分割成一个或多个程序模块,该一个或多个程序模块被存储在存储介质中,并由一个或多个处理器所执行,已完成实施例一公开的存储双池绑定方法。本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述存储双池绑定装置在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能,下文描述的存储双池绑定装置与上文描述的存储双池绑定方法可相互对应参照。
基于功能模块的角度,参见图12,图12为本发明提供的存储双池绑定装置在一种具体实施方式下的结构图,该装置可包括:
成员调整模块121,用于根据处于绑定关系的第一存储池和第二存储池中的各放置策略组pg之间的对应关系,基于使每一组对应pg中的多个成员重合至同一个物理节点,对第一存储池和第二存储池中各pg的成员进行调整;
选主模块122,用于基于每个对象存储设备osd的主引用次数,并根据双池对应pg的主节点位于同一物理节点上,从调整后的各pg成员中分别选择第一存储池的第一pg主节点和第二存储池的第二pg主节点。
示例性的,在本实施例的一些实施方式中,上述成员调整模块121还可用于:
通过确定第一存储池和第二存储池中的各pg之间的对应关系,得到多组对应pg;根据每组对应pg的pg成员数之间的数值关系,在满足第一存储池和第二存储池的pg均衡的条件下,依次为各个pg确定相应的成员。
作为上述实施例的一种示意性的实施方式,上述成员调整模块121还可用于:
第一存储池的pg总数小于第二存储池的pg总数,遍历每一组对应pg,对当前组对应pg,从中选择属于第二存储池的pg且pg id小的pg,以作为第一目标pg;基于当前组对应pg的pg成员数之间的数值关系,根据当前组对应pg中的第一存储池的pg成员所在物理节点,确定第一目标pg对应的目标物理节点;调用crush算法,根据第一目标pg的pg id和各目标物理节点,得到第一目标pg的成员;当每一组对应pg中属于第二存储池的pg且pg id小的pg均已确定相对应的成员,则将每一组对应pg中属于第二存储池的剩余pg中的一个pg作为第一目标pg,依次跳转执行基于当前组对应pg的pg成员数之间的数值关系的步骤,直至每组对应pg中属于第二存储池的所有pg均已确定相对应的成员。
作为上述实施例的一种示意性的实施方式,上述成员调整模块121还可进一步用于:
预先设置外循环遍历次数以及定数器,定数器用于统计外循环遍历次数,且在当每一组对应pg中属于第二存储池的pg且pg id小的pg均已确定相对应的成员时被启动;判断当前外循环遍历次数是否达到目标值;目标值为第一存储池pg数和第二存储池pg数的比值与1的差值;若当前外循环遍历次数达到目标值,则每组对应pg中属于第二存储池的所有pg均已确定相对应的成员。
作为上述实施例的另一种示意性的实施方式,上述成员调整模块121还可进一步用于:
若第一存储池的pg成员数大于第二存储池的pg成员数,从当前组对应pg中的第一存储池的pg成员所在物理节点中选择多个目标物理节点,目标物理节点的总数值为所有第二存储池中pg总数最小的第二存储池的pg成员个数;若第一存储池的pg成员数小于第二存储池的pg成员数,根据预先设置的填充值和当前组对应pg中的第一存储池的pg成员对应的所有物理节点确定第一目标pg对应的目标物理节点。
作为上述实施例的一种示意性的实施方式,上述成员调整模块121还可进一步用于:
调用crush算法,确定各填充值;将各填充值和当前组对应pg中的第一存储池的pg成员对应的所有物理节点,作为第一目标pg对应的目标物理节点。
示例性的,在本实施例的另一些实施方式中,上述成员调整模块121还可用于:
根据第一存储池和第二存储池的pg总数间的数值关系,按照对象id映射pg id的原理,得到第一存储池和第二存储池各pg之间的对应关系。
作为上述实施例的一种示意性的实施方式,上述成员调整模块121还可用于:
判断第一存储池的pg总数是否小于等于第二存储池的pg总数;若第一存储池的pg总数小于第二存储池的pg总数,则将第一存储池作为基准池,第二存储池作为绑定池,将绑定池pg按照pg id顺序划分为多个小组,每个小组包含pg数目与基准池pg总数相同,每个小组的各pg分别按照pg id顺序与基准池的pg一一对应;若第一存储池的pg总数与第二存储池的pg总数相同,则第一存储池的各pg与第二存储池的各pg按照pg id顺序一一对应。
示例性的,在本实施例的再一些实施方式中,上述装置还可包括异常处理模块,该模块用于:
当检测到第一存储池和第二存储池不满足预设均衡条件,则对第一存储池和/或第二存储池进行先缩容后扩容的处理。
示例性的,在本实施例的再一些实施方式中,上述装置还可包括场景识别模块,该模块用于:
当判定当前场景符合双池绑定条件,确定第一存储池和第二存储池中的各放置策略组pg之间的对应关系;将第一存储池和第二存储池进行绑定。
作为上述实施例的一种示意性的实施方式,上述场景识别模块还可用于:
当识别当前场景为双池绑定场景,判断第一存储池和第二存储池是否处于相同故障域类型;若判定第一存储池和第二存储池处于相同故障域类型,则判断第一存储池和第二存储池是否包含虚拟节点;若判定第一存储池和第二存储池不包含虚拟节点,则判断第一存储池和第二存储池是否为osd级故障域;若判定第一存储池和第二存储池不为osd级故障域,则判定当前场景符合双池绑定条件。
示例性的,在本实施例的再一些实施方式中,上述装置还可包括后处理模块,该模块用于:
将调整后的各pg成员、第一pg主节点和第二pg主节点封装至OSDMAP中,并下发至各osd中,以使各osd基于OSDMAP进行迁移和主节点变更操作。
示例性的,在本实施例的再一些实施方式中,上述选主模块122还可用于:
按照第一存储池和第二存储池中的各pg之间的对应关系进行分组,得到多组对应pg;通过遍历每一组对应pg,按照双池pg成员处于同一物理节点且满足预设主引用次数条件,生成各自相对应的osd组;基于满足第一存储池和第二存储池的pg的主节点均衡的条件,从各osd组中选择第一存储池的第一pg主节点和第二存储池的第二pg主节点。
作为上述实施例的一种示意性的实施方式,上述选主模块122还可用于:
对当前组对应pg,遍历当前组对应pg内属于第一存储池的各成员;若当前成员的主引用次数满足预设主引用次数条件,通过遍历当前组对应pg内属于第二存储池的各成员,确定与当前成员属于同一物理节点的目标成员;若目标成员的主引用次数满足预设主引用次数条件,则将目标成员和当前成员插入至当前组对应pg对应的osd组中。
作为上述实施例的另一种示意性的实施方式,上述选主模块122还可用于:
若当前组对应pg内属于第一存储池的各成员的主引用次数均不满足预设主引用次数条件,则判定当前组对应pg无法生成对应的osd组。
作为上述实施例的再一种示意性的实施方式,上述选主模块122还可进一步用于:
统计每一个osd组中所包含的各osd的主引用次数之和;从各osd组中选择包含osd个数最多的候选osd组;若候选osd组个数为1,则从候选osd组中分别确定第一存储池的第一pg主节点和第二存储池的第二pg主节点;若候选osd组个数不为1,则从多个候选osd组中选择主引用次数之和最小的候选osd组作为目标osd组,从目标osd组中分别确定第一存储池的第一pg主节点和第二存储池的第二pg主节点。
作为上述实施例的再一种示意性的实施方式,上述选主模块122还可用于:
根据第一存储池和第二存储池所包含的osd总数和pg总数,确定每个osd在第一存储池和第二存储池的pg的主节点均衡时的主引用计数,以作为各osd的标准选主次数。
作为上述实施例的一种示意性的实施方式,上述选主模块122还可进一步用于:
获取第一存储池和第二存储池所包含的osd总数和pg总数;调用第一标准选主次数计算关系,计算每个osd在第一存储池和第二存储池的pg的主节点均衡时的主引用计数;第一标准选主次数计算关系为:
;
其中,osd y0为标准选主次数,osd sum 为osd总数,pg sum 为pg总数。
作为上述实施例的一种示意性的实施方式,上述选主模块122还可进一步用于:
获取第一存储池和第二存储池所包含的osd总数和pg总数;调用第二标准选主次数计算关系,计算每个osd在第一存储池和第二存储池的pg的主节点均衡时的主引用计数;第二标准选主次数计算关系为:
;
其中,osd y0为标准选主次数,osd sum 为osd总数,pg sum 为pg总数。
本发明所述存储双池绑定装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本实施例可以有效提升分布式存储系统的存储性能。
上文中提到的存储双池绑定装置是从功能模块的角度描述,进一步的,本发明还提供一种电子设备,是从硬件角度描述。图13为本发明实施例提供的电子设备在一种实施方式下的结构示意图。如图13所示,该电子设备包括存储器130,用于存储计算机程序;处理器131,用于执行计算机程序时实现如上述任一实施例提到的存储双池绑定方法的步骤。
其中,处理器131可以包括一个或多个处理核心,比如4核心处理器、8核心处理器,处理器131还可为控制器、微控制器、微处理器或其他数据处理芯片等。处理器131可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable GateArray,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器131也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器131可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器131还可以包括AI(ArtificialIntelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器130可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器130还可包括高速随机存取存储器以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。存储器130在一些实施例中可以是电子设备的内部存储单元,例如服务器的硬盘。存储器130在另一些实施例中也可以是电子设备的外部存储设备,例如服务器上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器130还可以既包括电子设备的内部存储单元也包括外部存储设备。存储器130不仅可以用于存储安装于电子设备的应用软件及各类数据,例如:执行存储双池绑定方法过程中的程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。本实施例中,存储器130至少用于存储以下计算机程序1301,其中,该计算机程序被处理器131加载并执行之后,能够实现前述任一实施例公开的存储双池绑定方法的相关步骤。另外,存储器130所存储的资源还可以包括操作系统1302和数据1303等,存储方式可以是短暂存储或者永久存储。其中,操作系统1302可以包括Windows、Unix、Linux等。数据1303可以包括但不限于存储双池绑定结果对应的数据等。
在一些实施例中,上述电子设备还可包括有显示屏132、输入输出接口133、通信接口134或者称为网络接口、电源135以及通信总线136。其中,显示屏132、输入输出接口133比如键盘(Keyboard)属于用户接口,可选的用户接口还可以包括标准的有线接口、无线接口等。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。通信接口134可选的可以包括有线接口和/或无线接口,如WI-FI接口、蓝牙接口等,通常用于在电子设备与其他电子设备之间建立通信连接。通信总线136可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本领域技术人员可以理解,图13中示出的结构并不构成对该电子设备的限定,可以包括比图示更多或更少的组件,例如还可包括实现各类功能的传感器137。
本发明所述电子设备的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本实施例可以有效提升分布式存储系统的存储性能。
可以理解的是,如果上述实施例中的存储双池绑定方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、多媒体卡、卡型存储器(例如SD或DX存储器等)、磁性存储器、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本发明还提供了一种可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时如上任意一实施例所述存储双池绑定方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的硬件包括装置及电子设备而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本发明所提供的一种存储双池绑定方法、装置、电子设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (22)
1.一种存储双池绑定方法,其特征在于,包括:
根据处于绑定关系的第一存储池和第二存储池中的各放置策略组pg之间的对应关系,基于使每一组对应pg中的多个成员重合至同一个物理节点,对所述第一存储池和所述第二存储池中各pg的成员进行调整;
基于每个对象存储设备osd的主引用次数,并根据双池对应pg的主节点位于同一物理节点上,从调整后的各pg成员中分别选择所述第一存储池的第一pg主节点和所述第二存储池的第二pg主节点。
2.根据权利要求1所述的存储双池绑定方法,其特征在于,所述基于使每一组对应pg中的多个成员重合至同一个物理节点,对所述第一存储池和所述第二存储池中各pg的成员进行调整,包括:
通过确定所述第一存储池和所述第二存储池中的各pg之间的对应关系,得到多组对应pg;
根据每组对应pg的pg成员数之间的数值关系,在满足所述第一存储池和所述第二存储池的pg均衡的条件下,依次为各个pg确定相应的成员。
3.根据权利要求2所述的存储双池绑定方法,其特征在于,所述第一存储池的pg总数小于所述第二存储池的pg总数,所述根据每组对应pg的pg成员数之间的数值关系,在满足所述第一存储池和所述第二存储池的pg均衡的条件下,依次为各个pg确定相应的成员,包括:
遍历每一组对应pg,对当前组对应pg,从中选择属于所述第二存储池的pg且pg id小的pg,以作为第一目标pg;
基于所述当前组对应pg的pg成员数之间的数值关系,根据所述当前组对应pg中的所述第一存储池的pg成员所在物理节点,确定所述第一目标pg对应的目标物理节点;
调用crush算法,根据所述第一目标pg的pg id和各目标物理节点,得到所述第一目标pg的成员;
当每一组对应pg中属于所述第二存储池的pg且pg id小的pg均已确定相对应的成员,则将每一组对应pg中属于所述第二存储池的剩余pg中的一个pg作为所述第一目标pg,依次跳转执行所述基于所述当前组对应pg的pg成员数之间的数值关系的步骤,直至每组对应pg中属于所述第二存储池的所有pg均已确定相对应的成员。
4.根据权利要求3所述的存储双池绑定方法,其特征在于,所述直至每组对应pg中属于所述第二存储池的所有pg均已确定相对应的成员,包括:
预先设置外循环遍历次数以及定数器,所述定数器用于统计外循环遍历次数,且在当每一组对应pg中属于所述第二存储池的pg且pg id小的pg均已确定相对应的成员时被启动;
判断当前外循环遍历次数是否达到目标值;所述目标值为第一存储池pg数和第二存储池pg数的比值与1的差值;
若所述当前外循环遍历次数达到目标值,则每组对应pg中属于所述第二存储池的所有pg均已确定相对应的成员。
5.根据权利要求3所述的存储双池绑定方法,其特征在于,所述基于所述当前组对应pg的pg成员数之间的数值关系,根据所述当前组对应pg中的所述第一存储池的pg成员所在物理节点,确定所述第一目标pg对应的目标物理节点,包括:
若所述第一存储池的pg成员数大于所述第二存储池的pg成员数,从所述当前组对应pg中的所述第一存储池的pg成员所在物理节点中选择多个目标物理节点,所述目标物理节点的总数值为所有第二存储池中pg总数最小的第二存储池的pg成员个数;
若所述第一存储池的pg成员数小于所述第二存储池的pg成员数,根据预先设置的填充值和所述当前组对应pg中的所述第一存储池的pg成员对应的所有物理节点确定所述第一目标pg对应的目标物理节点。
6.根据权利要求5所述的存储双池绑定方法,其特征在于,所述根据预先设置的填充值和所述当前组对应pg中的所述第一存储池的pg成员对应的所有物理节点确定所述第一目标pg对应的目标物理节点,包括:
调用所述crush算法,确定各填充值;
将各填充值和所述当前组对应pg中的所述第一存储池的pg成员对应的所有物理节点,作为所述第一目标pg对应的目标物理节点。
7.根据权利要求1所述的存储双池绑定方法,其特征在于,所述根据处于绑定关系的第一存储池和第二存储池中的各放置策略组pg之间的对应关系,包括:
根据所述第一存储池和所述第二存储池的pg总数间的数值关系,按照对象id映射pgid的原理,得到所述第一存储池和所述第二存储池各pg之间的对应关系。
8.根据权利要求7所述的存储双池绑定方法,其特征在于,所述根据所述第一存储池和所述第二存储池的pg总数间的数值关系,按照对象id映射pg id的原理,得到所述第一存储池和所述第二存储池各pg之间的对应关系,包括:
若所述第一存储池的pg总数小于所述第二存储池的pg总数,则将所述第一存储池作为基准池,所述第二存储池作为绑定池,将所述绑定池pg按照pg id顺序划分为多个小组,每个小组包含pg数目与所述基准池pg总数相同,每个小组的各pg分别按照pg id顺序与所述基准池的pg一一对应;
若所述第一存储池的pg总数与所述第二存储池的pg总数相同,则所述第一存储池的各pg与所述第二存储池的各pg按照pg id顺序一一对应。
9.根据权利要求1所述的存储双池绑定方法,其特征在于,所述从调整后的各pg成员中分别选择所述第一存储池的第一pg主节点和所述第二存储池的第二pg主节点之后,还包括:
当检测到所述第一存储池和所述第二存储池不满足预设均衡条件,则对所述第一存储池和/或所述第二存储池进行先缩容后扩容的处理。
10.根据权利要求1所述的存储双池绑定方法,其特征在于,所述根据处于绑定关系的第一存储池和第二存储池中的各放置策略组pg之间的对应关系,包括:
当判定当前场景符合双池绑定条件,确定所述第一存储池和所述第二存储池中的各放置策略组pg之间的对应关系;
将所述第一存储池和所述第二存储池进行绑定。
11.根据权利要求10所述的存储双池绑定方法,其特征在于,所述判定当前场景符合双池绑定条件,包括:
当识别当前场景为双池绑定场景,判断所述第一存储池和所述第二存储池是否处于相同故障域类型;
若判定所述第一存储池和所述第二存储池处于相同故障域类型,则判断所述第一存储池和所述第二存储池是否包含虚拟节点;
若判定所述第一存储池和所述第二存储池不包含虚拟节点,则判断所述第一存储池和所述第二存储池是否为osd级故障域;
若判定所述第一存储池和所述第二存储池不为osd级故障域,则判定当前场景符合双池绑定条件。
12.根据权利要求1所述的存储双池绑定方法,其特征在于,所述从调整后的各pg成员中分别选择所述第一存储池的第一pg主节点和所述第二存储池的第二pg主节点,包括:
将调整后的各pg成员、所述第一pg主节点和所述第二pg主节点封装至所有对象存储设备信息中,并下发至各osd中,以使各osd基于所述所有对象存储设备信息进行迁移和主节点变更操作。
13.根据权利要求1至12任意一项所述的存储双池绑定方法,其特征在于,所述基于每个对象存储设备osd的主引用次数,并根据双池对应pg的主节点位于同一物理节点上,从调整后的各pg成员中分别选择所述第一存储池的第一pg主节点和所述第二存储池的第二pg主节点,包括:
按照所述第一存储池和所述第二存储池中的各pg之间的对应关系进行分组,得到多组对应pg;
通过遍历每一组对应pg,按照双池pg成员处于同一物理节点且满足预设主引用次数条件,生成各自相对应的osd组;
基于满足所述第一存储池和所述第二存储池的pg的主节点均衡的条件,从各osd组中选择所述第一存储池的第一pg主节点和所述第二存储池的第二pg主节点。
14.根据权利要求13所述的存储双池绑定方法,其特征在于,所述第一存储池的pg总数小于所述第二存储池的pg总数,所述按照双池pg成员处于同一物理节点且满足预设主引用次数条件,生成各自相对应的osd组,包括:
对当前组对应pg,遍历所述当前组对应pg内属于所述第一存储池的各成员;
若当前成员的主引用次数满足预设主引用次数条件,通过遍历所述当前组对应pg内属于所述第二存储池的各成员,确定与所述当前成员属于同一物理节点的目标成员;
若所述目标成员的主引用次数满足预设主引用次数条件,则将所述目标成员和所述当前成员插入至所述当前组对应pg对应的osd组中。
15.根据权利要求14所述的存储双池绑定方法,其特征在于,所述遍历所述当前组对应pg内属于所述第一存储池的各成员之前,还包括:
若所述当前组对应pg内属于所述第一存储池的各成员的主引用次数均不满足预设主引用次数条件,则判定所述当前组对应pg无法生成对应的osd组。
16.根据权利要求13所述的存储双池绑定方法,其特征在于,所述基于满足所述第一存储池和所述第二存储池的pg的主节点均衡的条件,从各osd组中选择所述第一存储池的第一pg主节点和所述第二存储池的第二pg主节点,包括:
统计每一个osd组中所包含的各osd的主引用次数之和;
从各osd组中选择包含osd个数最多的候选osd组;
若候选osd组个数为1,则从所述候选osd组中分别确定所述第一存储池的第一pg主节点和所述第二存储池的第二pg主节点;
若候选osd组个数不为1,则从多个候选osd组中选择主引用次数之和最小的候选osd组作为目标osd组,从所述目标osd组中分别确定所述第一存储池的第一pg主节点和所述第二存储池的第二pg主节点。
17.根据权利要求13所述的存储双池绑定方法,其特征在于,所述生成各自相对应的osd组之前,还包括:
根据所述第一存储池和所述第二存储池所包含的osd总数和pg总数,确定每个osd在所述第一存储池和所述第二存储池的pg的主节点均衡时的主引用计数,以作为各osd的标准选主次数。
18.根据权利要求17所述的存储双池绑定方法,其特征在于,所述根据所述第一存储池和所述第二存储池所包含的osd总数和pg总数,确定每个osd在所述第一存储池和所述第二存储池的pg的主节点均衡时的主引用计数,包括:
获取所述第一存储池和所述第二存储池所包含的osd总数和pg总数;
调用第一标准选主次数计算关系,计算每个osd在所述第一存储池和所述第二存储池的pg的主节点均衡时的主引用计数;所述第一标准选主次数计算关系为:
;
其中,osd y0 为所述标准选主次数,osd sum 为所述osd总数,pg sum 为所述pg总数。
19.根据权利要求17所述的存储双池绑定方法,其特征在于,所述根据所述第一存储池和所述第二存储池所包含的osd总数和pg总数,确定每个osd在所述第一存储池和所述第二存储池的pg的主节点均衡时的主引用计数,包括:
获取所述第一存储池和所述第二存储池所包含的osd总数和pg总数;
调用第二标准选主次数计算关系,计算每个osd在所述第一存储池和所述第二存储池的pg的主节点均衡时的主引用计数;所述第二标准选主次数计算关系为:
;
其中,osd y0为所述标准选主次数,osd sum 为所述osd总数,pg sum 为所述pg总数。
20.一种存储双池绑定装置,其特征在于,包括:
成员调整模块,用于根据处于绑定关系的第一存储池和第二存储池中的各放置策略组pg之间的对应关系,基于使每一组对应pg中的多个成员重合至同一个物理节点,对所述第一存储池和所述第二存储池中各pg的成员进行调整;
选主模块,用于基于每个对象存储设备osd的主引用次数,并根据双池对应pg的主节点位于同一物理节点上,从调整后的各pg成员中分别选择所述第一存储池的第一pg主节点和所述第二存储池的第二pg主节点。
21.一种电子设备,其特征在于,包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现如权利要求1至19任一项所述存储双池绑定方法的步骤。
22.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至19任一项所述存储双池绑定方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311309006.2A CN117061541B (zh) | 2023-10-11 | 2023-10-11 | 存储双池绑定方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311309006.2A CN117061541B (zh) | 2023-10-11 | 2023-10-11 | 存储双池绑定方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117061541A true CN117061541A (zh) | 2023-11-14 |
CN117061541B CN117061541B (zh) | 2024-02-09 |
Family
ID=88661219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311309006.2A Active CN117061541B (zh) | 2023-10-11 | 2023-10-11 | 存储双池绑定方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117061541B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112363980A (zh) * | 2020-11-03 | 2021-02-12 | 网宿科技股份有限公司 | 一种分布式系统的数据处理方法及装置 |
CN112817535A (zh) * | 2021-02-03 | 2021-05-18 | 柏科数据技术(深圳)股份有限公司 | 一种归置组分配方法、装置以及分布式存储系统 |
CN113791730A (zh) * | 2021-08-16 | 2021-12-14 | 济南浪潮数据技术有限公司 | 基于双存储池的放置组调整方法、系统、装置及存储介质 |
CN114138181A (zh) * | 2021-10-24 | 2022-03-04 | 济南浪潮数据技术有限公司 | 一种绑定池放置组选主的方法、装置、设备及可读介质 |
CN116048419A (zh) * | 2023-02-17 | 2023-05-02 | 浪潮电子信息产业股份有限公司 | 一种双存储池扩容方法及分布式存储系统 |
CN116069261A (zh) * | 2023-03-03 | 2023-05-05 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、系统、设备以及存储介质 |
-
2023
- 2023-10-11 CN CN202311309006.2A patent/CN117061541B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112363980A (zh) * | 2020-11-03 | 2021-02-12 | 网宿科技股份有限公司 | 一种分布式系统的数据处理方法及装置 |
CN112817535A (zh) * | 2021-02-03 | 2021-05-18 | 柏科数据技术(深圳)股份有限公司 | 一种归置组分配方法、装置以及分布式存储系统 |
CN113791730A (zh) * | 2021-08-16 | 2021-12-14 | 济南浪潮数据技术有限公司 | 基于双存储池的放置组调整方法、系统、装置及存储介质 |
CN114138181A (zh) * | 2021-10-24 | 2022-03-04 | 济南浪潮数据技术有限公司 | 一种绑定池放置组选主的方法、装置、设备及可读介质 |
CN116048419A (zh) * | 2023-02-17 | 2023-05-02 | 浪潮电子信息产业股份有限公司 | 一种双存储池扩容方法及分布式存储系统 |
CN116069261A (zh) * | 2023-03-03 | 2023-05-05 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、系统、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117061541B (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102136993B (zh) | 一种数据迁移的方法、装置和系统 | |
CN103503412B (zh) | 用于调度资源的方法及装置 | |
CN110580195B (zh) | 一种基于内存热插拔的内存分配方法和装置 | |
CN111104219A (zh) | 虚拟核心与物理核心的绑定方法、装置、设备及存储介质 | |
CN107729514A (zh) | 一种基于hadoop的副本放置节点确定方法及装置 | |
CN109995814A (zh) | 云主机资源的迁移方法及装置、通信设备、存储介质 | |
CN115292014A (zh) | 图像渲染方法、装置和服务器 | |
CN109471725A (zh) | 资源分配方法、装置和服务器 | |
CN113687779B (zh) | 数据迁移方法、装置、电子设备及可读存储介质 | |
CN117311990B (zh) | 资源调整方法、装置、电子设备、存储介质及训练平台 | |
CN106598737A (zh) | 一种实现硬件资源分配的方法及装置 | |
CN101937360B (zh) | 一种创建虚拟机的方法和装置 | |
CN107729267A (zh) | 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构 | |
CN117061541B (zh) | 存储双池绑定方法、装置、电子设备及可读存储介质 | |
CN108984105B (zh) | 对网络存储设备中的复制任务进行分配的方法和设备 | |
CN111953503A (zh) | Nfv资源部署编排方法和网络功能虚拟化编排器 | |
CN109582461A (zh) | 一种针对Linux容器的资源部署方法及系统 | |
CN103106112A (zh) | 一种基于最高负载的进行负载均衡调度的方法及设备 | |
CN112052083B (zh) | 云端gpu的显存调度方法、装置、电子设备及存储介质 | |
CN102427468A (zh) | 一种云计算操作系统及其调度方法 | |
CN113821302A (zh) | 虚拟化云平台部署虚拟机的方法、装置、电子设备及介质 | |
CN115202589B (zh) | 放置组成员选择方法、装置、设备及可读存储介质 | |
CN107967165A (zh) | 基于lvm的虚拟机离线迁移方法 | |
CN106325972A (zh) | 一种虚拟机管理方法及网络设备 | |
CN114153592A (zh) | 云平台的物理主机负载调度方法、装置、电子设备及介质 |
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 |