CN117519992B - 一种基于crush算法的查表型负载均衡方法及装置 - Google Patents
一种基于crush算法的查表型负载均衡方法及装置 Download PDFInfo
- Publication number
- CN117519992B CN117519992B CN202410008417.6A CN202410008417A CN117519992B CN 117519992 B CN117519992 B CN 117519992B CN 202410008417 A CN202410008417 A CN 202410008417A CN 117519992 B CN117519992 B CN 117519992B
- Authority
- CN
- China
- Prior art keywords
- osd
- slave
- load balancing
- master
- preset range
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000001514 detection method Methods 0.000 claims abstract description 15
- 238000013500 data storage Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000011897 real-time detection Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本申请涉及一种基于CRUSH算法的查表型负载均衡方法及装置,涉及数据存储技术领域,该方法包括以下步骤:基于预设检测周期检测存储池是否均衡;若判定存储池的负载不均衡,则识别存储池中所有OSD上的主放置组以及从放置组的分布情况;基于各主放置组以及各从放置组分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的主放置组以及从放置组的数量差异值在预设范围内。本申请对OSD中的主从放置组的分配关系进行监测,进行合理调整,使得负载均衡,从而提高工作效率。
Description
技术领域
本申请涉及数据存储技术领域,具体涉及一种基于CRUSH算法的查表型负载均衡方法及装置。
背景技术
在数据存储领域,现阶段的Ceph(分布式文件系统)仅能保证OSD(Object-basedStorage,对象存储)上的容量均衡,即主从放置组总数均衡,不支持主放置组和从放置组各自负载均衡,所以IO(I/O,Input/Output,输入/输出)性能低。现阶段的绝对均衡策略基于完全查表法,二完全查表法会导致OSD MAP(OSD MAP用于 Ceph 集群中所有 OSD 的信息)极大,导致OSD MAP在扩散过程中,消耗大量网络带宽,从而影响业务带宽。
因此,为满足负载均衡需求,现提供一种基于CRUSH算法的查表型负载均衡技术。
发明内容
本申请提供一种基于CRUSH算法的查表型负载均衡方法及装置,对OSD中的主从放置组的分配关系进行监测,进行合理调整,使得负载均衡,从而提高工作效率。
为实现上述目的,本申请提供以下方案。
第一方面,本申请提供了一种基于CRUSH算法的查表型负载均衡方法,所述方法包括以下步骤:
基于预设检测周期检测存储池是否均衡;
若判定所述存储池的负载不均衡,则识别存储池中所有OSD上的主放置组以及从放置组的分布情况;
基于各所述主放置组以及各所述从放置组分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主放置组以及所述从放置组的数量差异值在预设范围内。
进一步的,基于各所述主放置组以及各所述从放置组分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主放置组以及所述从放置组的数量差异值在预设范围内,包括以下步骤:
基于各所述主放置组与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主放置组的数量差异值在第一预设范围内;
基于各所述从放置组与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述从放置组的数量差异值在第二预设范围内;
基于各所述主放置组以及所述从放置组分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主放置组以及所述从放置组的总数量差异值在第三预设范围内。
进一步的,基于各所述主放置组与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主放置组的数量差异值在第一预设范围内,包括以下步骤:
基于各所述主放置组与各OSD的对应关系,统计各所述OSD对应的所述主放置组的数量;
基于各所述OSD对应的所述主放置组的数量,进行负载均衡,使得各OSD对应的所述主放置组的数量差异值在第一预设范围内。
进一步的,基于各所述从放置组与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述从放置组的数量差异值在第二预设范围内,包括以下步骤:
基于各所述从放置组与各OSD的对应关系,统计各所述OSD对应的所述从放置组的数量;
基于各所述OSD对应的所述主放置组的数量,进行负载均衡,使得各OSD对应的所述从放置组的数量差异值在第二预设范围内。
进一步的,基于各所述主放置组以及所述从放置组分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主放置组以及所述从放置组的总数量差异值在第三预设范围内,包括以下步骤:
基于各所述主放置组与各OSD的对应关系,统计各所述OSD对应的所述主放置组的数量;
基于各所述从放置组与各OSD的对应关系,统计各所述OSD对应的所述从放置组的数量;
基于各所述OSD对应的所述主放置组的数量,进行负载均衡,使得各OSD对应的所述主放置组以及所述从放置组的总数量差异值在第三预设范围内。
进一步的,基于预设检测周期检测存储池是否均衡,包括以下步骤:
识别所述存储池中各所述OSD对应的所述主放置组以及所述从放置组的数量;
比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若所述数量差异值在预设范围内,则判定均衡,反之则判定不均衡。
进一步的,比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若所述数量差异值在预设范围内,则判定均衡,反之则判定不均衡,包括以下步骤:
比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若各OSD对应的所述主放置组以及所述从放置组的总数量差异值在第三预设范围内,则判定均衡,反之则判定不均衡。
进一步的,比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若所述数量差异值在预设范围内,则判定均衡,反之则判定不均衡,包括以下步骤:
比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若各OSD对应的所述主放置组的数量差异值在第一预设范围内,则判定均衡,反之则判定不均衡。
进一步的,比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若所述数量差异值在预设范围内,则判定均衡,反之则判定不均衡,包括以下步骤:
比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若各OSD对应的所述从放置组的数量差异值在第二预设范围内,则判定均衡,反之则判定不均衡。
第二方面,本申请提供了一种基于CRUSH算法的查表型负载均衡装置,所述装置包括:
均衡判定模块,其用于基于预设检测周期检测存储池是否均衡;
分布识别模块,其用于若判定所述存储池的负载不均衡,则识别存储池中所有OSD上的主放置组以及从放置组的分布情况;
负载均衡模块,其用于基于各所述主放置组以及各所述从放置组分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主放置组以及所述从放置组的数量差异值在预设范围内。
进一步的,负载均衡模块还用于基于各所述主放置组与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主放置组的数量差异值在第一预设范围内;
负载均衡模块还用于基于各所述从放置组与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述从放置组的数量差异值在第二预设范围内;
负载均衡模块还用于基于各所述主放置组以及所述从放置组分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主放置组以及所述从放置组的总数量差异值在第三预设范围内。
进一步的,负载均衡模块还用于基于各所述主放置组与各OSD的对应关系,统计各所述OSD对应的所述主放置组的数量;
负载均衡模块还用于基于各所述OSD对应的所述主放置组的数量,进行负载均衡,使得各OSD对应的所述主放置组的数量差异值在第一预设范围内。
进一步的,负载均衡模块还用于基于各所述从放置组与各OSD的对应关系,统计各所述OSD对应的所述从放置组的数量;
负载均衡模块还用于基于各所述OSD对应的所述主放置组的数量,进行负载均衡,使得各OSD对应的所述从放置组的数量差异值在第二预设范围内。
进一步的,负载均衡模块还用于基于各所述主放置组与各OSD的对应关系,统计各所述OSD对应的所述主放置组的数量;
基于各所述从放置组与各OSD的对应关系,统计各所述OSD对应的所述从放置组的数量;
负载均衡模块还用于基于各所述OSD对应的所述主放置组的数量,进行负载均衡,使得各OSD对应的所述主放置组以及所述从放置组的总数量差异值在第三预设范围内。
进一步的,所述均衡判定模块还用于识别所述存储池中各所述OSD对应的所述主放置组以及所述从放置组的数量;
所述均衡判定模块还用于比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若所述数量差异值在预设范围内,则判定均衡,反之则判定不均衡。
进一步的,所述均衡判定模块还用于比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若各OSD对应的所述主放置组以及所述从放置组的总数量差异值在第三预设范围内,则判定均衡,反之则判定不均衡。
进一步的,所述均衡判定模块还用于比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若各OSD对应的所述主放置组的数量差异值在第一预设范围内,则判定均衡,反之则判定不均衡。
进一步的,所述均衡判定模块还用于比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若各OSD对应的所述从放置组的数量差异值在第二预设范围内,则判定均衡,反之则判定不均衡。
本申请提供的技术方案带来的有益效果包括:
本申请对OSD中的主从放置组的分配关系进行监测,进行合理调整,使得负载均衡,从而提高工作效率。
附图说明
术语解释:
OSD:Object-based Storage,对象存储;
放置组:Placement Groups,放置组;
OSDC:OSD Client,对象存储客户端;
IO:即I/O,Input/Output,输入/输出。
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中提供的基于CRUSH算法的查表型负载均衡方法的步骤流程图;
图2为本申请实施例中提供的基于CRUSH算法的查表型负载均衡方法的原理流程图;
图3为本申请实施例中提供的基于CRUSH算法的查表型负载均衡装置的结构框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图对本申请的实施例作进一步详细说明。
本申请实施例提供一种基于CRUSH算法的查表型负载均衡方法及装置,对OSD中的主从放置组的分配关系进行监测,进行合理调整,使得负载均衡,从而提高工作效率。
为达到上述技术效果,本申请的总体思路如下:
一种基于CRUSH算法的查表型负载均衡方法,该方法包括以下步骤:
S1、基于预设检测周期检测存储池是否均衡;
S2、若判定存储池的负载不均衡,则识别存储池中所有OSD上的主放置组以及从放置组的分布情况;
S3、基于各主放置组以及各从放置组分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的主放置组以及从放置组的数量差异值在预设范围内。
以下结合附图对本申请的实施例作进一步详细说明。
第一方面,参见图1~2所示,本申请实施例提供一种基于CRUSH算法的查表型负载均衡方法,该方法包括以下步骤:
S1、基于预设检测周期检测存储池是否均衡;
S2、若判定存储池的负载不均衡,则识别存储池中所有OSD上的主放置组以及从放置组的分布情况;
S3、基于各主放置组以及各从放置组分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的主放置组以及从放置组的数量差异值在预设范围内。
本申请实施例中,对OSD中的主从放置组的分配关系进行监测,进行合理调整,使得负载均衡,从而提高工作效率。
需要说明的是,主放置组主要用于读写操作,而从放置组主要用于进行数据存储。
进一步的,基于各所述主放置组以及各所述从放置组分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主放置组以及所述从放置组的数量差异值在预设范围内,包括以下步骤:
基于各所述主放置组与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主放置组的数量差异值在第一预设范围内;
基于各所述从放置组与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述从放置组的数量差异值在第二预设范围内;
基于各所述主放置组以及所述从放置组分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主放置组以及所述从放置组的总数量差异值在第三预设范围内。
进一步的,基于各所述主放置组与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主放置组的数量差异值在第一预设范围内,包括以下步骤:
基于各所述主放置组与各OSD的对应关系,统计各所述OSD对应的所述主放置组的数量;
基于各所述OSD对应的所述主放置组的数量,进行负载均衡,使得各OSD对应的所述主放置组的数量差异值在第一预设范围内。
进一步的,基于各所述从放置组与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述从放置组的数量差异值在第二预设范围内,包括以下步骤:
基于各所述从放置组与各OSD的对应关系,统计各所述OSD对应的所述从放置组的数量;
基于各所述OSD对应的所述主放置组的数量,进行负载均衡,使得各OSD对应的所述从放置组的数量差异值在第二预设范围内。
进一步的,基于各所述主放置组以及所述从放置组分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主放置组以及所述从放置组的总数量差异值在第三预设范围内,包括以下步骤:
基于各所述主放置组与各OSD的对应关系,统计各所述OSD对应的所述主放置组的数量;
基于各所述从放置组与各OSD的对应关系,统计各所述OSD对应的所述从放置组的数量;
基于各所述OSD对应的所述主放置组的数量,进行负载均衡,使得各OSD对应的所述主放置组以及所述从放置组的总数量差异值在第三预设范围内。
进一步的,基于预设检测周期检测存储池是否均衡,包括以下步骤:
识别所述存储池中各所述OSD对应的所述主放置组以及所述从放置组的数量;
比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若所述数量差异值在预设范围内,则判定均衡,反之则判定不均衡。
进一步的,比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若所述数量差异值在预设范围内,则判定均衡,反之则判定不均衡,包括以下步骤:
比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若各OSD对应的所述主放置组以及所述从放置组的总数量差异值在第三预设范围内,则判定均衡,反之则判定不均衡。
进一步的,比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若所述数量差异值在预设范围内,则判定均衡,反之则判定不均衡,包括以下步骤:
比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若各OSD对应的所述主放置组的数量差异值在第一预设范围内,则判定均衡,反之则判定不均衡。
进一步的,比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若所述数量差异值在预设范围内,则判定均衡,反之则判定不均衡,包括以下步骤:
比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若各OSD对应的所述从放置组的数量差异值在第二预设范围内,则判定均衡,反之则判定不均衡。
本申请实施例的技术方案,其至少包括以下技术关键点:
(1)将OSD上的放置组按照主从分类,给予主放置组更高的均衡优先级,优先主放置组均衡,其次从放置组均衡;
(2)定时任务中包含实时检测集群业务压力,业务压力小于阈值发起负载均衡检测;
(3)将CRUSH算法计算和查表结合使用,以计算为主,查表为辅。
基于本申请实施例的技术方案,在实际实施时的具体流程如下:
第一步,周期检测存储池是否均衡。
第二步,若存储池不均衡,则计算存储池中所有OSD上的主从放置组的分布,并分别按照主从放置组给OSD排序。
第三步,使用贪心策略对主放置组进行均衡:
从主放置组最高的OSD上遍历放置组,尝试将这个放置组 remap到raw OSD上,删除对应放置组_upmap_items记录;其中,
raw OSD为未加工状态下的OSD,OSD MAP是用于记录OSD 上对应放置组的配置图,而将放置组 remap到raw OSD上,具体操作是:重置OSD MAP,将原有的与OSD对应的用于记录OSD 上对应放置组的配置图进行重置,将OSD还原至未加工状态,并将放置组与未加工状态下的OSD进行重新对应,并记录重新建立的对应关系;
另外,删除对应放置组_upmap_items记录中,upmap_items记录是放置组原先与OSD形成对应关系时的记录,即将放置组与OSD的对应关系记录在OSD MAP时的记录;
若不存在,尝试将这个放置组 map主放置组最低的OSD上,若可行,则记录到放置组_upmap_items表中,upmap_items表为一个表格,其用于收录放置组与OSD的对应关系记录在OSD MAP时的记录
若不可行,则尝试次低的OSD,依次尝试下去,直到找到target OSD(目标OSD),将记录保存到放置组_upmap_items中;
依次遍历所有OSD,直到主放置组达到均衡。
第四步,使用贪心策略对从放置组进行均衡:
从从放置组最高的OSD上遍历放置组,尝试将这个放置组 remap到raw OSD上,删除对应放置组_upmap_items记录;
若不存在,尝试将这个放置组迁移到从放置组最低的OSD上,若可行,则记录到放置组_upmap_items表中;若不可行,则尝试次低的OSD,依次尝试下去,直到找到targetOSD,将记录保存到放置组_upmap_items中;
依次遍历所有OSD,直到从放置组达到均衡。
第五步,将生成的放置组_upmap_items更新到OSD MAP(用于记录OSD 上对应放置组的配置图)中,并通过Monitor发布到所有OSD和OSDC上,用于对CRUSH算法的修正,达到所有OSD负载均衡。
基于本申请实施例的技术方案,至少存在以下技术优势:
(1)保证OSD MAP不劣化的前提下,减少OSD MAP在网络传输过程中的占用的带宽;
(2)保证尽可能少的查表,从而保证多数CRUSH计算的有效性;
(3)部署完集群后,对空放置组进行若干次均衡(取决于均衡阈值),保证集群承担业务前,存储池已处于相对均衡;
(4)保证各个OSD上的IO负载相对一直,误差不超过5%;
(5)为了减少对业务影响,定时任务中增加对集群业务压力监控,小于阈值才发起检测是否均衡。
第二方面,参见图3所示,基于与方法实施例相同的发明构思,本申请实施例提供一种基于CRUSH算法的查表型负载均衡装置,该装置包括:
均衡判定模块,其用于基于预设检测周期检测存储池是否均衡;
分布识别模块,其用于若判定所述存储池的负载不均衡,则识别存储池中所有OSD上的主放置组以及从放置组的分布情况;
负载均衡模块,其用于基于各所述主放置组以及各所述从放置组分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主放置组以及所述从放置组的数量差异值在预设范围内。
本申请实施例中,对OSD中的主从放置组的分配关系进行监测,进行合理调整,使得负载均衡,从而提高工作效率。
需要说明的是,主放置组主要用于读写操作,而从放置组主要用于进行数据存储。
进一步的,负载均衡模块还用于基于各所述主放置组与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主放置组的数量差异值在第一预设范围内;
负载均衡模块还用于基于各所述从放置组与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述从放置组的数量差异值在第二预设范围内;
负载均衡模块还用于基于各所述主放置组以及所述从放置组分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主放置组以及所述从放置组的总数量差异值在第三预设范围内。
进一步的,负载均衡模块还用于基于各所述主放置组与各OSD的对应关系,统计各所述OSD对应的所述主放置组的数量;
负载均衡模块还用于基于各所述OSD对应的所述主放置组的数量,进行负载均衡,使得各OSD对应的所述主放置组的数量差异值在第一预设范围内。
进一步的,负载均衡模块还用于基于各所述从放置组与各OSD的对应关系,统计各所述OSD对应的所述从放置组的数量;
负载均衡模块还用于基于各所述OSD对应的所述主放置组的数量,进行负载均衡,使得各OSD对应的所述从放置组的数量差异值在第二预设范围内。
进一步的,负载均衡模块还用于基于各所述主放置组与各OSD的对应关系,统计各所述OSD对应的所述主放置组的数量;
负载均衡模块还用于基于各所述从放置组与各OSD的对应关系,统计各所述OSD对应的所述从放置组的数量;
负载均衡模块还用于基于各所述OSD对应的所述主放置组的数量,进行负载均衡,使得各OSD对应的所述主放置组以及所述从放置组的总数量差异值在第三预设范围内。
进一步的,所述均衡判定模块还用于识别所述存储池中各所述OSD对应的所述主放置组以及所述从放置组的数量;
所述均衡判定模块还用于比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若所述数量差异值在预设范围内,则判定均衡,反之则判定不均衡。
进一步的,所述均衡判定模块还用于比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若各OSD对应的所述主放置组以及所述从放置组的总数量差异值在第三预设范围内,则判定均衡,反之则判定不均衡。
进一步的,所述均衡判定模块还用于比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若各OSD对应的所述主放置组的数量差异值在第一预设范围内,则判定均衡,反之则判定不均衡。
进一步的,所述均衡判定模块还用于比对各OSD对应的所述主放置组以及所述从放置组的数量差异值,若各OSD对应的所述从放置组的数量差异值在第二预设范围内,则判定均衡,反之则判定不均衡。
本申请实施例的技术方案,其至少包括以下技术关键点:
(1)将OSD上的放置组按照主从分类,给予主放置组更高的均衡优先级,优先主放置组均衡,其次从放置组均衡;
(2)定时任务中包含实时检测集群业务压力,业务压力小于阈值发起负载均衡检测;
(3)将CRUSH算法计算和查表结合使用,以计算为主,查表为辅。
基于本申请实施例的技术方案,在实际实施时的具体流程如下:
第一步,周期检测存储池是否均衡。
第二步,若存储池不均衡,则计算存储池中所有OSD上的主从放置组的分布,并分别按照主从放置组给OSD排序。
第三步,使用贪心策略对主放置组进行均衡:
从主放置组最高的OSD上遍历放置组,尝试将这个放置组 remap到raw OSD上,删除对应放置组_upmap_items记录;;其中,
raw OSD为未加工状态下的OSD,OSD MAP是用于记录OSD 上对应放置组的配置图,而将放置组 remap到raw OSD上,具体操作是:重置OSD MAP,将原有的与OSD对应的用于记录OSD 上对应放置组的配置图进行重置,将OSD还原至未加工状态,并将放置组与未加工状态下的OSD进行重新对应,并记录重新建立的对应关系;
另外,删除对应放置组_upmap_items记录中,upmap_items记录是放置组原先与OSD形成对应关系时的记录,即将放置组与OSD的对应关系记录在OSD MAP时的记录;
若不存在,尝试将这个放置组 map主放置组最低的OSD上,若可行,则记录到放置组_upmap_items表中,upmap_items表为一个表格,其用于收录放置组与OSD的对应关系记录在OSD MAP时的记录;
若不可行,则尝试次低的OSD,依次尝试下去,直到找到target OSD(目标OSD),将记录保存到放置组_upmap_items中;
依次遍历所有OSD,直到主放置组达到均衡。
第四步,使用贪心策略对从放置组进行均衡:
从从放置组最高的OSD上遍历放置组,尝试将这个放置组 remap到raw OSD上,删除对应放置组_upmap_items记录;
若不存在,尝试将这个放置组迁移到从放置组最低的OSD上,若可行,则记录到放置组_upmap_items表中;若不可行,则尝试次低的OSD,依次尝试下去,直到找到targetOSD,将记录保存到放置组_upmap_items中;
依次遍历所有OSD,直到从放置组达到均衡。
第五步,将生成的放置组_upmap_items更新到OSD MAP(用于记录OSD 上对应放置组的配置图)中,并通过Monitor发布到所有OSD和OSDC上,用于对CRUSH算法的修正,达到所有OSD负载均衡。
基于本申请实施例的技术方案,至少存在以下技术优势:
(1)保证OSD MAP不劣化的前提下,减少OSD MAP在网络传输过程中的占用的带宽;
(2)保证尽可能少的查表,从而保证多数CRUSH计算的有效性;
(3)部署完集群后,对空放置组进行若干次均衡(取决于均衡阈值),保证集群承担业务前,存储池已处于相对均衡;
(4)保证各个OSD上的IO负载相对一直,误差不超过5%;
(5)为了减少对业务影响,定时任务中增加对集群业务压力监控,小于阈值才发起检测是否均衡。
需要说明的是,本申请实施例提供的基于CRUSH算法的查表型负载均衡装置,其对应的技术问题、技术手段以及技术效果,从原理层面与基于CRUSH算法的查表型负载均衡方法的原理类似。
需要说明的是,在本申请中,诸如“对比”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (6)
1.一种基于CRUSH算法的查表型负载均衡方法,其特征在于,所述方法包括以下步骤:
基于预设检测周期检测pool是否均衡;
若判定所述pool的负载不均衡,则识别pool中所有OSD上的主PG以及从PG的分布情况;
基于各所述主PG以及各所述从PG分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主PG以及所述从PG的数量差异值在预设范围内;基于各所述主PG以及各所述从PG分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主PG以及所述从PG的数量差异值在预设范围内,包括以下步骤:
基于各所述主PG与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主PG的数量差异值在第一预设范围内;
基于各所述从PG与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述从PG的数量差异值在第二预设范围内;
基于各所述主PG以及所述从PG分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主PG以及所述从PG的总数量差异值在第三预设范围内;
基于各所述主PG与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主PG的数量差异值在第一预设范围内,包括以下步骤:
基于各所述主PG与各OSD的对应关系,统计各所述OSD对应的所述主PG的数量;
基于各所述OSD对应的所述主PG的数量,进行负载均衡,使得各OSD对应的所述主PG的数量差异值在第一预设范围内;
基于各所述从PG与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述从PG的数量差异值在第二预设范围内,包括以下步骤:
基于各所述从PG与各OSD的对应关系,统计各所述OSD对应的所述从PG的数量;
基于各所述OSD对应的所述从PG的数量,进行负载均衡,使得各OSD对应的所述从PG的数量差异值在第二预设范围内;
基于各所述主PG以及所述从PG分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主PG以及所述从PG的总数量差异值在第三预设范围内,包括以下步骤:
基于各所述主PG与各OSD的对应关系,统计各所述OSD对应的所述主PG的数量;
基于各所述从PG与各OSD的对应关系,统计各所述OSD对应的所述从PG的数量;
基于各所述OSD对应的所述主PG的数量和所述从PG的数量,进行负载均衡,使得各OSD对应的所述主PG以及所述从PG的总数量差异值在第三预设范围内。
2.如权利要求1所述的基于CRUSH算法的查表型负载均衡方法,其特征在于,基于预设检测周期检测pool是否均衡,包括以下步骤:
识别所述pool中各所述OSD对应的所述主PG以及所述从PG的数量;
比对各OSD对应的所述主PG以及所述从PG的数量差异值,若所述数量差异值在预设范围内,则判定均衡,反之则判定不均衡。
3.如权利要求2所述的基于CRUSH算法的查表型负载均衡方法,其特征在于,比对各OSD对应的所述主PG以及所述从PG的数量差异值,若所述数量差异值在预设范围内,则判定均衡,反之则判定不均衡,包括以下步骤:
比对各OSD对应的所述主PG以及所述从PG的数量差异值,若各OSD对应的所述主PG以及所述从PG的总数量差异值在第三预设范围内,则判定均衡,反之则判定不均衡。
4.如权利要求2所述的基于CRUSH算法的查表型负载均衡方法,其特征在于,比对各OSD对应的所述主PG以及所述从PG的数量差异值,若所述数量差异值在预设范围内,则判定均衡,反之则判定不均衡,包括以下步骤:
比对各OSD对应的所述主PG以及所述从PG的数量差异值,若各OSD对应的所述主PG的数量差异值在第一预设范围内,则判定均衡,反之则判定不均衡。
5.如权利要求2所述的基于CRUSH算法的查表型负载均衡方法,其特征在于,比对各OSD对应的所述主PG以及所述从PG的数量差异值,若所述数量差异值在预设范围内,则判定均衡,反之则判定不均衡,包括以下步骤:
比对各OSD对应的所述主PG以及所述从PG的数量差异值,若各OSD对应的所述从PG的数量差异值在第二预设范围内,则判定均衡,反之则判定不均衡。
6.一种基于CRUSH算法的查表型负载均衡装置,其特征在于,所述装置包括:
均衡判定模块,其用于基于预设检测周期检测pool是否均衡;
分布识别模块,其用于若判定所述pool的负载不均衡,则识别pool中所有OSD上的主PG以及从PG的分布情况;
负载均衡模块,其用于基于各所述主PG以及各所述从PG分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主PG以及所述从PG的数量差异值在预设范围内;
所述负载均衡模块还用于基于各所述主PG与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主PG的数量差异值在第一预设范围内;
所述负载均衡模块还用于基于各所述从PG与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述从PG的数量差异值在第二预设范围内;
所述负载均衡模块还用于基于各所述主PG以及所述从PG分别与各OSD的对应关系,进行负载均衡,使得各OSD对应的所述主PG以及所述从PG的总数量差异值在第三预设范围内;
所述负载均衡模块还用于基于各所述主PG与各OSD的对应关系,统计各所述OSD对应的所述主PG的数量;
所述负载均衡模块还用于基于各所述OSD对应的所述主PG的数量,进行负载均衡,使得各OSD对应的所述主PG的数量差异值在第一预设范围内;
所述负载均衡模块还用于基于各所述从PG与各OSD的对应关系,统计各所述OSD对应的所述从PG的数量;
所述负载均衡模块还用于基于各所述OSD对应的所述从PG的数量,进行负载均衡,使得各OSD对应的所述从PG的数量差异值在第二预设范围内;
所述负载均衡模块还用于基于各所述主PG与各OSD的对应关系,统计各所述OSD对应的所述主PG的数量;
所述负载均衡模块还用于基于各所述从PG与各OSD的对应关系,统计各所述OSD对应的所述从PG的数量;
所述负载均衡模块还用于基于各所述OSD对应的所述主PG的数量和所述从PG的数量,进行负载均衡,使得各OSD对应的所述主PG以及所述从PG的总数量差异值在第三预设范围内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410008417.6A CN117519992B (zh) | 2024-01-04 | 2024-01-04 | 一种基于crush算法的查表型负载均衡方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410008417.6A CN117519992B (zh) | 2024-01-04 | 2024-01-04 | 一种基于crush算法的查表型负载均衡方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117519992A CN117519992A (zh) | 2024-02-06 |
CN117519992B true CN117519992B (zh) | 2024-04-16 |
Family
ID=89749766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410008417.6A Active CN117519992B (zh) | 2024-01-04 | 2024-01-04 | 一种基于crush算法的查表型负载均衡方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117519992B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106951445A (zh) * | 2017-02-17 | 2017-07-14 | 深圳市中博睿存信息技术有限公司 | 一种分布式文件系统及其存储节点上线方法 |
CN106991170A (zh) * | 2017-04-01 | 2017-07-28 | 广东浪潮大数据研究有限公司 | 一种分布式文件容量均衡的方法与装置 |
CN108509157A (zh) * | 2018-04-13 | 2018-09-07 | 郑州云海信息技术有限公司 | 一种应用于分布式文件系统的数据均衡方法及装置 |
CN109343798A (zh) * | 2018-09-25 | 2019-02-15 | 郑州云海信息技术有限公司 | 对分布式存储系统的主pg均衡调整的方法、装置及介质 |
CN109933285A (zh) * | 2019-02-26 | 2019-06-25 | 新华三技术有限公司成都分公司 | 分布式存储的数据均衡方法及装置 |
CN111708486A (zh) * | 2020-05-24 | 2020-09-25 | 苏州浪潮智能科技有限公司 | 一种主放置组均衡优化的方法、系统、设备及介质 |
CN112306692A (zh) * | 2020-11-13 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统的归置组均衡方法和装置 |
CN113311996A (zh) * | 2021-05-25 | 2021-08-27 | 紫光华山科技有限公司 | 一种osd角色调整方法和装置 |
CN114138194A (zh) * | 2021-11-25 | 2022-03-04 | 苏州浪潮智能科技有限公司 | 一种数据分布存储方法、装置、设备及介质 |
CN115277736A (zh) * | 2022-07-25 | 2022-11-01 | 中国工商银行股份有限公司 | 分布式块存储的数据自动均衡方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10942666B2 (en) * | 2017-10-13 | 2021-03-09 | Cisco Technology, Inc. | Using network device replication in distributed storage clusters |
-
2024
- 2024-01-04 CN CN202410008417.6A patent/CN117519992B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106951445A (zh) * | 2017-02-17 | 2017-07-14 | 深圳市中博睿存信息技术有限公司 | 一种分布式文件系统及其存储节点上线方法 |
CN106991170A (zh) * | 2017-04-01 | 2017-07-28 | 广东浪潮大数据研究有限公司 | 一种分布式文件容量均衡的方法与装置 |
CN108509157A (zh) * | 2018-04-13 | 2018-09-07 | 郑州云海信息技术有限公司 | 一种应用于分布式文件系统的数据均衡方法及装置 |
CN109343798A (zh) * | 2018-09-25 | 2019-02-15 | 郑州云海信息技术有限公司 | 对分布式存储系统的主pg均衡调整的方法、装置及介质 |
CN109933285A (zh) * | 2019-02-26 | 2019-06-25 | 新华三技术有限公司成都分公司 | 分布式存储的数据均衡方法及装置 |
CN111708486A (zh) * | 2020-05-24 | 2020-09-25 | 苏州浪潮智能科技有限公司 | 一种主放置组均衡优化的方法、系统、设备及介质 |
CN112306692A (zh) * | 2020-11-13 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统的归置组均衡方法和装置 |
CN113311996A (zh) * | 2021-05-25 | 2021-08-27 | 紫光华山科技有限公司 | 一种osd角色调整方法和装置 |
CN114138194A (zh) * | 2021-11-25 | 2022-03-04 | 苏州浪潮智能科技有限公司 | 一种数据分布存储方法、装置、设备及介质 |
CN115277736A (zh) * | 2022-07-25 | 2022-11-01 | 中国工商银行股份有限公司 | 分布式块存储的数据自动均衡方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117519992A (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107317864B (zh) | 一种存储设备的数据均衡方法及装置 | |
CN111695602B (zh) | 多维度任务人脸美丽预测方法、系统及存储介质 | |
US10783163B2 (en) | Instance-based distributed data recovery method and apparatus | |
CN106506665B (zh) | 一种分布式视频监控系统的负载均衡方法及平台 | |
CN103077197A (zh) | 一种数据存储方法装置 | |
CN111596868B (zh) | 基于段单元的分布式存储系统的负载均衡方法和系统 | |
CN112446557B (zh) | 一种基于深度学习的磁盘故障预测规避方法及系统 | |
CN108089918A (zh) | 一种面向异构服务器结构的图计算负载均衡方法 | |
CN114844638B (zh) | 一种基于布谷鸟过滤器的大数据量密钥的去重方法及系统 | |
CN117560423A (zh) | 基于云存储节点的智能锁云存储资源调度系统 | |
CN117519992B (zh) | 一种基于crush算法的查表型负载均衡方法及装置 | |
CN106973091B (zh) | 分布式内存数据重分布方法及系统、主控服务器 | |
CN109039939B (zh) | 一种负载分担方法及装置 | |
CN107870739A (zh) | 磁盘文件存储方法和系统 | |
CN113191432A (zh) | 基于离群因子的虚拟机集群的异常检测方法、设备及介质 | |
CN112436962A (zh) | 区块链共识网络动态扩展方法、电子设备、系统及介质 | |
CN109684367B (zh) | 一种动态调整多数据源数据集成处理方法与装置 | |
CN106951338A (zh) | 一种基于GlusterFS的高容错分布式存储方法 | |
CN108259583B (zh) | 一种数据动态迁移方法及装置 | |
CN106301889B (zh) | 一种端口号快速设置方法及系统 | |
CN109976662A (zh) | 数据存储方法、装置及分布式存储系统 | |
CN107977578B (zh) | 一种分布式存储系统及其数据修复方法和装置 | |
CN105812203B (zh) | 一种请求消息处理方法及设备 | |
US20210168201A1 (en) | Weighted load balancing method on data access nodes | |
CN112383949B (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 |