基于Terraform的云主机磁盘扩容方法及系统技术方案

技术编号:37248118 阅读:10 留言:0更新日期:2023-04-20 23:27
本发明专利技术公开了基于Terraform的云主机磁盘扩容方法及系统,属于云计算及虚拟机技术领域,本发明专利技术要解决的技术问题为如何在减少运维成本的前提下满足磁盘空间扩容的需求,采用的技术方案为:该方法是利用Terraform通过provider插件调用OpenStack的API便捷的管理云主机,将Terraform相关插件和各种Openstack的API调用封装成工厂方法,完成云主机的包括系统盘在内的磁盘扩容;具体如下:S1、云主机开始扩容,执行步骤S2;S2、判断磁盘是否支持LVM:

【技术实现步骤摘要】
基于Terraform的云主机磁盘扩容方法及系统


[0001]本专利技术涉及云计算和虚拟化
,具体地说是一种基于Terraform的云主机磁盘扩容方法及系统。

技术介绍

[0002]在云环境下,大部分产品如云主机都是以虚机镜像,通过Openstack创建虚机提供相应服务的形式。随着时间推移,难免出现虚机空间占满的情况,如果虚机有数据盘,则可通过扩展数据盘形式满足需求,但如果虚机只有一块系统盘,对系统盘扩容就可能需要人工干预,增加运维成本。Terraform可以对云主机进行管理,使虚机的创建及维护更加简便自如,但以现有Terraform的功能仍不能很好的满足系统盘扩容需求。
[0003]因此,如何在减少运维成本的前提下满足磁盘空间扩容的需求是需要亟待解决的技术问题。

技术实现思路

[0004]本专利技术的技术任务是提供一种基于Terraform的云主机磁盘扩容方法及系统,来解决如何在减少运维成本的前提下满足磁盘空间扩容的需求的问题。
[0005]本专利技术的技术任务是按以下方式实现的,一种基于Terraform的云主机磁盘扩容方法,该方法是利用Terraform通过provider插件调用OpenStack的API便捷的管理云主机,将Terraform相关插件和各种Openstack的API调用封装成工厂方法,包括创建虚机、开关机、删除、重启、创建卷、卷扩容、Ansible执行,完成云主机的包括系统盘在内的磁盘扩容;具体如下:
[0006]S1、云主机开始扩容,执行步骤S2
[0007]S2、判断磁盘是否支持LVM:
[0008]①
、若是,则执行步骤S3;
[0009]②
、若否,则执行步骤S4;
[0010]S3、执行纵向扩容,下一步执行步骤S5;
[0011]S4、执行横向扩容,下一步执行步骤S5;
[0012]S5、判断是否扩容成功:
[0013]①
、若是,则结束扩容;
[0014]②
、若否,则回滚。
[0015]作为优选,步骤S3中的纵向扩容具体如下:
[0016]S301、通过工厂的volume_extend操作创建指定大小的新卷,并判断是否创建出卷且卷大小与所要扩容的大小一致:
[0017]①
、若成功,则说明新卷创建成功,下一步执行步骤S2;
[0018]②
、若失败,则返回相应的错误信息,删除已经创建的异常资源,同时中止业务;
[0019]S302、新卷创建成功后,通过工厂的volume_attachments操作将新卷挂载到目标
云主机上,并判断目标云主机挂载卷是否成功:
[0020]①
、若挂载卷成功,则说明扩容已经基本完成,下一步执行步骤S3;
[0021]②
、若挂载卷失败,则因为该卷对原有云主机无侵入,直接将卷删除,实现业务的回滚,同时返回相应错误信息并中止业务;
[0022]S303、挂载卷后,工厂通过remote

exec执行Ansible脚本,对新挂载卷进行LVM分区操作,并判断Ansible脚本执行是否成功:
[0023]①
、若Ansible脚本执行成功,则纵向扩容即操作成功,此时进入云主机执行lsblk指令及df

h指令可发现云主机磁盘扩容已成功;
[0024]②
、若Ansible脚本执行失败,则执行步骤S4;
[0025]S304、判断是否删除新卷:
[0026]①
、若是,则删除卷,并进行回滚业务;
[0027]②
、若否,则保留创建出的卷,线下去云主机内执行对应脚本。
[0028]作为优选,LVM分区操作包括创建物理卷、加入卷组、扩展逻辑卷及刷新文件系统。
[0029]更优地,在纵向扩容操作时,当无法获取云主机的权限进行LVM操作的用户名及密码时,提前在云主机内置LVM执行脚本及监听程序,当内置LVM执行脚本及监听程序发现有新卷挂载时,自动执行相应的LVM指令,最终完成系统盘的扩容操作。
[0030]作为预选,步骤S4中的横向扩容具体如下:
[0031]S401、通过工厂对云主机进行关机操作,因为后续备份数据、重置卷状态等操作需要云主机处于关机状态,因此需要轮询操作确定云主机的状态是否为SHUTOFF:
[0032]①
、若关机成功,则执行步骤S402;
[0033]②
、若关机失败,则扩容失败,即说明云主机状态异常,此时可能无法自动恢复,需要发出一定程度的告警信息,同时中止业务,等人工干预,排查云主机状态异常原因且虚机状态恢复后再进行扩容操作;
[0034]S402、工厂对云主机做镜像快照,进行数据备份,避免后续操作因其它因素导致扩容失败后数据丢失,并判断是否备份成功:
[0035]①
、若备份失败,则扩容失败;
[0036]②
、若备份成功,则执行步骤S403;
[0037]S403、工厂本身具有对磁盘扩容的操作,但如果扩容目标为系统盘,直接扩容会因为卷状态为in

