本发明涉及云计算领域,尤其涉及云计算领域中一种基于云平台的云硬盘清理方法和装置。
背景技术:
在云计算技术盛行的今天,高效易用的云平台才是站住脚跟的基石,当前云平台从计算模块下发云主机的分离操作,如果由于存储断电、云主机挂载/卸载云硬盘进程中断或存储故障导致在分离云主机和云硬盘时失败,则目标云硬盘一直处于挂载中或卸载中的状态。即使在存储状态恢复之后,目标云硬盘还会一直处于挂载中或卸载中的状态,无法进行清理。
技术实现要素:
本发明要解决的技术问题是提供一种基于云平台的云硬盘清理方法,实现了对状态一直处于挂载中或卸载中的云硬盘的清理操作。
为了解决上述技术问题,本发明实施例提供了一种基于云平台的云硬盘清理方法,包括:
当获取到的云硬盘的状态为挂载中或卸载中的持续时间超过设定时长时触发清理所述云硬盘的请求,所述请求包括待清理的云硬盘标识id和与所述云硬盘关联的云主机的云主机标识id;
根据所述云主机id和所述云硬盘id清理所述云主机的设备信息表并发出更改与所述云硬盘id对应的云硬盘的状态的通知。
一种示例性的实施例中,上述方法还具有下面特点:
所述根据所述云主机id和所述云硬盘id清理云主机设备信息表包括:
根据所述云主机id和所述云硬盘id从所述云主机的设备信息表中删除与所述云主机关联的所述云硬盘id对应的云硬盘信息;
其中,所述云主机设备信息表包括云主机id和与所述云主机id关联的云硬盘id。
一种示例性的实施例中,上述方法还具有下面特点:
在根据所述云主机id和所述云硬盘id清理所述云主机的设备信息表之前,还包括:
备份云主机设备信息表,并清理之前备份的表备份文件。
一种示例性的实施例中,上述方法还具有下面特点:
所述云平台包括计算模块和存储模块;
当获取到的云硬盘的状态为挂载中或卸载中的持续时间超过设定时长时触发清理所述云硬盘的请求,包括:
当所述计算模块获取到的云硬盘的状态为挂载中或卸载中的持续时间超过设定时长时触发清理所述云硬盘的请求;
发出更改与所述云硬盘id对应的云硬盘的状态的通知包括:
向所述存储模块发出更改与所述云硬盘id对应的云硬盘的状态的通知。
一种示例性的实施例中,上述方法还具有下面特点:
向所述存储模块发出更改与所述云硬盘id对应的云硬盘的状态的通知包括:
通知所述存储模块设置所述云硬盘的状态为可用。
为了解决上述问题,本发明还提供了一种基于云平台的云硬盘清理装置,包括:存储器和处理器;其中:
所述存储器,用于保存用于基于云平台的云硬盘清理的程序;
所述处理器,用于读取执行所述用于基于云平台的云硬盘清理的程序,执行如下操作:
当获取到的云硬盘的状态为挂载中或卸载中的持续时间超过设定时长时触发清理所述云硬盘的请求,所述请求包括待清理的云硬盘标识id和与所述云硬盘关联的云主机的云主机标识id;
根据所述云主机id和所述云硬盘id清理所述云主机的设备信息表并发出更改与所述云硬盘id对应的云硬盘的状态的通知。
为了解决上述问题,本发明还提供了一种基于云平台的云硬盘清理装置,包括:计算模块和存储模块;其中:
所述计算模块,用于当获取到的云硬盘的状态为挂载中或卸载中的持续时间超过设定时长时触发清理所述云硬盘的请求,所述请求包括待清理的云硬盘标识id和与所述云硬盘关联的云主机的云主机标识id;还用于根据所述云主机id和所述云硬盘id清理所述云主机的设备信息表并向所述存储模块发出更改与所述云硬盘id对应的云硬盘的状态的通知;
所述存储模块,根据接收到的通知更改与所述云硬盘id对应的云硬盘的状态。
一种示例性的实施例中,上述装置还具有下面特点:
所述根据所述云主机id和所述云硬盘id清理所述云主机的设备信息表包括:
根据所述云主机id和所述云硬盘id从所述云主机的设备信息表中删除与所述云主机关联的所述云硬盘id对应的云硬盘信息;
其中,所述云主机设备信息表包括云主机id和与所述云主机id关联的云硬盘id。
一种示例性的实施例中,上述装置还具有下面特点:
所述根据所述云主机id和所述云硬盘id清理所述云主机的设备信息表包括:
根据所述云主机id和所述云硬盘id从所述云主机的设备信息表中删除与所述云主机关联的所述云硬盘id对应的云硬盘信息;
其中,所述云主机设备信息表包括云主机id和与所述云主机id关联的云硬盘id。
一种示例性的实施例中,上述装置还具有下面特点:
所述计算模块在根据所述云主机id和所述云硬盘id清理所述云主机的设备信息表之前,还用于:备份云主机设备信息表,并清理之前备份的表备份文件。
一种示例性的实施例中,上述装置还具有下面特点:
所述计算模块向所述存储模块发出更改与所述云硬盘id对应的云硬盘的状态的通知包括:
所述计算模块通知所述存储模块设置所述云硬盘的状态为可用。
综上,本发明实施例提供了一种基于云平台的云硬盘清理方法和装置,实现了对状态一直处于挂载中或卸载中的云硬盘的清理操作,提高了资源的可用性。
附图说明
图1为根据本发明实施例的基于云平台的云硬盘清理方法的示意图。
图2为根据本发明实施例的基于云平台的云硬盘清理方法的流程图。
图3为根据本发明实施例的基于云平台的云硬盘清理装置的示意图。
图4为根据本发明实施例的基于云平台的云硬盘清理装置的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1为本发明实施例的基于云平台的云硬盘清理方法的示意图,如图1所示,本实施例的基于云平台的云硬盘清理方法包括:
s11、当获取到的云硬盘的状态为挂载中或卸载中的持续时间超过设定时长时触发清理所述云硬盘的请求。
其中,所述请求包括待清理的云硬盘标识id和与所述云硬盘关联的云主机的云主机标识id。
一种示例性的实施例中,云平台可以是基于openstack开源项目开发的云管理平台,包含计算模块、存储模块、网络模块等。
设定的时长可根据经验确定。
一种示例性的实施例中,当获取到的云硬盘的状态为挂载中或卸载中的持续时间超过设定时长时触发清理所述云硬盘的请求,可以包括:
当所述计算模块获取到的云硬盘的状态为挂载中或卸载中的持续时间超过设定时长时触发清理所述云硬盘的请求。
例如,云平台下发挂载或者卸载云主机硬盘的请求,计算模块根据请求从存储模块获取当前云硬盘信息,若在操作过程中出现问题(诸如存储服务故障、存储模块断电或云主机挂载/卸载云硬盘进程中断)导致云硬盘处于挂载中或卸载中的状态。当上述问题已经解决后,为当前操作设置等待时间(默认180秒),在等待时间内进行多次尝试获取目标云硬盘的状态。如果云硬盘在等待时间范围内状态一直处于挂载中或卸载中,则继续获取云硬盘状态,直到超出等待时间。此时触发清理云硬盘的请求。如果在等待时间内,云硬盘从挂载中或卸载中的状态释放出来,云硬盘的状态自动更新为可用,则无需执行云主机设备信息表的清理操作。
s12、根据所述云主机id和所述云硬盘id清理所述云主机的设备信息表并发出更改与所述云硬盘id对应的云硬盘的状态的通知。
一种示例性的实施例中,所述根据所述云主机id和所述云硬盘id清理云主机设备信息表可以包括:
根据所述云主机id和所述云硬盘id从所述云主机的设备信息表中删除与所述云主机关联的所述云硬盘id对应的云硬盘信息;
其中,所述云主机设备信息表包括云主机id和与所述云主机id关联的云硬盘id。
一种示例性的实施例中,在根据所述云主机id和所述云硬盘id清理所述云主机的设备信息表之前,还可以包括:
备份云主机设备信息表,并清理之前备份的表备份文件。
备份云主机设备信息表可以将设备信息表的结构和内容保存到指定位置,并清理之前备份的表备份文件,以减少空间占用,减少冗余。
一种示例性的实施例中,发出更改与所述云硬盘id对应的云硬盘的状态的通知可以包括:
向所述存储模块发出更改与所述云硬盘id对应的云硬盘的状态的通知。
一种示例性的实施例中,向所述存储模块发出更改与所述云硬盘id对应的云硬盘的状态的通知包括:
通知所述存储模块设置所述云硬盘的状态为可用。
此时,刷新云主机设备信息表的云主机详细信息,可以看到云主机关联的目标云硬盘信息已不存在。但在存储模块查看目标云硬盘的状态已为可用。
图2为本发明实施例的基于云平台的云硬盘清理方法的流程图,如图2所示,包括步骤如下:
步骤201:计算模块接收对某一云主机执行挂载/卸载云硬盘的操作请求。
步骤202:如果在该云主机挂载/卸载云硬盘的过程中,通过云硬盘id获取到的云硬盘的状态为挂载中或卸载中的持续时长超过预设时长,则触发清理该云硬盘的请求。
在正常情况下,执行云主机挂载/卸载云硬盘后,云硬盘的状态为可用。
步骤203:接收请求后,备份云主机设备信息表并清理之前备份的表备份文件。
步骤204:从云主机设备信息表中删除该云硬盘和该云主机相关的信息,并通知存储模块设置该云硬盘的状态为可用。
此后,还可刷新云主机详细信息,查看挂载信息已无该云硬盘的信息。但是在存储模块中可看到该云硬盘的状态为可用。
上述本申请实施例通过清理云主机一直处于挂载中或卸载中的状态的云硬盘信息,使得在不损坏云硬盘数据的情况下,从云主机设备信息表中分离出云硬盘,释放现有资源,在资源有限的情况下,使存储资源合理化利用,避免资源存在但处于被占用的状态。
图3为本发明实施例的基于云平台的云硬盘清理装置的示意图,如图3所示,本实施例的基于云平台的云硬盘清理装置包括:存储器和处理器;其中:
所述存储器,用于保存用于基于云平台的云硬盘清理的程序;
所述处理器,用于读取执行所述用于基于云平台的云硬盘清理的程序,执行如下操作:
当获取到的云硬盘的状态为挂载中或卸载中的持续时间超过设定时长时触发清理所述云硬盘的请求,所述请求包括待清理的云硬盘标识id和与所述云硬盘关联的云主机的云主机标识id;
根据所述云主机id和所述云硬盘id清理所述云主机的设备信息表并发出更改与所述云硬盘id对应的云硬盘的状态的通知。
一种示例性的实施例中,所述处理器可以用于实现其它实施例中的云硬盘清理方法,具体实现细节可参见其它实施例。
图4为本发明实施例的基于云平台的云硬盘清理装置的示意图,如图4所示,本实施例的基于云平台的云硬盘清理装置包括:计算模块和存储模块;其中:
所述计算模块,用于当获取到的云硬盘的状态为挂载中或卸载中的持续时间超过设定时长时触发清理所述云硬盘的请求,所述请求包括待清理的云硬盘标识id和与所述云硬盘关联的云主机的云主机标识id;还用于根据所述云主机id和所述云硬盘id清理所述云主机的设备信息表并向所述存储模块发出更改与所述云硬盘id对应的云硬盘的状态的通知;
所述存储模块,根据接收到的通知更改与所述云硬盘id对应的云硬盘的状态。
一种示例性的实施例中,所述根据所述云主机id和所述云硬盘id清理所述云主机的设备信息表包括:
根据所述云主机id和所述云硬盘id从所述云主机的设备信息表中删除与所述云主机关联的所述云硬盘id对应的云硬盘信息;
其中,所述云主机设备信息表可以包括云主机id和与所述云主机id关联的云硬盘id。
一种示例性的实施例中,所述计算模块在根据所述云主机id和所述云硬盘id清理所述云主机的设备信息表之前,还用于:备份云主机设备信息表,并清理之前备份的表备份文件。
一种示例性的实施例中,所述计算模块向所述存储模块发出更改与所述云硬盘id对应的云硬盘的状态的通知包括:
所述计算模块通知所述存储模块设置所述云硬盘的状态为可用。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。