CN112286560B - 一种分布式存储集群自动部署升级的方法及系统 - Google Patents
一种分布式存储集群自动部署升级的方法及系统 Download PDFInfo
- Publication number
- CN112286560B CN112286560B CN202011596290.2A CN202011596290A CN112286560B CN 112286560 B CN112286560 B CN 112286560B CN 202011596290 A CN202011596290 A CN 202011596290A CN 112286560 B CN112286560 B CN 112286560B
- Authority
- CN
- China
- Prior art keywords
- cluster
- task
- server
- deployment
- model
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Abstract
本发明公开了一种分布式存储集群自动部署升级的方法及系统,属于计算机技术领域,能够解决现有分布式存储集群的部署升级依靠人力而导致的低效易错、成本较高的问题。所述方法包括:对目标集群和其上的部署任务或升级任务进行建模,获得模型文件;对模型文件进行编译,生成目标集群中各节点上的配置脚本;将模型文件和配置脚本提交至第一服务器,第一服务器触发第二服务器上的部署升级任务;利用第二服务器执行部署升级任务;其中,部署升级任务为利用配置工具逐个登录到目标集群中各节点执行节点的配置脚本;根据第二服务器的执行结果,向用户端发送反馈信息。本发明用于分布式存储集群的自动部署升级。
Description
技术领域
本发明涉及一种分布式存储集群自动部署升级的方法及系统,属于计算机技术领域。
背景技术
计算、网络、存储是云计算平台提供的三大基础服务,分布式存储集群是为云计算平台提供云存储服务的主要后台系统,其部署升级及运维非常复杂,涉及硬件、软件的许多方面。
目前对于分布式存储集群的部署升级及运维,很多情况下还是靠运维人员手工进行,这样会存在以下问题:(1)手工操作容易出错;(2)配置操作繁琐重复,在集群规模超过3个节点以后,手工操作的工作量巨大;(3)手工操作效率低,开发迭代速率慢;(4)不能无人干预自动进行。
发明内容
本发明提供了一种分布式存储集群自动部署升级的方法及系统,能够解决现有分布式存储集群的部署升级依靠人力而导致的低效易错、成本较高的问题。
一方面,本发明提供了一种分布式存储集群自动部署升级的方法,所述方法包括:对目标集群和其上的部署任务或升级任务进行建模,获得模型文件;对所述模型文件进行编译,生成所述目标集群中各节点上的配置脚本;将所述模型文件和所述配置脚本提交至第一服务器,所述第一服务器触发第二服务器上的部署升级任务;利用所述第二服务器执行所述部署升级任务;其中,所述部署升级任务为利用配置工具逐个登录到所述目标集群中各节点执行所述节点的配置脚本;根据所述第二服务器的执行结果,向用户端发送反馈信息。
可选的,所述根据所述第二服务器的执行结果,向用户端发送反馈信息,具体包括:若节点的配置脚本执行失败,则停止执行剩余配置脚本,回退所有已执行的配置脚本,并向用户端发送任务失败信息;若所有节点的配置脚本均成功执行,则生成新部集群,并判断所述新部集群是否达到模型要求的集群状态;若所述新部集群未达到模型要求的集群状态,则回退所述部署升级任务,并向用户端发送请求干预信息;若所述新部集群达到模型要求的集群状态,则向用户端发送任务成功信息。
可选的,所述第一服务器为Gerrit服务器;所述第二服务器为Jenkins服务器;所述将所述模型文件和所述配置脚本提交至第一服务器,具体为:利用Git命令将所述模型文件和所述配置脚本提交至Gerrit服务器。
可选的,所述对目标集群和其上的部署任务或升级任务进行建模,获得模型文件,具体为:利用描述性建模语言对目标集群和其上的部署任务或升级任务进行建模,获得模型文件;所述对所述模型文件进行编译,生成所述目标集群中各节点上的配置脚本,具体为:利用所述描述性建模语言对所述模型文件进行编译,生成所述目标集群中各节点上的配置脚本。
可选的,所述描述性建模语言包括cluster关键字、node关键字、service关键字、package关键字、container关键字和file关键字;所述cluster关键字用于定义集群;所述node关键字用于定义集群内的节点;所述service关键字用于节点内的后台服务;所述package关键字用于定义节点内的软件包;所述container关键字用于定义节点内的容器;所述file关键字用于定义节点内文件系统的文件;其中,所述cluster关键字包括类型参数,所述类型参数包含多个参数值,每个所述参数值对应一种业务集群。
可选的,在所述对目标集群和其上的部署任务或升级任务进行建模,获得模型文件之后,所述方法还包括:检查所述模型文件中模型参数的合法性、完备性和无矛盾性。
可选的,所述判断所述新部集群是否达到模型要求的集群状态,具体为:利用分布式存储集群管理命令判断所述新部集群是否达到模型要求的集群状态。
可选的,所述向用户端发送任务失败信息、请求干预信息或任务成功信息,具体为:通过GUI界面、邮件、短信或微信的方式向用户端发送任务失败信息、请求干预信息或任务成功信息。
可选的,所述方法还包括:记录并存储所述部署升级任务执行过程的日志信息。
另一方面,本发明提供了一种应用上述任一种所述的分布式存储集群自动部署升级的方法的系统,所述系统包括:建模单元,用于对目标集群和其上的部署任务或升级任务进行建模,获得模型文件;编译单元,用于对所述模型文件进行编译,生成所述目标集群中各节点上的配置脚本;提交单元,用于将所述模型文件和所述配置脚本提交至第一服务器,所述第一服务器触发第二服务器上的部署升级任务;执行单元,用于利用所述第二服务器执行所述部署升级任务;其中,所述部署升级任务为利用配置工具逐个登录到所述目标集群中各节点执行所述节点的配置脚本;反馈单元,用于根据所述第二服务器的执行结果,向用户端发送反馈信息。
本发明能产生的有益效果包括:
本发明提供的分布式存储集群自动部署升级的方法,通过在配置工具之上加了一个抽象层,即模型层,运维人员看到的不再是配置工具,而是模型层提供的对分布式存储集群的抽象层,可以直接看到各种业务集群、业务服务、业务软件包等存储集群业务层的对象,这些业务对象在通用的配置工具中是没有相应概念的。有了模型层之后,运维人员不再需要编写繁琐的与配置工具紧耦合的配置脚本,而是可以直接对存储业务问题域进行建模,设计编写分布式存储集群及其部署升级操作的模型。模型编译程序会自动适配具体的配置工具,自动生成与配置工具相适应的配置脚本;由于不需要人工部署升级,因而效率较高,且成本较低。同时,在部署升级模型层隔离了部署升级实现层的具体细节之后,自动部署升级软件设计开发人员可以聚焦存储业务层的部署升级逻辑,特别是分布式存储软件的不同版本间的部署升级逻辑,实现对不同版本的自动适配处理,从而做到自动部署升级分布式存储软件的任一版本。
附图说明
图1为本发明实施例提供的分布式存储集群自动部署升级的方法流程图;
图2为本发明实施例提供的分布式存储集群自动部署升级系统组成模块图;
图3为本发明实施例提供的分布式存储集群自动部署方法流程图;
图4为本发明实施例提供的分布式存储集群自动升级方法流程图。
具体实施方式
下面结合实施例详述本发明,但本发明并不局限于这些实施例。
本发明实施例提供了一种分布式存储集群自动部署升级的方法,如图1至4所示,所述方法包括:
步骤11、对目标集群和其上的部署任务或升级任务进行建模,获得模型文件。其中,建模可以使用GUI或直接编辑模型文件两种方式进行。
具体的,存储集群运维人员可以使用描述性建模语言对目标集群和其上的部署任务或升级任务进行建模,获得模型文件。
其中,所述描述性建模语言可以包括cluster关键字、node关键字、service关键字、package关键字、container关键字和file关键字;cluster关键字用于定义集群;node关键字用于定义集群内的节点;service关键字用于节点内的后台服务;package关键字用于定义节点内的软件包;container关键字用于定义节点内的容器;file关键字用于定义节点内文件系统的文件;其中,cluster关键字包括类型参数,类型参数包含多个参数值,每个参数值对应一种业务集群。
步骤12、对模型文件进行编译,生成目标集群中各节点上的配置脚本。
具体的,部署升级核心模块可以利用描述性建模语言对模型文件进行编译,生成目标集群中各节点上的配置脚本。
步骤13、将模型文件和配置脚本提交至第一服务器,第一服务器触发第二服务器上的部署升级任务。其中,第一服务器可以为Gerrit服务器;第二服务器可以为Jenkins服务器。
具体的,部署升级核心模块可以使用系统内置Git命令将模型文件和配置脚本提交进系统内置Gerrit服务器管理的模型仓库,Gerrit服务器触发系统内置Jenkins服务器上的一个部署升级任务。
步骤14、利用第二服务器执行部署升级任务;其中,部署升级任务为利用配置工具逐个登录到目标集群中各节点执行节点的配置脚本。
具体的,系统内置Jenkins服务器执行该部署升级任务,即使用配置工具逐个登录到集群各节点执行该节点的配置脚本。
步骤15、根据第二服务器的执行结果,向用户端发送反馈信息。
本发明通过引入分布式存储集群及其部署升级方法的描述性建模语言,并用模型来驱动控制分布式存储系统自动部署升级过程中的各个环节,使得运维人员无须再关心任务执行层的细节,专注于存储业务层的部署升级逻辑,自动部署升级系统也能简洁优雅地支持分布式存储软件的不同版本;另一个是集成Git、Gerrit、Jenkins等开源工具来管理部署升级模型及其任务的执行,显著简化了系统,加快了系统开发速度,提高了系统的易用性。
进一步的,根据第二服务器的执行结果,向用户端发送反馈信息,具体包括:
若节点的配置脚本执行失败,则停止执行剩余配置脚本,回退所有已执行的配置脚本,并向用户端发送任务失败信息;
若所有节点的配置脚本均成功执行,则生成新部集群,并判断新部集群是否达到模型要求的集群状态;
若新部集群未达到模型要求的集群状态,则回退部署升级任务,并向用户端发送请求干预信息;
若新部集群达到模型要求的集群状态,则向用户端发送任务成功信息。
其中,向用户端发送任务失败信息、请求干预信息或任务成功信息,具体为:通过GUI界面、邮件、短信或微信的方式向用户端发送任务失败信息、请求干预信息或任务成功信息。
具体的,Jenkins服务器执行该部署升级任务时,若有节点的配置脚本执行失败,部署升级任务则会停止执行剩余配置脚本,并回退所有已执行配置脚本,通过GUI界面、邮件、短信、微信等方式向运维人员报告部署升级任务失败,整个过程结束。
若部署升级任务在成功执行完所有节点上的配置脚本后,进行部署升级后处理,主要是使用分布式存储集群管理命令检查验证新部集群是否已经达到模型要求的集群状态。
若集群状态没有达到模型要求的状态,则部署升级任务会通过GUI界面、邮件、短信、微信等方式向运维人员请求人工干预,人工干预可以手工解决集群问题,也可以回退掉整个部署升级任务,整个过程结束。
若集群状态已达到模型要求的状态,则部署升级任务成功完成,通过GUI界面、邮件、短信、微信等方式向运维人员报告任务成功消息。
在本发明实施例中,在对目标集群和其上的部署任务或升级任务进行建模,获得模型文件之后,所述方法还包括:
检查模型文件中模型参数的合法性、完备性和无矛盾性。
具体的,存储集群运维人员将模型文件提交给部署升级核心模块,部署升级核心模块检查部署参数的合法性、完备性和无矛盾性。
在实际应用中,所述方法还包括:
记录并存储部署升级任务执行过程的日志信息。
具体的,无论部署升级任务是成功还是失败,系统内置Jenkins服务器会自动记录和持久化整个部署升级任务执行过程的日志信息到文件里,这样运维人员可以随时方便查阅。
本发明使用Git和Gerrit来管理模型文件及其编译生成的配置脚本,这样可以直接提供模型及其配置脚本的历史版本的存储和随时提取使用;方便实现模型的评审,且方便实现模型的编译和验证。
本发明使用Jenkins开源工具管理自动部署升级任务,可以直接提供自动部署升级任务的执行过程日志的查看和持久化;方便与Gerrit集成以实现模型从提交到部署的全流程的自动化;同时具备多工作机并发执行自动部署升级任务的能力,加快部署升级过程;并且具备优秀的扩展能力,能够较好地适应系统未来的功能扩展。
本发明另一实施例提供一种应用上述任一种所述的分布式存储集群自动部署升级的方法的系统,所述系统包括:
建模单元,用于对目标集群和其上的部署任务或升级任务进行建模,获得模型文件;
编译单元,用于对模型文件进行编译,生成目标集群中各节点上的配置脚本;
提交单元,用于将模型文件和配置脚本提交至第一服务器,第一服务器触发第二服务器上的部署升级任务;
执行单元,用于利用第二服务器执行部署升级任务;其中,部署升级任务为利用配置工具逐个登录到目标集群中各节点执行节点的配置脚本;
反馈单元,用于根据第二服务器的执行结果,向用户端发送反馈信息。
上述系统中各个单元的具体描述可以参考方法中对每个步骤的描述,在此不再赘述,上述系统可以实现与方法侧同样的功能。
以上所述,仅是本申请的几个实施例,并非对本申请做任何形式的限制,虽然本申请以较佳实施例揭示如上,然而并非用以限制本申请,任何熟悉本专业的技术人员,在不脱离本申请技术方案的范围内,利用上述揭示的技术内容做出些许的变动或修饰均等同于等效实施案例,均属于技术方案范围内。
Claims (10)
1.一种分布式存储集群自动部署升级的方法,其特征在于,所述方法包括:
在模型层上对目标集群和其上的部署任务或升级任务进行建模,获得模型文件;
在所述模型层上对所述模型文件进行编译,生成所述目标集群中各节点上的配置脚本;
在所述模型层上将所述模型文件和所述配置脚本提交至第一服务器,所述第一服务器触发第二服务器上的部署升级任务;
利用所述第二服务器执行所述部署升级任务;其中,所述部署升级任务为利用配置工具逐个登录到所述目标集群中各节点执行所述节点的配置脚本;
根据所述第二服务器的执行结果,向用户端发送反馈信息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第二服务器的执行结果,向用户端发送反馈信息,具体包括:
若节点的配置脚本执行失败,则停止执行剩余配置脚本,回退所有已执行的配置脚本,并向用户端发送任务失败信息;
若所有节点的配置脚本均成功执行,则生成新部集群,并判断所述新部集群是否达到所述模型层上预设的模型要求的集群状态;
若所述新部集群未达到所述模型层上预设的模型要求的集群状态,则回退所述部署升级任务,并向用户端发送请求干预信息;
若所述新部集群达到所述模型层上预设的模型要求的集群状态,则向用户端发送任务成功信息。
3.根据权利要求1所述的方法,其特征在于,所述第一服务器为Gerrit服务器;所述第二服务器为Jenkins服务器;
所述将所述模型文件和所述配置脚本提交至第一服务器,具体为:
利用Git命令将所述模型文件和所述配置脚本提交至Gerrit服务器。
4.根据权利要求1所述的方法,其特征在于,所述在模型层上对目标集群和其上的部署任务或升级任务进行建模,获得模型文件,具体为:
在模型层上利用描述性建模语言对目标集群和其上的部署任务或升级任务进行建模,获得模型文件;
所述在所述模型层上对所述模型文件进行编译,生成所述目标集群中各节点上的配置脚本,具体为:
在所述模型层上利用所述描述性建模语言对所述模型文件进行编译,生成所述目标集群中各节点上的配置脚本。
5.根据权利要求4所述的方法,其特征在于,所述描述性建模语言包括cluster关键字、node关键字、service关键字、package关键字、container关键字和file关键字;
所述cluster关键字用于定义集群;所述node关键字用于定义集群内的节点;所述service关键字用于节点内的后台服务;所述package关键字用于定义节点内的软件包;所述container关键字用于定义节点内的容器;所述file关键字用于定义节点内文件系统的文件;
其中,所述cluster关键字包括类型参数,所述类型参数包含多个参数值,每个所述参数值对应一种业务集群。
6.根据权利要求1所述的方法,其特征在于,在所述在模型层上对目标集群和其上的部署任务或升级任务进行建模,获得模型文件之后,所述方法还包括:
在所述模型层上检查所述模型文件中模型参数的合法性、完备性和无矛盾性。
7.根据权利要求2所述的方法,其特征在于,所述判断所述新部集群是否达到所述模型层上预设的模型要求的集群状态,具体为:
利用分布式存储集群管理命令判断所述新部集群是否达到所述模型层上预设的模型要求的集群状态。
8.根据权利要求2所述的方法,其特征在于,所述向用户端发送任务失败信息、请求干预信息或任务成功信息,具体为:
通过GUI界面、邮件、短信或微信的方式向用户端发送任务失败信息、请求干预信息或任务成功信息。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
记录并存储所述部署升级任务执行过程的日志信息。
10.一种应用权利要求1至9中任一项所述的分布式存储集群自动部署升级的方法的系统,其特征在于,所述系统包括:
建模单元,用于在模型层上对目标集群和其上的部署任务或升级任务进行建模,获得模型文件;
编译单元,用于在所述模型层上对所述模型文件进行编译,生成所述目标集群中各节点上的配置脚本;
提交单元,用于在所述模型层上将所述模型文件和所述配置脚本提交至第一服务器,所述第一服务器触发第二服务器上的部署升级任务;
执行单元,用于利用所述第二服务器执行所述部署升级任务;其中,所述部署升级任务为利用配置工具逐个登录到所述目标集群中各节点执行所述节点的配置脚本;
反馈单元,用于根据所述第二服务器的执行结果,向用户端发送反馈信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011596290.2A CN112286560B (zh) | 2020-12-30 | 2020-12-30 | 一种分布式存储集群自动部署升级的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011596290.2A CN112286560B (zh) | 2020-12-30 | 2020-12-30 | 一种分布式存储集群自动部署升级的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112286560A CN112286560A (zh) | 2021-01-29 |
CN112286560B true CN112286560B (zh) | 2021-04-23 |
Family
ID=74426280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011596290.2A Active CN112286560B (zh) | 2020-12-30 | 2020-12-30 | 一种分布式存储集群自动部署升级的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286560B (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103997506A (zh) * | 2013-02-19 | 2014-08-20 | 成都勤智数码科技股份有限公司 | 适于软件系统的自动部署升级系统 |
CN108549580B (zh) * | 2018-03-30 | 2023-04-14 | 平安科技(深圳)有限公司 | 自动部署Kubernetes从节点的方法及终端设备 |
CN110377314B (zh) * | 2019-07-19 | 2022-12-23 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统的系统升级方法、装置、设备及介质 |
-
2020
- 2020-12-30 CN CN202011596290.2A patent/CN112286560B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112286560A (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10216509B2 (en) | Continuous and automatic application development and deployment | |
US7735080B2 (en) | Integrated system and method for the management of a complete end-to-end software delivery process | |
Delaet et al. | A survey of system configuration tools | |
US9830145B2 (en) | Systems and methods for infrastructure and middleware provisioning | |
US11138097B2 (en) | Automated web testing framework for generating and maintaining test scripts | |
CN111324522A (zh) | 一种自动化测试系统及方法 | |
US20160179570A1 (en) | Parallel Computing Without Requiring Antecedent Code Deployment | |
US11816499B2 (en) | Transition manager system | |
CN113127009A (zh) | 大数据管理平台的自动化部署方法和装置 | |
CN110727575B (zh) | 一种信息处理方法、系统、装置、以及存储介质 | |
Chen et al. | MORE: A model-driven operation service for cloud-based IT systems | |
CN112286560B (zh) | 一种分布式存储集群自动部署升级的方法及系统 | |
EP3683675A1 (en) | System, apparatus and method of integrated deployment | |
US20230393825A1 (en) | Automated software deployment techniques | |
CN114265595B (zh) | 一种基于智能合约的云原生应用开发与部署系统和方法 | |
US20230083195A1 (en) | Modification of a dockerfile to repair vulnerabilities existing in the dockerfile | |
CN108874509A (zh) | 一种精简的虚拟器件生成和部署方法 | |
CN112783653A (zh) | 基于容器化的资源调度方法及装置 | |
CN113687927A (zh) | Flume任务调度配置方法、装置、设备及存储介质 | |
CN113448656A (zh) | 基于Ansible的在线脚本执行方法及装置 | |
CN110447011B (zh) | 开发操作支持系统、开发管理服务器、操作管理服务器及其方法以及存储有其程序的非暂时性计算机可读介质 | |
CN111352637B (zh) | 部署机器学习系统的方法、装置及设备 | |
KR102602534B1 (ko) | 시스템 온 칩 설계 검증을 위한 테스트 자동화 시스템 및 방법 | |
CN110187888A (zh) | 一种Pod发布方法、存储介质、电子设备及系统 | |
US20240134626A1 (en) | Artificial intelligence (ai) supported graph enabled method to manage upgrades for applications |
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 |