一种单机KVM虚拟化下快速部署多节点Ceph集群的方法和系统与流程

专利2022-06-29  111


本发明涉及云计算技术领域,具体地说是一种单机kvm虚拟化下快速部署多节点ceph集群的方法和系统。



背景技术:

ceph是一个分布式存储系统,诞生于2004年,最早致力于开发下一代高性能分布式文件系统的项目。经过多年的发展之后,已得到众多云计算和存储厂商的支持,成为应用最广泛的开源分布式存储平台。ceph的最底层是rados(分布式对象存储系统),它具有可靠、智能、分布式等特性,实现高可靠、高可拓展、高性能、高自动化等功能,并最终存储用户数据。

随着云计算技术的不断普及,ceph分布式存储系统作为开源存储系统的典型代表,在云计算环境下使用越来越多。ceph分布式存储系统支持多种磁盘类型能提供较好的性能、可靠性和扩展性。对于ceph相关的技术人员能快速的部署出多节点ceph集群环境进行直观的功能操作、参数调优、故障演练有比较现实的意义。目前常规部署方式通过手动创建虚拟机、手动通过ceph-deploy工具进行ceph集群部署,此种方式操作繁琐,对于没接触过ceph的技术人员操作难度较大。



技术实现要素:

本发明的技术任务是针对以上不足之处,提供一种单机kvm虚拟化下快速部署多节点ceph集群的方法和系统,可以提高ceph相关技术人员快速部署环境的效率,增强实际操作ceph和解决故障的能力。

本发明解决其技术问题所采用的技术方案是:

一种单机kvm虚拟化下快速部署多节点ceph集群的方法,该方法基于单机kvm虚拟化下,配合shell脚本和saltstack程序实现ceph多节点虚拟机的自动创建、网络配置和ceph组件的部署及测试验证;

该方法具体通过以下方式实现:

1)、制作部署需要的虚拟机镜像模板和ceph多版本程序源;

2)、定义资源类型信息并通过渲染工具生成部署模板;

3)、通过脚本程序和部署模板信息完成salt-master节点的创建;

4)、根据部署模板信息创建ceph角色节点虚拟机及完成初始配置;

5)、进行ceph组件的安装配置;

6)、对部署cpeh集群块、文件、对象三类功能进行测试验证;

7)、对已安装的ceph组件的清理或部署虚拟机的销毁清理。

ceph的核心组件包括client客户端、mon监控服务、mds元数据服务、rgw对象存储服务、osd存储服务。

saltstack是一个配置管理系统,能够维护预定义状态的远程节点(比如,确保指定的包被安装,指定的服务在运行);也是一个分布式远程执行系统,用来在远程节点(可以是单个节点,也可以是任意规则挑选出来的节点)上执行命令和查询数据。saltstack运用大量的技术和技巧:网络层使用卓越的zeromq网络类库构建,所以saltstack的守护端包含了可行的和透明的amq代理。saltstack使用公钥和master守护端认证,然后使用更快的aes负责通信加密;身份认证和加密对saltstack是不可或缺的。saltstack通过msgpack建立通信,使得速度更快并且网络流量占用少。saltstack便于扩展,saltstack执行程序可以写为纯python模块。数据从saltstack执行过程中收集到可以发送回master服务端,或者发送到任何任意程序。saltstack可以从一个简单的pythonapi调用,或者从命令行被调用,所以saltstack可以用来执行一次性命令,也可以作为一个更大的应用程序的一个组成部分。

基于单机kvm虚拟化部署多节点ceph集群相关组件节点,各个组件节点通过虚拟机镜像模板并配合元数据及saltstack实现虚拟机的创建、网络配置、磁盘配置以及组件安装配置。

该方法基于基于单机kvm虚拟化下快速部署出多节点ceph集群,通过此部署方式可以提高部署效率,并支持销毁ceph集群和多次部署ceph集群。

优选的,步骤1)中所述的虚拟机镜像模板包括salt-minion和cloud-init的基础镜像并包括ceph多版本源及salt-master程序的镜像。

优选的,对于步骤2),根据定义的ceph版本、ceph节点类型及数量、网络ip地址和osd磁盘信息生成,通过渲染工具生成ceph部署模板。

优选的,所述步骤3)通过包含salt-master及ceph源的镜像创建出的虚拟机并发布出供apt安装ceph的源。

