本发明属于云计算,更具体地,涉及一种云计算资源回收管理方法和系统。
背景技术:
1、在云计算系统中,用户能创建资源和删除资源。对云计算的管理系统而言,删除资源有四个不同层次的需求,最一般的需求是删除虚拟机、云硬盘等各种资源时的惯例做法一般不是直接删除,而是先放入回收站,然后由用户从回收站中彻底删除或超过一定期限后自动删除,记作需求一。
2、较复杂的需求是不同的资源在进入回收站时、从回收站彻底删除时、从回收站中恢复时,都有一些必要的动作需要执行,例如恢复配额、扣除配额、中止计量计费、恢复计量计费、打开或关闭维护模式、开启或关闭虚拟机资源(例如虚拟机)……等等,记作需求二。
3、进一步的需求是由于资源和资源之间常存在关联,当有关联的一组资源中任意一个进入回收站、从回收站彻底删除、从回收站中恢复时其相关联资源常需要进行一些联动处理,例如删除虚拟机时,依赖它的系统盘也需要一并删除,记作需求三。
4、更复杂的是即便是相同的资源,为满足在不同的租户的个性化需求下,在进入回收站时、从回收站彻底删除时、从回收站中恢复时需要执行的动作常常各异,或者是在资源手动清除和资源自动清除时需要执行的动作各异,记作需求四。
5、针对上述四个层次的需求,现有技术方案大部分都能很好的满足需求一。而针对需求二、三,目前现有方案一般是通过硬编码方式实现,即针对不同类型的资源在回收时,一个类型、一个类型的去定制化编码处理回收时的动作和关联资源的删除,而不是提供一套通用的流程方法去适配不同种类的资源,这样的弊端有二:一是只要用户要求发生改变,比如希望在虚拟机删除时,从执行动作a调整为执行动作b,就需要修改代码来重新实现,工作量大;二是缺少可配置的方式让用户自行随心修改,效率低。而针对需求四,市面上主流的云计算平台尚未能提供有效的方案来满足这样灵活度高的需求。
技术实现思路
1、针对现有技术的以上缺陷或改进需求,本发明提供了一种云计算资源回收管理的方法和系统,将云计算资源按照“资源”、“资源关联”、“回收项”、“回收策略”建立四级模型。
2、为了便于阐明
技术实现要素:
,本方案使用部分云计算术语,简述如下:
3、“资源类型”即一种云计算资源。例如虚拟机、云硬盘、浮动ip等即为不同种类的资源类型;
4、“资源实例”即具体的资源实体,例如一台已创建完毕的名为instance01的虚拟机即为一个虚拟机“资源实例”;
5、“配额”即云计算系统中使用者能使用的最大资源的数量,例如限制使用者最多创建10台虚拟机,或限制使用者创建虚拟机所占用的总内存不超过100gb等;
6、“租户”即使用云计算系统的一个机构、单位、公司等组织,通常而言,云计算系统的提供商会按照不同租户的需要或者不同的服务等级为租户提供不同的资源管理策略。例如对于某特殊租户,不限制该租户所能使用的资源配额;再例如,对于不同付费模式的租户,有的租户当虚拟机进入回收站时即停止计费,有的租户当虚拟机从回收站中彻底删除时才停止计费。
7、本发明所设计的云计算资源回收管理方法,包括以下步骤:
8、对需要进行回收管理的云计算资源类型进行建模,每一个资源都需要包含基础属性集合和资源的所有行为集合(所述行为集合是用于处理云计算资源生命周期中的各种动作的程序函数集合);
9、在有业务逻辑关联的资源类型之间,建立“关联关系”,遍历系统中的所有已建模的资源类型的实例,创建这些实例之间的关联关系并保存。“关联关系”包括“依赖”和“绑定”两种。所述“依赖”关系是指当a资源依赖b资源时,b资源进入回收站或从回收站彻底删除时,a资源需要同步进入回收站或从回收站彻底删除,两个资源的生命周期一致。所述“绑定”关系是指当a资源和b资源绑定时,两者虽协同工作,但各自可以独立存在,拥有独立的生命周期,当a资源从回收站彻底删除时,需要解除a资源和b资源的“绑定”关系,但无需彻底删除资源b组件。
10、通过建立“关联关系”,最终形成资源类型关联关系表:
11、
12、
13、按照业务需求,定义多个“回收项”,回收项描述了资源在回收生命周期中各个阶段的行为。每一个回收项中包含了一种资源类型,并从前述资源建模的“行为集合”中,选取一个或者多个行为作为资源“进入回收站时动作”,称为第一动作,第一动作在实施例中通常是资源结束服务时应附加的动作,例如断开用户连接、关闭或挂起虚拟机等。从前述资源建模的“行为集合”中,选取一个或者多个行为作为资源“进入回收站移出时动作”,称为第二动作,第二动作在实施例中通常是资源重新提供服务应附加的动作,例如恢复虚拟机,恢复用户的连接等。从前述资源建模的“行为集合”中,选取一个或者多个行为作为资源“从回收站彻底删除时动作”,称为第三动作,第三动作在实施例中通常是资源彻底删除时应附加的残余清理动作,例如补偿已扣减的用户配额、中止资源的计量计费等。
14、优选的,针对同一种资源类型,管理员可以为其配置在多个不同的回收项中,并选择不同的行为作为第一动作、第二动作、第三动作,后续当不同“回收策略”加载这些不同回收项时,就可实现同种资源在不同的回收场景下的不同处理方式。这里不同回收场景指(1)不同租户的相同类型资源在回收生命周期的各阶段能做出不同的行为处理,(2)手动彻底清除场景和自动彻底清除场景也能对相同资源做不同处理。并形成资源类型和回收项的映射表:
15、
16、回收项建立完成后,按照不同租户的实际需求,管理员首先需要通过页面或配置文件的方式为不同租户配置“回收策略”,回收策略是为特定租户提供服务的一组回收项的集合。每个回收策略需包含适用租户范围、清除方式(手动/自动)、回收站中实例存活时间、加载的回收项。所述适用租户范围是指该回收策略是面向云计算系统中所有租户,还是面向某一个或几个租户。所述清除方式包含手动彻底清除和自动彻底清除;手动彻底清除表示需要用户在回收站中手动彻底删除资源,自动彻底清除表示回收站中的资源实例达到最长存活期限后,系统会自动彻底删除它们。所述回收站中实例存活时间指回收站中各资源实例的最长存活期限,进入回收站后超过此期限则会自动被彻底清除。所述加载的回收项指该回收策略包含了哪些回收项。其次,管理员需要从前述建立的资源类型和回收项的映射表中,针对每种资源类型按照该租户的实际需求,选取一个回收项,通过页面或配置文件的方式配置到该回收策略的“加载的回收项”属性中,最后激活启用该回收策略。
17、优选的,每一个回收项可以关联到多个回收策略,例如不同租户的回收策略可以加载同一个回收项,从而实现回收项的复用。
18、当资源实例进入回收站时,系统需要通过回收策略来决定回收的附加动作。具体步骤是,首先系统通过已激活的所有回收策略中“适用租户范围”属性的内容查询包含该资源归属租户的回收策略,并遍历该回收策略加载的回收项,依据回收项“资源类型”属性查询到匹配该资源的回收项,再执行回收项的第一动作,即通过函数调用或异步消息的方式回调第一动作中配置的程序函数。接下来依据资源类型关联关系表,遍历该资源类型和其他资源类型的关联关系,忽略掉其中关系为“绑定”的资源类型,对于关系为“依赖”的其它资源类型的资源实例,一并将这些实例放入回收站,并逐个依照上法处理这些实例,找到它们的回收项,执行回收项的第一动作,再依据资源类型关联关系表,查询这些实例的下一级“依赖”资源进行同样处理,以此类推逐级处理,直至所有关联资源全部处理完毕。
19、从回收站彻底删除某资源实例时,首先系统通过已激活的所有回收策略中“适用租户范围”属性的内容查询包含该资源归属租户的回收策略,并遍历该回收策略加载的回收项,依据回收项“资源类型”属性查询到匹配该资源的回收项,再执行回收项的第三动作(即通过函数调用或异步消息的方式回调第三动作中配置的程序函数)。其次依据资源类型关联关系表,遍历该资源类型和其他资源类型的关联关系,在回收站中找到关系为“绑定”的其它资源类型的资源实例,解除两个实例的“绑定”关系;在回收站中找到关系为“依赖”的其它资源类型的资源实例,一并彻底删除;接下来逐个依照上法处理这些“依赖”关联的资源实例,找到它们的回收项,执行回收项的第三动作,再依据资源类型关联关系表,查询这些实例的下一级“依赖”资源进行同样处理,以此类推逐级处理,直至所有关联资源全部处理完毕。
20、此外,系统启动任务,周期性遍历(例如每1分钟一次)所有已激活的回收策略,查找其中设置为自动清理方式的回收策略,获取该回收策略加载的所有回收项,逐个回收项进行处理:依据回收策略的适用租户和回收项中的资源类型,在回收站中查询符合条件的资源,并判断该资源实例进入回收站之时是否已超过回收策略定义的存活期限,如果是,则执行回收项的第三动作(即通过函数调用或异步消息的方式回调第三动作中配置的程序函数);再依据资源类型关联关系表,遍历该资源类型和其他资源类型的关联关系,在回收站中找到关系为“绑定”的其它资源类型的资源实例,解除两个实例的“绑定”关系;在回收站中找到关系为“依赖”的其它资源类型的资源实例,一并彻底删除;接下来逐个依照上法处理这些“依赖”关联的资源实例,找到它们的回收项,执行回收项的第三动作,再依据资源类型关联关系表,查询这些实例的下一级“依赖”资源进行同样处理,以此类推逐级处理,直至所有关联资源全部处理完毕。
21、基于相同的构思,本发明还提供了一种云计算资源回收管理系统,包括回收模型构建模块、回收流程管理模块。其中回收模型构建模块包含资源类型构建子模块、资源关联构建子模块、回收项构建子模块、回收策略构建子模块、数据存储子模块等5个子模块;回收流程管理模块包括回收管理子模块、恢复管理子模块、清除管理子模块、清除任务子模块等4个子模块。
22、所述资源类型构建子模块,用于云计算系统的管理员对需要进行回收管理的云计算资源类型进行建模,每一种资源都需要包含基础属性集合和资源的所有行为集合(即函数或方法的集合);该子模块和数据存储子模块交互,将建立的模型存入其中。
23、所述资源关联构建子模块,用于云计算系统的管理员在有业务逻辑关联的资源类型之间建立“关联关系”,这种“关联关系”包括“依赖”和“绑定”两种。该模块会遍历所有建模后的资源类型,对模型的所有资源实例构建上述两种关联关系。该子模块和数据存储子模块交互,从该子模块中读取前述建立好的资源模型,并将建立好的关联关系存入其中。
24、所述回收项构建子模块,用于云计算系统的管理员为资源类型创建回收项,回收项描述了资源在回收生命周期中各个阶段(进入回收站、从回收站中恢复、从回收站中彻底删除)的行为,并从前述资源类型模型的“行为集合”中,按照业务要求或各租户的服务需求,分别选取一个或者多个行为作为第一动作、第二动作、第三动作。该子模块和数据存储子模块交互,从该子模块中读取前述建立好的资源模型,并将建立的回收项存入其中。
25、所述回收策略构建子模块,用于云计算系统的管理员创建回收策略。回收策略是为特定租户提供服务的一组回收项的集合。回收策略配合回收项可以实现不同租户对资源回收的不同动作要求。每个回收策略需包含适用租户范围、清除方式、回收站中实例存活时间、加载的回收项。该子模块和数据存储子模块交互,从该子模块中读取前述建立好的回收项,并将建立的回收策略存入其中。
26、所述数据存储子模块,用于存储构建好的资源模型、资源关联关系、回收项、回收策略。
27、所述回收管理子模块,用于管理资源进入回收站时的流程。该子模块依据进入回收站的资源的归属租户,找到对应的回收策略,将该资源放入回收站后,按照回收策略加载的该资源类型的回收项,执行回收项的第一动作。再依据该资源类型和其他资源类型的关联关系,找到关系为“依赖”的其它资源类型的资源实例,一并放入回收站。该子模块和数据存储子模块交互,获取前述建立好的资源模型、资源关联、回收策略和回收项。
28、所述恢复管理子模块,用于管理资源从回收站中恢复的流程。该模块依据欲从回收站中恢复的资源的归属租户,找到对应的回收策略,将资源从从回收站中恢复后,按照回收策略加载的该资源类型的回收项,执行回收项的第二动作。再依据该资源类型和其他资源类型的关联关系,找到关系为“依赖”的其它资源类型的资源实例,一并从回收站中恢复。该子模块和数据存储子模块交互,获取前述建立好的资源模型、资源关联、回收策略和回收项。
29、所述清除管理子模块,用于管理资源从回收站中彻底删除的流程。具体分为自动删除和手动删除。
30、自动删除时,如果清除任务子模块中的定时任务到达执行周期,本子模块逐个检测回收站中资源实例,并依据资源实例归属的租户,找到对应的回收策略,比对回收策略中该资源类型的回收项定义的存活期限与该资源实例已留存于回收站的时长,如果留存时长已经超过存活期限,则执行回收项中定义的第三动作;再依据该资源类型和其他资源类型的关联关系,在回收站中找到关系为“依赖”的其它资源类型的资源实例,一并彻底删除;在回收站中找到关系为“绑定”的其它资源类型的资源实例,解除两个实例的“绑定”关系;最后自动彻底删除该资源实例。
31、手动删除时,本子模块依据资源实例归属的租户,找到对应的回收策略,比对回收策略中该资源类型的回收项定义的存活期限与该资源实例已留存于回收站的时长,如果留存时长已经超过存活期限,则执行回收项中定义的第三动作;再依据该资源类型和其他资源类型的关联关系,在回收站中找到关系为“依赖”的其它资源类型的资源实例,一并彻底删除;在回收站中找到关系为“绑定”的其它资源类型的资源实例,解除两个实例的“绑定”关系;最后彻底删除该资源实例。
32、该子模块和数据存储子模块交互,获取前述建立好的资源模型、资源关联、回收策略和回收项。该模块也需要和清除任务子模块交互,接收清除任务子模块周期性任务触发信号。
33、所属清除任务子模块负责维护定时任务,周期性监测回收站资源,每当任务触发时,向清除管理子模块发送信号,具体由清除管理子模块控制资源彻底删除的流程。
34、基于同一发明构思,本方案还设计了一种电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序;
35、当一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现云计算资源回收的方法。
36、基于同一发明构思,本方案还设计了一种计算机可读介质,其上存储有计算机程序,其特征在于:所述程序被处理器执行时实现云计算资源回收的方法。
37、总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:
38、1、通过构建回收项,以可配置化的方式定义资源在回收生命周期各阶段的行为,通过灵活定义回收项中的第一、二、三动作,便于系统随用户需求的变更而快速改变。
39、2、将资源和回收策略之间通过回收项进行解耦,实现了同种资源可定义不同的回收项,即执行不同的回收动作。通过资源、回收项、回收策略的灵活排列组合,能很好的支持为不同场景定义不同回收策略的需求,如不同租户对相同资源的回收方法不同,再如手动清除资源和自动清除资源时要求不同的回收行为,满足这种需求的方式仅仅只需要通过配置回收项即可,无须修改代码,减少了系统变更的工作量。
40、3、通过对资源关联关系的构建和维护,实现了在资源回收生命周期各个阶段,关联资源的协同处置,如同步回收、同步恢复、同步彻底删除等,避免了仅回收目的资源,残余了相关资源,而这些残余资源也无法继续使用的问题。