一种数据删除方法、装置、设备及存储介质与流程

文档序号:22626565发布日期:2020-10-23 19:34阅读:117来源:国知局
一种数据删除方法、装置、设备及存储介质与流程

本申请涉及云计算领域,尤其涉及一种数据删除方法、装置、设备及存储介质。



背景技术:

在云计算环境中,用户的服务都是跑在虚拟机中的,也即用户的数据存放在虚拟机中。虚拟机快照是对虚拟机磁盘数据在某个时间点的数据副本,通过这个副本可以把虚拟机磁盘数据回滚到之前的那个时间点。

为了保护虚拟机数据的安全,经常需要定时自动快照制作。比如设置每天晚上12点对云计算系统的所有虚拟机进行快照制作,而定时自动快照往往只会保留最近的几次快照,比如保留最近5次制作的虚拟机快照,在创建第6个快照的时候需要把第一虚拟机快照进行删除。

但是,在采用上述方法定时自动快照的过程中,当检测到制作第6个虚拟机快照时,同一时刻整个云计算系统中出现多个虚拟机都对各自的第一个虚拟机快照进行删除操作,此时会导致云计算系统中存储集群读写压力上升,出现虚拟机请求读写卡住,从而影响虚拟机导致用户业务中断。因此,在云计算领域中,如何有效地进行虚拟机快照删除成为当今研究的热点问题。



技术实现要素:

本发明实施例提供了一种数据删除方法、装置、设备及存储介质,实现了延时对虚拟机快照进行删除,有效减小云计算系统中存储集群的读写压力,从而可提高用户业务的稳定性。

一方面,本发明实施例提供了一种数据删除的方法,该方法应用于目标计算节点,所述目标计算节点是云计算系统的基础云层中包括的至少一个计算节点中的任意一个,所述方法包括:

当检测到执行虚拟机快照删除操作的触发事件时,获取数据状态为已删除状态的至少一个虚拟机快照,所述至少一个虚拟机快照中每个虚拟机快照对应的已删除状态是在接收到对相应的虚拟机快照进行删除的删除指令时添加的;

根据每个虚拟机快照的参数信息,从所述至少一个虚拟机快照中获取与所述目标计算节点相匹配的目标虚拟机快照;

对所述目标虚拟机快照执行删除操作。

一方面,本发明实施例还提供了一种数据删除装置,包括:

获取单元,用于当检测到执行虚拟机快照删除操作的触发事件时,获取数据状态为已删除状态的至少一个虚拟机快照,所述至少一个虚拟机快照中每个虚拟机快照对应的已删除状态是在接收到对相应的虚拟机快照进行删除的删除指令时标记的;

所述获取单元,还用于根据每个虚拟机快照的参数信息,从所述至少一个虚拟机快照中获取与所述目标计算节点相匹配的目标虚拟机快照;

处理单元,用于对所述目标虚拟机快照执行删除操作。

一方面,本发明实施例提供了一种数据删除设备,包括:

处理器,适于实现一条或多条指令;以及,

计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行上述的待办事项的创建方法;或者,所述一条或多条指令适于由所述处理器加载并执行:

当检测到执行虚拟机快照删除操作的触发事件时,获取数据状态为已删除状态的至少一个虚拟机快照,所述至少一个虚拟机快照中每个虚拟机快照对应的已删除状态是在接收到对相应的虚拟机快照进行删除的删除指令时标记的;根据每个虚拟机快照的参数信息,从所述至少一个虚拟机快照中获取与所述目标计算节点相匹配的目标虚拟机快照;对所述目标虚拟机快照执行删除操作。

一方面,本发明实施例提供了一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机程序指令,所述计算机程序指令被处理器执行时,用于执行:

当检测到执行虚拟机快照删除操作的触发事件时,获取已添加删除标记的至少一个虚拟机快照,所述至少一个虚拟机快照中每个虚拟机快照对应的删除标记是在接收到对相应的虚拟机快照进行删除的删除指令时添加的;根据每个虚拟机快照的参数信息,从所述至少一个虚拟机快照中获取与所述目标计算节点相匹配的目标虚拟机快照;对所述目标虚拟机快照执行删除操作。

一方面,本发明实施例提供了一种计算机程序产品或计算机程序,所述计算机程序产品或所述计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中;数据删除设备的处理器从所述计算机可读存储介质中读取所述计算机指令,所述处理器执行所述计算机指令,使得所述数据删除设备执行上述数据删除方法。

本发明实施例中,当目标计算节点检测到执行虚拟机快照删除操作的触发事件时,获取已添加删除标记的至少一个虚拟机快照,每个虚拟机快照对应的删除标记是在接收到对相应的虚拟机快照进行删除的删除指令时添加的;并且,接收到对任意一个虚拟机快照进行删除的删除指令的时间早于检测到所述触发事件的时间;进一步的,根据每个虚拟机快照的参数信息,从至少一个虚拟机快照中获取与目标计算节点相匹配的目标虚拟机快照;并对目标虚拟机快照执行删除操作。

在上述虚拟机快照的删除过程中,接收到任意一个删除虚拟机快照进行删除的删除指令的时间早于检测到触发事件的时间,表明对虚拟机快照的删除操作不是接收到删除指令后立即执行的,而是延迟执行的。具体实现中,在接收到对任意一个虚拟机快照的删除指令后,为其添加已删除标记,然后等待检测到执行删除的触发事件时再执行删除操作。与现有技术中定时自动制作快照中的删除虚拟机快照方法相比,避免了在同一时刻整个云计算系统所有虚拟机都进行快照删除,减少了对云计算系统中存储集群的读写压力,从而有利于提高用户业务执行的稳定性。

附图说明

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

图1a是本发明实施例提供的一种云计算系统的架构图;

图1b是本发明实施例提供的一种快照树的示意图;