优选的,对于步骤4),通过创建虚拟机及配置模块根据部署模板信息创建ceph角色节点虚拟机及完成初始配置,所述创建虚拟机及配置模块包括根据定义的虚拟机规格、网络ip地址及磁盘进行虚拟机创建和配置;

通过包含salt-minion的镜像,通过部署模板进行的虚拟机创建及初始配置,包括角色节点虚拟机数量、节点的网络配置和osd节点磁盘的挂载。

优选的,对于步骤5),通过ceph部署模块实现ceph组件的安装配置,所述ceph部署模块包括cephmon节点部署、cephosd节点部署、cephrgw节点部署、cephmds服务节点部署和cephiscsi网关节点部署;

通过部署模板对定义的ceph节点进行组件安装及配置。

优选的,对于步骤6),通过cpeh测试模块实现部署cpeh集群块、文件、对象三类功能进行测试验证,所述cpeh测试模块包括ceph集群状态检查、cephpool创建及rbd创建map删除;

ceph集群部署完毕后对ceph集群的块、文件和对象进行测试验证,包括pool的创建删除,rbd块的创建、map和挂载,cephfs的挂载读写及对象存储bucket的上传下载。

优选的,通过环境清理模板对ceph角色节点、ceph集群配置及安装包的清理,ceph使用虚拟机的清理。

进一步的,该方法的具体操作步骤如下:

s1:制作出基础镜像及包含ceph源(包含j、l、m版本和依赖包)的镜像;

s2:通过初始脚本配置libvirt和创建nat模式的管理网、存储public网、存储cluster网;

s3:用包含ceph源的镜像创建出源服务节点(仅需包含管理网接口及ip地址);

s4:定义saltstack的模板文件,包含ceph版本、cephmon节点及数量、osd节点及数量、是否部署rgw(节点及数量)、是否部署mds节点、是否部署iscsi网关服务(节点及数量),定义节点的规格、网卡名称及ip地址、osd节点磁盘信息等;

s5:执行saltstack创建虚拟机模块,创建出ceph角色节点并配置上网络;

s6:验证ceph角色节点管理网、存储public网、存储cluster网连通性;

s7:执行saltstack部署ceph模块,安装配置cephmon节点、osd节点、rgw节点、iscsi网关节点;

s8:执行saltstack测试ceph模块,测试cephpool创建、rbd块创建及map、cephfs挂载及文件写入、rgwbucket创建及文件put/get测试。

本发明还要求保护一种单机kvm虚拟化下快速部署多节点ceph集群的系统,包括远程处理模块、配置渲染模块、虚拟机创建和配置模块、ceph部署模块、ceph测试模块和环境清理模块,其中,

远程处理模块由salt-master负责;

虚拟机创建和配置模块包括根据定义的虚拟机规格、网络ip地址、磁盘进行虚拟机创建和配置;

ceph部署模块包括cephmon节点部署、cephosd节点部署、cephrgw节点部署、cephmds服务节点部署和cephiscsi网关节点部署;

ceph测试模块包括ceph集群状态检查、cephpool创建以及rbd创建map删除;

环境清理模块包括对节点ceph组件的清理或部署的虚拟机销毁,满足多次部署要求。

该系统基于单机kvm虚拟化下部署多节点ceph集群的方式如下:

1)、制作部署需要的虚拟机镜像模板和ceph多版本程序源;

2)、定义资源类型信息并通过渲染工具生成部署模板;

3)、通过脚本程序和部署模板信息完成salt-master节点(包含ceph版本源)的创建;

4)、通过创建虚拟机及配置模块根据部署模板信息创建ceph角色节点虚拟机及完成初始配置;

5)、通过ceph部署模块实现ceph组件的安装配置;

6)、通过ceph测试模块实现对部署ceph集群块、文件、对象三类功能的测试验证;

7)、通过环境清理模块可实现对已安装ceph组件的清理或部署虚拟机的销毁清理。

本发明的一种单机kvm虚拟化下快速部署多节点ceph集群的方法和系统与现有技术相比,具有以下有益效果:

该方法和系统为云计算相关技术人员提供对ceph分布式存储系统进行快速部署学习的有效方法,可以让ceph技术人员,基于单机kvm虚拟化下快速部署出多节点ceph集群,以便进行技术学习和验证,通过此部署方式可以提高部署效率,并支持销毁ceph集群和多次部署ceph集群。

