本发明涉及云计算技术领域,具体地说是一种单机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组件的清理或部署的虚拟机销毁,满足多次部署要求。
技术总结