图1c是本发明实施例提供的一种更新快照树的示意图;

图1d是本发明实施例提供的另一种更新快照树的示意图;

图1e是本发明实施例提供的又一种更新快照树的示意图;

图1f是本发明实施例提供的一种多虚拟机同时删除虚拟机快照的示意图;

图2是本发明实施例提供的一种数据删除方法的流程示意图;

图3a是本发明实施例提供的一种删除虚拟机快照的示意图;

图3b是本发明实施例提供的一种标记虚拟机快照为已删除状态的示意图;

图3c是本发明实施例提供的另一种标记虚拟机快照为已删除状态示意图;

图4是本发明提供的另一种数据删除方法的流程示意图;

图5a是本发明实施例提供的一种获取分布式锁的示意图;

图5b是本发明实施例提供的另一种获取分布式锁的示意图;

图5c是本发明实施例提供的一种删除目标虚拟机快照的示意图;

图6是本发明实施例提供的一种数据删除装置的结构示意图;

图7是本发明实施例提供的一种数据删除设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

云技术(cloudtechnology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。

云计算(cloudcomputing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为iaas(infrastructureasaservice,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。

云计算离不开虚拟化技术,虚拟化技术作为云计算的基础,可以提供资源的整合和重新逻辑,例如,用户向云计算系统发送请求,系统管理员得到用户请求后,把用户需要的计算资源梳理成可以马上投入使用的虚拟机,再将其提供给用户。如此一来,在云计算系统中,用户的服务都是跑在对应的虚拟机中。虚拟机即虚拟计算机系统,它是一种严密隔离的软件容器,内含操作系统和应用。每个功能完成的虚拟机都是完全独立的,包含自己独立(基于软件实现的)的中央处理器、内存、硬盘、显卡、声卡以及网卡等。

虚拟机快照是对虚拟机磁盘数据在某个时间点的数据副本,通过这个数据副本可以把虚拟机磁盘数据回滚到之前的那个时间点。为了保护虚拟机数据的安全,经常需要定时自动快照制作。比如设置每天晚上12点对云计算系统的所有虚拟机进行快照制作,而定时自动快照往往只会保留最近的几次快照,比如保留最近5次制作的虚拟机快照,在创建第6个快照的时候需要把第一虚拟机快照进行删除。如此一来,当检测到制作第6个虚拟机快照时,同一时刻整个云计算系统中出现多个虚拟机都对各自的第一个虚拟机快照进行删除操作,此时会导致云计算系统中存储集群读写压力上升。

为了解决这一问题,本发明实施例提供了一种数据删除方案,可应用于云计算系统中,能够实现对虚拟机快照的延迟删除,避免了在同一时刻整个云计算系统所有虚拟机都进行快照删除,减少了对云计算系统中存储集群的读写压力,从而有利于提高用户业务执行的稳定性。

基于上述的数据删除方案,本发明实施例提供了一种云计算系统。参考图1a,为本发明实施例提供的一种云计算系统的系统架构图。图1a所示的云计算系统是基于私有云提出的,所述私有云是指将云基础设置与软硬件资源创建在防火墙内,以供机构或企业内各部门共享数据中心内的资源。

在一个实施例中,图1a所示的云计算系统可包括业务层。所述业务层是提供给用户的,用户可以在业务层进行操作。所述业务层可以提供自助平台业务、监控平台业务、运维平台业务等。比如,针对自助平台业务,业务层可以提供给用户一个申请资源的界面;对于监控平台业务,业务层提供监控整个平台的全部资源使用情况的界面;对于运维平台业务,业务层可以提供一个管理员操作的界面,管理员可以通过这个界面执行一些宿主机的迁移等操作。

在一个实施例中,所述云计算系统还可以包括云网关层。所述云网关层主要包括venus组件、ip系统和rbac组件。其中venus组件用于提供统一的原平台资源接口、ip系统用于管理ip等网络资源、rbac组件用于提供鉴权服务。

在一个实施例中,所述云计算系统还可包括基础云层。所述基础云层主要是基于开源的openstack提供基础设施即服务(infrastructureasaservice,iaas)的服务的。所述openstack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。通常情况下,基于openstack搭建的基础云层可包括计算节点、存储节点、网络节点以及控制节点。

其中,计算节点可以为服务器,具体地,所述服务器可以指服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。

可选的,计算节点可以包括nova组件,nova用来管理虚拟机的生命周期,也就是说nova组件可以提供虚拟机的创建、运行、迁移、快照等各种围绕虚拟机的服务。在一个实施例中,nova组件主要可以包括nova-api和nova-compute,nova-api可以称为api服务器,其提供了与外界交互的接口,它是外界用户对云计算系统实施管理的唯一通道。所述控制节点可用于提供对nova提供计算管理服务。具体地,控制节点可提供一个nova-api接口,通过这个接口与计算节点中nova组件的nova-api对接,以实现对计算节点的控制。

在本发明实施例中,业务层接收到的指令可以通过云网关层的venus组件传输给控制节点。控制节点通过nova-api将指令传输到计算节点中,具体可以是传输到计算节点的运算工作站nova-compute中。本发明实施例中计算节点执行的操作大多是由nova-compute执行。

所述存储节点中可包括cinder组件,cinder组件用于提供块存储服务。简单来说,块存储就是虚拟出一块磁盘,可以挂载到相应的虚拟机之上,不受文件系统等因素影响。对虚拟机来说,就像是新加了一块硬盘,可以完成对磁盘的任何操作包括挂载,卸载,格式化,转换文件系统等等。大多应用于虚拟机的存储空间不足的情况下的空间扩容等等。所述存储节点还可以包括glance组件,glance组件用于对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板。

所述网络节点可以包括neutron组件,neutron组件主要用于提供计算节点和网络节点之间的通信服务。

在一个实施例中,所述云计算系统还可以包括存储层。所述存储层主要用于存放虚拟机的系统盘和数据盘,虚拟机的虚拟机快照也存放在所述存储层。本发明实施例中,所述存储层是基于ceph搭建的,所述ceph是一个分布式存储系统,同时提供块、对象、文件三种存储。

由前述可知,基于图1a所示的云计算系统,用户的服务是运行在虚拟机中。为了保护虚拟机中数据的安全性,可以设置定时自动快照,也即在固定时间为每个虚拟机制作虚拟机快照。一般情况下,存储层中不会保留所有时间制作的虚拟机快照,只能保留最近几次的虚拟机快照。如此便涉及到虚拟机快照删除的问题。

对于任意一个虚拟机而言,云计算系统中根据每个虚拟机快照获取的时间顺序以树状结构进行组织各个虚拟机快照,并根据创建和回滚操作顺序进行父子关系绑定,得到快照树。参考图1b,为本发明实施例提供的一种快照树的结构示意图。

在一个实施例中,图1b所示的快照树中包括7个虚拟机快照(以下简称为快照),每个快照对应一个编号,快照制作顺序跟编号一致,快照1表示该虚拟机快照为最先制作的快照,快照7为最后制作的快照。由于对快照树中的任意一个快照进行删除,可能导致快照之间的父子关系发生改变,因此在删除快照时需要同步更新快照树中快照之间的父子关系。比如删除“快照5”,需要把“快照5”的子快照“快照6”作为“快照2”的子快照,如图1c所述;又比如删除“快照2”,需要把“快照3”和“快照5”作为“快照1”的子快照,如图1d所示。

可选的,对于任意一个虚拟机而言,如果同时删除该虚拟机中的多个虚拟机快照,可以会出现由于资源操作竞争导致的快照树父子关系更新失败的现象。比如同时删除“快照2”和“快照5”的时候,在更新“快照6”作为“快照2”的子快照时,可能“快照2”已经删除了,导致更新父子关系失败,如图1e所示。

但是,对于不同虚拟机而言,如果同时删除属于不同虚拟机上的多个虚拟机快照,每个虚拟机对应的快照树更新不会受到影响。如图1f所示,为本发明实施例提供的同时删除不同虚拟机上的虚拟机快照的示意图。图1f中假设云计算系统包括虚拟机1、虚拟机2以及虚拟机3,在同一个时刻,删除虚拟机1上最旧快照、虚拟机2上的最旧快照以及虚拟机3上的最旧快照,对彼此的快照树更新不会产生影响。

由此可见,目前对于单个虚拟机而言,为了避免由于资源操作竞争导致的快照树更新失败的问题,只能逐一删除某个虚拟机上多个需要删除的虚拟机快照。另外,上述在对虚拟机快照删除过程中,均是在检测到删除指令后,立即对虚拟机快照进行删除。基于此种快照删除方法,不仅删除快照的效率较低,可能还会导致多个虚拟机同时删除快照,而导致存储集群带来读写压力,从而导致用户的业务受到影响。

为了避免上述问题的出现,基于图1a所示的云计算系统,本发明实施例提供了一种数据删除方案,该数据删除方法可由云计算系统中的目标计算节点执行,所述目标计算节点为多个计算节点中的任意一个。具体地,在接收到对任意一个待删除虚拟快照进行删除的删除指令时,目标计算节点不立即执行对待删除虚拟机快照的删除操作,而是为该待删除虚拟机快照添加删除标记。当检测到执行虚拟机快照删除操作的触发事件时比如检测到运行定时删除虚拟机快照线程,从多个已添加删除标记的待删除虚拟机快照中获取与目标计算节点匹配的目标虚拟机快照,进而对所述目标虚拟机快照执行删除操作。

如此一来,可以实现针对任意一个虚拟机,进行批量的虚拟机快照删除,提高了快照删除效率。并且,每个计算节点对应的执行虚拟机删除操作的触发事件可能不相同,避免了在同一时刻整个云计算系统所有虚拟机都进行快照删除,减少了对云计算系统中存储集群的读写压力,从而有利于提高用户业务执行的稳定性。

基于上述的云计算系统,本发明实施例提供了一种数据删除方法。参加图2,为本发明实施例提供的一种数据删除方法的流程示意图,图2所示的数据删除方法可应用于目标计算节点,所述目标计算节点是云计算系统的基础云层中包括的至少一个计算节点中的任意一个。所述数据删除方法可由所述目标计算节点执行,具体可由目标计算节点的处理器执行。图2所述的数据删除方法可包括如下步骤:

步骤s201、当检测到执行虚拟机快照删除操作的触发事件时,获取数据状态为已删除状态的至少一个虚拟机快照。

在一个实施例中,所述触发事件可以指检测到用于延时删除虚拟机快照的定时线程启动运行,所述定时线程可以是按照预设的时间间隔启动运行的,比如每隔5分钟启动一次。

在一个实施例中,所述至少一个虚拟机快照是存储在存储层的数据库中的。因此,在检测到执行虚拟机快照删除操作的触发事件时,目标计算节点从存储层的数据库中拉取已添加删除标记的至少一个虚拟机快照。

在一个实施例中,每个虚拟机快照的已删除状态是在接收到对相应的虚拟机快照进行删除的删除指令时标记的。具体来说,每个虚拟机快照的对应的已删除状态是每个虚拟机快照对应的虚拟机所属的计算节点为相应的虚拟机快照标记的。比如,假设数据状态为已删除状态的虚拟机快照中包括第一虚拟机快照,所述第一虚拟机快照对应虚拟机a,虚拟机a所属的计算节点为目标计算节点,那么第一虚拟机快照对应的已删除状态是由目标计算节点标记的。为了方便描述,在下面的举例中以目标计算节点将任意一个虚拟机快照标记为已删除状态为例,对于云计算系统中其他计算节点将虚拟机快照标记为已删除状态的实施方式与目标计算节点相同。

在一个实施例中,所述对任意一个虚拟机快照进行删除的删除指令可以用户通过业务层提交的。由前述可知,业务层提交的指令可以通过云网关层的venus组件发送到基础云层,由基础云层中的目标计算节点将删除指令所指示的虚拟机快照的数据状态标记为已删除状态。由前述可知,目标计算节点中可包括nova组件,所述目标计算节点将虚拟机快照标记为已删除状态实质上是调用nova组件将虚拟机快照标记为已删除状态。

在一个实施例中,对于任意一个虚拟机快照而言,其在数据库中可包括多个数据状态,多个数据状态之间的转化关系可以参考图3a所示。图3a为本发明实施例提供的一种虚拟机快照的多种数据状态之间转化的示意图。由图3a可知,虚拟机快照的数据状态可以包括制作状态、可用状态、删除中状态以及已删除状态。当云计算系统正在制作虚拟机快照时,该虚拟机快照的数据状态为制作状态。制作完成后,该虚拟机快照的数据状态变为可用状态。处于可用状态的虚拟机快照可以用于回滚,通过可用状态的虚拟机快照可以将相应的虚拟机磁盘数据回滚到之前的那个时间点。当接收到对虚拟机快照进行删除时,该虚拟机快照的数据状态为删除中,在删除完成后,该虚拟机数据对应的数据状态为已删除状态。

本发明实施例中,将虚拟机快照标记为已删除转状态实质是指把该虚拟机快照在数据库中的数据状态直接从可用available状态设置为已删除deleted状态。由于这种直接修改数据库状态标记,不会实际的删除虚拟机快照,也就不会更新虚拟机的快照树。与现有技术中接收到删除指令便立刻执行删除操作相比,本发明实例中,接收到虚拟机快照的删除指令后,首先将虚拟机快照标记为已删除状态。随着时间的推移,当检测到对虚拟机快照的删除操作时,可以同时将数据状态为已删除状态的虚拟机快照进行删除,这样可以解决云计算系统中所有虚拟机在同一时刻执行虚拟机快照的删除操作,可以有效地降低存储集群的读写压力。

例如,参考图3b,为本发明实施例提供的一种立即删除虚拟机快照的示意图。在图3b中,控制节点接收到云网关层venus发送的对虚拟机快照的的删除指令,控制节点中的nova-api查找该虚拟机快照所在的虚拟机,再通过该虚拟机的信息查找该虚拟机所在的计算节点假设为目标计算节点;然后通过控制节点的nova-api将删除指令发送至目标计算节点的nova-api;目标计算节点的nova-api将请求发送至目标计算节点的nova-compute,由目标计算节点的nova-compute通知存储层将该请求中的虚拟机快照进行删除。

参考图3c,为本实施例提供的一种将虚拟机快照标记为已删除状态的示意图。与图3b区别的是,目标计算节点接收到删除指令后,不对删除指令所指示的虚拟机快照进行删除操作,而是将该虚拟机快照的数据状态标记为已删除状态。如此一来,在云网关层看来,该虚拟机快照已被删除。随着时间的推移,当检测到对虚拟机快照的删除操作时,再对数据状态为已删除状态的虚拟机快照进行删除操作。

步骤s202、根据每个虚拟机快照的参数信息,从至少一个虚拟机快照中获取与目标计算节点相匹配的目标虚拟机快照。

其中,每个虚拟机快照的参数信息可以包括相应的虚拟机快照对应的虚拟机的标识信息,例如虚拟机快照a对应虚拟机a,那么虚拟机快照a的参数信息可以包括虚拟机a的标识信息。所述与目标计算节点相匹配的目标虚拟机快照是指目标虚拟机快照对应的虚拟机属于该目标计算节点。

在一个实施例中,所述根据每个虚拟机快照的参数信息,从至少一个虚拟机快照中获取与目标计算节点相匹配的目标虚拟机快照,可包括:根据每个虚拟机快照所属虚拟机的虚拟机信息,获取每个虚拟机信息所属的计算节点;从每个虚拟机信息所属的计算节点中,获取与所述目标计算节点相匹配的计算节点,并将属于相匹配的计算节点中的虚拟机对应的虚拟机快照作为目标虚拟机快照。

步骤s203、对目标虚拟机快照执行删除操作。

在一个实施例中,所述目标虚拟机的数量可以为至少一个,在步骤s202中确定出目标虚拟机快照之后,可以将目标虚拟机存入先进先出队列中;然后对先进先出队列中目标虚拟机快照依次执行删除操作。

在一个实施例中,由前述可知,云计算系统中各个虚拟机对应的虚拟机快照是存储在存储层中的,存储层是基于ceph搭建的,因此所述对目标虚拟机快照执行删除操作,可以包括:调用ceph的删除快照接口对目标虚拟机快照删除目标虚拟机快照。

本发明实施例中,当目标计算节点检测到执行虚拟机快照删除操作的触发事件时,获取数据状态为已删除状态的至少一个虚拟机快照,每个虚拟机快照对应的已删除状态是在接收到对相应的虚拟机快照进行删除的删除指令时标记的;并且,接收到对任意一个虚拟机快照进行删除的删除指令的时间早于检测到所述触发事件的时间;进一步的,根据每个虚拟机快照的参数信息,从至少一个虚拟机快照中获取与目标计算节点相匹配的目标虚拟机快照;并对目标虚拟机快照执行删除操作。

在上述虚拟机快照的删除过程中,接收到对任意一个虚拟机快照进行删除的删除指令的时间早于检测到触发事件的时间,表明对虚拟机快照的删除操作不是接收到删除指令后立即执行的,而是延迟执行的。具体实现中,在接收到对任意一个虚拟机快照的删除指令后,不是真正的将虚拟机快照进行删除,而是将其数据状态修改为已删除状态,然后等待检测到执行删除的触发事件时再执行删除操作。与现有技术中接收到删除指令后,立即删除虚拟机快照方法相比,避免了在同一时刻整个云计算系统所有虚拟机都进行快照删除,减少了对云计算系统中存储集群的读写压力,从而有利于提高用户业务执行的稳定性。

基于上述的数据删除方法,本发明实施例提供了另一种数据删除方法。参见图4,为本发明实施例提供的另一种数据删除方法的流程示意图。图4所示的数据删除方法可由目标计算节点执行,所述目标计算节点可以是云计算系统中多个计算节点中的任意一个。所述数据删除方法具体可由所述目标计算节点中的处理器执行。图4所示的数据删除方法可包括如下步骤:

步骤s401、当检测到对虚拟机快照进行删除的删除指令时,将虚拟机快照的数据状态标记为已删除状态。

步骤s402、当检测到执行虚拟机快照删除的触发事件时,获取数据状态为已删除状态的至少一个虚拟机快照。

步骤s403、根据每个虚拟机快照的参数信息,从至少一个虚拟机快照中获取与目标计算节点相匹配的目标虚拟机快照。

在一个实施例中,步骤s401-步骤s403中包括的一些可行的实施方式可参见图2实施例中相关步骤的描述,在此不再赘述。

步骤s404、从分布式锁集合中获取未被占用的目标分布式锁。

在一个实施例中,为了控制存储集群的读写速度,本发明实施例中通过步骤s401-步骤s403获取到目标虚拟机快照之后,目标计算节点还需要成功获取到对虚拟机快照删除的权限,才可以调用ceph删除快照接口来删除目标虚拟机快照。

基于上述,本发明实施例中引出分布式锁的概念,所述分布式锁用于授权允许删除虚拟机快照,也就是说当目标计算节点获取分布式锁成功时,相当于目标计算节点获取到对虚拟机快照删除的权限。

在一个实施例中,所述分布式锁的数量可以为一个或多个,一个或多个分布式锁组成了分布式锁集合,分布式锁集合存储在存储层,也即ceph层。每个分布式锁一次只能允许被一个计算节点获取到。基于此,所述对所述目标虚拟机快照执行删除操作,包括:从所述分布式锁集合中获取未被占用的目标分布式锁;若获取所述目标分布式锁成功,则调用存储层删除所述目标虚拟机快照。其中,目标分布式锁可以指分布式锁集合中的任意一个或多个分布式锁。应当理解的,如果分布式锁集合中只包括一个分布式锁,则将该分布式锁称为目标分布式锁。

可选的,所述分布式锁是基于ceph实现的。ceph作为多节点的分布式存储系统,通过librbd库可以对外提供rbd块存储服务,块存储是一种类似于裸盘的数据组织格式。所述分布式锁实际上基于rbd块存储实现的,每个分布式锁对应一个存储容量为预置值的块设备,比如0字节的块设备。

在一个实施例中,下面以分布式锁集合中只包括一个分布式锁为例介绍目标计算节点如何从分布式锁集合中获取目标分布式锁。假设称使用rbd块设备实现分布式锁为rbdlock,可以通过下面一段python的伪代码举例说明如何获取分布式锁:

classrbdlock:

deflock(上锁操作)

(1)判断0字节rbd是否存在;如果不存在,则创建一个0字节的rbd块设备;

(2)创建与ceph0字节rbd块设备所在池的连接

(3)打开0字节rbd块设备

(4)获取0字节rbd块设备的排他锁

(5)如果排他锁已经被占用,则关闭0字节rbd块设备,并断开与ceph的连接。

在上述伪代码中,deflock表示开始获取分布式锁,在步骤(1)中若目标计算节点判断出ceph存储层中已存在0字节的块设备,则执行步骤(2);若在步骤(1)中目标计算节点判断出ceph中不存在0字节的rbd块设备,则创建一个0字节的rbd块设备,然后执行步骤(2);在步骤(2)中,与0字节块设备所在池建立连接;然后在步骤(3)中打开0字节设备,并执行步骤(4)为该0字节rbd块设备配置排它锁。如果上锁失败,表明排它锁已经被占用,此时可关闭0字节rbd块设备,并断开与ceph的连接。如果在步骤(4)中上锁成功,表明目标节点获取到分布式锁。

基于上述描述,如果分布式锁集合中只包括一个分布式锁,则目标计算节点从所述分布式锁集合中获取目标分布式锁的示意图可如图5a所示。图5a所示的获取分布式锁的示意图中,假设云计算系统的基础云层中除了包括目标计算节点,还可以包括不同于目标计算节点的第一计算节点和第二计算节点。在同一个时刻可能存在其他计算节点,与目标计算节点同时向ceph存储层申请分布式锁。但是由于分布式锁集合中只有一个分布式锁,因此,此时只有一个计算节点能够成功获取到分布式锁。

在一个实施例中,若目标计算节点获取目标分布式锁成功,则可以执行调用存储层对目标虚拟机快照进行删除的操作。为了方便其他计算节点使用,目标计算节点在执行了删除操作之后,可以释放获取到的所述目标分布式锁。

可选的,假设defunlock表示释放分布式锁,可以通过下面一段python的伪代码举例说明如何释放分布式锁:

defunlock

(1)释放0字节rbd块设备的排它锁

(2)关闭0字节块设备

(3)断开与ceph的连接

在一个实施例中,为了可以调节删除快照的速率,可以配置多个分布式锁。在本发明实施例中,可以使用一个单独的锁存储池来存放分布式锁集合中的多个分布式锁。可选的,如果分布式锁集合中包括多个分布式锁,为了控制分布式锁集合中的分布式锁的数量更新,则需要部署一个控制锁来对分布式锁集合进行管理。

在一个实施例中,所述控制锁的原理与分布式锁相同,只是两个锁的作用不同。所述控制锁用于授权对分布式锁集合进行更新,所述对分布式锁集合进行更新可包括:在所述分布式锁集合中增加新的分布式锁,或者从所述分布式锁集合中删除分布式锁。也就是说,控制锁主要用来控制分布式锁数量的更新,

假设分布式锁和控制锁都是通过0字节的rbd块设备实现的。对分布式锁数量的更新可以由任意一个计算节点发起,通过创建新的0字节rbd块设备和删除0字节rbd块设备完成,但是在更新的时候只能由一个计算节点发起。简单来说,如果任意一个计算节点想要对分布式锁集合进行更新,则该计算节点需要获取到控制锁。

下面以任意一个计算节点为目标计算节点为例,对分布式锁集合进行更新的实施方式可以包括:从所述存储层获取所述控制锁;若获取所述控制锁成功,则根据所述存储层的性能确定可承载的分布式锁的目标数量;基于所述目标数量,对所述分布式锁集合进行更新。

其中,所述存储层的性能越好,所述分布式锁的数量可以越多,分布式锁的数量越多,同一时刻可允许更多的计算节点获取分布式锁来进行快照删除。所述基于所述目标数量,对所述分布式锁集合进行更新,包括:获取未更新之前分布式锁的数量;获取目标数量与未更新之前分布式锁的数量之间的数量差;若未更新之前分布式锁的数量小于目标数量,则新建数量差个分布式锁;若未更新之前分布式锁的数量大于目标数量,则从分布式锁集合中删除数量差个分布式锁。也就是说,基于目标数量对所述分布式锁集合进行更新的目的是为了保证分布式锁集合中分布式锁的数量等于目标数量。

在一个实施例中,若分布式锁集合中包括多个分布式锁,则这多个分布式锁的序号是根据每个分布式锁的创建顺序依次递增的,比如分布式锁1、分布式锁2等。基于此,所述目标计算节点从所述分布式锁集合中获取目标分布式锁时,是按照每个分布式锁的序号依次尝试的。比如,首先尝试序号为1的分布式锁1,如果分布式锁1已被占用,则尝试获取分布式锁2,依次类推直到获取到未本占用的分布式锁。若尝试获取分布式锁集合中的所有分布式锁失败,则确定目标计算集合获取目标分布式锁失败。

举例来说,参考图5b,为本发明实施例提供的另一种获取分布式锁的示意图。假设存储层中存在专门用于存储分布式锁的存储池,称为锁存储池。锁存储池中存储有控制锁和分布式锁集合,分布式锁集合中包括分布式锁1、分布式锁2、分布式锁3以及分布式锁4。假设云计算系统中包括目标计算节点,以及除了目标计算节点的第一计算节点和第二计算节点。在图5b所示的获取分布式锁的示意图中,任意一个计算节点均可以通过获取控制锁,来申请更新分布式锁的数量。并且,任意一个计算节点均可以从分布式锁集合中申请分布式锁。

步骤s405、若获取目标分布式锁成功,则调用存储层删除目标虚拟机快照。

由前述可知,目标计算节点获取到相匹配的目标分布式锁之后,将目标分布式锁放入目标计算节点的队列中。然后目标计算节点从分布式锁集合中获取目标分布式锁;如果获取目标分布式锁成功,则调用ceph删除目标虚拟机快照;如果获取目标分布式锁失败,则可以不对目标虚拟机快照执行删除操作。

下面通过图5c举例说明,目标计算节点如何删除目标虚拟机快照。参考图5c,为本发明实施例提供的一种删除目标虚拟机快照的示意图。假设云计算系统的基础云层包括目标计算节点、第一计算节点以及第二计算节点。在下面的描述中以目标计算节点为例,第一计算节点和第二计算节点对目标虚拟机快照的删除步骤和原理与目标计算节点相同。目标计算节点检测到用于延时删除虚拟机快照的定时线程启动运行时,从数据库中拉取已添加删除标记的至少一个虚拟机快照;通过每个虚拟机快照的参数信息比如所属的虚拟机的标识信息。从数据库中拉取每个虚拟机快照对应的虚拟机信息,并获取每个虚拟机所属的计算节点;通过获取的计算节点与定时线程所运行的计算节点进行匹配,也即与目标计算节点进行匹配,找出与目标计算节点相匹配的计算节点;并将属于这些计算节点中虚拟机对应的虚拟机快照作为目标虚拟机快照。

进一步的,将获取到的目标虚拟机快照放入先进先出队列中。对队列中的快照依次进行调用ceph删除快照,并且在调用ceph之前先从ceph的锁存储池中获取分布式锁,获取成功后才可以进行真正的快照数据删除。允许并发删除的个数取决于获取到的分布式锁的个数,比如获取到分布式锁的个数为2个,则目标计算节点可同时删除两个虚拟机快照。

本发明实施例了一种数据删除方案,可以实现在接收到对任意一个待删除虚拟机快照的删除指令后,为其添加已删除标记,然后等待检测到执行删除的触发事件时再执行删除操作。与现有技术中接收到删除指令后,立即删除虚拟机快照的方法相比,实现了延迟删除,避免了在同一时刻整个云计算系统所有虚拟机都进行快照删除,减少了对云计算系统中存储集群的读写压力,从而有利于提高用户业务执行的稳定性。

另外,在上述数据删除过程中,对目标虚拟机快照进行删除之前,需要从分布式锁集合中获取分布式锁,分布式锁集合中可包括多个分布式锁,通过设置多个分布式锁,可以实现目标计算节点批量对多个目标虚拟机快照进行删除,提高了快照删除的效率。

基于上述的数据删除方法的实施例,本发明实施例提供了一种数据删除装置。参考图6,为本发明实施例提供的一种数据删除装置的结构示意图。图6所示的数据删除装置可运行如下单元:

获取单元601,用于当检测到执行虚拟机快照删除操作的触发事件时,获取数据状态为已删除状态的至少一个虚拟机快照,所述至少一个虚拟机快照中每个虚拟机快照对应的已删除状态是在接收到对相应的虚拟机快照进行删除的删除指令时标记的;

所述获取单元601,还用于根据每个虚拟机快照的参数信息,从所述至少一个虚拟机快照中获取与所述目标计算节点相匹配的目标虚拟机快照;

处理单元602,用于对所述目标虚拟机快照执行删除操作。

在一个实施例中,所述云计算系统还包括存储层,所述存储层用于存储分布式锁集合,所述分布式锁集合包括至少一个分布式锁,每个分布式锁用于授权允许删除虚拟机快照,所述处理单元602在对所述目标虚拟机快照执行删除操作时,执行如下操作:从所述分布式锁集合中获取未被占用的目标分布式锁;若获取所述目标分布式锁成功,则调用存储层删除所述目标虚拟机快照。

在一个实施例中,所述每个虚拟机快照的参数信息包括相应的虚拟机快照所属虚拟机的虚拟机信息,所述获取单元601在根据每个虚拟机快照的参数信息,从所述至少一个虚拟机快照中获取与目标计算节点对应的目标虚拟机快照时,执行如下操作:根据每个虚拟机快照所属虚拟机的虚拟机信息,获取每个虚拟机信息所属的计算节点;从每个虚拟机信息所属的计算节点中,获取与所述目标计算节点相匹配的计算节点,并将属于相匹配的计算节点中的虚拟机对应的虚拟机快照作为目标虚拟机快照。

在一个实施例中,所述分布式锁是基于所述存储层的块存储实现的,所述分布式锁集合中每个分布式锁对应一个存储容量为预置值的块设备,所述处理单元602,还用于打开所述存储层中目标分布式锁对应的目标块设备,并为所述目标块设备配置排它锁;若对所述块设备配置排它锁成功,则确定获取所述目标分布式锁成功。

在一个实施例中,所述储层还包括控制锁,所述控制锁用于授权对所述分布式锁集合进行更新,所述对所述分布式锁集合进行更新包括在所述分布式锁集合中增加新的分布式锁,或者,从所述分布式锁集合中删除分布式锁;所述获取单元601,还用于从所述存储层获取所述控制锁;所述处理单元602,还用于若获取所述控制锁成功,则根据所述存储层的性能确定可承载的分布式锁的目标数量;基于所述目标数量,对所述分布式锁集合进行更新。

在一个实施例中,所述调用存储层删除所述目标虚拟机快照后,所述处理单元602,还用于释放为所述目标块设备配置的排它锁,并关闭所述目标块设备。

在一个实施例中,所述触发事件包括:检测到用于延时删除虚拟机快照的定时线程启动运行,所述定时线程是按照预设的时间间隔启动运行的。

根据本发明的一个实施例,图2和图4所示的数据删除方法所涉及各个步骤可以是由图6所示的数据删除装置中的各个单元来执行的。例如,图2所述的步骤s201-步骤s202均可由图6中所述的数据删除装置中的获取单元601来执行,步骤s203可由图6中所示的数据删除装置中的处理单元602来执行;再如,图4所述的步骤s401和步骤s405可由图6所示的数据删除装置中的处理单元602来执行,步骤s402-步骤s404均可由图6所示的数据删除装置中的获取单元601来执行。

根据本发明的另一个实施例,图6所示的数据删除装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本发明的其它实施例中,基于数据删除装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。

根据本发明的另一个实施例,可以通过在包括中央处理单元(cpu)、随机存取存储介质(ram)、只读存储介质(rom)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图6中所示的数据删除装置,以及来实现本发明实施例数据删除方法。所述计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中运行。

本发明实施例中,当目标计算节点检测到执行虚拟机快照删除操作的触发事件时,获取已添加删除标记的至少一个虚拟机快照,每个虚拟机快照对应的删除标记是在接收到对相应的虚拟机快照进行删除的删除指令时添加的;并且,接收到对任意一个虚拟机快照进行删除的删除指令的时间早于检测到所述触发事件的时间;进一步的,根据每个虚拟机快照的参数信息,从至少一个虚拟机快照中获取与目标计算节点相匹配的目标虚拟机快照;并对目标虚拟机快照执行删除操作。

在上述虚拟机快照的删除过程中,接收到任意一个删除虚拟机快照进行删除的删除指令的时间早于检测到触发事件的时间,表明对虚拟机快照的删除操作不是接收到删除指令后立即执行的,而是延迟执行的。具体实现中,在接收到对任意一个虚拟机快照的删除指令后,为其添加已删除标记,然后等待检测到执行删除的触发事件时再执行删除操作。与现有技术中定时自动制作快照中的删除虚拟机快照方法相比,避免了在同一时刻整个云计算系统所有虚拟机都进行快照删除,减少了对云计算系统中存储集群的读写压力,从而有利于提高用户业务执行的稳定性。

基于上述的数据删除方法以及数据删除装置的实施例,本发明实施例提供了一种数据删除设备,所述数据删除设备可以为前述目标计算节点。参考图7,为本发明实施例提供的一种数据删除设备的结构示意图。图7所示的数据删除设备可至少包括处理器701、输入接口702、输出接口703以及计算机存储介质704。其中,处理器701、输入接口702、输出接口703以及计算机存储介质704可通过总线或其他方式连接。

计算机存储介质704可以存储在节点设备的存储器中,所述计算机存储介质704用于存储计算机程序,所述计算机程序包括程序指令,所述处理器1201用于执行所述计算机存储介质704存储的程序指令。处理器701(或称cpu(centralprocessingunit,中央处理器))是数据删除设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能。

在一个实施例中,本发明实施例所述的处理器701可用于执行:当检测到执行虚拟机快照删除操作的触发事件时,获取数据状态为已删除状态的至少一个虚拟机快照,所述至少一个虚拟机快照中每个虚拟机快照对应的已删除状态是在接收到对相应的虚拟机快照进行删除的删除指令时添加的;根据每个虚拟机快照的参数信息,从所述至少一个虚拟机快照中获取与所述目标计算节点相匹配的目标虚拟机快照;对所述目标虚拟机快照执行删除操作。

本发明实施例还提供了一种计算机存储介质(memory),所述计算机存储介质是数据删除设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括数据删除设备中的内置存储介质,当然也可以包括数据删除设备所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了数据删除设备的操作系统。并且,在该存储空间中还存放了适于被处理器701加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机存储介质。

在一个实施例中,所述计算机存储介质可由处理器701加载并执行计算机存储介质中存放的一条或多条指令,以实现上述有关图2所示数据删除方法实施例中的方法的相应步骤,具体实现中,计算机存储介质中的一条或多条指令由处理器701加载并执行如下步骤:当检测到执行虚拟机快照删除操作的触发事件时,获取数据状态为已删除状态的至少一个虚拟机快照,所述至少一个虚拟机快照中每个虚拟机快照对应的已删除状态是在接收到对相应的虚拟机快照进行删除的删除指令时添加的;根据每个虚拟机快照的参数信息,从所述至少一个虚拟机快照中获取与所述目标计算节点相匹配的目标虚拟机快照;对所述目标虚拟机快照执行删除操作。

在一个实施例中,所述云计算系统还包括存储层,所述存储层用于存储分布式锁集合,所述分布式锁集合包括至少一个分布式锁,每个分布式锁用于授权允许删除虚拟机快照,所述处理器701在对所述目标虚拟机快照执行删除操作时,执行如下步骤:从所述分布式锁集合中获取未被占用的目标分布式锁;若获取所述目标分布式锁成功,则调用存储层删除所述目标虚拟机快照。

在一个实施例中,所述每个虚拟机快照的参数信息包括相应的虚拟机快照所属虚拟机的虚拟机信息,所述处理器701在根据每个虚拟机快照的参数信息,从所述至少一个虚拟机快照中获取与目标计算节点对应的目标虚拟机快照时,执行如下步骤:根据每个虚拟机快照所属虚拟机的虚拟机信息,获取每个虚拟机信息所属的计算节点;从每个虚拟机信息所属的计算节点中,获取与所述目标计算节点相匹配的计算节点,并将属于相匹配的计算节点中的虚拟机对应的虚拟机快照作为目标虚拟机快照。

在一个实施例中,所述分布式锁是基于所述存储层的块存储实现的,所述分布式锁集合中每个分布式锁对应一个存储容量为预置值的块设备,所述处理器701还用于:打开所述存储层中目标分布式锁对应的目标块设备,并为所述目标块设备配置排它锁;若对所述块设备配置排它锁成功,则确定获取所述目标分布式锁成功。

在一个实施例中,所述存储层还包括控制锁,所述控制锁用于授权对所述分布式锁集合进行更新,所述对所述分布式锁集合进行更新包括在所述分布式锁集合中增加新的分布式锁,或者,从所述分布式锁集合中删除分布式锁,所述处理器701还用于从所述存储层获取所述控制锁;若获取所述控制锁成功,则根据所述存储层的性能确定可承载的分布式锁的目标数量;基于所述目标数量,对所述分布式锁集合进行更新。

在一个实施例中,所述调用存储层删除所述目标虚拟机快照后,所述处理器701还用于释放为所述目标块设备配置的排它锁,并关闭所述目标块设备。

在一个实施例中,所述触发事件包括:检测到用于延时删除虚拟机快照的定时线程启动运行,所述定时线程是按照预设的时间间隔启动运行的。

本发明实施例中,当目标计算节点检测到执行虚拟机快照删除操作的触发事件时,获取已添加删除标记的至少一个虚拟机快照,每个虚拟机快照对应的删除标记是在接收到对相应的虚拟机快照进行删除的删除指令时添加的;并且,接收到对任意一个虚拟机快照进行删除的删除指令的时间早于检测到所述触发事件的时间;进一步的,根据每个虚拟机快照的参数信息,从至少一个虚拟机快照中获取与目标计算节点相匹配的目标虚拟机快照;并对目标虚拟机快照执行删除操作。

在上述虚拟机快照的删除过程中,接收到任意一个删除虚拟机快照进行删除的删除指令的时间早于检测到触发事件的时间,表明对虚拟机快照的删除操作不是接收到删除指令后立即执行的,而是延迟执行的。具体实现中,在接收到对任意一个虚拟机快照的删除指令后,为其添加已删除标记,然后等待检测到执行删除的触发事件时再执行删除操作。与现有技术中定时自动制作快照中的删除虚拟机快照方法相比,避免了在同一时刻整个云计算系统所有虚拟机都进行快照删除,减少了对云计算系统中存储集群的读写压力,从而有利于提高用户业务执行的稳定性。

根据本申请的一个方面,本发明实施例还提供了一种计算机产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。数据删除设备的处理器701从计算机可读存储介质读取该计算机指令,处理器701执行该计算机指令,使得该数据删除设备执行:当检测到执行虚拟机快照删除操作的触发事件时,获取数据状态为已删除状态的至少一个虚拟机快照,所述至少一个虚拟机快照中每个虚拟机快照对应的已删除状态是在接收到对相应的虚拟机快照进行删除的删除指令时添加的;根据每个虚拟机快照的参数信息,从所述至少一个虚拟机快照中获取与所述目标计算节点相匹配的目标虚拟机快照;对所述目标虚拟机快照执行删除操作。

以上所揭露的仅为本发明部分实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1