该方法及系统可以提高ceph相关技术人员快速部署环境的效率,增强实际操作ceph和解决故障的能力,同时也是一种对刚接触ceph的技术人员进行技术培训的有效方式之一。

附图说明

图1是单机kvm虚拟化下部署多节点ceph集群节点分布图;

图2是部署多节点ceph集群系统结构图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步说明。

实施例一

一种单机kvm虚拟化下快速部署多节点ceph集群的方法,该方法基于单机kvm虚拟化下,配合shell脚本和saltstack程序实现ceph多节点虚拟机的自动创建、网络配置和ceph组件的部署及测试验证。

该方法具体通过以下方式实现:

1、制作部署需要的虚拟机镜像模板和ceph多版本程序源。

所述的虚拟机镜像模板包括salt-minion和cloud-init的基础镜像并包括ceph多版本源及salt-master程序的镜像。

2、定义资源类型信息并通过渲染工具生成部署模板。

根据定义的ceph版本、ceph节点类型及数量、网络ip地址和osd磁盘信息生成,通过渲染工具生成ceph部署模板。

3、通过脚本程序和部署模板信息完成salt-master节点(包含ceph版本源)的创建。

通过包含salt-master及ceph源的镜像创建出的虚拟机并发布出供apt安装ceph的源。

4、通过创建虚拟机及配置模块根据部署模板信息创建ceph角色节点虚拟机及完成初始配置。

所述创建虚拟机及配置模块包括根据定义的虚拟机规格、网络ip地址及磁盘进行虚拟机创建和配置;

通过包含salt-minion的镜像,通过部署模板进行的虚拟机创建及初始配置,包括角色节点虚拟机数量、节点的网络配置和osd节点磁盘的挂载。

5、通过ceph部署模块实现ceph组件的安装配置。

所述ceph部署模块包括cephmon节点部署、cephosd节点部署、cephrgw节点部署、cephmds服务节点部署和cephiscsi网关节点部署;

通过部署模板对定义的ceph节点进行组件安装及配置。

6、通过cpeh测试模块实现对部署cpeh集群块、文件、对象三类功能进行测试验证。

所述cpeh测试模块包括ceph集群状态检查、cephpool创建及rbd创建map删除;

ceph集群部署完毕后对ceph集群的块、文件和对象进行测试验证,包括pool的创建删除,rbd块的创建、map和挂载,cephfs的挂载读写及对象存储bucket的上传下载。

7、通过环境清理模块实现对已安装的ceph组件的清理或部署虚拟机的销毁清理。

即通过环境清理模板对ceph角色节点、ceph集群配置及安装包的清理,ceph使用虚拟机的清理。

如图1所示,展示了基于单机kvm虚拟化部署多节点ceph集群相关组件节点构成和核心服务。各个组件节点通过虚拟机镜像模板并配合元数据及saltstack实现虚拟机的创建、网络配置、磁盘配置和组件安装配置等。

该方法基于基于单机kvm虚拟化下快速部署出多节点ceph集群,通过此部署方式可以提高部署效率,并支持销毁ceph集群和多次部署ceph集群。

基于单机kvm虚拟化部署多节点ceph集群的具体操作步骤如下:

s1:基于ubuntu16.0464位操作系统制作出ubuntu16.0464位基础镜像及包含ceph源(包含j、l、m版本和依赖包)的镜像;

s2:通过初始脚本配置libvirt和创建nat模式的管理网、存储public网、存储cluster网;

s3:用包含ceph源的镜像创建出源服务节点(仅需包含管理网接口及ip地址);

s4:定义saltstack的模板文件,包含ceph版本、cephmon节点及数量、osd节点及数量、是否部署rgw(节点及数量)、是否部署mds节点、是否部署iscsi网关服务(节点及数量),定义节点的规格、网卡名称及ip地址、osd节点磁盘信息等;

s5:执行saltstack创建虚拟机模块,创建出ceph角色节点并配置上网络;

s6:验证ceph角色节点管理网、存储public网、存储cluster网连通性;

s7:执行saltstack部署ceph模块,安装配置cephmon节点、osd节点、rgw节点、iscsi网关节点;

s8:执行saltstack测试ceph模块,测试cephpool创建、rbd块创建及map、cephfs挂载及文件写入、rgwbucket创建及文件put/get测试。

实施例二

