CN112925852B - 一种分布式数据库指定节点缩容方法 - Google Patents

一种分布式数据库指定节点缩容方法 Download PDF

Info

Publication number
CN112925852B
CN112925852B CN202110233661.9A CN202110233661A CN112925852B CN 112925852 B CN112925852 B CN 112925852B CN 202110233661 A CN202110233661 A CN 202110233661A CN 112925852 B CN112925852 B CN 112925852B
Authority
CN
China
Prior art keywords
pod
stateful
capacity reduction
node
persistent storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110233661.9A
Other languages
English (en)
Other versions
CN112925852A (zh
Inventor
夏博涵
储佳祥
张士威
陈善君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202110233661.9A priority Critical patent/CN112925852B/zh
Publication of CN112925852A publication Critical patent/CN112925852A/zh
Application granted granted Critical
Publication of CN112925852B publication Critical patent/CN112925852B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及云技术平台领域,具体提供了一种分布式数据库指定节点缩容方法,其特征在于,通过修改statefulset的级联属性以及管理数据库节点pod的持久存储卷,完成指定数据库节点的数据迁移并缩容。与现有技术相比,本发明通过修改kubernetes的配置以及对于数据库pod的存储管理,解决了将任意一个分布式数据库节点缩容的需求,具有良好的推广价值。

Description

一种分布式数据库指定节点缩容方法
技术领域
本发明涉及云技术平台领域,具体提供一种分布式数据库指定节点缩容方法。
背景技术
Kubernetes是一个开源的、用于管理云平台中多个主机上的容器化的应用,它提供了应用部署、规划、更新、维护的一种机制,让部署容器化的应用简单并且高效。Kubernetes是通过部署容器方式实现的,每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。
在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。Pod指的是Kubernetes集群中的应用负载,pod运行在节点上。Pod由一个或者多个容器组成,它们共享容器存储、网络和容器运行配置项。Pod中的容器总是被同时调度,有共同的运行环境。StatefulSet保证了在所有时间内,都有特定数量的Pod副本正在运行,且这些Pod应用提供了有状态的服务。Kubernetes可以对其中被管理的容器化应用的副本数,根据容器内CPU或内存的使用量,自动进行增加或减少,从而实现扩容或缩容的调度。
在现有技术中,使用Kubernetes对分布式数据库节点缩容时,只支持缩容索引最大的数据库节点。
发明内容
本发明是针对上述现有技术的不足,提供一种实用性强的分布式数据库指定节点缩容方法。
本发明解决其技术问题所采用的技术方案是:
一种分布式数据库指定节点缩容方法,通过修改statefulset的级联属性以及管理数据库节点pod的持久存储卷,完成指定数据库节点的数据迁移并缩容。
进一步的,具体的步骤为:
S1、将分布式数据库节点部署在pod中;
S2、判断卸载pod后分布式数据库节点的数量;
S3、判断pod是否持有statefulset中最大的索引号;
S4、完成指定节点缩容操作。
进一步的,在步骤S1中,在Kubernetes集群中,pod是应用负载,将每一个分布式数据库节点部署在一个pod中,并用Statefulset统一管理这些pod。
进一步的,在步骤S2中,首先通过服务器的IP找到当前机器上部署的所有pod,判断卸载掉这些pod后,分布式数据库节点的数量。
作为优选,判断卸载pod后,分布式数据库节点的数量是否不少于3个,如果满足则继续缩容,否则重新选择要缩容的数据库节点。
进一步的,在步骤S3中,如果有多个数据库节点要缩容,每次也只执行一个数据库节点的缩容流程,并重复这个步骤直到所有节点完成缩容。
对筛选出的pod,首先查找它们在数据库中对应的节点ID,将这些数据库节点上的数据执行迁移操作。
进一步的,迁移完成后,判断pod是否持有statefulset中最大的索引号,若是,则直接修改statefulset中的replica数量完成缩容。
进一步的,若pod没有持有statefulset中最大的索引号,则关闭statefulset的级联属性,删除要缩容的pod,并删除该pod对应的持久存储卷和持久存储。
进一步的,在步骤S4中,删除statefulset中索引最大的pod,并删除其持久存储卷,但保留持久存储,通过修改持久存储字段中的claimRef字段,将持久存储置为available状态;
在这种情况下,修改statefulset中的replica数量,被删除持久存储卷和持久存储将匹配到available的持久存储,kubernetes检测到后会重启这个pod,完成指定节点缩容的操作。
本发明的一种分布式数据库指定节点缩容方法和现有技术相比,具有以下突出的有益效果:
本发明通过修改kubernetes的配置以及对于数据库pod的存储管理,解决了将任意一个分布式数据库节点缩容的需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1是一种分布式数据库指定节点缩容方法的流程示意图。
具体实施方式
为了使本技术领域的人员更好的理解本发明的方案,下面结合具体的实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本发明保护的范围。
下面给出一个最佳实施例:
如图1所示,本实施例中的一种分布式数据库指定节点缩容方法,通过修改statefulset的级联属性以及管理数据库节点pod的持久存储卷,完成指定数据库节点的数据迁移并缩容。
具体的步骤为:
S1、将分布式数据库节点部署在pod中:
在Kubernetes集群中,pod是其中的应用负载,我们将每一个分布式数据库节点部署在一个pod中,并用Statefulset统一管理这些pod,它保证了在所有时间内,都有指定数量的pod副本在运行,而pod中的数据库节点提供了有状态的数据库服务。
S2、判断卸载pod后分布式数据库节点的数量:
在数据库的运维中,可能会出现要对指定机器上的数据库节点缩容的需求,通过服务器的IP找出当前机器上部署的所有pod,首先做一个判断,在假定卸载掉这些pod后,分布式数据库节点的数量是否不少于3个,这是分布式数据库可以正常提供服务的最少节点数量。如果满足则继续缩容步骤,否则重新选择要缩容的数据库节点。
S3、判断pod是否持有statefulset中最大的索引号:
如果有多个数据库节点要缩容,每次也只执行一个数据库节点的缩容流程,并重复这个步骤直到所有节点完成缩容。对于上一步中筛选出来的pod,首先查找到它们在数据库中对应的节点id,将这些数据库节点上的数据执行迁移操作。数据迁移完成后,判断该pod是否持有statefulset中最大的索引号,如果是则直接修改statefulset中的replica(副本)数量完成缩容,否则执行以下操作:
关闭statefulset的级联属性(cascade=false),这样删除pod后,kubernetes就不会再将pod重启。删除要缩容的pod,并删除该pod对应的持久存储卷(pvc)和持久存储(pv)。PersistentVolume(PV)是集群中由管理员配置的一段存储。它是集群中的资源,但其生命周期独立于使用PV的任何单个pod。PersistentVolumeClaim(PVC)是由用户进行存储的请求。它类似于pod。Pod消耗节点资源,PVC消耗PV资源。
S4、完成指定节点缩容操作:
然后删除statefulset中索引最大的pod,并删除其pvc但保留pv。通过修改pv字段中的claimRef字段,将pv置为available状态。在这种情况下,修改statefulset中的replica数量,被删除pvc和pv的pod将匹配到上一步available的pv,kubernetes检测到后会重启这个pod,完成指定节点缩容的操作。
例如,我们部署一个5节点的数据库集群,每台服务器上部署一个pod,由Statefulset管理这5个节点,并分别命名为ZNBase-0,ZNBase-1,ZNBase-2,ZNBase-3和ZNBase-4。
在现有技术中,使用Kubernetes将分布式数据库部署在云上时,对于数据库这种有状态的应用,我们只能通过修改StatefulSet中的副本数来缩容索引最大的数据库节点(也就是命名为ZNBase-4的pod)。但是,在实际的部署运维中,有对指定的数据库节点缩容的使用需求(例如,有缩容ZNBase-2的需求)。
使用上文中的5节点数据库集群对缩容流程做进一步讲解。
假设现在对ZNBase-2的这个pod进行缩容,首先在数据库中执行一个SQL语句,找到这个数据库节点对应的id(假设id为3),然后对id为3的数据库节点进行数据迁移,将这个节点上的副本全部迁移到其他节点上。数据迁移完成后,判断此pod是否持有statefulset中最大的索引号,在我们的假设中,该pod持有的索引号为2并不是4,因此执行以下操作:
关闭statefulset的级联属性后,删除ZNBase-2这个pod,并且删除此pod对应的持久存储卷(datadir-ZNBase-2)和持久存储(pv-ZNBase-2)。然后再删除statefulset中索引最大的pod(ZNBase-4),并删除其持久存储卷(datadir-ZNBase-4)但保留其持久存储(pv-ZNBase-4)。通过修改pv-ZNBase-4字段中的claimRef字段,将其置为available状态。最后,修改statefulset中的replica数量,即将5修改为4。这样的话,原名为ZNBase-2的pod将匹配到上一步available的持久存储(即pv-ZNBase-4),Kubernetes检测到后会重启这个pod,完成指定节点缩容的操作。
总体上来说,我们的目的是将ZNBase-2和ZNBase-4的这两个pod的名称互换,然后再将持有最大索引号的pod(ZNBase-4)删除掉,完成任意数据库节点缩容的目的。在此过程中,需要修改默认的statefulset级联属性以及持久存储中的claimRef字段来支持缩容操作。
上述具体的实施方式仅是本发明具体的个案,本发明的专利保护范围包括但不限于上述具体的实施方式,任何符合本发明的一种分布式数据库指定节点缩容方法权利要求书的且任何所述技术领域普通技术人员对其做出的适当变化或者替换,皆应落入本发明的专利保护范围。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (5)

1.一种分布式数据库指定节点缩容方法,其特征在于,通过修改statefulset的级联属性以及管理数据库节点pod的持久存储卷,完成指定数据库节点的数据迁移并缩容,
具体的步骤为:
S1、在Kubernetes集群中,将分布式数据库节点部署在pod中;
S2、判断卸载pod后分布式数据库节点的数量;
S3、判断pod是否持有statefulset中最大的索引号:
对筛选出的pod,首先查找它们在数据库中对应的节点ID,将这些数据库节点上的数据执行迁移操作;
迁移完成后,判断pod是否持有statefulset中最大的索引号,若是,则直接修改statefulset中的replica数量完成缩容;
若pod没有持有statefulset中最大的索引号,则关闭statefulset的级联属性,删除要缩容的pod,并删除该pod对应的持久存储卷和持久存储;
S4、完成指定节点缩容操作。
2.根据权利要求1所述的一种分布式数据库指定节点缩容方法,其特征在于,在步骤S1中,在Kubernetes集群中,pod是应用负载,将每一个分布式数据库节点部署在一个pod中,并用Statefulset统一管理这些pod。
3.根据权利要求2所述的一种分布式数据库指定节点缩容方法,其特征在于,在步骤S2中,首先通过服务器的IP找到当前机器上部署的所有pod,判断卸载掉这些pod后,分布式数据库节点的数量。
4.根据权利要求3所述的一种分布式数据库指定节点缩容方法,其特征在于,判断卸载pod后,分布式数据库节点的数量是否不少于3个,如果满足则继续缩容,否则重新选择要缩容的数据库节点。
5.根据权利要求4所述的一种分布式数据库指定节点缩容方法,其特征在于,在步骤S4中,删除statefulset中索引最大的pod,并删除其持久存储卷,但保留持久存储,通过修改持久存储字段中的claimRef字段,将持久存储置为available状态;
在这种情况下,修改statefulset中的replica数量,被删除持久存储卷和持久存储将匹配到available的持久存储,kubernetes检测到后会重启这个pod,完成指定节点缩容的操作。
CN202110233661.9A 2021-03-03 2021-03-03 一种分布式数据库指定节点缩容方法 Active CN112925852B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110233661.9A CN112925852B (zh) 2021-03-03 2021-03-03 一种分布式数据库指定节点缩容方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110233661.9A CN112925852B (zh) 2021-03-03 2021-03-03 一种分布式数据库指定节点缩容方法

Publications (2)

Publication Number Publication Date
CN112925852A CN112925852A (zh) 2021-06-08
CN112925852B true CN112925852B (zh) 2022-04-12

Family

ID=76173128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110233661.9A Active CN112925852B (zh) 2021-03-03 2021-03-03 一种分布式数据库指定节点缩容方法

Country Status (1)

Country Link
CN (1) CN112925852B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114090179A (zh) * 2021-11-23 2022-02-25 北京金山云网络技术有限公司 有状态服务的迁移方法、装置及服务器

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107193504A (zh) * 2017-06-02 2017-09-22 郑州云海信息技术有限公司 一种基于Kubernetes的自动化分配和创建应用存储的方法和系统
CN109614226A (zh) * 2018-11-20 2019-04-12 武汉烽火信息集成技术有限公司 一种基于Kubernetes的有状态应用存储管理方法
CN110647318A (zh) * 2019-09-29 2020-01-03 星环信息科技(上海)有限公司 一种有状态应用的实例创建方法、装置、设备及介质
CN111177160A (zh) * 2019-11-06 2020-05-19 腾讯云计算(北京)有限责任公司 服务更新方法、装置、服务器及介质
CN111352717A (zh) * 2020-03-24 2020-06-30 广西梯度科技有限公司 一种实现kubernetes自定义调度器的方法
WO2020152503A1 (en) * 2019-01-24 2020-07-30 Telefonaktiebolaget Lm Ericsson (Publ) State controller running in a kubernetes system and method for operating same
CN111651523A (zh) * 2020-05-29 2020-09-11 烽火通信科技股份有限公司 一种Kubernetes容器平台的MySQL数据同步方法及系统
CN111783102A (zh) * 2020-06-30 2020-10-16 福建健康之路信息技术有限公司 一种安全驱逐Kubernetes集群中节点的方法和存储设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10963349B2 (en) * 2017-08-25 2021-03-30 Vmware, Inc. Containerized application snapshots
US10540208B2 (en) * 2017-12-22 2020-01-21 Red Hat, Inc. Allocating computing resources to a container in a computing environment
US11023393B2 (en) * 2019-05-06 2021-06-01 International Business Machines Corporation Connectivity type detection using a transport protocol and command protocol of the data storage system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107193504A (zh) * 2017-06-02 2017-09-22 郑州云海信息技术有限公司 一种基于Kubernetes的自动化分配和创建应用存储的方法和系统
CN109614226A (zh) * 2018-11-20 2019-04-12 武汉烽火信息集成技术有限公司 一种基于Kubernetes的有状态应用存储管理方法
WO2020152503A1 (en) * 2019-01-24 2020-07-30 Telefonaktiebolaget Lm Ericsson (Publ) State controller running in a kubernetes system and method for operating same
CN110647318A (zh) * 2019-09-29 2020-01-03 星环信息科技(上海)有限公司 一种有状态应用的实例创建方法、装置、设备及介质
CN111177160A (zh) * 2019-11-06 2020-05-19 腾讯云计算(北京)有限责任公司 服务更新方法、装置、服务器及介质
CN111352717A (zh) * 2020-03-24 2020-06-30 广西梯度科技有限公司 一种实现kubernetes自定义调度器的方法
CN111651523A (zh) * 2020-05-29 2020-09-11 烽火通信科技股份有限公司 一种Kubernetes容器平台的MySQL数据同步方法及系统
CN111783102A (zh) * 2020-06-30 2020-10-16 福建健康之路信息技术有限公司 一种安全驱逐Kubernetes集群中节点的方法和存储设备

Also Published As

Publication number Publication date
CN112925852A (zh) 2021-06-08

Similar Documents

Publication Publication Date Title
US10496627B2 (en) Consistent ring namespaces facilitating data storage and organization in network infrastructures
CN111371696B (zh) 一种在Kubernetes中实现Pod网络流控的方法
CN105429776B (zh) 一种虚拟化网络功能管理的方法和系统
US20080168436A1 (en) System and method for matching multi-node software system provisioning requirements and capabilities using rough set theory
CA2177020A1 (en) Customer information control system and method in a loosely coupled parallel processing environment
CN112714018B (zh) 基于网关的ElasticSearch搜索服务方法、系统、介质及终端
CN112416456B (zh) 配置文件处理方法、装置、设备、存储介质和系统
CN113204353B (zh) 一种大数据平台组件部署方法及装置
US7069270B1 (en) Automated method and mechanism for converting a single instance application to a multiple instance application
CN112925852B (zh) 一种分布式数据库指定节点缩容方法
CN108733477B (zh) 数据集群化处理的方法、装置及设备
CN102243655A (zh) 一种数据库的连接管理方法及装置
US20220027201A1 (en) Resource and operation management on a cloud platform
CN108574718A (zh) 一种云主机创建方法及装置
CN112799588A (zh) 使用外部存储加载容器集群应用数据时的数据存储方法
US20240211157A1 (en) Automatic data mover selection in information processing system environment
US20230418681A1 (en) Intelligent layer derived deployment of containers
WO2020154232A1 (en) Systems and methods for acquiring server resources at schedule time
US20200250233A1 (en) Inserting datasets into database systems utilizing hierarchical value lists
CN114443057B (zh) 对话模型的部署和对话方法、装置、电子设备及存储介质
US11954069B2 (en) Find operation for union-mounted systems
CN114546591A (zh) 镜像文件共享方法、容器集群管理系统及相关设备
CN113760446A (zh) 资源调度方法、装置、设备及介质
US11768704B2 (en) Increase assignment effectiveness of kubernetes pods by reducing repetitive pod mis-scheduling
CN111338752B (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