发明内容
本发明的主要目的在于提供一种新的隔离数据管理方案,其能够在容器技术的基础上,使用持久性存储装置对数据文件的ID和数据文件的存储目录进行关联持久性存储,由此在容器销毁回收之后,可以基于ID接管数据文件的生命周期,实现数据文件的生命周期独立于虚拟容器的生命周期,从而为经隔离数据文件的重复利用提供了基础。
根据本发明的一个方面,提供了一种隔离数据管理方法,包括:基于持久性唯一标识符将针对目标任务创建的当前虚拟容器的数据卷挂载至持久性数据存储装置上与持久性唯一标识符相对应的目标目录;经由虚拟容器技术对目标目录内的已有数据进行针对目标任务的操作;在当前的虚拟容器销毁后,继续在目标目录内存储针对目标任务的经操作的已有数据。
由此,可以实现目标目录中的数据的生命周期独立于虚拟容器的生命周期,从而在虚拟容器销毁后,可以根据目标目录中的数据进行容器重启,并且目标目录中的数据还可以应用于针对同一目标任务后续创建的容器。
优选地,该隔离数据管理方法还可以包括:对于针对目标任务创建的下一虚拟容器重复执行上述操作。
由此,针对同一目标任务创建的后续虚拟容器,均可以将其数据卷挂载至对应的经之前的虚拟容器操作后的目标目录,从而可以实现隔离数据的持久性重复利用。
优选地,该隔离数据管理方法还可以包括:针对目标任务创建持久性唯一标识符;以及在持久性数据存储装置上创建针对目标任务的与持久性唯一标识符相对应的目标目录。
由此,通过在持久性数据存储装置上关联地存储持久性唯一标识符和目标目录,使得在容器销毁后,可以根据持久性唯一标识符接管目标目录内的数据的生命周期事件。
优选地,该隔离数据管理方法还可以包括:从镜像仓库拉取相应的基础数据镜像至目标目录;根据目标任务调整基础数据镜像作为目标目录内的基础数据。由此,可以方便地获取基础数据镜像并根据任务需求加以调整,使得目标目录内的基础数据与目标任务更加契合。
优选地,镜像仓库是虚拟容器的镜像仓库。由此,可以从丰富的虚拟容器镜像仓库中拉取符合自身要求的基础数据镜像。
优选地,该隔离数据管理方法还可以包括:在目标任务完成后,销毁持久性数据存储装置上的目标目录。由此,直到目标任务全部完成后,才对目标目录及其中的数据进行回收。
优选地,经由虚拟容器技术对目标目录内的已有数据进行针对目标任务的操作可以包括:根据持久性唯一标识符为虚拟容器分配端口以启动虚拟容器服务来对目标目录内的已有数据进行针对目标任务的操作。
由此,根据分配的端口可以方便地实现对目标目录内的数据的访问。
优选地,持久性数据存储装置可以是MySQL数据库;虚拟容器技术可以是当今流行的docker技术,由此方便地利用上述功能强大的工具实现持久性数据隔离。
优选地,持久性数据存储装置上还存储有用于描述目标任务的当前状态的任务描述参数。由此,可以根据任务描述参数更方便准确地实现目标目录中数据的持久性使用和管理。
优选地,目标任务是目标应用的测试任务,并且任务描述参数包括如下至少一项:目标应用的应用名称;目标应用的应用类型;目标任务的申请人;目标任务的申请时间;目标任务的任务状态。由此,能够使用任务描述参数精确反映测试任务中的各个阶段。
根据本发明的另一个方面,还提供了一种隔离数据管理装置,包括:挂载单元,用于基于持久性唯一标识符将针对目标任务创建的当前虚拟容器的数据卷挂载至持久性数据存储装置上与持久性唯一标识符相对应的目标目录;数据操作单元,用于经由虚拟容器技术对目标目录内的已有数据进行针对目标任务的操作;存储单元,用于在当前的虚拟容器销毁后,继续在目标目录内存储针对目标任务的经操作的已有数据。
优选地,对于针对目标任务创建的下一虚拟容器重复执行上述操作
优选地,该装置还可以包括:标识符创建单元,用于针对目标任务创建持久性唯一标识符;以及目标目录创建单元,用于在持久性数据存储装置上创建针对目标任务的与持久性唯一标识符相对应的目标目录。
优选地,该装置还可以包括:镜像拉取单元,用于从镜像仓库拉取相应的基础数据镜像至目标目录;镜像调整单元,用于根据目标任务调整基础数据镜像作为目标目录内的基础数据。
优选地,该装置还可以包括:目录销毁单元,用于在目标任务完成后,销毁持久性数据存储装置上的目标目录。
优选地,数据操作单元根据持久性唯一标识符为虚拟容器分配端口以启动虚拟容器服务来对目标目录内的已有数据进行针对目标任务的操作。
优选地,持久性数据存储装置上还存储有用于描述目标任务的当前状态的任务描述参数。
优选地,目标任务是目标应用的测试任务,并且任务描述参数包括如下至少一项:目标应用的应用名称;目标应用的应用类型;目标任务的申请人;目标任务的申请时间;目标任务的任务状态。
根据本发明的另一个方面,还提供了一种隔离数据管理系统,包括持久性数据存储装置和虚拟容器装置,其中,虚拟容器装置基于持久性唯一标识符将针对目标任务创建的当前虚拟容器的数据卷挂载至持久性数据存储装置上与持久性唯一标识符相对应的目标目录,虚拟容器装置经由虚拟容器技术对目标目录内的已有数据进行针对目标任务的操作,在虚拟容器装置将当前的虚拟容器销毁后,持久性数据存储装置继续在目标目录内存储针对目标任务的经操作的已有数据。
优选地,虚拟容器装置和持久性数据存储装置对于针对目标任务创建的下一虚拟容器重复执行上述操作。
优选地,持久性数据存储装置针对目标任务创建持久性唯一标识符,并在其上创建针对目标任务的与持久性唯一标识符相对应的目标目录,并持久性数据存储装置上还存储有用于描述目标任务的当前状态的任务描述参数。
根据本发明的又一个方面,还提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行上文述及的方法。
根据本发明的再一个方面,还提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行上文述及的方法。
综上,本发明的隔离数据管理方法、装置、系统、计算设备及存储介质,通过使用持久性存储装置对数据文件的ID和数据存储目录进行关联存储,由此在容器销毁回收之后,可以接管数据文件的生命周期,实现数据文件的生命周期独立于容器的生命周期,从而为经隔离数据文件超出虚拟容器生命周期的重复利用提供了基础。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在描述本发明之前,首先就本发明涉及的概念做简要说明。
虚拟容器技术:保证某个容器中运行的进程与外界是隔离的,并兼顾虚拟机的安全性和容器的轻量级的技术。
容器:是指利用虚拟容器技术构建的相对独立的运行环境。容器可以看成一个装好了一组特定应用的虚拟机,其可以直接利用宿主机的内核,抽象层比虚拟机更少,更加轻量化,启动速度极快。
数据卷:是一个特殊的目录,可以将主机目录直接映射进容器,一个数据卷可供一个或多个容器使用。
挂载:将文件系统与目录树结合的操作。具体地,将一个设备(通常是存储设备)挂接到一个已存在的目录上。我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。
挂载点:挂载时所挂载的目录。
Docker:一个开源的应用容器引擎,开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker仓库:顾名思义,就是存放docker的一个整体仓库,可以通过redis、mysql、nginx等进行分类,也可以通过工程a1、a2、a3进行分类。
Docker镜像:运行环境的静态体现,就是整合好但是没起来的“运行环境”。
Docker容器:通过启动镜像跑起来的“运行环境”,可以视为一个装在容器里的小型操作系统。
隔离环境:数据隔离的环境。测试场景下的隔离环境可以理解为一个测试环境,包括:应用代码、应用所运行的操作系统、应用所使用的数据文件。其中,应用代码由统一的代码仓库托管,应用所运行的操作系统,由容器提供,应用所使用的数据文件,就是存储数据的文件,具体格式由各个应用自行决定,例如可以由本案所描述的方式来管理。
如背景技术部分所述,目前在利用虚拟容器技术构建隔离环境时,由于数据文件的生命周期与容器的生命周期相同。导致容器被销毁时,数据也随即删除,给容器的还原、后续创建新容器时数据的重复利用带来一定的困难。
针对这种问题,发明人注意到,可以在容器技术的基础上,对容器运行过程中需要操作的数据进行持久化管理,并对每个容器实例分配ID,根据ID接管持久化数据文件的管理,使得持久化数据文件的生命周期独立于容器,由此在容器的生命周期之外,持久化数据文件不会因容器的销毁而删除。从而为容器的还原、后续创建容器时数据的重复利用提供了实现基础。
有鉴于此,本发明提出,针对目标任务,尤其是诸如测试任务这类持续时间较久且通常无法在单个虚拟容器的生命周期内完成的任务,在需要为其创建数据隔离的隔离环境时,可以生成一个能够在该目标任务完成前存留且唯一的标识符,并相应地在持久性数据存储装置(如数据库)上创建一个持久性目标目录。在利用构建好的数据镜像启动容器时,可以将数据镜像保存至与该持久性唯一标识符相对应的目标目录中,并将数据卷挂载至目标目录。由此,在容器的生命周期内,可以利用容器技术对目标目录内的已有数据进行相应操作以执行目标任务,在容器的生命周期外,可以基于持久性唯一标识符接管目标目录内经操作后的数据的生命周期。
具体地,可以在容器销毁后,继续在目标目录中存储经操作的已有数据,在任务继续时,针对新创建的虚拟容器,可以基于持久性唯一标识符将数据卷挂载至对应的目标目录即可实现容器的恢复,这样还可以提高容器的容灾能力。另外,对于持久化存储在目标目录中的数据文件,可以在测试完成后,需要真正回收数据文件时,才将其进行清理删除。
进一步地,在当前的虚拟容器销毁后,对于针对同一目标任务创建的后续容器,可以为其分配相同的持久性唯一标识符,以使得后续容器的数据卷可以挂载至同一目标目录中。由此,在当前虚拟容器执行完毕并销毁后,新创建的下一个容器可以继续利用目标目录中经前一个虚拟容器操作后的数据继续执行针对目标任务的后续操作,从而可以实现不同容器对同一目标目录内数据的重复利用。
至此就本发明涉及的概念和基本原理做了简要说明,下面结合图1至图5就本发明的具体实现过程做进一步详细说明。图1是示出了用于实现本发明实施例的一种可行环境的示意图。
如图1所示,环境中的客户端装置10可以经由网络30实现与存储装置20的信息收发。具体地,客户端装置10可以通过网络30访问存储装置20来获取客户端装置10所需的内容。网络30可以是广义上的用于信息传递的网络,可以包括一个或多个通信网络,诸如无线通信网络、因特网、私域网、局域网、城域网、广域网或是蜂窝数据网络等。在一个实施例中,网络30也可以包括卫星网络,由此将客户端装置10的GPS信号传送给存储装置20。
客户端装置10上安装有虚拟容器应用的客户端(如docker客户端),并且客户端装置10优选地是适于在其上执行目标任务的设备。在虚拟容器应用客户端或虚拟容器应用客户端与虚拟容器应用的服务端的配合作用下,可以在客户端装置10上创建针对目标任务的虚拟容器。
存储装置20可以是能够对数据进行持久化存储的多种存储设备,如可以是位于服务器中的由数据库管理系统软件进行管理和维护的数据库,例如可以是MySQL数据库。存储装置20可以对虚拟容器在运行过程中需要调用的数据文件的ID和数据文件的存储目录进行持久性地关联存储。由此,在虚拟容器的生命周期结束后,可以根据数据文件的ID,接管数据文件的生命周期。其中,数据文件可以存储在客户端装置10上,也可以存储在存储装置20中,其具体存储位置本发明不做要求。优选地,可以在存储装置20上创建目标目录,并将数据文件存储在存储装置20上的目标目录中。由此,可以便于接管数据文件的生命周期。
如图1所示,环境中可以包括一个存储装置20和多个客户端装置10。不同的客户端装置10可以针对不同的目标任务创建不同的虚拟容器。相同的客户端装置10也可以针对不同的目标任务创建不同的虚拟容器。由此,本发明可以实现为由存储装置20和多个本地宿主机(即客户端装置10)构成的云服务系统,可以针对大规模的任务,创建数据隔离的隔离环境,并对隔离数据进行管理。
图2是示出了根据本发明一实施例的隔离数据管理方法的示意性流程图。其中图2所示的方法可以由图1中安装有虚拟容器软件且能够访问数据库的客户端装置10实现。
参见图2,在步骤S210,基于持久性唯一标识符将针对目标任务创建的当前虚拟容器的数据卷挂载至持久性数据存储装置上与持久性唯一标识符相对应的目标目录。
目标任务可以是各种类型的任务,尤其是通常需要大批量建立且需持续性维持各自的数据隔离的任务。在一个实施例中,目标任务尤其可以是在多个项目并行开发时需要为各个项目提供彼此隔离良好的测试环境的测试任务。
持久性唯一标识符可以与目标任务具有唯一关联关系,其可以是针对目标任务创建的在目标任务完成之前能够一直存留且唯一的标识符。具体地,在需要为目标任务申请数据隔离的隔离环境时,可以响应于针对目标任务的数据隔离的隔离环境的申请,而生成对应的持久性唯一标识符。即持久性唯一标识符可以作为隔离环境的唯一标识。在针对新的目标任务申请新的隔离环境时,可以生成一个新的持久性唯一标识符。
在得到持久性唯一标识符后,可以在持久性数据存储装置如图1中的存储装置20上创建针对目标任务的与持久性唯一标识符对应的目标目录。其中,优选地,目标目录的路径为持久性数据存储装置上的绝对路径,例如持久性唯一标识符可以是12467,相应的目标目录可以是/data/12467。
另外,持久性数据存储装置上还可以存储有用于描述目标任务的当前状态的任务描述参数。其中,任务描述参数可以与相应的目标目录关联地存储。以目标任务是目标应用的测试任务为例,任务描述参数可以包括如下一项或多项:目标应用的应用名称、目标应用的应用类型、目标任务的申请日、目标任务的申请时间、目标任务的任务状态。
目标目录中的数据可以包括当前虚拟容器运行所需的部分或全部数据,如可以包括环境数据(如系统数据)、目标任务数据(测试任务时,为应用代码)、用于执行目标任务的数据文件(如测试数据)中的一项或多项。优选地可以是用于执行目标任务的数据文件,在此之外还可以可选地包括环境数据和目标任务数据。将当前虚拟容器的数据卷挂载至目标目录,可以使得当前虚拟容器能够基于目标目录中的数据执行目标任务。
作为本发明的一个可选实施例,可以从镜像仓库拉取相应的基础数据镜像至目标目录,并根据目标任务调整基础数据镜像作为目标目录内的基础数据,如此可以得到最终用于在容器中运行的静态数据。而通过将当前虚拟容器的数据卷挂载至目标目录,可以使得目标目录中的数据能够在容器中动态运行,从而实现目标任务的执行。其中,镜像仓库可以是虚拟容器的镜像仓库,以虚拟容器为docker为例,镜像仓库可以是docker仓库。根据目标任务调整基础数据是指可以根据目标任务的任务属性信息,对基础数据镜像执行相应操作,以使得操作后的基础数据镜像与目标任务更加契合。例如,在目标任务为测试任务,涉及的待测试应用为账号管理类应用时,在拉取相应的基础数据镜像后,可以执行创建用户信息表(user_info表)、生成admin管理员账号等操作。
如上文所述,目标目录内的已有数据可以包括当前虚拟容器运行所需的部分或全部数据,因此接下来,可以执行步骤S220,经由虚拟容器技术对目标目录内的已有数据进行针对目标任务的操作。其中,可以根据持久性唯一标识符为虚拟容器分配端口以启动虚拟容器服务来对目标目录内的已有数据进行针对目标任务的操作。也就是说,可以为每个容器实例分配相应的访问端口,通过相应的端口可以对目标目录内的已有数据进行针对目标任务的操作。其中,在将数据存储在持久性数据存储装置上时,分配的端口可以是持久性数据存储装置的端口。
在当前虚拟容器销毁后,可以执行步骤S230,继续在目标目录内存储针对目标任务的经操作的已有数据。由此,目标目录中的数据的生命周期可以独立于当前虚拟容器的生命周期,在当前虚拟容器销毁后,可以基于持久性唯一标识符接管与目标任务对应的目标目录的生命周期事件,继续存储目标目录中的经操作的已有数据。
如背景技术部分所述,对于执行时间较久且通常无法在单个虚拟容器的生命周期内完成的任务(例如测试任务),通常需要为其创建多个存续时间不同的虚拟容器,以基于不同时刻存续的多个容器实现整个任务的执行。
对于这种需要针对同一目标任务创建多个不同时刻存续的虚拟容器的情况,可以利用本发明的隔离数据管理方案,在当前的虚拟容器销毁后,针对同一目标任务创建的后续虚拟容器,可以基于同一持久性唯一标识符将该后续虚拟容器的数据卷挂载至对应的目标目录,由于目标目录中存储的数据是经上一个虚拟容器操作后的数据。因此,后续虚拟容器可以直接对所挂载的目标目录内的数据继续执行针对目标任务的操作,由此,可以实现数据的重复利用。并且,在该后续虚拟容器销毁后,可以继续在目标目录内存储针对目标任务的经该后续虚拟容器操作的已有数据。继续存储的目标目录中的数据可以作为后续下一个虚拟容器的挂载点。以此类推,直至针对目标任务创建的最后一个虚拟容器执行完毕后,才将目标目录及其中的数据删除、回收。
由此,针对目标任务创建的下一虚拟容器,可以重复执行图2所示的操作流程。直至最后一个虚拟容器销毁后,才将目标目录进行删除回收。
至此,结合图2详细说明了本发明的隔离数据管理方法。本发明的隔离数据管理方法适用于任务持续时间长无法在单个容器的生命周期内完成的任务,尤其适用于对应用进行测试的测试任务。
随着移动互联网的飞速发展,互联网公司逐渐开始采取敏捷开发的方式进行开发,产品版本的更新频次越来越高。产品业务需求也越来越密集,经常出现多个项目并行开发、测试的情况。为了避免测试数据相互影响,需要对每个并行的项目使用单独的测试数据进行测试验证,使得需要利用虚拟容器技术为每个测试项目,设计一个数据隔离的测试环境(即容器)。而测试项目的运行一般持续时间较长,整个测试项目无法在单个容器的生命周期内完成,而使用现有的容器技术构建隔离的测试环境时,通常是将测试用数据直接挂载至容器内,数据的生命周期与容器的生命周期相同,在挂载数据的容器被销毁时,数据也随即被删除。当前容器挂载的数据不能用于后续容器重复使用。
利用本发明的隔离数据管理方法则可以很好地解决上述问题。下面以目标任务为测试任务为例,就本发明的隔离数据管理方法的具体实现流程做进一步说明。
图3是示出了根据本发明另一实施例的隔离数据管理方法的示意性流程图。其中图3是以持久性数据存储装置110为MySQL数据库,虚拟容器技术为docker技术为例进行示例性说明的。
参见图3,在步骤S310,首先可以针对目标任务申请使用数据隔离的隔离环境。如上文所述,目标任务可以是用于对应用进行测试的测试任务,此处可以为多个不同测试项目申请不同的隔离环境。隔离环境可以理解为一个运行环境。目标任务为测试任务时,隔离环境可以理解为测试环境,此时隔离环境包括如下几部分:应用代码、应用所运行的操作系统、应用所使用的数据文件。其中,应用代码由公司统一的代码仓库托管,应用所运行的操作系统由容器提供,应用所使用的数据文件就是存储数据的文件,具体格式由各个应用自行决定,具体可以由本发明的方案来管理该数据文件。
在步骤S320,响应于隔离环境申请请求,可以创建与每个请求的隔离环境对应的唯一ID,此处述及的唯一ID与上文述及的持久性唯一标识符相对应。创建唯一ID的操作可以由一个ID分配器实现。
具体地,可以由ID分配器维护全局唯一的ID作为隔离环境的唯一标识,每次申请使用新的隔离环境时,可以从ID分配器申请一个新的环境唯一ID。ID分配器的处理逻辑为,可以利用MySQL数据库自增ID作为唯一主键,在每次申请新ID时,可以向数据库插入一条数据,同时获取新插入数据的ID作为返回。其中,以目标任务为测试任务为例,向数据库插入的数据可以包括如下参数:app(应用名称)、type(应用类型如PHP应用)、user(申请人)、create_time(申请时间)、status(状态,默认插入0。0:初始化,1:创建中,2:创建成功,-1:创建失败,3:回收中,4:回收完成,5:回收失败)。
在步骤S330,根据ID创建隔离目录。隔离目录即为上文述及的目标目录。例如,在唯一ID为13467时,所创建的隔离目录可以是/data/13467。
在步骤S340,构建数据镜像。
数据镜像由镜像仓库进行管理,支持的数据库类型有;MySQL、Redis等,可以根据需求进行选择。具体构建过程如下。
首先可以拉取docker官方仓库提供的基础数据镜像,并根据用户需求,调整基础数据镜像,根据调整之后的镜像,重新构建新的镜像。例如,在目标任务为针对应用的测试任务时,可以根据应用的类别,创建对应的数据库表,并进行初始化数据的操作。例如,对于账号管理类应用,可以创建用户信息表,并生成admin管理员账号等。
在得到数据镜像后,就可以执行步骤S350,挂载数据卷至隔离目录。
由此,可以将步骤S340得到的数据镜像保存至隔离目录,并将数据卷挂载至隔离目录,由此就可以根据构建的镜像启动容器。以MySQL数据为例,挂载命令可以为:dockerrun–w data:/data/13467。
在步骤S360,在容器内启动服务。
此处可以根据ID为容器分配端口以启动容器服务来对隔离目录内的已有数据进行针对目标任务的操作。具体地,可以为步骤S340调整后得到的数据镜像分配访问端口,在数据镜像存储在MySQL数据库中的隔离目录下时,可以分配MySQL数据库的端口,如可以是docker run–wdata:/data/13467–p 3306:13467,由此,通过访问localhost:13467即可直接访问该MySQL数据库实例。
在服务结束后,可以销毁容器(步骤S370),此时由于之前在申请分配测试环境时,插入了申请记录,并且分配了唯一ID,因此即使在容器销毁后,仍能够知道容器的唯一ID标识,通过该唯一ID,可以在数据库中找到对应的文件目录(/data/具体ID),该文件目录及其中的数据文件此时不会被清理,由此在重启容器时,仍然可以挂载该文件目录,保证了容器销毁重启后,仍能够使用之前持久化的数据。而当测试完成后,需要真正回收数据文件时,可以再将数据文件清理删除,同时可以将之前记录中的status更新为4(回收完成状态)。此时可以删除文件目录以及唯一ID标识,释放资源。
如图3所示,在当前的虚拟容器销毁后,可以执行步骤S370,判断目标任务是否执行完毕,在任务没有执行完毕时,可以返回执行步骤S350,对于针对目标任务创建的下一虚拟容器,根据ID将该虚拟容器的数据卷挂载至对应的隔离目录。由此,可以实现隔离数据的重复利用。
需要说明的是,对于后续创建的虚拟容器,在执行步骤S360,在容器内启动容器服务时,可以根据之前分配的端口,直接访问隔离目录下的数据。而无须重新分配端口。并且在服务结束,销毁容器后,可以继续保存隔离目录中经后续容器操作后的数据。直至整个任务执行完毕,才将隔离目录进行删除。
综上,本发明的隔离数据管理方法是在容器技术的基础上,对持久化的数据文件进行隔离管理,传统的容器技术在处理持久化数据文件时,会随着容器的销毁而回收数据文件,而本发明可以利用MySQL数据库对每个容器实例分配持久性唯一标识符,然后在容器销毁后接管持久化数据文件的管理。如此在容器的生命周期之外,可以通过全局的持久性唯一标识符来初始化数据、恢复数据,从而可以大规模应用在测试环境中。
至此,结合图2、图3详细描述了本发明的隔离数据管理方法。本发明的隔离数据管理方法还可以实现为一种隔离数据管理装置。图4是示出了根据本发明一实施例的隔离数据管理装置的结构的示意性方框图。其中,装置中的各功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图4所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。下面仅就装置可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文描述,这里不再赘述。
参见图4,隔离数据管理装置400包括挂载单元410、数据操作单元420以及存储单元430。
挂载单元410用于基于持久性唯一标识符将针对目标任务创建的当前虚拟容器的数据卷挂载至持久性数据存储装置上与持久性唯一标识符相对应的目标目录。
数据操作单元420用于经由虚拟容器技术对目标目录内的已有数据进行针对目标任务的操作。具体地,数据操作单元420可以根据持久性唯一标识符为虚拟容器分配端口以启动虚拟容器服务来对目标目录内的已有数据进行针对目标任务的操作。
存储单元430用于在当前的虚拟容器销毁后,继续在目标目录内存储针对目标任务的经操作的已有数据。
由此,可以实现目标目录内的数据的生命周期独立于虚拟容器,在虚拟容器销毁后,可以继续对目标目录内的数据进行存储,从而在虚拟容器重启时,可以将数据卷继续挂载至目标目录。
另外,与目标任务对应的目标目录可以用于多个虚拟容器。具体地,针对目标任务创建的下一虚拟容器,可以由挂载单元410、数据操作单元420、存储单元430重复执行上述操作,以对目标目录中的数据进行重复利用。
如图4所示,隔离数据管理装置400还可以可选地包括图中虚线框所示的标识符创建单元440和目标目录创建单元450。
标识符创建单元440用于针对目标任务创建持久性唯一标识符。目标目录创建单元450用于在持久性数据存储装置上创建针对目标任务的与持久性唯一标识符相对应的目标目录。
如图4所示,隔离数据管理装置400还可以可选地包括图中虚线框所示的镜像拉取单元460和镜像调整单元470。
镜像拉取单元460用于从镜像仓库拉取相应的基础数据镜像至目标目录。
镜像调整单元470用于根据目标任务调整基础数据镜像作为目标目录内的基础数据。
如图4所示,隔离数据管理装置400还可以可选地包括图中虚线框所示的目录销毁单元480。目录销毁单元480用于在目标任务完成后,销毁持久性数据存储装置上的目标目录。
另外,持久性数据存储装置上还可以存储有用于描述所述目标任务的当前状态的任务描述参数。其中,目标任务可以是目标应用的测试任务,并且任务描述参数可以包括如下至少一项:目标应用的应用名称、目标应用的应用类型、目标任务的申请人、目标任务的申请时间、目标任务的任务状态。
图5是示出了根据本发明一个实施例的隔离数据管理系统500的结构的示意性方框图。下面仅就系统的结构做简要说明,对于其中涉及的细节部分可以参见上文描述,这里不再赘述。
参见图5,隔离数据管理系统500可以包括持久性数据存储装置520和虚拟容器装置510。隔离数据管理系统500可以实现为图1所示的环境。即持久性数据存储装置520可以是用于持久化存储数据的存储设备,如可以是图1中的存储装置20,虚拟容器装置510可以是安装虚拟容器软件的客户端,如可以是客户端装置10。
虚拟容器装置510可以基于持久性唯一标识符将针对目标任务创建的当前虚拟容器的数据卷挂载至持久性数据存储装置520上与持久性唯一标识符相对应的目标目录。虚拟容器装置510经由虚拟容器技术对目标目录内的已有数据进行针对目标任务的操作。在虚拟容器装置510将当前的虚拟容器销毁后,持久性数据存储装置520可以继续在目标目录内存储针对目标任务的经操作的已有数据。
在目标任务为测试任务这类执行时间较久且通常无法在单个虚拟容器的生命周期内完成的任务时,虚拟容器装置510和持久性数据存储装置520对于针对目标任务创建的下一虚拟容器可以重复执行上述操作。
在本发明的一个实施例中,持久性数据存储装置520可以针对目标任务创建持久性唯一标识符,并在其上创建针对目标任务的与持久性唯一标识符相对应的目标目录,并且持久性数据存储装置520上还存储有用于描述目标任务的当前状态的任务描述参数。其中,任务描述参数的具体内容可以参见上文相关说明,此处不再赘述。
图6是示出了根据本发明一个实施例的计算设备600的结构的示意性方框图。其中,计算设备600可以是可以实施为各种类型的计算机装置,例如台式机、便携式计算机、平板电脑、智能手机、个人数据助理(PDA),或者其他类型的计算机装置,但是不限于任何特定形式,如可以是安装在车辆中的导航设备。
如图6所示,本发明的计算设备600可以包括处理器610以及存储器620。处理器610可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器610可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器610可以使用定制的电路实现,例如特定用途集成电路(application specific integrated circuit,ASIC)或者现场可编程逻辑门阵列(field programmable gate arrays,FPGA)。
存储器620可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器610或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器620可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器620可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
在本发明实施例中,存储器620上存储有可执行代码,处理器610可以执行存储在存储器620上的可执行代码。当可执行代码被处理器610执行时,可以使处理器610执行本发明的隔离数据管理方案。其中,存储器620上除了存储可执行代码,还可以存储处理器610在执行本发明的隔离数据管理方案过程中所需的部分或所有数据。
上文中已经参考附图详细描述了根据本发明的隔离数据管理方法、装置、系统以及计算设备。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。