use导致扩容失败,因此扩容前,通过工厂对卷状态进行重置,轮询卷状态:
[0038]①
、当卷状态为available时,执行步骤S404;
[0039]②
、当卷状态异常时,说明扩容失败,中止业务,进行告警并人工干预;
[0040]S404、更新卷大小,即通过工厂对目标卷扩容,并判断扩容是否成功:
[0041]①
、若扩容成功,则执行步骤S405;
[0042]②
、若扩容失败,则中止业务;此时若卷状态异常无法恢复,根据跳转至步骤S2进行备份的数据重建卷并执行挂载操作;
[0043]S405、扩容成功后,通过工厂对云主机进行开机操作,此时卷状态会自动变更为in

use,云主机状态变更为运行中后,横向系统盘扩容即完成;此时进入云主机执行lsblk指令及df

h指令可发现云主机磁盘扩容已成功。
[0044]一种基于Terraform的云主机磁盘扩容系统,该系统是将Terraform和Openstack
的API结合,通过terraform init、terraform plan、terraform apply将自动云配置提升到新的高度;Terraform通过provider插件调用Openstack的Api便捷的管理云主机,将Terraform相关插件和各种OpenstackApi调用封装成工厂方法,完成云主机系统盘的扩容;该系统包括判断单元一、纵向扩容单元、横向扩容单元和判断单元二;
[0045]其中,判断单元一用于判断磁盘是否支持LVM:
[0046]纵向扩容单元用于执行纵向扩容;
[0047]横向扩容单本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Terraform的云主机磁盘扩容方法,其特征在于,该方法是利用Terraform通过provider插件调用OpenStack的API便捷的管理云主机,将Terraform相关插件和各种Openstack的API调用封装成工厂方法,完成云主机的包括系统盘在内的磁盘扩容;具体如下:S1、云主机开始扩容,执行步骤S2;S2、判断磁盘是否支持LVM:

、若是,则执行步骤S3;

、若否,则执行步骤S4;S3、执行纵向扩容,下一步执行步骤S5;S4、执行横向扩容,下一步执行步骤S5;S5、判断是否扩容成功:

、若是,则结束扩容;

、若否,则回滚。2.根据权利要求1所述的基于Terraform的云主机磁盘扩容方法,其特征在于,步骤S3中的纵向扩容具体如下:S301、通过工厂的volume_extend操作创建指定大小的新卷,并判断是否创建出卷且卷大小与所要扩容的大小一致:

、若成功,则说明新卷创建成功,下一步执行步骤S2;

、若失败,则返回相应的错误信息,删除已经创建的异常资源,同时中止业务;S302、新卷创建成功后,通过工厂的volume_attachments操作将新卷挂载到目标云主机上,并判断目标云主机挂载卷是否成功:

、若挂载卷成功,则说明扩容已经基本完成,下一步执行步骤S3;

、若挂载卷失败,则直接将卷删除,实现业务的回滚,同时返回相应错误信息并中止业务;S303、挂载卷后,工厂通过remote

exec执行Ansible脚本,对新挂载卷进行LVM分区操作,并判断Ansible脚本执行是否成功:

、若Ansible脚本执行成功,则纵向扩容即操作成功,此时进入云主机执行lsblk指令及df

h指令可发现云主机磁盘扩容已成功;

、若Ansible脚本执行失败,则执行步骤S4;S304、判断是否删除新卷:

、若是,则删除卷,并进行回滚业务;

、若否,则保留创建出的卷,线下去云主机内执行对应脚本。3.根据权利要求2所述的基于Terraform的云主机磁盘扩容方法及系统,其特征在于,LVM分区操作包括创建物理卷、加入卷组、扩展逻辑卷及刷新文件系统。4.根据权利要求2或3所述的基于Terraform的云主机磁盘扩容方法,其特征在于,在纵向扩容操作时,当无法获取云主机的权限进行LVM操作的用户名及密码时,提前在云主机内置LVM执行脚本及监听程序,当内置LVM执行脚本及监听程序发现有新卷挂载时,自动执行相应的LVM指令,最终完成系统盘的扩容操作。5.根据权利要求1所述的基于Terraform的云主机磁盘扩容方法,其特征在于,步骤S4
中的横向扩容具体如下:S401、通过工厂对云主机进行关机操作,轮询操作确定云主机的状态是否为SHUTOFF:

、若关机成功,则执行步骤S402;

、若关机失败,则扩容失败,即说明云主机状态异常,无法自动恢复,需要发出告警信息,同时中止业务,等人工干预,排查云主机状态异常原因且虚机状态恢复后再进行扩容操作;S402、工厂对云主机做镜像快照,进行数据备份,并判断是否备份成功:

、若备份失败,则扩容失败;

、若备份成功,则执行步骤...

【专利技术属性】
技术研发人员:李承林徐士强王禹博
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

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

1