一种数据库集群镜像节点的负载均衡方法及装置制造方法及图纸

技术编号:18674683 阅读:44 留言:0更新日期:2018-08-14 21:34
本发明专利技术涉及一种数据库集群镜像节点的负载均衡方法及装置,该方法包括:获取数据库集群的配置参数;其中,所述配置参数包括机柜数量、每个机柜的服务器数量以及每个服务器的主节点实例数量;针对所述数据库集群中的每一个机柜执行以下操作:根据所述配置参数,将当前机柜的所有主节点实例对应的镜像节点实例均匀分配到除当前机柜以外的所有其他机柜中,以实现数据库集群镜像节点的负载均衡。本发明专利技术实施例提供的技术方案,将当前机柜的主节点实例对应的镜像节点实例分散在其他不同的机柜中,即使在当前机柜出现故障的情况下,网络压力也可以分散在不同的机柜中,能够让整个集群处于负载均衡的状态。

Load balancing method and device for database cluster mirror node

The invention relates to a load balancing method and an apparatus for a mirror node of a database cluster, which comprises: acquiring configuration parameters of a database cluster; wherein the configuration parameters include the number of cabinets, the number of servers per cabinet and the number of master node instances per server; and for the database cluster, the configuration parameters include the number of cabinets, the number of servers per cabinet, and the number of master node instances per server Each cabinet performs the following operations: according to the configuration parameters, the mirror node instances corresponding to all the main node instances of the current cabinet are evenly distributed to all other cabinets except the current cabinet to achieve load balancing of the database cluster mirror node. The technical scheme provided by the embodiment of the present invention disperses the mirror node instances corresponding to the main node instances of the current cabinet in other different cabinets. Even if the current cabinet fails, the network pressure can be dispersed in different cabinets, so that the whole cluster can be in a state of load balance.

