用于云平台的资源对象的管理方法和装置的制造方法

文档序号:9750648阅读:366来源:国知局
用于云平台的资源对象的管理方法和装置的制造方法
【技术领域】
[0001]本发明涉及云平台领域,具体来说,涉及一种用于云平台的资源对象的管理方法和装置。
【背景技术】
[0002]云计算平台也称为云平台。云计算平台可以划分为三类:以数据存储为主的存储型云平台,以数据处理为主的计算型云平台以及计算和数据存储处理兼顾的综合云计算平台。无论何种类型的云平台,都是对外提供对若干资源对象的管理。以常见计算型云平台为例,其中管理的两类最主要对象是物理机和虚拟机。
[0003]可重入锁,也叫做递归锁,指的是同一线程外层函数获得锁之后,内层递归函数仍然有获取该锁的代码,但不受影响。在JAVA环境下ReentrantLock是可重入锁。类似于java中原来线程交互所用的wait ,notify和notifyAl I方法在新的并发包中基于重入锁机制引入了Condit1n接口,&311(1;[1:;[011将013]_6。1:监视器方法(¥3;[1:、1101:丨€7和1101:丨€5^11)分解成截然不同的对象,以便通过将这些对象与任意Lock实现组合使用,为每个对象提供多个等待set (wait-set),就是多路等待。&311(1;[1:;[011的方法与¥3;[1:、1101:1€7和1101^€5^11方法类似,分别命名为await、signal和singalAl I因为它们不能覆盖Object上的对应方法。
[0004]在云计算数据中心里,不同于过去传统的监控系统,存在很多软件定义的对象和资源,云管理平台需要对这些对象提供操作入口。以虚拟机为例,云管理平台一般会提供对虚拟机的启动、停止、暂停、挂载、快照、克隆、迀移等操作。
[0005]用户远程控制这些资源对象的同时,需要查看到这些资源的实时状态信息,这些信息除了停止、运行、暂停等运行状态之外,还包括是否正常连通、健康状态是否正常、是否被离线、当前是否正在执行某种操作等。
[0006]常见的云计算管理系统中,主要通过数据库记录资源对象的状态。仍然以虚拟机为例,用户操作虚拟机时,首先调用Hypervisor的相关接口,将虚拟机暂停,操作成功后,更新虚拟机的状态。这种方式存在如下问题:无法很好的支持多租户管理,当多个用户同时操作一个对象时,无法实现有效的操作互斥;有的系统为了支持多租户,经常采用全局锁的方式,对资源对象进行锁定,此时,一方面由于加锁会导致工作线程空转,浪费CPU资源,另一方面是容易出现死锁的问题;当云平台采用B/S架构时,即便采用定时刷新的方式,用户也无法看到资源的实时状态,这就导致了用户点击操作时,并不一定是基于资源真实的状态。
[0007]针对相关技术中的上述问题,目前尚未提出有效的解决方案。

【发明内容】

[0008]针对相关技术中的上述问题,本发明提出一种用于云平台的资源对象的管理方法和装置,能够通过资源对象操作内存锁,从而保证对同一资源对象的操作请求按序执行,并且不需要占用大量的(PU资源,不会出现死锁的问题。
[0009]本发明的技术方案是这样实现的:
[0010]根据本发明的一个方面,提供了一种用于云平台的资源对象的管理方法。
[0011]该管理方法包括:
[0012]对资源对象创建内存锁对象;
[0013]根据内存锁对象对资源对象进行锁定;
[0014]其中,内存锁对象的参数至少包括资源对象的ID、可重入锁、忙状态位、操作开始时间。
[0015]其中,对资源对象创建内存锁对象的时机包括以下至少之一:
[0016]在第一次创建资源对象时、在第一次查询资源对象时、在第一次锁定资源对象时。
[0017]其中,在根据内存锁对象对资源对象进行锁定时,可通过获取可重入锁;判断资源对象是否允许锁定;在资源对象允许锁定的情况下,通过可重入锁对资源对象进行锁定。
[0018]其中,在判断资源对象是否允许锁定时,可判断资源对象是否处于忙状态;
[0019]在资源对象处于忙状态的情况下,确定资源对象不允许锁定;
[0020]在资源对象处于不忙状态的情况下,确定资源对象允许锁定。
[0021]此外,该管理方法进一步包括:
[0022]在资源对象处于忙状态的情况下,根据内存锁对象的忙状态位确定是否等待;
[0023]在等待的过程中,如果占用资源对象的线程释放对资源对象的可重入锁,则对资源对象进行锁定。
[0024]另外,该管理方法进一步包括:
[0025]在通过可重入锁对资源对象进行锁定的同时,记录操作开始时间,设置忙状态位。
[0026]此外,该管理方法进一步包括:
[0027]在对资源对象的状态进行更新时,对预先持久化在数据库中的资源对象的乐观锁的标识位更新。
[0028]另外,该管理方法进一步包括:
[0029]在对资源对象的状态进行更新时,将资源对象在数据库中的状态位和资源对象的当前运行的状态位进行比较,如果相同则对资源对象的状态进行更新,如果不同则不对资源对象的状态进行更新。
[0030]根据本发明的另一方面,提供了一种用于云平台的资源对象的管理装置。
[0031]该管理装置包括:
[0032]创建模块,用于对资源对象创建内存锁对象;
[0033]锁定模块,用于根据内存锁对象对资源对象进行锁定;
[0034]其中,内存锁对象的参数至少包括资源对象的ID、可重入锁、忙状态位、操作开始时间。
[0035]其中,锁定模块包括:
[0036]获取模块,用于获取可重入锁;
[0037]判断模块,用于判断资源对象是否允许锁定;
[0038]锁定子模块,用于在资源对象允许锁定的情况下,通过可重入锁对资源对象进行锁定。
[0039]本发明通过资源对象操作内存锁,从而保证对同一资源对象的操作请求按序执行,并且不需要占用大量的CPU资源,不会出现死锁的问题。
【附图说明】
[0040]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0041]图1是根据本发明实施例的用于云平台的资源对象的管理方法的流程图;
[0042]图2是根据本发明另一实施例的用于云平台的资源对象的管理方法的流程图;
[0043]图3是根据本发明实施例的用于云平台的资源对象的管理装置的框图。
【具体实施方式】
[0044]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
[0045]根据本发明的实施例,提供了一种用于云平台的资源对象的管理方法。
[0046]如图1所示,根据本发明实施例的管理方法包括:
[0047]步骤SlOl,对资源对象创建内存锁对象;
[0048]步骤S103,根据内存锁对象对资源对象进行锁定;
[0049]其中,内存锁对象的参数至少包括资源对象的ID、可重入锁、忙状态位、操作开始时间。
[0050]其中,在一个实施例中,上述资源对象可包括虚拟机和物理机。
[0051 ]在一个实施例中,本发明定义了云计算环境中典型的虚拟机、物理机对象的状态类别和枚举类型,具体的:
[0052]1.虚拟机的状态
[0053]虚拟机是云计算环境中重要的一类资源,用户需要了解虚拟机的全方位的状态信息。在本发明中,分以下9个维度定义了虚拟机的状态。
[0054]I)运行状态:停止、启动、暂停、挂起等;
[0055]2)操作状态:创建中、删除中、控制中等;
[0056]3)操作状态描述:包括但不限于创建、部署、克隆、导入、启动、停止、暂停、取消暂停、挂起、取消挂起、快照、还原、备份、克隆、转换模板、配置变更、维护模式等;
[0057]4)状态同步标识位:同步正常、同步异常;
[0058]5)主状态(PrimaryStatus):正常、故障;
[0059]6)详细状态:预留;
[ΟΟ?Ο] 7)使能状态:预留;
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1