一种单机kvm虚拟化下快速部署多节点ceph集群的系统,包括远程处理模块、配置渲染模块、虚拟机创建和配置模块、ceph部署模块、ceph测试模块和环境清理模块,其中,

远程处理模块由salt-master负责;

虚拟机创建和配置模块包括根据定义的虚拟机规格、网络ip地址、磁盘进行虚拟机创建和配置;

ceph部署模块包括cephmon节点部署、cephosd节点部署、cephrgw节点部署、cephmds服务节点部署和cephiscsi网关节点部署;

ceph测试模块包括ceph集群状态检查、cephpool创建以及rbd创建map删除;

环境清理模块包括对节点ceph组件的清理或部署的虚拟机销毁,满足多次部署要求。

图2展示了部署多节点ceph集群核心功能组成。

该系统基于单机kvm虚拟化下部署多节点ceph集群的方式如下:

1)、制作部署需要的虚拟机镜像模板和ceph多版本程序源,虚拟机镜像模板包括salt-minion和cloud-init的基础镜像并包括ceph多版本源及salt-master程序的镜像;

2)、定义资源类型信息并通过渲染工具生成部署模板,根据定义的ceph版本、ceph节点类型及数量、网络ip地址和osd磁盘信息生成,通过渲染工具生成ceph部署模板;

3)、通过脚本程序和部署模板信息完成salt-master节点(包含ceph版本源)的创建,通过包含salt-master及ceph源的镜像创建出的虚拟机并发布出供apt安装ceph的源;

4)、通过创建虚拟机及配置模块根据部署模板信息创建ceph角色节点虚拟机及完成初始配置,通过包含salt-minion的镜像,通过部署模板进行的虚拟机创建及初始配置,包括角色节点虚拟机数量、节点的网络配置和osd节点磁盘的挂载;

5)、通过ceph部署模块实现ceph组件的安装配置,即通过部署模板对定义的ceph节点进行组件安装及配置;

6)、通过ceph测试模块实现对部署ceph集群块、文件、对象三类功能的测试验证,ceph集群部署完毕后对ceph集群的块、文件和对象进行测试验证,包括pool的创建删除,rbd块的创建、map和挂载,cephfs的挂载读写及对象存储bucket的上传下载;

7)、通过环境清理模块可实现对已安装ceph组件的清理或部署虚拟机的销毁清理,即通过环境清理模板对ceph角色节点、ceph集群配置及安装包的清理,ceph使用虚拟机的清理。

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

除说明书所述的技术特征外,均为本专业技术人员的已知技术。


技术特征:

1.一种单机kvm虚拟化下快速部署多节点ceph集群的方法,其特征在于该方法基于单机kvm虚拟化下,配合shell脚本和saltstack程序实现ceph多节点虚拟机的自动创建、网络配置和ceph组件的部署及测试验证;

该方法具体通过以下方式实现:

1)、制作部署需要的虚拟机镜像模板和ceph多版本程序源;

2)、定义资源类型信息并通过渲染工具生成部署模板;

3)、通过脚本程序和部署模板信息完成salt-master节点的创建;

4)、根据部署模板信息创建ceph角色节点虚拟机及完成初始配置;

5)、进行ceph组件的安装配置;

6)、对部署cpeh集群块、文件、对象三类功能进行测试验证;

7)、对已安装的ceph组件的清理或部署虚拟机的销毁清理。

2.根据权利要求1所述的一种单机kvm虚拟化下快速部署多节点ceph集群的方法,其特征在于步骤1)中所述的虚拟机镜像模板包括salt-minion和cloud-init的基础镜像并包括ceph多版本源及salt-master程序的镜像。

3.根据权利要求1所述的一种单机kvm虚拟化下快速部署多节点ceph集群的方法,其特征在于对于步骤2),根据定义的ceph版本、ceph节点类型及数量、网络ip地址和osd磁盘信息生成,通过渲染工具生成ceph部署模板。

4.根据权利要求1所述的一种单机kvm虚拟化下快速部署多节点ceph集群的方法,其特征在于所述步骤3)通过包含salt-master及ceph源的镜像创建出的虚拟机并发布出供apt安装ceph的源。

5.根据权利要求1所述的一种单机kvm虚拟化下快速部署多节点ceph集群的方法,其特征在于通过创建虚拟机及配置模块根据部署模板信息创建ceph角色节点虚拟机及完成初始配置,所述创建虚拟机及配置模块包括根据定义的虚拟机规格、网络ip地址及磁盘进行虚拟机创建和配置;