【技术实现步骤摘要】
一种数据库集群镜像节点的负载均衡方法及装置
本专利技术涉及数据库
,尤其涉及一种数据库集群镜像节点的负载均衡方法及装置。
技术介绍
Greenplum是一个关系型数据库集群,它实际上是由数个独立的数据库服务组合成的逻辑数据库。与OracleRAC的share-disking(共享磁盘)架构不同,Greenplum采用Shared-Nothing(无共享)架构,整个集群由控制节点(MasterHost)和多个数据节点(SegmentHost)组成(这里可以理解为存放数据的多台机器),其中每一个数据节点上可以运行多个数据库。Greenplum数据库集群绝大部分使用在较为廉价的X86架构的PC服务器上,这样在降低使用成本的过程中不可避免的会带来硬件故障率的提高,为了较好的规避软硬件故障导致的数据库服务的中断,Greenplum还提供数据库层的Mirror(镜像)保护机制,也就是将每一个数据库节点的数据在另外的节点中同步镜像,即在主节点(Primary)正常工作时,集群的管理者将主节点的数据时刻同步到镜像节点(Mirror),当主节点所在的数据节点出现软硬件故障而失去服务能力,镜像节点立即接管主节点的所有服务,故单个节点的故障不影响到整个系统到使用。以拥有一百台服务器集群为例:机柜与服务器摆放的规划如图1所示,由于服务器数量比较多,Greenplum数据库集群(简称GP集群)中的数据库实例的数量也会比较多,以上环境有98个数据节点,其中每一个数据节点有4个主节点实例,即分别有392个主节点实例和镜像节点实例。因此,数据库集群镜像节点的分布也需要充分考虑服务器的物理位置。为了保证数据库集群的高可用性,在一个机柜出问题后,不影响GP的可用性,数据节点Primary实例与对应的Mirror实例也分机柜部署。并且Primary实例与对应的Mirror实例以两个机柜为一组,组成互为镜像关系。每台服务器部署4个Primary实例和4个Mirror实例。Primary实例与Mirror实例分布在不同机柜的服务器上。如机柜1上所有服务器的Primary实例对应的Mirror实例均匀地分布在机柜2的所有服务器上,部署示意图如图2所示。同样,机柜2上所有服务器的Primary实例对应的Mirror实例均匀的分布在机柜1的所有服务器上。机柜1和2的部署示意图如图3所示。如图4所示,如果机柜1的某台服务器出现故障宕机,其上的4个Primary实例会由机柜2的四台服务器分别接管。即使机柜1发生整体的故障,其上的所有Primary实例都可以由机柜2的服务器接管。但是当一个机柜整体出现故障后,如机柜交换机故障,镜像机柜将要承受原设计两倍的网络压力,可能出现服务器崩溃。另外,需要人工对所有镜像节点进行人为配置,效率较低。在部署Greenplum集群的过程中,特别是大型集群,由于机器数量较多,并且存放在不同的机架之间,不同机架之间网络环境各异,因此如何更加有效设计镜像节点的分布保证在出现故障时能够让整个集群仍然处于均衡状态,成为DBA(数据库管理者)所面对的难题。
技术实现思路
本专利技术所要解决的技术问题是提供一种数据库集群镜像节点的负载均衡方法,从而解决现有技术当一个机柜整体出现故障后,镜像机柜将要承受原设计两倍的网络压力的缺陷。为此目的,本专利技术提出了一种数据库集群镜像节点的负载均衡方法,包括:获取数据库集群的配置参数;其中,所述配置参数包括机柜数量、每一个机柜的服务器数量以及每一个服务器的主节点实例数量;针对所述数据库集群中的每一个机柜执行以下操作:根据所述配置参数,将当前机柜的所有主节点实例对应的镜像节点实例均匀分配到除当前机柜以外的所有其他机柜中,以实现数据库集群镜像节点的负载均衡。可选的,所述针对数据库集群中的每一个机柜执行以下操作:根据配置参数,将当前机柜的所有主节点实例对应的镜像节点实例均匀分配到除当前机柜以外的所有其他机柜中,包括:针对每一个机柜执行以下操作:根据当前机柜的主节点实例数量以及所述机柜数量,将当前机柜的主节点实例对应的镜像节点实例均匀分配到除当前机柜以外的所有其他机柜中;针对每一个机柜执行以下操作:根据当前机柜分配的镜像节点实例的数量以及当前机柜的服务器数量,将当前机柜分配的镜像节点实例均匀分配到当前机柜不同的服务器中。可选的,所述针对每一个机柜执行以下操作:根据当前机柜的主节点实例数量以及所述机柜数量,将当前机柜的主节点实例对应的镜像节点实例均匀分配到除当前机柜以外的所有其他机柜中,包括:对所有机柜的主节点实例对应的镜像节点实例进行编号;针对每一个机柜执行以下操作:根据当前机柜的主节点实例对应的镜像节点实例的编号以及所述机柜数量,将当前机柜的所有主节点实例对应的镜像节点实例的编号均匀分配到除当前机柜以外的其他机柜中,最终得到每个机柜分配的镜像节点实例的编号数据。可选的,所述根据当前机柜的主节点实例对应的镜像节点实例的编号以及所述机柜数量,将当前机柜的所有主节点实例对应的镜像节点实例的编号均匀分配到除当前机柜以外的其他机柜中,具体采用以下哈希函数进行均匀分配:HashFunc(X)=M%(N-1)其中,X为哈希地址,代表编号M所分配到的机柜;M为当前机柜的所有主节点实例对应的镜像节点实例的编号,N为机柜数量。可选的,所述针对每一个机柜执行以下操作:根据当前机柜分配的镜像节点实例的数量以及当前机柜的服务器数量,将当前机柜分配的镜像节点实例均匀分配到当前机柜不同的服务器中,包括:针对每一个机柜执行以下操作:根据当前机柜分配的镜像节点实例的编号数据以及当前机柜的服务器数量,将当前机柜分配的镜像节点实例的编号均匀分配到当前机柜不同的服务器中,最终确定当前机柜的每个服务器分配的镜像节点实例的编号数据。可选的,所述根据当前机柜分配的镜像节点实例的编号数据以及当前机柜的服务器数量,将当前机柜分配的镜像节点实例的编号均匀分配到当前机柜不同的服务器中,具体采用以下哈希函数进行均匀分配:HashFunc(Y)=K%I其中,Y为哈希地址,代表编号K所分配到的服务器;K为当前机柜分配的镜像节点实例的编号,Y为当前机柜的服务器数量。另一方面,本专利技术实施例还提供了一种数据库集群镜像节点的负载均衡装置,包括:参数获取模块,用于获取数据库集群的配置参数;其中,所述配置参数包括机柜数量、每个机柜的服务器数量以及每个服务器的主节点实例数量;均匀分配模块,用于针对数据库集群中的每一个机柜执行以下操作:根据所述配置参数,将当前机柜的所有主节点实例对应的镜像节点实例均匀分配到除当前机柜以外的所有其他机柜中,以实现数据库集群镜像节点的负载均衡。可选的,所述均匀分配模块包括:机柜分配单元,用于针对每一个机柜执行以下操作:根据当前机柜的主节点实例数量以及所述机柜数量,将当前机柜的主节点实例对应的镜像节点实例均匀分配到除当前机柜以外的所有其他机柜中;服务器分配单元,用于针对每一个机柜执行以下操作:根据当前机柜分配的镜像节点实例的数量以及当前机柜的服务器数量,将当前机柜分配的镜像节点实例均匀分配到当前机柜不同的服务器中。可选的,所述机柜分配单元包括:编号子单元,用于对所有机柜的主节点实例对应的镜像节点实例进行编号;机柜编号分配子单元,用于针对每一个机柜执本文档来自技高网
...

