CN111580963B - 存储集群的负载均衡方法、装置、计算机设备及存储介质 - Google Patents
存储集群的负载均衡方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111580963B CN111580963B CN202010355344.XA CN202010355344A CN111580963B CN 111580963 B CN111580963 B CN 111580963B CN 202010355344 A CN202010355344 A CN 202010355344A CN 111580963 B CN111580963 B CN 111580963B
- Authority
- CN
- China
- Prior art keywords
- basic data
- role
- node
- migration
- nodes
- 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
Images
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及云技术领域,公开了一种存储集群的负载均衡方法,所述方法包括:当接收到负载均衡指令时,计算存储集群中所有物理节点的基础数据的组数均值;根据组数均值和每个物理节点中的基础数据的组数,确定每个物理节点中基础数据的迁出组数;针对每个物理节点,根据迁出组数在基础数据中确定迁出数据;从存储集群的所有物理节点中,获取基础数据的组数最小的物理节点作为初始迁入节点;在初始迁入节点中基础数据不同时,将迁出数据迁入到初始迁入节点中,从而实现了存储集群的负载均衡,提高了存储集群的性能。
Description
技术领域
本发明涉及云技术领域,尤其涉及一种存储集群的负载均衡方法、装置、计算机设备及存储介质。
背景技术
软件定义存储由于其方便灵活的伸缩性,存储系统可以在硬件承载范围内任意伸缩。正在被越来越多的企业采用。伴随着云存储的普及,云存储管理成为目前存储领域不可或缺的技术。云存储管理是一类应用程序,它们监控和管理物理及逻辑层上的存储资源。但是集群在不断扩容升级后,会面临数据分布倾斜性高,数据分布不可控的问题。
随着集群规模扩大,新机器不断加入,势必会出现数据在集群中分布不均的问题,造成一些机器空闲,其他机器高负荷的情况;同时,由于数据的冷热不同,会导致集群的IO分布不均衡,从而降低集群的有效容量使用率和整体性能。然而目前针对数据均衡和IO均衡等多维度的均衡问题,通常做法是综合考虑多个因素,按重要程度为各因素分配权重,按权重相加之后统一排序,生成最终的迁移策略。这种多维度综合考虑的均衡算法,使得集群在每个维度上都不能达到最优,而且难以保证数据读写的同步,难以实现负载均衡,降低了集群的性能。
发明内容
本发明实施例提供一种存储集群的负载均衡方法、装置、计算机设备及存储介质,以解决存储集群性能低下的问题。
一种存储集群的负载均衡方法,该存储集群中包括多个物理节点,每个物理节点包含多组基础数据,该存储集群的负载均衡方法包括:
当接收到负载均衡指令时,计算所述存储集群中所有物理节点的所述基础数据的组数均值;
根据所述组数均值和每个所述物理节点中的所述基础数据的组数,确定每个物理节点中所述基础数据的迁出组数;
针对每个物理节点,根据所述迁出组数在所述基础数据中确定迁出数据;
对所述存储集群的所有物理节点对应的基础数据的组数进行比较,将基础数据的组数最小的所述物理节点作为初始迁入节点;
对所述初始迁入节点进行检测,判断所述初始迁入节点中的基础数据是否相同,在所述初始迁入节点中的基础数据相同时,排除所述初始迁入节点,得到更新后的初始迁入节点,并执行所述对所述存储集群的所有物理节点对应的基础数据的组数进行比较,将基础数据的组数最小的所述物理节点作为初始迁入节点的步骤;
在所述初始迁入节点中的基础数据不同时,将所述迁出数据迁入到所述初始迁入节点中,以实现负载均衡。
一种存储集群的负载均衡装置,该存储集群中包括多个物理节点,每个物理节点包含多组基础数据,该存储集群的负载均衡装置包括:
均值计算模块,用于当接收到负载均衡指令时,计算所述存储集群中所有物理节点的所述基础数据的组数均值;
迁出组数确定模块,用于根据所述组数均值和每个所述物理节点中的所述基础数据的组数,确定每个物理节点中所述基础数据的迁出组数;
迁出数据确定模块,用于针对每个物理节点,根据所述迁出组数在所述基础数据中确定迁出数据;
迁入节点获取模块,用于对所述存储集群的所有物理节点对应的基础数据的组数进行比较,将基础数据的组数最小的所述物理节点作为初始迁入节点;
迁入节点检测模块,用于对所述初始迁入节点进行检测,判断所述初始迁入节点中的基础数据是否相同,在所述初始迁入节点中的基础数据相同时,排除所述初始迁入节点,得到更新后的初始迁入节点,并执行所述对所述存储集群的所有物理节点对应的基础数据的组数进行比较,将基础数据的组数最小的所述物理节点作为初始迁入节点的步骤;
负载均衡模块,用于在所述初始迁入节点中的基础数据不同时,将所述迁出数据迁入到所述初始迁入节点中。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述存储集群的负载均衡方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述存储集群的负载均衡方法的步骤。
上述存储集群的负载均衡方法、装置、计算机设备及存储介质,在接收到负载均衡指令时,计算存储集群中所有物理节点的基础数据的组数均值;然后,根据组数均值和每个物理节点中的基础数据的组数,确定每个物理节点中基础数据的迁出组数,以便后续对各个物理节点上的基础数据进行进一步处理;接着,针对每个物理节点,根据迁出组数在基础数据中确定迁出数据;接下来,从存储集群的所有物理节点中,获取基础数据的组数最小的物理节点作为初始迁入节点;在初始迁入节点中的基础数据相同时,排除初始迁入节点,得到更新后的初始迁入节点,并执行从存储集群的物理节点中,获取基础数据组数最小的物理节点作为初始迁入节点的步骤;在初始迁入节点中的基础数据不同时,将迁出数据迁入到初始迁入节点中,以实现负载均衡,提高了存储集群的性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的存储集群的负载均衡方法的流程图;
图2是本发明实施例提供的存储集群的负载均衡方法的另一流程图;
图3是本发明实施例提供的基础数据分配方法的流程图;
图4是本发明实施例提供的存储集群的负载均衡方法的又一流程图;
图5是本发明实施例提供的负载均衡方法的流程图;
图6是本发明实施例提供的角色标签确定方法的流程图;
图7是本发明实施例提供的存储集群的负载均衡方法的再一流程图;
图8是本发明实施例提供的存储集群的负载均衡装置的原理框图;
图9是本发明实施例提供的计算机设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,在一个实施例中,提供了一种存储集群的负载均衡方法,本实施例以应用于分布式存储系统举例说明,该分布式存储系统的存储集群中包括多个物理节点,每个物理节点包含多组基础数据,且每个物理节点网络通信连接,该存储集群的负载均衡方法具体包括以下步骤:
S10:当接收到负载均衡指令时,计算存储集群中所有物理节点的基础数据的组数均值。
其中,负载均衡指令是指存储系统中各个物理节点上的基础数据的分担策略,物理节点是指存储系统中节点服务器,基础数据是指节点服务器当前承载的负载,如用户发送请求的数据。当检测到存储集群中出现了负载不均衡的情况,示例性地,新加入了物理节点到该集群中,此时,存储集群会出现严重不均衡的情况(如新加入的物理节点负载为空),分布式存储系统自动触发负载均衡指令,计算存储集群中所有物理节点的基础数据的组数均值,即根据各个物理节点上基础数组的组数的总和所有物理节点的数量,计算得到组数均值,也即各个物理节点能够达到负载均衡的较佳数量的基础数据组数。
S20:根据组数均值和每个物理节点中的基础数据的组数,确定每个物理节点中基础数据的迁出组数。
其中,迁出组数是指为保证物理节点平衡,需要进行迁移到其他物理节点上的基础数据的组数。具体地,在接收到负载均衡指令后,需要根据物理节点上基础数据的分布来进行基础数据的进行迁出处理,通过迁出合适数量的基础数据,以使物理节点的负载均衡,因此,可以通过比较组数均值与每个物理节点中的基础数据的组数,当物理节点中的基础数据的组数大于组数均值时,则说明该物理节点中负载较大,为了减少该物理节点的负载,因此需要迁出合适数量的基础数据,以保证物理节点的负载均衡。此时,就需要确定迁出组数,该迁出组数可以是基础数据的组数与组数均值的差值,或者与差值接近,此处不做限定。在一具体实施方式中,其中的物理节点上的基础数据组数为5组,而组数均值为3组,则迁出组数为2。可以理解地,通过确定每个物理节点中基础数据的迁出组数,以便后续对各个物理节点上的基础数据进行进一步处理。
S30:针对每个物理节点,根据迁出组数在基础数据中确定迁出数据。
其中,迁出数据是一个物理节点中的需要进行迁移到其他物理节点上的基础数据,且基础数据的组数为迁出组数。具体地,迁出数据可以直接在对应的物理节点中通过随机选取的方式确定,也可以根据物理节点中各个基础数据的内存大小进行确定,还可以直接指定物理节点中基础数据进行确定。作为本实施例的优选,通过随机选取的方式从迁出数组中选取迁出数组个基础数据确定为迁出数据,由于基础数据对每个物理节点的负载性能影响比较接近,因此,能够提高迁出数据的获取效率。
S40:对存储集群的所有物理节点对应的基础数据的组数进行比较,将基础数据的组数最小的物理节点作为初始迁入节点。
其中,初始迁入节点是指用于确定接收迁出数据的候选物理节点,该初始迁入节点可能是接收迁出数据的目标节点,也可能是接收迁出数据的备选节点,具体根据初始迁入节点中的基础数据进行判断。具体地,由于基础数据的组数最小的物理节点中的最为空闲,负载最小,能够承载更多的负载,因此,将基础数据的组数最小的物理节点作为初始迁入节点,避免了一一对各个物理节点进行检测的冗余操作过程,有利于提高负载均衡效率。
S50:对初始迁入节点进行检测,判断初始迁入节点中的基础数据是否相同,在初始迁入节点中的基础数据相同时,排除初始迁入节点,得到更新后的初始迁入节点,并执行对存储集群的所有物理节点对应的基础数据的组数进行比较,将基础数据的组数最小的物理节点作为初始迁入节点的步骤。
具体地,为了保证存储集群的可靠性,避免初始迁入节点中的基础数据相同,如同一个初始迁入节点中存在基础数据对应的2个或者以上副本,因此,需要判断初始迁入节点是否预设限制条件,该预设限制条件为初始迁入节点中的基础数据不同,在初始迁入节点中的基础数据相同时,排除初始迁入节点,未被排除的初始迁入节点作为更新后的初始迁入节点,然后执行步骤S50,可以理解地,在初始迁入节点不满足预设限制条件的情况下,更新后的初始迁入节点为基础数据组数次小(第二小)的物理节点,若次小的物理节点仍然不满足预设限制条件,则需要排除该物理节点,继续更新后的初始迁入节点为基础数据组数次次小(第三小)的物理节点,按照不满足预设限制条件的物理节点上基础数据的组数最小确定初始迁入节点进行循环处理,直到初始迁入节点满足预设限制条件为止。
需要说明的是,该步骤S50不会无限循环,由步骤S10可知,组数均值是根据存储集群中所有物理节点的基础数据的组数计算确定的,因此,每个基础数据均存在初始迁入节点。
S60:在初始迁入节点中的基础数据不同时,将迁出数据迁入到初始迁入节点中,以实现负载均衡,其中,预设限制条件为初始迁入节点中的基础数据不同。
具体地,预设限制条件为初始迁入节点中的基础数据不同,在初始迁入节点满足预设限制条件的情况下,则初始迁入节点即为目标节点,因此,将迁出数据迁入到初始迁入节点中,从而实现了各个物理节点的负载均衡,从而保证能够了存储集群的负载均衡。
需要说明的是,为了进一步保证存储集群的负载均衡,可以通过判断初始迁入节点存储的基础数据组数与迁出数据对应的物理节点上的基础数据组数相差是否大于1,若大于1,则允许迁入,且迁入完成后,应保证初始迁入节点的基础数据组数小于或者等于迁出数据对应的物理节点上的基础数据组数。可以理解地,在初始迁入节点满足预设限制条件的情况下,将迁出数据迁入到初始迁入节点中,从而实现了存储集群的负载均衡,提高了存储集群的性能。
本实施例中,在接收到负载均衡指令时,计算存储集群中所有物理节点的基础数据的组数均值;然后,根据组数均值和每个物理节点中的基础数据的组数,确定每个物理节点中基础数据的迁出组数,以便后续对各个物理节点上的基础数据进行进一步处理;接着,针对每个物理节点,根据迁出组数在基础数据中确定迁出数据;接下来,从存储集群的所有物理节点中,获取基础数据的组数最小的物理节点作为初始迁入节点;在初始迁入节点的基础数据相同时,排除初始迁入节点,得到更新后的初始迁入节点,并执行从存储集群的物理节点中,获取基础数据组数最小的物理节点作为初始迁入节点的步骤;在初始迁入节点的基础数据不同时,将迁出数据迁入到初始迁入节点中,以实现负载均衡,提高了存储集群的性能。
在一实施例中,如图2所示,在步骤S10之前,还包括如下步骤:
S70:在对存储集群进行部署时,根据存储集群中包含的物理节点的数目,选取预设数目的虚拟节点,分别对每个物理节点上的基础数据进行N副本复制,得到每一虚拟节点对应的N组基础数据,并生成虚拟节点与物理节点的映射关系表,其中,N为大于1的正整数;
S80:通过哈希算法将基础数据分配至虚拟节点上,并通过映射关系表,将映射到虚拟节点的N组基础数据存储在对应的物理节点。
其中,副本复制是指对基础数据进行复制,具体地可通过将基础数据同步在多个物理节点。虚拟节点是指预先设置好的虚拟空间,也可以是硬件架构。具体地,将存储集群中的存储空间根据理节点的数目划分为预设数目虚拟节点,以虚拟节点为单位进行N副本复制,从而得到N组基础数据。虚拟节点与物理节点是对应的,即虚拟节点与物理节点的映射关系为1:N,具体可以通过虚拟节点与物理节点的映射关系表反映二者的对应关系。值得说明的是,在本实施例中,涉及基础数据较多,处理的机器性能有限,作为一种优选方式,本实施例N为3,即三副本,可以理解地,对于三副本存储集群,三份中的两份应用成功为应用成功,所以允许坏一副本;如果是两副本存储集群,两份中的多于半数的机器为整数二,所以两份都应用成功才算成功,不允许坏机器;如果是四副本存储集群,四份中的三份应用成功为应用成功,也是只允许坏一副本;如此,五副本允许坏二副本,六副本允许坏二副本,七副本允许坏三副本等。因此,奇数个副本相比于偶数个副本,省存储空间,并且能保证相同的容错能力,因此优先选用奇数副本。对于三副本、五副本、七副本之间的选择问题,副本越多,副本之间同步数据时间越长,响应用户请求越慢,因此,选择三副本,能够提高基础数据可靠性、存储集群实用性,降低存储集群的应用成本。
具体地,通过哈希算法将基础数据分配至虚拟节点上。在一具体实施方式中,将基础数据进行分片处理,例如,以64M大小为一片,为每片文件进行编号,将数据存储地址与分片编号进行组合,通过MurmurHash(一致性哈希)算法生成64位字符串,作为分片文件的哈希值,将该哈希值对虚拟节点的数目即步骤S10中的预设数目进行取余操作,从而确定该分片文件落在哪个虚拟节点。通过查找映射关系表,将分片数据存储于N(如N=3)个物理节点,通过建立虚拟节点并将基础数据映射到物理节点,提高了基础数据的一致性和存储集群的可用性。
本实施例中,在对存储集群进行部署时,根据存储集群中包含的物理节点的数目,选取预设数目的虚拟节点,分别对每个物理节点上的基础数据进行N副本复制,得到每一虚拟节点对应的N组基础数据,并生成虚拟节点与物理节点的映射关系表;通过哈希算法将基础数据分配至虚拟节点上,并通过映射关系表,将映射到虚拟节点的N组基础数据存储在对应的物理节点,提高了基础数据的一致性和存储集群的可用性。
在一实施例中,如图3所示,步骤S80中,通过哈希算法将基础数据分配至虚拟节点上,具体包括如下步骤:
S81:基于预设的内存大小,对基础数据进行分片处理,得到分片数据,并对每个分片数据进行顺序编号;
S82:对虚拟节点进行顺序编号,针对每个分片数据,使用分片数据的顺序编号对虚拟节点的数量进行取余运算,得到该分片数据的编号模;
S83:将编号模相同的分片数据分入同一个分片集合中,并将每个分片集合保存到与编号模一致的顺序编号对应的虚拟节点上。
在这个实施例中,首先,预设的内存大小,如64M,对基础数据进行分片处理,得到分片数据,并对每个分片数据进行顺序编号;然后,对虚拟节点进行顺序编号,针对每个分片数据,使用分片数据的顺序编号对虚拟节点的数量进行取余运算,得到该分片数据的编号模;最后,将编号模相同的分片数据分入同一个分片集合中,并将每个分片集合保存到与编号模一致的顺序编号对应的虚拟节点上,通过一致性哈希算法提高了基础数据的一致性。
在一实施例中,如图4所示,在初始迁入节点满足预设限制条件的情况下,则将迁出数据迁入到初始迁入节点中,以实现负载均衡之后,还包括如下步骤:
S90:确定每个虚拟节点对应的N组基础数据的角色标签,角色标签包括领导者角色和跟随者角色;
S100:针对每个物理节点,根据物理节点上基础数据的组数和N的比值确定迁移阈值;
S110:根据角色标签为领导者角色的基础数据的组数、角色标签为跟随者角色的基础数据组数以及每个物理节点对应的迁移阈值,进行角色标签转换。
其中,角色标签用于标识存储集群中物理节点的IO(input/output),领导者角色用于对外接收读写请求,跟随者角色用于同步领导者角色对应的基础数据,以实现对数据同步,提高数据安全性。具体地,当存储集群中任意一个物理节点的IO达到预设阈值时,自动触发IO均衡操作。IO均衡,反映到存储集群中,即为角色标签转换。在虚拟节点中未存储任何数据时,虚拟节点的N组基础数据之间互相竞争,通过Raft算法从N组基础数据中选举出基础数据作为领导者角色,剩余的基础数据的角色标签为跟随者角色。对于N副本基础数据,每个物理节点上的领导者角色为其承载基础数据组数的N分之一,以此作为迁移阈值,根据角色标签为领导者角色的基础数据的组数、角色标签为跟随者角色的基础数据组数以及每个物理节点对应的迁移阈值,进行角色标签转换,执行角色标签为领导者角色的基础数据的迁移,使得物理节点上的IO均匀分布,从而进一步实现负载均衡。
在一实施例中,如图5所示,步骤S110中,根据角色标签为领导者角色的基础数据的组数、角色标签为跟随者角色的基础数据组数以及每个物理节点对应的迁移阈值,进行角色标签转换,具体包括如下步骤:
S111:当角色标签为领导者角色的基础数据的组数大于迁移阈值时,则将超出迁移阈值的角色标签为领导者角色的基础数据的角色标签转换为跟随者角色,并在物理节点的基础数据中选择一个基础数据并将其角色标签设置为领导者角色;
S112:当角色标签为领导者角色的基础数据的组数小于迁移阈值时,将角色标签为领导者角色的基础数据转移到物理节点上,并将该物理节点中角色标签为领导者角色的基础数据转换为跟随者角色,直到该物理节点中的角色标签为领导者角色的基础数据的组数满足迁移阈值为止。
在这个实施例中,通过比较角色标签为领导者角色的基础数据的组数与迁移阈值,进行不同的角色标签转换,并根据转换后的角色标签进行基础数据的迁移,保证了物理节点上的IO均匀分布,从而达到负载均衡。可以理解地,通过根据角色标签对基础数据进行迁移,避免了对物理节点的读写请求进行分离,即,用户写入数据到机器1,则从机器1读取数据,从而保证了数据一致性。
在一实施例中,如图6所示,步骤S90中,确定每个虚拟节点对应的N组基础数据的角色标签,角色标签包括领导者角色和跟随者角色,具体包括如下步骤:
S91:向存储集群中的物理节点发送投票请求;
S92:接收与投票请求对应的物理节点返回的投票结果;
S93:根据投票结果,从物理节点对应的虚拟节点的N组基础数据中,选举出1组基础数据的角色标签确定为领导者角色,N-1组基础数据的角色标签确定为跟随者角色。
在这个实施例中,通过Raft算法,即根据存储集群中的物理节点发送投票请求对应的投票结果对每个虚拟节点对应的N组基础数据的角色标签进行确定,进而领导者角色将自身的基础数据同步到跟随者角色对应的基础数据,可以保证在领导者角色宕机之后,虚拟节点中的另外N-1组基础数据重新选举出一个领导者角色和N-2个跟随者角色,使得新的领导者角色与之前的领导者角色的基础数据一致,保证了数据不丢失。并且实现IO均衡可以使存储集群中所有物理节点的性能发挥到最大,提高整个存储集群的负载能力与响应速度。
在一实施例中,如图7所示,在初始迁入节点满足预设限制条件的情况下,则将迁出数据迁入到初始迁入节点中,以实现负载均衡之后,还包括如下步骤:
S120:对存储集群中所有物理节点进行遍历;
S130:当物理节点中不存在迁出数据时,确定存储集群的负载达到均衡状态。
在这个实施例中,对存储集群中的所有物理节点进行遍历,当所有要迁出数据中的基础数据均找不到要初始迁入节点时,确定负载均衡完成,从而更进一步地保证了存储集群负载均衡。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种存储集群的负载均衡装置,该存储集群的负载均衡装置与上述实施例中存储集群的负载均衡方法一一对应。如图8所示,该存储集群的负载均衡装置包括均值计算模块10、迁出组数确定模块20、迁出数据确定模块30、迁入节点获取模块40、迁入节点检测模块50和负载均衡模块60。各功能模块详细说明如下:
均值计算模块10,用于当接收到负载均衡指令时,计算所述存储集群中所有物理节点的所述基础数据的组数均值;
迁出组数确定模块20,用于根据所述组数均值和每个所述物理节点中的所述基础数据的组数,确定每个物理节点中所述基础数据的迁出组数;
迁出数据确定模块30,用于针对每个物理节点,根据所述迁出组数在所述基础数据中确定迁出数据;
迁入节点获取模块40,用于对所述存储集群的所有物理节点对应的基础数据的组数进行比较,将基础数据的组数最小的所述物理节点作为初始迁入节点;
迁入节点检测模块50,用于对所述初始迁入节点进行检测,判断所述初始迁入节点中的基础数据是否相同,在所述初始迁入节点中的基础数据相同时,排除所述初始迁入节点,得到更新后的初始迁入节点,并执行所述对所述存储集群的所有物理节点对应的基础数据的组数进行比较,将基础数据的组数最小的所述物理节点作为初始迁入节点的步骤;
负载均衡模块60,用于在所述初始迁入节点中的基础数据不同时,将所述迁出数据迁入到所述初始迁入节点中,以实现负载均衡。
具体地,该存储集群的负载均衡装置还包括副本复制模块和数据分配模块。
副本复制模块,用于在对存储集群进行部署时,根据所述存储集群中包含的物理节点的数目,选取预设数目的虚拟节点,分别对每个所述物理节点上的基础数据进行N副本复制,得到每一虚拟节点对应的N组基础数据,并生成虚拟节点与物理节点的映射关系表,其中,N为大于1的正整数;
数据分配模块,用于通过哈希算法将所述基础数据分配至所述虚拟节点上,并通过所述映射关系表,将映射到所述虚拟节点的所述N组基础数据存储在对应的物理节点。
具体地,数据分配模块包括数据分片单元、编号模计算单元和数据保存单元。
数据分片单元,用于基于预设的内存大小,对所述基础数据进行分片处理,得到分片数据,并对每个所述分片数据进行顺序编号;
编号模计算单元,用于对所述虚拟节点进行顺序编号,针对每个所述分片数据,使用分片数据的顺序编号对所述虚拟节点的数量进行取余运算,得到该分片数据的编号模;
数据保存单元,用于将编号模相同的分片数据分入同一个分片集合中,并将每个所述分片集合保存到与编号模一致的顺序编号对应的虚拟节点上。
具体地,该存储集群的负载均衡装置还包括角色确定模块、阈值确定模块和角色转换模块。
角色确定模块,用于确定所述每个虚拟节点对应的N组所述基础数据的角色标签,所述角色标签包括领导者角色和跟随者角色;
阈值确定模块,用于针对每个所述物理节点,根据物理节点上基础数据的组数和N的比值确定迁移阈值;
角色转换模块,用于根据角色标签为领导者角色的所述基础数据的组数、角色标签为跟随者角色的所述基础数据组数以及每个所述物理节点对应的所述迁移阈值,进行角色标签转换。
具体地,角色转换模块包括第一转换单元和第二转换单元。
第一转换单元,用于当角色标签为领导者角色的所述基础数据的组数大于所述迁移阈值时,则将超出所述迁移阈值的角色标签为领导者角色的基础数据的角色标签转换为跟随者角色,并在所述物理节点的基础数据中选择一个基础数据并将其角色标签设置为领导者角色;
第二转换单元,用于当角色标签为领导者角色的所述基础数据的组数小于所述迁移阈值时,将角色标签为领导者角色的基础数据转移到所述物理节点上,并将该物理节点中角色标签为领导者角色的基础数据转换为跟随者角色,直到该物理节点中的角色标签为领导者角色的所述基础数据的组数满足所述迁移阈值为止。
具体地,角色确定模块包括请求发送单元、结果接收单元和角色确定单元。
请求发送单元,用于向所述存储集群中的物理节点发送投票请求;
结果接收单元,用于接收与所述投票请求对应的所述物理节点返回的投票结果;
角色确定单元,用于根据所述投票结果,从所述物理节点对应的虚拟节点的N组基础数据中,选举出1组基础数据的角色标签确定为领导者角色,N-1组基础数据的角色标签确定为跟随者角色。
具体地,该存储集群的负载均衡装置还包括节点遍历模块和负载均衡模块。
节点遍历模块,用于对所述存储集群中所有物理节点进行遍历;
负载均衡模块,用于当所述物理节点中不存在迁出数据时,确定所述存储集群的负载达到均衡状态。
关于存储集群的负载均衡装置的具体限定可以参见上文中对于存储集群的负载均衡方法的限定,在此不再赘述。上述存储集群的负载均衡装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储物理节点和基础数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种存储集群的负载均衡方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例存储集群的负载均衡方法的步骤,例如图1所示的步骤S10至步骤S60。或者,处理器执行计算机程序时实现上述实施例存储集群的负载均衡装置的各模块/单元的功能,例如图8所示的模块10至模块60。为避免重复,这里不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例存储集群的负载均衡方法的步骤,或者,计算机程序被处理器执行时实现上述实施例存储集群的负载均衡装置的各模块/单元的功能,为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (7)
1.一种存储集群的负载均衡方法,其特征在于,所述存储集群中包括多个物理节点,每个物理节点包含多组基础数据,所述基础数据为节点服务器当前承载的数据,所述存储集群的负载均衡方法包括:
在对存储集群进行部署时,根据所述存储集群中包含的物理节点的数目,选取预设数目的虚拟节点,分别对每个所述物理节点上的基础数据进行N副本复制,得到每一虚拟节点对应的N组基础数据,并生成虚拟节点与物理节点的映射关系表,其中,N为大于1的正整数;
通过哈希算法将所述基础数据分配至所述虚拟节点上,并通过所述映射关系表,将映射到所述虚拟节点的所述N组基础数据存储在对应的物理节点;
当接收到负载均衡指令时,计算所述存储集群中所有物理节点的所述基础数据的组数均值;
根据所述组数均值和每个所述物理节点中的所述基础数据的组数,确定每个物理节点中所述基础数据的迁出组数;
针对每个物理节点,根据所述迁出组数在所述基础数据中确定迁出数据;
对所述存储集群的所有物理节点对应的基础数据的组数进行比较,将基础数据的组数最小的所述物理节点作为初始迁入节点;
对所述初始迁入节点进行检测,判断所述初始迁入节点中的基础数据是否相同,在所述初始迁入节点中的基础数据相同时,排除所述初始迁入节点,得到更新后的初始迁入节点,并执行所述对所述存储集群的所有物理节点对应的基础数据的组数进行比较,将基础数据的组数最小的所述物理节点作为初始迁入节点的步骤;
在所述初始迁入节点中的基础数据不同时,将所述迁出数据迁入到所述初始迁入节点中,以实现负载均衡;
确定所述每一虚拟节点对应的N组所述基础数据的角色标签,所述角色标签包括领导者角色和跟随者角色;
针对每个所述物理节点,根据物理节点上基础数据的组数和N的比值确定迁移阈值;
根据角色标签为领导者角色的所述基础数据的组数、角色标签为跟随者角色的所述基础数据组数以及每个所述物理节点对应的所述迁移阈值,进行角色标签转换,包括:当角色标签为领导者角色的所述基础数据的组数大于所述迁移阈值时,则将超出所述迁移阈值的角色标签为领导者角色的基础数据的角色标签转换为跟随者角色,并在所述物理节点的基础数据中选择一个基础数据并将其角色标签设置为领导者角色;当角色标签为领导者角色的所述基础数据的组数小于所述迁移阈值时,将角色标签为领导者角色的基础数据转移到所述物理节点上,并将该物理节点中角色标签为领导者角色的基础数据转换为跟随者角色,直到该物理节点中的角色标签为领导者角色的所述基础数据的组数满足所述迁移阈值为止。
2.如权利要求1所述的存储集群的负载均衡方法,其特征在于,所述通过哈希算法将所述基础数据分配至所述虚拟节点上,包括:
基于预设的内存大小,对所述基础数据进行分片处理,得到分片数据,并对每个所述分片数据进行顺序编号;
对所述虚拟节点进行顺序编号,针对每个所述分片数据,使用分片数据的顺序编号对所述虚拟节点的数量进行取余运算,得到该分片数据的编号模;
将编号模相同的分片数据分入同一个分片集合中,并将每个所述分片集合保存到与编号模一致的顺序编号对应的虚拟节点上。
3.如权利要求1所述的存储集群的负载均衡方法,其特征在于,所述确定所述每一虚拟节点对应的N组所述基础数据的角色标签,所述角色标签包括领导者角色和跟随者角色,包括:
向所述存储集群中的物理节点发送投票请求;
接收与所述投票请求对应的所述物理节点返回的投票结果;
根据所述投票结果,从所述物理节点对应的虚拟节点的N组基础数据中,选举出1组基础数据的角色标签确定为领导者角色,N-1组基础数据的角色标签确定为跟随者角色。
4.如权利要求1所述的存储集群的负载均衡方法,其特征在于,在初始迁入节点满足预设限制条件的情况下,则将所述迁出数据迁入到所述初始迁入节点中,以实现负载均衡之后,还包括:
对所述存储集群中所有物理节点进行遍历;
当所述物理节点中不存在迁出数据时,确定所述存储集群的负载达到均衡状态。
5.一种存储集群的负载均衡装置,所述存储集群中包括多个物理节点,每个物理节点包含多组基础数据,其特征在于,所述基础数据为节点服务器当前承载的数据,所述存储集群的负载均衡装置包括:
副本复制模块,用于在对存储集群进行部署时,根据所述存储集群中包含的物理节点的数目,选取预设数目的虚拟节点,分别对每个所述物理节点上的基础数据进行N副本复制,得到每一虚拟节点对应的N组基础数据,并生成虚拟节点与物理节点的映射关系表,其中,N为大于1的正整数;
数据分配模块,用于通过哈希算法将所述基础数据分配至所述虚拟节点上,并通过所述映射关系表,将映射到所述虚拟节点的所述N组基础数据存储在对应的物理节点;
均值计算模块,用于当接收到负载均衡指令时,计算所述存储集群中所有物理节点的所述基础数据的组数均值;
迁出组数确定模块,用于根据所述组数均值和每个所述物理节点中的所述基础数据的组数,确定每个物理节点中所述基础数据的迁出组数;
迁出数据确定模块,用于针对每个物理节点,根据所述迁出组数在所述基础数据中确定迁出数据;
迁入节点获取模块,用于对所述存储集群的所有物理节点对应的基础数据的组数进行比较,将基础数据的组数最小的所述物理节点作为初始迁入节点;
迁入节点检测模块,用于对所述初始迁入节点进行检测,判断所述初始迁入节点中的基础数据是否相同,在所述初始迁入节点中的基础数据相同时,排除所述初始迁入节点,得到更新后的初始迁入节点,并执行所述对所述存储集群的所有物理节点对应的基础数据的组数进行比较,将基础数据的组数最小的所述物理节点作为初始迁入节点的步骤;
负载均衡模块,用于在所述初始迁入节点中的基础数据不同时,将所述迁出数据迁入到所述初始迁入节点中,以实现负载均衡,其中,预设限制条件为所述初始迁入节点中的基础数据不同;
角色确定模块,用于确定所述每一虚拟节点对应的N组所述基础数据的角色标签,所述角色标签包括领导者角色和跟随者角色;
阈值确定模块,用于针对每个所述物理节点,根据物理节点上基础数据的组数和N的比值确定迁移阈值;
角色转换模块,用于根据角色标签为领导者角色的所述基础数据的组数、角色标签为跟随者角色的所述基础数据组数以及每个所述物理节点对应的所述迁移阈值,进行角色标签转换;
所述角色转换模块包括第一转换单元和第二转换单元,其中,
第一转换单元,用于当角色标签为领导者角色的所述基础数据的组数大于所述迁移阈值时,则将超出所述迁移阈值的角色标签为领导者角色的基础数据的角色标签转换为跟随者角色,并在所述物理节点的基础数据中选择一个基础数据并将其角色标签设置为领导者角色;
第二转换单元,用于当角色标签为领导者角色的所述基础数据的组数小于所述迁移阈值时,将角色标签为领导者角色的基础数据转移到所述物理节点上,并将该物理节点中角色标签为领导者角色的基础数据转换为跟随者角色,直到该物理节点中的角色标签为领导者角色的所述基础数据的组数满足所述迁移阈值为止。
6.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述存储集群的负载均衡方法。
7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述存储集群的负载均衡方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010355344.XA CN111580963B (zh) | 2020-04-29 | 2020-04-29 | 存储集群的负载均衡方法、装置、计算机设备及存储介质 |
PCT/CN2020/099309 WO2021217864A1 (zh) | 2020-04-29 | 2020-06-30 | 存储集群的负载均衡方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010355344.XA CN111580963B (zh) | 2020-04-29 | 2020-04-29 | 存储集群的负载均衡方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111580963A CN111580963A (zh) | 2020-08-25 |
CN111580963B true CN111580963B (zh) | 2023-07-11 |
Family
ID=72126285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010355344.XA Active CN111580963B (zh) | 2020-04-29 | 2020-04-29 | 存储集群的负载均衡方法、装置、计算机设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111580963B (zh) |
WO (1) | WO2021217864A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112118314B (zh) * | 2020-09-18 | 2023-05-05 | 北京百度网讯科技有限公司 | 负载均衡方法和装置 |
CN112463050A (zh) * | 2020-11-26 | 2021-03-09 | 新华三技术有限公司成都分公司 | 一种存储系统扩容方法、装置、设备及机器可读存储介质 |
CN112416264A (zh) * | 2020-12-11 | 2021-02-26 | 中国建设银行股份有限公司 | 数据的存储方法、装置及计算机存储介质 |
CN113382040B (zh) * | 2021-05-08 | 2022-09-13 | 深圳市科思科技股份有限公司 | 负载均衡方法、电子设备及计算机可读存储介质 |
CN116155910B (zh) * | 2023-03-29 | 2023-07-21 | 新华三技术有限公司 | 一种设备管理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105227645A (zh) * | 2015-09-15 | 2016-01-06 | 齐鲁工业大学 | 一种云数据迁移方法 |
CN107766159A (zh) * | 2017-11-13 | 2018-03-06 | 郑州云海信息技术有限公司 | 一种元数据管理方法、装置和计算机可读存储介质 |
CN110134495A (zh) * | 2019-05-21 | 2019-08-16 | 山东大学 | 一种容器跨主机在线迁移方法、存储介质及终端设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8370473B2 (en) * | 2009-12-16 | 2013-02-05 | International Business Machines Corporation | Live multi-hop VM remote-migration over long distance |
US8442955B2 (en) * | 2011-03-30 | 2013-05-14 | International Business Machines Corporation | Virtual machine image co-migration |
CN102571986B (zh) * | 2012-02-27 | 2014-05-21 | 浙江大学 | 一种基于向量映射的负载均衡方法 |
CN106897116A (zh) * | 2017-02-27 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种虚拟机迁移方法及装置 |
-
2020
- 2020-04-29 CN CN202010355344.XA patent/CN111580963B/zh active Active
- 2020-06-30 WO PCT/CN2020/099309 patent/WO2021217864A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105227645A (zh) * | 2015-09-15 | 2016-01-06 | 齐鲁工业大学 | 一种云数据迁移方法 |
CN107766159A (zh) * | 2017-11-13 | 2018-03-06 | 郑州云海信息技术有限公司 | 一种元数据管理方法、装置和计算机可读存储介质 |
CN110134495A (zh) * | 2019-05-21 | 2019-08-16 | 山东大学 | 一种容器跨主机在线迁移方法、存储介质及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111580963A (zh) | 2020-08-25 |
WO2021217864A1 (zh) | 2021-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111580963B (zh) | 存储集群的负载均衡方法、装置、计算机设备及存储介质 | |
US10592159B2 (en) | Processing device configured for data integrity testing utilizing replicated test metadata file | |
US20220158953A1 (en) | Distributed stream-based database triggers | |
US11055014B2 (en) | Storage system providing automatic configuration updates for remote storage objects in a replication process | |
US9052824B2 (en) | Content addressable stores based on sibling groups | |
US20240061812A1 (en) | Metadata control in a load-balanced distributed storage system | |
US20200349113A1 (en) | File storage method, deletion method, server and storage medium | |
CN109933312B (zh) | 一种有效降低容器化关系型数据库i/o消耗的方法 | |
US10866969B2 (en) | Storage system with loopback replication process providing unique identifiers for collision-free object pairing | |
CN112565325A (zh) | 镜像文件管理方法、装置及系统、计算机设备、存储介质 | |
CN113377868A (zh) | 一种基于分布式kv数据库的离线存储系统 | |
CN109325026B (zh) | 基于大数据平台的数据处理方法、装置、设备及介质 | |
CN110321225B (zh) | 负载均衡方法、元数据服务器及计算机可读存储介质 | |
Wang | Ying | |
US11954362B2 (en) | Flash registry with on-disk hashing | |
CN107943615B (zh) | 基于分布式集群的数据处理方法与系统 | |
US20190020716A1 (en) | Method and system for recovering data in distributed computing system | |
US10180801B2 (en) | Systems and methods for load balancing backup data | |
CN116594734A (zh) | 容器迁移方法、装置、存储介质及电子设备 | |
US11429493B2 (en) | Remote rollback of snapshots for asynchronous replication | |
US11269855B2 (en) | On-demand remote snapshot creation for a synchronous replication session in automatic recovery | |
CN113946542A (zh) | 数据处理方法以及装置 | |
CN112685130A (zh) | 分布式存储环境下的虚拟机备份方法、装置和存储介质 | |
WO2021254047A1 (zh) | 分布式数据库重分布的实现方法、数据库、服务器及介质 | |
US20230195579A1 (en) | Peer Recovery From Remote Storage |
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 |