通过包含salt-minion的镜像,通过部署模板进行的虚拟机创建及初始配置,包括角色节点虚拟机数量、节点的网络配置和osd节点磁盘的挂载。

6.根据权利要求1所述的一种单机kvm虚拟化下快速部署多节点ceph集群的方法,其特征在于通过ceph部署模块实现ceph组件的安装配置,所述ceph部署模块包括cephmon节点部署、cephosd节点部署、cephrgw节点部署、cephmds服务节点部署和cephiscsi网关节点部署;

通过部署模板对定义的ceph节点进行组件安装及配置。

7.根据权利要求1所述的一种单机kvm虚拟化下快速部署多节点ceph集群的方法,其特征在于通过cpeh测试模块实现部署cpeh集群块、文件、对象三类功能进行测试验证,所述cpeh测试模块包括ceph集群状态检查、cephpool创建及rbd创建map删除;

ceph集群部署完毕后对ceph集群的块、文件和对象进行测试验证,包括pool的创建删除,rbd块的创建、map和挂载,cephfs的挂载读写及对象存储bucket的上传下载。

8.根据权利要求1所述的一种单机kvm虚拟化下快速部署多节点ceph集群的方法,其特征在于通过环境清理模板对ceph角色节点、ceph集群配置及安装包的清理,ceph使用虚拟机的清理。

9.根据权利要求1-8任一项所述的一种单机kvm虚拟化下快速部署多节点ceph集群的方法,其特征在于该方法的具体操作步骤如下:

s1:制作出基础镜像及包含ceph源的镜像;

s2:通过初始脚本配置libvirt和创建nat模式的管理网、存储public网、存储cluster网;

s3:用包含ceph源的镜像创建出源服务节点;

s4:定义saltstack的模板文件,包含ceph版本、cephmon节点及数量、osd节点及数量、是否部署rgw、是否部署mds节点、是否部署iscsi网关服务,定义节点的规格、网卡名称及ip地址、osd节点磁盘信息;

s5:执行saltstack创建虚拟机模块,创建出ceph角色节点并配置上网络;

s6:验证ceph角色节点管理网、存储public网、存储cluster网连通性;

s7:执行saltstack部署ceph模块,安装配置cephmon节点、osd节点、rgw节点、iscsi网关节点;

s8:执行saltstack测试ceph模块,测试cephpool创建、rbd块创建及map、cephfs挂载及文件写入、rgwbucket创建及文件put/get测试。

10.一种单机kvm虚拟化下快速部署多节点ceph集群的系统,其特征在于包括远程处理模块、配置渲染模块、虚拟机创建和配置模块、ceph部署模块、ceph测试模块和环境清理模块,其中,

远程处理模块由salt-master负责;

虚拟机创建和配置模块包括根据定义的虚拟机规格、网络ip地址、磁盘进行虚拟机创建和配置;

ceph部署模块包括cephmon节点部署、cephosd节点部署、cephrgw节点部署、cephmds服务节点部署和cephiscsi网关节点部署;

ceph测试模块包括ceph集群状态检查、cephpool创建以及rbd创建map删除;

环境清理模块包括对节点ceph组件的清理或部署的虚拟机销毁,满足多次部署要求。

技术总结
本发明公开了一种单机KVM虚拟化下快速部署多节点Ceph集群的方法和系统,属于云计算技术领域,该方法基于单机KVM虚拟化下,配合shell脚本和Saltstack程序实现Ceph多节点虚拟机的自动创建、网络配置和Ceph组件的部署及测试验证。该系统包括远程处理模块、配置渲染模块、虚拟机创建和配置模块、Ceph部署模块、Ceph测试模块和环境清理模块。本发明可以让Ceph技术人员,基于单机KVM虚拟化下快速部署出多节点Ceph集群,进行技术学习和验证;能提高Ceph相关技术人员快速部署环境的效率,增强实际操作Ceph和解决故障的能力,也是对刚接触Ceph的技术人员进行技术培训的方式之一。

技术研发人员:宋伟;蔡卫卫;谢涛涛;申嘉童;赵磊
受保护的技术使用者:山东汇贸电子口岸有限公司
技术研发日:2020.01.19
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-28247.html

最新回复(0)