【技术保护点】
1.一种数据库集群镜像节点的负载均衡方法,其特征在于,包括:获取数据库集群的配置参数;其中,所述配置参数包括机柜数量、每个机柜的服务器数量以及每个服务器的主节点实例数量;针对所述数据库集群中的每一个机柜执行以下操作:根据所述配置参数,将当前机柜的所有主节点实例对应的镜像节点实例均匀分配到除当前机柜以外的所有其他机柜中,以实现数据库集群镜像节点的负载均衡。

【技术特征摘要】
1.一种数据库集群镜像节点的负载均衡方法,其特征在于,包括:获取数据库集群的配置参数;其中,所述配置参数包括机柜数量、每个机柜的服务器数量以及每个服务器的主节点实例数量;针对所述数据库集群中的每一个机柜执行以下操作:根据所述配置参数,将当前机柜的所有主节点实例对应的镜像节点实例均匀分配到除当前机柜以外的所有其他机柜中,以实现数据库集群镜像节点的负载均衡。2.根据权利要求1所述的方法,其特征在于,所述针对数据库集群中的每一个机柜执行以下操作:根据所述配置参数,将当前机柜的所有主节点实例对应的镜像节点实例均匀分配到除当前机柜以外的所有其他机柜中,包括:针对每一个机柜执行以下操作:根据当前机柜的主节点实例数量以及所述机柜数量,将当前机柜的主节点实例对应的镜像节点实例均匀分配到除当前机柜以外的所有其他机柜中;针对每一个机柜执行以下操作:根据当前机柜分配的镜像节点实例的数量以及当前机柜的服务器数量,将当前机柜分配的镜像节点实例均匀分配到当前机柜不同的服务器中。3.根据权利要求2所述的方法,其特征在于,所述针对每一个机柜执行以下操作:根据当前机柜的主节点实例数量以及所述机柜数量,将当前机柜的主节点实例对应的镜像节点实例均匀分配到除当前机柜以外的所有其他机柜中,包括:对所有机柜的主节点实例对应的镜像节点实例进行编号;针对每一个机柜执行以下操作:根据当前机柜的主节点实例对应的镜像节点实例的编号以及所述机柜数量,将当前机柜的所有主节点实例对应的镜像节点实例的编号均匀分配到除当前机柜以外的其他机柜中,最终得到每个机柜分配的镜像节点实例的编号数据。4.根据权利要求3所述的方法,其特征在于,所述根据当前机柜的主节点实例对应的镜像节点实例的编号以及所述机柜数量,将当前机柜的所有主节点实例对应的镜像节点实例的编号均匀分配到除当前机柜以外的其他机柜中,具体采用以下哈希函数进行均匀分配:HashFunc(X)=M%(N-1)其中,X为哈希地址,代表编号M所分配到的机柜;M为当前机柜的所有主节点实例对应的镜像节点实例的编号,N为机柜数量。5.根据权利要求3所述的方法,其特征在于,所述针对每一个机柜执行以下操作:根据当前机柜分配的镜像节点实例的数量以及当前机柜的服务器数量,将当前机柜分配的镜像节点实例均匀分配到当前机柜不同的服务器中,包括:针对每一个机柜执行以下操作:根据当前机柜分配的镜像节点实...

【专利技术属性】
技术研发人员:郭远胜王滔
申请(专利权)人:中国移动通信集团公司中国移动通信集团湖南有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1