一种自动回收集群云硬盘的方法、系统、终端及存储介质与流程

    专利2022-07-08  76


    本发明涉及云平台技术领域,具体涉及一种自动回收集群云硬盘的方法、系统、终端及存储介质。



    背景技术:

    openstack是一个利用虚拟资源池构建和管理私有云和公共云的平台。kubernetes(k8s)是开源的容器集群管理系统,在k8s中,所有的容器均在pod中运行。k8s可以部署在openstack提供的虚拟机或云物理机中。在openstack环境中一般会对接cinder提供的云硬盘服务,以实现数据的持久化远端存储保存。k8s的cinder-csi插件可以通过调用openstack接口创建cinder云硬盘,再将cinder云硬盘挂载给k8s所在的虚拟机的特定目录并映射给pod的容器进程,以实现openstack虚拟机环境中的k8spod使用cinder云硬盘的效果,实现pod中数据的持久化存储。

    在删除部署在openstack上的集群时,我们需要调用自研的集群管理模块进行k8s集群的删除,调用openstack组件heat进行iaas层资源的删除,调用cinder进行cindervolume的删除。其中cindervolume的删除步骤需在最后,因为集群未删除时,volume可能为挂载状态,挂载状态的卷无法进行删除。对于删除k8s集群时cindervolume的删除,通用的做法是:通过集群管理模块获取该集群的pv列表,pv列表中包含volumeid,再启动线程调用cinder接口,根据volumeid进行cindervolume的删除。

    这种做法存在一个问题:通过k8s接口来获取pv列表要求集群的状态正常,若集群状态异常,则无法通过k8s接口获取pv列表,无法删除cindervolume。在删除集群时,当集群被删除,而集群挂载的卷cindervolume却删除失败时,此时因为集群已被删除,而遗留的cindervolume,从cindervolume的命名中难以看出属于哪个集群,用户也难以手动对cindervolume进行删除,这就造成了云硬盘资源的无端占用和浪费。



    技术实现要素:

    针对现有技术的上述不足,本发明提供一种自动回收集群云硬盘的方法、系统、终端及存储介质,以解决上述技术问题。

    第一方面,本发明提供一种自动回收集群云硬盘的方法,包括:

    设置容器卷信息数据库;

    在容器卷创建过程中采集所述容器卷的第一信息和第二信息,并将所述第一信息和第二信息成对保存至所述数据库;

    从接收的容器卷删除请求中提取目标容器卷第一信息;

    根据所述目标容器卷第一信息从所述数据库查找匹配第二信息,并根据所述匹配第二信息删除所述容器卷。

    进一步的,所述在容器卷创建过程中采集所述容器卷的第一信息和第二信息,包括:

    将用户在集群添加容器卷阶段输入的集群id和容器卷名字作为第一信息保存;

    在监控线程监控到所述容器卷创建完成时,根据所述第一信息从容器集群管理系统的容器信息列表中采集相应的容器卷id,并将所述容器卷id作为第二信息保存。

    进一步的,所述从接收的容器卷删除请求中提取目标容器卷第一信息,包括:

    从所述删除请求提取用户输入的第一信息。

    进一步的,所述根据所述目标容器卷第一信息从所述数据库查找匹配第二信息,并根据所述匹配第二信息删除所述容器卷,包括:

    若所述删除请求为仅删除容器卷,则根据所述第一信息从容器集群管理系统的容器信息列表查找相应的第二信息,并将所述容器信息列表中的第一信息和相应第二信息删除;

    若所述删除请求为同时删除容器卷且集群状态异常,则根据所述第一信息从所述数据库查询相应第二信息,根据所述相应第二信息从所述容器信息列表查询相应记录,删除所述相应记录。

    第二方面,本发明提供一种自动回收集群云硬盘的系统,包括:

    存储设置单元,配置用于设置容器卷信息数据库;

    信息保存单元,配置用于在容器卷创建过程中采集所述容器卷的第一信息和第二信息,并将所述第一信息和第二信息成对保存至所述数据库;

    信息提取单元,配置用于从接收的容器卷删除请求中提取目标容器卷第一信息;

    删除执行单元,配置用于根据所述目标容器卷第一信息从所述数据库查找匹配第二信息,并根据所述匹配第二信息删除所述容器卷。

    进一步的,所述信息保存单元包括:

    第一保存模块,配置用于将用户在集群添加容器卷阶段输入的集群id和容器卷名字作为第一信息保存;

    第二保存模块,配置用于在监控线程监控到所述容器卷创建完成时,根据所述第一信息从容器集群管理系统的容器信息列表中采集相应的容器卷id,并将所述容器卷id作为第二信息保存。

    进一步的,所述信息提取单元包括:

    提取模块,配置用于从所述删除请求提取用户输入的第一信息。

    进一步的,所述删除执行单元包括:

    第一删除模块,配置用于若所述删除请求为仅删除容器卷,则根据所述第一信息从容器集群管理系统的容器信息列表查找相应的第二信息,并将所述容器信息列表中的第一信息和相应第二信息删除;

    第二删除模块,配置用于若所述删除请求为同时删除容器卷且集群状态异常,则根据所述第一信息从所述数据库查询相应第二信息,根据所述相应第二信息从所述容器信息列表查询相应记录,删除所述相应记录。

    第三方面,提供一种终端,包括:

    处理器、存储器,其中,

    该存储器用于存储计算机程序,

    该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。

    第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

    本发明的有益效果在于,

    本发明提供的自动回收集群云硬盘的方法、系统、终端及存储介质,通过增设备份容器卷信息的数据库,避免由于容器卷id查询不到造成的容器卷删除失败,解决集群删除过程中cindervolume的删除过程不可靠的问题,提高volume删除过程的可靠性,避免云硬盘资源浪费。本发明对原先底层存储资源的清理方式进行了优化,能够让用户根据实际生产需要进行是否删除云硬盘的选择,提供更高的灵活性,并在用户选择删除云硬盘时,采用两种删除机制来确保所需删除的云硬盘被正确删除,避免云硬盘资源的浪费。

    此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

    附图说明

    为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

    图1是本发明一个实施例的方法的示意性流程图。

    图2是本发明一个实施例的方法的另一示意性流程图。

    图3是本发明一个实施例的方法的信息保存的示意图流程图。

    图4是本发明一个实施例的系统的示意性框图。

    图5为本发明实施例提供的一种终端的结构示意图。

    具体实施方式

    为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

    下面对本发明中出现的关键术语进行解释。

    openstack:开源云计算系统

    cinder:openstack卷服务

    k8s/kubernetes:一个开源的容器编排调度平台

    csi:containerstorageinterface,定义了为容器提供持久化卷服务的通用接口

    k8scinder-csi:对接cinder实现容器卷服务的k8s插件

    pod:pod是k8s的最小单元,容器包含在pod中。

    pvc:persistentvolumeclaim,持久化存储的接口,提供了对存储的描述,但不提供具体实现

    pv:persistentvolume(持久化卷),持久化存储数据卷,创建的pvc只有和对应的pv绑定才可以使用,成功绑定之后,pod就是声明pvc绑定的持久化存储了。

    volume:volume存储卷是pod中能够被多个容器访问的共享目录,可使pod中的数据持久化,下文中也称容器卷。

    图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种自动回收集群云硬盘的系统。

    如图1所示,该方法包括:

    步骤110,设置容器卷信息数据库;

    步骤120,在容器卷创建过程中采集所述容器卷的第一信息和第二信息,并将所述第一信息和第二信息成对保存至所述数据库;

    步骤130,从接收的容器卷删除请求中提取目标容器卷第一信息;

    步骤140,根据所述目标容器卷第一信息从所述数据库查找匹配第二信息,并根据所述匹配第二信息删除所述容器卷。

    具体的,请参考图2,所述自动回收集群云硬盘的方法包括:

    s1、设置容器卷信息数据库。

    引入一个数据库表,用来记录用户在集群中创建的容器卷的信息,主要包括volume_id、cluster_id、volume_name四个字段,分别用来记录容器卷id,集群id,容器卷名称。

    s2、在容器卷创建过程中采集所述容器卷的第一信息和第二信息,并将所述第一信息和第二信息成对保存至所述数据库。

    为集群添加容器卷时:此时插入一条记录,其中cluster_id由用户选择的集群决定,volume_name为用户自定义的卷名称,volume_id此时先为空,因为容器卷尚未创建完成,无法获取volume_id。同时启动线程监控pv创建状态。容器卷创建成功:线程监控到容器卷创建成功,此时获取volume_id,并更新volume_id到数据库表。

    获取volume_id的流程如图3所示。具体包括:

    1.创建容器卷时,启动线程监控容器卷创建状态;

    2.容器卷创建完成后,集群管理模块发送请求到k8s接口可以获取集群的pv列表;

    3.集群管理模块发送请求到k8s接口来获取集群的pvc列表,从每一条pvc信息中可以得知对应的volume名称和pv名称;

    4.通过pv名称在pv列表中找出此pv名称对应的volume_id;

    5.以cluster_id和volume名称筛选出某条记录并更新volume_id到这条记录。

    s3、从接收的容器卷删除请求中提取目标容器卷第一信息。

    用户在指定需要删除的容器卷时,提供cluster_id和volumename两个参数,因此从删除请求提取用户输入的cluster_id和volumename。

    s4、根据所述目标容器卷第一信息从所述数据库查找匹配第二信息,并根据所述匹配第二信息删除所述容器卷。

    若删除请求为单独删除容器卷时:不删除集群,只是删除某个容器卷,此时要删除一条记录,以cluster_id和volumename这两个参数作为筛选条件进行记录的删除即可。

    若删除请求为删除集群时,用户选择同时删除容器卷,并且集群状态异常:通过k8s接口获取该集群的pv列表时返回异常,此时需要以cluster_id为筛选条件在数据库中进行查询,并返回符合条件的记录列表,从列表中提取出volume_id列表。

    cinder执行volume的删除时:此时删除volume_id对应的那条记录。

    如图4所示,该系统400包括:

    存储设置单元410,配置用于设置容器卷信息数据库;

    信息保存单元420,配置用于在容器卷创建过程中采集所述容器卷的第一信息和第二信息,并将所述第一信息和第二信息成对保存至所述数据库;

    信息提取单元430,配置用于从接收的容器卷删除请求中提取目标容器卷第一信息;

    删除执行单元440,配置用于根据所述目标容器卷第一信息从所述数据库查找匹配第二信息,并根据所述匹配第二信息删除所述容器卷。

    可选地,作为本发明一个实施例,所述信息保存单元包括:

    第一保存模块,配置用于将用户在集群添加容器卷阶段输入的集群id和容器卷名字作为第一信息保存;

    第二保存模块,配置用于在监控线程监控到所述容器卷创建完成时,根据所述第一信息从容器集群管理系统的容器信息列表中采集相应的容器卷id,并将所述容器卷id作为第二信息保存。

    可选地,作为本发明一个实施例,所述信息提取单元包括:

    提取模块,配置用于从所述删除请求提取用户输入的第一信息。

    可选地,作为本发明一个实施例,所述删除执行单元包括:

    第一删除模块,配置用于若所述删除请求为仅删除容器卷,则根据所述第一信息从容器集群管理系统的容器信息列表查找相应的第二信息,并将所述容器信息列表中的第一信息和相应第二信息删除;

    第二删除模块,配置用于若所述删除请求为同时删除容器卷且集群状态异常,则根据所述第一信息从所述数据库查询相应第二信息,根据所述相应第二信息从所述容器信息列表查询相应记录,删除所述相应记录。

    图5为本发明实施例提供的一种终端500的结构示意图,该终端500可以用于执行本发明实施例提供的自动回收集群云硬盘的方法。

    其中,该终端500可以包括:处理器510、存储器520及通信单元530。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

    其中,该存储器520可以用于存储处理器510的执行指令,存储器520可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器520中的执行指令由处理器510执行时,使得终端500能够执行以下上述方法实施例中的部分或全部步骤。

    处理器510为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integratedcircuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器510可以仅包括中央处理器(centralprocessingunit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。

    通信单元530,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。

    本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。

    因此,本发明通过增设备份容器卷信息的数据库,避免由于容器卷id查询不到造成的容器卷删除失败,解决集群删除过程中cindervolume的删除过程不可靠的问题,提高volume删除过程的可靠性,避免云硬盘资源浪费。本发明对原先底层存储资源的清理方式进行了优化,能够让用户根据实际生产需要进行是否删除云硬盘的选择,提供更高的灵活性,并在用户选择删除云硬盘时,采用两种删除机制来确保所需删除的云硬盘被正确删除,避免云硬盘资源的浪费,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。

    本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。

    本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

    在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

    所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

    另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

    尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。


    技术特征:

    1.一种自动回收集群云硬盘的方法,其特征在于,包括:

    设置容器卷信息数据库;

    在容器卷创建过程中采集所述容器卷的第一信息和第二信息,并将所述第一信息和第二信息成对保存至所述数据库;

    从接收的容器卷删除请求中提取目标容器卷第一信息;

    根据所述目标容器卷第一信息从所述数据库查找匹配第二信息,并根据所述匹配第二信息删除所述容器卷。

    2.根据权利要求1所述的方法,其特征在于,所述在容器卷创建过程中采集所述容器卷的第一信息和第二信息,包括:

    将用户在集群添加容器卷阶段输入的集群id和容器卷名字作为第一信息保存;

    在监控线程监控到所述容器卷创建完成时,根据所述第一信息从容器集群管理系统的容器信息列表中采集相应的容器卷id,并将所述容器卷id作为第二信息保存。

    3.根据权利要求1所述的系统,其特征在于,所述从接收的容器卷删除请求中提取目标容器卷第一信息,包括:

    从所述删除请求提取用户输入的第一信息。

    4.根据权利要求1所述的方法,其特征在于,所述根据所述目标容器卷第一信息从所述数据库查找匹配第二信息,并根据所述匹配第二信息删除所述容器卷,包括:

    若所述删除请求为仅删除容器卷,则根据所述第一信息从容器集群管理系统的容器信息列表查找相应的第二信息,并将所述容器信息列表中的第一信息和相应第二信息删除;

    若所述删除请求为同时删除容器卷且集群状态异常,则根据所述第一信息从所述数据库查询相应第二信息,根据所述相应第二信息从所述容器信息列表查询相应记录,删除所述相应记录。

    5.一种自动回收集群云硬盘的系统,其特征在于,包括:

    存储设置单元,配置用于设置容器卷信息数据库;

    信息保存单元,配置用于在容器卷创建过程中采集所述容器卷的第一信息和第二信息,并将所述第一信息和第二信息成对保存至所述数据库;

    信息提取单元,配置用于从接收的容器卷删除请求中提取目标容器卷第一信息;

    删除执行单元,配置用于根据所述目标容器卷第一信息从所述数据库查找匹配第二信息,并根据所述匹配第二信息删除所述容器卷。

    6.根据权利要求5所述的系统,其特征在于,所述信息保存单元包括:

    第一保存模块,配置用于将用户在集群添加容器卷阶段输入的集群id和容器卷名字作为第一信息保存;

    第二保存模块,配置用于在监控线程监控到所述容器卷创建完成时,根据所述第一信息从容器集群管理系统的容器信息列表中采集相应的容器卷id,并将所述容器卷id作为第二信息保存。

    7.根据权利要求5所述的系统,其特征在于,所述信息提取单元包括:

    提取模块,配置用于从所述删除请求提取用户输入的第一信息。

    8.根据权利要求5所述的系统,其特征在于,所述删除执行单元包括:

    第一删除模块,配置用于若所述删除请求为仅删除容器卷,则根据所述第一信息从容器集群管理系统的容器信息列表查找相应的第二信息,并将所述容器信息列表中的第一信息和相应第二信息删除;

    第二删除模块,配置用于若所述删除请求为同时删除容器卷且集群状态异常,则根据所述第一信息从所述数据库查询相应第二信息,根据所述相应第二信息从所述容器信息列表查询相应记录,删除所述相应记录。

    9.一种终端,其特征在于,包括:

    处理器;

    用于存储处理器的执行指令的存储器;

    其中,所述处理器被配置为执行权利要求1-4任一项所述的方法。

    10.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一项所述的方法。

    技术总结
    本发明提供一种自动回收集群云硬盘的方法、系统、终端及存储介质,包括:设置容器卷信息数据库;在容器卷创建过程中采集所述容器卷的第一信息和第二信息,并将所述第一信息和第二信息成对保存至所述数据库;从接收的容器卷删除请求中提取目标容器卷第一信息;根据所述目标容器卷第一信息从所述数据库查找匹配第二信息,并根据所述匹配第二信息删除所述容器卷。本发明对原先底层存储资源的清理方式进行了优化,能够让用户根据实际生产需要进行是否删除云硬盘的选择,提供更高的灵活性,并在用户选择删除云硬盘时,采用两种删除机制来确保所需删除的云硬盘被正确删除,避免云硬盘资源的浪费。

    技术研发人员:贾淑佳
    受保护的技术使用者:苏州浪潮智能科技有限公司
    技术研发日:2020.11.09
    技术公布日:2021.03.12

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

    最新回复(0)