一种镜像文件创建、获取方法、装置及服务器与流程

文档序号:19015588发布日期:2019-11-01 19:42阅读:161来源:国知局
一种镜像文件创建、获取方法、装置及服务器与流程

本申请涉及互联网技术领域,尤其是涉及一种镜像文件创建、获取方法、装置及服务器。



背景技术:

云paas(platformasaservice,平台即服务)平台是一个基于云计算技术建立的运营支撑平台,第三方软件开发商可以在云paas平台部署应用产品,并向用户提供服务。传统云paas平台,通常采用虚拟机实现不同软件开发商应用的隔离,并将虚拟机作为调度的最小单元,但采用虚拟机作为最小单元时,还存在很多问题,如启动时间长、占用系统资源多、迁移调整耗时等。在此基础上,新型云paas平台,可以采用容器技术实现不同软件开发商应用的隔离,并将容器作为调度的最小单元。其中,容器技术是一种虚拟化技术,通过虚拟化操作系统的方式来管理应用,每个容器内都包含一个独享的完整用户环境空间。

由于用户数量很多,因此,为了向用户提供服务,可以在服务器部署大量容器,这些容器共同为用户提供服务,从而避免某容器的负载过重。而且,这些容器可以获取同一个镜像文件,并运行该镜像文件,从而向用户提供服务。

目前,服务器在本地生成镜像文件,将镜像文件存储到存储服务器,各容器从存储服务器中获取镜像文件,将镜像文件存储到本地。通常情况下,镜像文件会比较大,如3g大小,因此在本地生成镜像文件时,需要占用大量磁盘空间;服务器在将镜像文件存储到存储服务器时,会占用大量带宽,且需要耗费较长时间。各容器在从存储服务器中获取镜像文件时,会占用大量带宽,且需要耗费较长时间;各容器在将镜像文件存储到本地时,需要占用大量磁盘空间。



技术实现要素:

本申请提供一种镜像文件创建方法,应用于第一服务器,包括:

在存储设备中创建与镜像文件对应的第一磁盘;

将所述第一磁盘挂载到所述第一服务器;

将所述镜像文件写入到所述第一磁盘。

本申请提供一种镜像文件获取方法,应用于第二服务器,包括:

获取存储设备中的第一磁盘的描述信息;

根据所述第一磁盘的描述信息在所述存储设备中创建第三磁盘,其中,所述第三磁盘包括所述第一磁盘中的镜像文件;

将所述第三磁盘挂载到所述第二服务器;

运行所述第三磁盘中的所述镜像文件。

本申请提供一种镜像文件创建装置,应用于第一服务器,包括:

创建模块,用于在存储设备中创建与镜像文件对应的第一磁盘;

挂载模块,用于将所述第一磁盘挂载到所述第一服务器;

写入模块,用于将所述镜像文件写入到所述第一磁盘。

本申请提供一种镜像文件获取装置,应用于第二服务器,包括:

获取模块,用于获取存储设备中的第一磁盘的描述信息;

创建模块,用于根据所述第一磁盘的描述信息在所述存储设备中创建第三磁盘,其中,所述第三磁盘包括所述第一磁盘中的镜像文件;

挂载模块,用于将所述第三磁盘挂载到所述第二服务器;

运行模块,用于运行所述第三磁盘中的所述镜像文件。

本申请提供一种第一服务器,包括:处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:在存储设备中创建与镜像文件对应的第一磁盘;将所述第一磁盘挂载到所述第一服务器;将所述镜像文件写入到所述第一磁盘。

本申请提供一种第二服务器,包括:处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:获取存储设备中的第一磁盘的描述信息;根据所述第一磁盘的描述信息在所述存储设备中创建第三磁盘,其中,所述第三磁盘包括所述第一磁盘中的镜像文件;将所述第三磁盘挂载到所述第二服务器;运行所述第三磁盘中的所述镜像文件。

基于上述技术方案,本申请实施例中,第一服务器在生成镜像文件时,是在存储设备中创建与镜像文件对应的第一磁盘,并将第一磁盘挂载到第一服务器,将镜像文件写入到第一磁盘。这样,第一服务器可以利用存储设备的磁盘空间,而不会占用第一服务器的大量磁盘空间。而且,第一服务器是将第一磁盘的描述信息提供给第二服务器,而不是将镜像文件存储到存储服务器,描述信息的大小远远小于镜像文件的大小,从而解决占用大量带宽,耗费较长时间等问题。第二服务器(如第二服务器的容器)在获取镜像文件时,是将存储设备中的第三磁盘挂载到第二服务器,并运行第三磁盘中的镜像文件。这样,第二服务器可以利用存储设备的磁盘空间,而不会占用第二服务器的大量磁盘空间。第二服务器只需要获取第一磁盘的描述信息,而不用从存储服务器中获取镜像文件,由于描述信息的大小远远小于镜像文件的大小,从而解决占用大量带宽,耗费较长时间等问题。显然,基于上述方式,可以提高镜像文件的分发效率,加快镜像文件的分发,节省时间开销,节省服务器的本地存储资源。

附图说明

为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其它的附图。

图1是本申请一种实施方式中的镜像文件创建方法的流程图;

图2是本申请另一种实施方式中的镜像文件获取方法的流程图;

图3a是本申请一种实施方式中的应用场景示意图;

图3b是本申请另一种实施方式中的镜像文件获取方法的流程图;

图3c是本申请另一种实施方式中的镜像文件获取方法的流程图;

图4是本申请一种实施方式中的镜像文件创建装置的结构图;

图5是本申请另一种实施方式中的镜像文件获取装置的结构图。

具体实施方式

在本申请使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本申请实施例中提出一种镜像文件创建方法,该方法可以应用于第一服务器,参见图1所示,为该镜像文件创建方法的流程图,该方法可以包括:

步骤101,在存储设备中创建与镜像文件对应的第一磁盘。

其中,在存储设备中创建与镜像文件对应的第一磁盘,可以包括但不限于:

情况一、确定镜像文件占用的磁盘大小,并向存储设备发送携带该磁盘大小的创建消息;该创建消息用于使存储设备创建与该磁盘大小对应的第一磁盘。

情况二、确定与镜像文件关联的第二磁盘的描述信息,并根据该第二磁盘的描述信息在存储设备中创建与该镜像文件对应的第一磁盘。进一步的,根据该第二磁盘的描述信息在存储设备中创建与该镜像文件对应的第一磁盘,还可以包括但不限于:确定该镜像文件占用的磁盘大小;向存储设备发送携带该磁盘大小和该第二磁盘的描述信息的创建消息;其中,该创建消息用于使存储设备根据该第二磁盘的描述信息获取该第二磁盘中的镜像文件,并创建与该磁盘大小对应的第一磁盘,而且,该第一磁盘中包括该第二磁盘中的镜像文件。

其中,确定与镜像文件关联的第二磁盘的描述信息,可以包括:确定该第二磁盘中的镜像文件对应的镜像信息,并获取与该镜像信息对应的第二磁盘的描述信息。进一步的,获取与该镜像信息对应的第二磁盘的描述信息,还可以包括但不限于如下方式:从存储服务器中查询到与该镜像信息对应的第二磁盘的描述信息;其中,所述存储服务器用于记录镜像信息与描述信息的对应关系。

步骤102,将第一磁盘挂载到第一服务器。

步骤103,将镜像文件写入到第一磁盘。

在一个例子中,将镜像文件写入到第一磁盘后,还可以将第一磁盘的描述信息提供给第二服务器,以使第二服务器根据第一磁盘的描述信息获取该第一磁盘中的镜像文件。例如,将第一磁盘的描述信息提供给第二服务器,包括:直接将第一磁盘的描述信息发送给第二服务器;或,将第一磁盘的描述信息存储到存储服务器中,以使第二服务器从存储服务器中获取第一磁盘的描述信息。

进一步的,将第一磁盘的描述信息存储到存储服务器中,以使第二服务器从存储服务器中获取第一磁盘的描述信息,可以包括:确定该第一磁盘中的镜像文件对应的镜像信息,并将该镜像信息和该第一磁盘的描述信息的对应关系存储到存储服务器中;可以将该镜像信息发送给第二服务器,以使所述第二服务器从该存储服务器中查询到与该镜像信息对应的第一磁盘的描述信息。

在上述实施例中,第二服务器可以包括用于运行镜像文件的容器。此外,第一磁盘的描述信息可以包括:第一磁盘在存储设备中对应的快照的描述信息。

在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。

基于上述技术方案,本申请实施例中,第一服务器在生成镜像文件时,是在存储设备中创建与镜像文件对应的第一磁盘,并可以将第一磁盘挂载到第一服务器,并将镜像文件写入到第一磁盘。这样,第一服务器可以利用存储设备的磁盘空间,而不会占用第一服务器的大量磁盘空间。而且,第一服务器是将第一磁盘的描述信息提供给第二服务器,而不是将镜像文件存储到存储服务器,由于描述信息的大小远远小于镜像文件的大小,从而可以解决占用大量带宽,耗费较长时间等问题。进一步的,基于上述方式,可以提高镜像文件的分发效率,加快镜像文件的分发,节省时间开销,节省服务器的本地存储资源。

本申请实施例中提出一种镜像文件获取方法,该方法可以应用于第二服务器,参见图2所示,为该镜像文件获取方法的流程图,该方法可以包括:

步骤201,获取存储设备中的第一磁盘的描述信息。其中,第一磁盘的描述信息可以包括但不限于:第一磁盘在存储设备中对应的快照的描述信息。

在一个例子中,获取存储设备中的第一磁盘的描述信息,可以包括但不限于:获取该第一磁盘中的镜像文件对应的镜像信息;获取与该镜像信息对应的第一磁盘的描述信息。进一步的,获取与该镜像信息对应的第一磁盘的描述信息,还可以包括但不限于:从存储服务器中查询到与该镜像信息对应的第一磁盘的描述信息;其中,存储服务器用于记录镜像信息与描述信息的对应关系。

步骤202,根据该第一磁盘的描述信息在存储设备中创建第三磁盘。

其中,该第三磁盘可以包括该第一磁盘中的镜像文件。

其中,根据该第一磁盘的描述信息在存储设备中创建第三磁盘,可以包括但不限于:在存储设备中对该描述信息对应的第一磁盘进行克隆,得到第三磁盘(即克隆后的磁盘)。进一步的,在存储设备中对该描述信息对应的第一磁盘进行克隆,得到第三磁盘,还可以包括但不限于:向存储设备发送携带第一磁盘的描述信息的克隆消息;其中,该克隆消息用于使存储设备获取与第一磁盘的描述信息对应的第一磁盘,并对第一磁盘进行克隆,得到第三磁盘。

步骤203,将该第三磁盘挂载到第二服务器。

步骤204,运行该第三磁盘中的镜像文件。

其中,第二服务器还可以包括用于运行镜像文件的容器;基于此,运行该第三磁盘中的镜像文件,可以包括:通过容器运行该第三磁盘中的镜像文件。

在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。

基于上述技术方案,本申请实施例中,第二服务器在获取镜像文件时,是将存储设备中的第三磁盘挂载到第二服务器,运行第三磁盘中的镜像文件。这样,第二服务器可以利用存储设备的磁盘空间,而不会占用第二服务器的大量磁盘空间。第二服务器只需要获取第一磁盘的描述信息,而不用从存储服务器中获取镜像文件,由于描述信息的大小远远小于镜像文件的大小,从而解决占用大量带宽,耗费较长时间等问题。基于上述方式,可以提高镜像文件的分发效率,加快镜像文件的分发,节省时间开销,可以节省服务器的本地存储资源。

以下结合具体应用场景,对上述技术方案进行详细说明,参见图3a所示,为本发明实施例的应用场景示意图。第一服务器可以称为打包服务器,用于构建应用的镜像文件;存储设备可以是分布式块设备,也称为块设备集群,可以提供创建磁盘、对磁盘进行快照、从快照克隆磁盘等功能;存储服务器可以是镜像仓库或数据库,用于存储镜像文件的镜像信息与磁盘的描述信息之间的对应关系,还提供鉴权服务、统一文件存储服务等功能;第二服务器可以是容器的运行环境,可以将存储设备的磁盘挂载到第二服务器,以供容器使用。

在一个例子中,分布式块设备可以包括大量存储块(如固定大小的存储块),这些存储块可以提供给服务器,这样,服务器就可以利用分布式块设备提供的存储块创建磁盘,该磁盘可以由多个存储块组成,例如,磁盘大小是100m,存储块大小是4m时,则该磁盘就由25个存储块组成。服务器针对该磁盘的处理,实际上,是针对这25个存储块的处理,即在分布式块设备的存储块中存储数据。

本实施例中的磁盘,可以是ssd(solidstatedrive,固态驱动器)、hhd(hybridharddrive,混合硬盘驱动器)、hdd(harddiskdrive,硬盘驱动器)等类型的磁盘,也可以是相变存储类型的磁盘,量子存储器类型的磁盘,石墨烯存储器类型的磁盘等等,对此磁盘的类型不做限制,只要用于存储数据即可。

其中,可以在第二服务器部署用于运行镜像文件的容器,并通过运行该镜像文件,从而向用户提供服务。而且,针对某一应用(如商品中心应用),为了向用户提供服务,还可以部署大量容器,这些容器可以部署在多个第二服务器。例如,容器1-容器10部署在第二服务器1,容器11部署在第二服务器2,容器12-容器18部署在第二服务器3,以此类推,对此部署方式不做限制。

传统方式中,第一服务器是在本地磁盘中写入镜像文件,从而占用大量磁盘空间;本申请实施例中,第一服务器从存储设备中申请一块磁盘,并将该磁盘挂载在本地,这样,镜像文件是直接写入到存储设备中,从而节约磁盘空间。

传统方式中,第一服务器是将镜像文件存储到存储服务器,占用大量带宽,且需要耗费较长时间;本申请实施例中,第一服务器是将磁盘的描述信息存储到存储服务器,由于描述信息的大小(如1k)远远小于镜像文件的大小(如3g),从而加快数据的存储速度,解决占用大量带宽,耗费较长时间等问题。

传统方式中,第二服务器需要从存储服务器中获取镜像文件,占用大量带宽,且需要耗费较长时间;本申请实施例中,第二服务器只需要从存储服务器中获取磁盘的描述信息,由于描述信息的大小(如1k)远小于镜像文件的大小(如3g),从而加快数据读取速度,解决占用大量带宽,耗费较长时间等问题。

传统方式中,第二服务器需要将镜像文件存储到本地,从而占用大量磁盘空间;本申请实施例中,第二服务器可以将存储设备的磁盘挂载到第二服务器,由容器运行该磁盘中的镜像文件,如以磁盘的挂载目录作为容器根目录,然后启动容器,从而使容器运行该磁盘中的镜像文件,从而节约本地磁盘空间。

参见图3b所示,为镜像文件获取方法的流程图,该方法可以包括:

步骤301,第一服务器获取镜像文件a,确定镜像文件a占用的磁盘大小。

例如,第一服务器可以接收开发者输入的镜像文件a,该镜像文件a可以包括镜像文件a占用的磁盘大小(后续以磁盘大小1为例进行说明,例如,磁盘大小1可以为3g)。当然,镜像文件a还可以包括其它内容,对此不做限制。

步骤302,第一服务器向存储设备发送携带磁盘大小1的创建消息。

步骤303,存储设备在接收到该创建消息后,在本地创建与磁盘大小1对应的第一磁盘,后续将该第一磁盘称为磁盘a,且磁盘a的大小为磁盘大小1。

步骤304,第一服务器将磁盘a挂载到第一服务器。例如,第一服务器创建针对镜像文件a的目录,并将该磁盘a挂载到第一服务器的该目录下。

其中,将磁盘a挂载到第一服务器是指,将远程的存储设备的磁盘a挂载到第一服务器直接使用,对磁盘a的操作就是直接到远程的存储设备的操作。

步骤305,第一服务器将镜像文件a写入到磁盘a。例如,第一服务器向该目录下写入镜像文件a时,实际上,是将镜像文件a写入到磁盘a。

其中,第一服务器将镜像文件a写入到磁盘a的过程,实际上是直接将镜像文件a写入到存储设备的磁盘a,而不是写入到第一服务器本地的磁盘。

步骤306,第一服务器将存储设备中的磁盘a转换为快照a。

其中,第一服务器将镜像文件a写入到磁盘a后,若镜像文件a写入完成,则存储设备的磁盘a中就写入了完整的镜像文件a。考虑到磁盘a是一个可读写的磁盘,因此,为了避免对磁盘a中的镜像文件a进行修改,可以将磁盘a转换为快照a(如第一服务器向存储设备发送针对磁盘a的转换命令,由存储设备将磁盘a转换为快照a,对此转换过程不做限制),该快照a的内容与磁盘a的内容相同,即该快照a也包括完整的镜像文件a。而且,快照a是一个可读不可写的快照,即无法对快照a中的镜像文件a进行修改。而且,还可以使用这个快照a克隆出与磁盘a相同的磁盘,后续实施例介绍该克隆过程。

步骤307,第一服务器确定磁盘a的描述信息,其中,该描述信息可以包括但不限于磁盘a在存储设备中对应的快照(如快照a)的描述信息。

例如,存储设备将磁盘a转换为快照a后,可以将快照a的描述信息(如快照a的名称、创建时间等,对此不做限制)发送给第一服务器,第一服务器可以接收快照a的描述信息,快照a的描述信息即磁盘a的描述信息。

步骤308,第一服务器将磁盘a的描述信息和镜像文件a的镜像信息(如镜像名称、镜像参数等,对此不做限制)的对应关系存储到存储服务器中。

其中,镜像文件a还可以包括镜像文件a的镜像信息,第一服务器可以从镜像文件a中获取到该镜像信息,并将磁盘a的描述信息和该镜像信息发送给存储服务器,以使存储服务器存储磁盘a的描述信息和该镜像信息的对应关系。

步骤309,第一服务器将镜像文件a的镜像信息发送给第二服务器。

当然,还可以采用其它方式将镜像文件a的镜像信息发送给第二服务器,例如,开发者将镜像文件a的镜像信息发送给第二服务器,对此不做限制。

步骤310,第二服务器获取镜像文件a对应的镜像信息。

步骤311,第二服务器从存储服务器中查询到与该镜像信息对应的描述信息。其中,由于存储服务器中存储有镜像文件a的镜像信息与磁盘a的描述信息的对应关系,因此,第二服务器在获取到镜像文件a的镜像信息后,可以从存储服务器中查询到与该镜像信息对应的描述信息,即磁盘a的描述信息。

步骤312,第二服务器向存储设备发送携带磁盘a的描述信息的克隆消息。

步骤313,存储设备在接收到该克隆消息后,查询到与磁盘a的描述信息(如快照a的名称、创建时间等)对应的快照a,并对快照a进行克隆(对快照a进行克隆的过程,相当于对磁盘a进行克隆),得到克隆后的磁盘b。

其中,由于快照a包括镜像文件a,因此,磁盘b也包括镜像文件a。

步骤314,第二服务器将磁盘b挂载到第二服务器。例如,第二服务器可以创建磁盘b的挂载目录,并将该磁盘b挂载到第二服务器的该挂载目录下。

步骤315,第二服务器运行磁盘b中的镜像文件a。例如,可以将上述挂载目录作为容器根目录,然后启动容器,从而使容器运行磁盘b中的镜像文件a。

其中,第二服务器运行磁盘b中的镜像文件a的过程,实际上是直接运行存储设备的磁盘b中的镜像文件a,而不是使用第二服务器本地的磁盘。

其中,每个容器所在的第二服务器可以采用上述步骤310-步骤315,从而运行存储设备的磁盘中的镜像文件a,继而向用户提供与镜像文件a对应的服务。

参见图3c所示,为镜像文件获取方法的另一流程图,该方法可以包括:

步骤321,第一服务器获取镜像文件b,并确定镜像文件b占用的磁盘大小,并确定与该镜像文件b关联的镜像文件的镜像信息。例如,当镜像文件a与镜像文件b关联时,则该镜像信息可以包括该镜像文件a的镜像信息。

其中,镜像文件a与镜像文件b关联是指:为了实现镜像文件b的功能,则需要在镜像文件a的基础上实现,即镜像文件b可以复用镜像文件a的内容。

例如,第一服务器可以接收开发者输入的镜像文件b,该镜像文件b可以包括与镜像文件b关联的镜像文件a的镜像信息。此外,镜像文件b可以包括镜像文件b占用的磁盘大小(后续以磁盘大小2为例进行说明,例如,磁盘大小2可以为4g)。当然,镜像文件b还可以包括其它内容,对此不做限制。

步骤322,第一服务器从存储服务器中查询到与该镜像信息对应的描述信息。其中,由于存储服务器中存储有镜像文件a的镜像信息与磁盘a的描述信息的对应关系,因此,第一服务器在获取到镜像文件a的镜像信息后,还可以从存储服务器中查询到与该镜像信息对应的描述信息,即磁盘a的描述信息。

步骤323,第一服务器向存储设备发送创建消息,其中,该创建消息可以携带磁盘大小2和磁盘a的描述信息(如磁盘a对应的快照a的描述信息)。

步骤324,存储设备在接收到该创建消息后,在本地创建与磁盘大小2对应的磁盘c,即磁盘c的大小为磁盘大小2。而且,存储设备创建磁盘c时,先查询到与磁盘a的描述信息(如快照a的名称、创建时间等)对应的快照a,并对快照a进行克隆(对快照a进行克隆的过程,相当于对磁盘a进行克隆),得到克隆后的磁盘d,然后,存储设备在磁盘d的基础上创建磁盘c,也就是说,在磁盘d中可以包括快照a中的镜像文件a,且磁盘c中包括镜像文件a。

步骤325,第一服务器将磁盘c挂载到第一服务器。例如,第一服务器创建针对镜像文件b的目录,并将该磁盘c挂载到第一服务器的该目录下。

步骤326,第一服务器将镜像文件b写入到磁盘c。例如,第一服务器向该目录下写入镜像文件b时,实际上,是将镜像文件b写入到磁盘c。

其中,第一服务器将镜像文件b写入到磁盘c的过程,实际上是直接将镜像文件b写入到存储设备的磁盘c,而不是写入到第一服务器本地的磁盘。而且,将镜像文件b写入到磁盘c后,磁盘c可以包括镜像文件a和镜像文件b。

步骤327,第一服务器将存储设备中的磁盘c转换为快照c。

其中,第一服务器将镜像文件b写入到磁盘c后,若镜像文件b写入完成,则存储设备的磁盘c中就写入了镜像文件a和镜像文件b。考虑到磁盘c是一个可读写的磁盘,因此,为了避免对磁盘c中的镜像文件a和镜像文件b进行修改,可以将磁盘c转换为快照c,该快照c的内容与磁盘c的内容相同,即该快照c也可以包括镜像文件a和镜像文件b。而且,快照c是一个可读不可写的快照,即无法对快照c中的镜像文件a和镜像文件b进行修改。而且,还可以使用这个快照c克隆出与磁盘c相同的磁盘,后续实施例介绍该克隆过程。

步骤328,第一服务器确定磁盘c的描述信息,其中,该描述信息可以包括但不限于磁盘c在存储设备中对应的快照(如快照c)的描述信息。

例如,存储设备将磁盘c转换为快照c后,可以将快照c的描述信息(如快照c的名称、创建时间等,对此不做限制)发送给第一服务器,第一服务器可以接收快照c的描述信息,快照c的描述信息也就是磁盘c的描述信息。

步骤329,第一服务器将磁盘c的描述信息和镜像文件b的镜像信息(如镜像名称、镜像参数等,对此不做限制)的对应关系存储到存储服务器中。

其中,镜像文件b还可以包括镜像文件b的镜像信息,第一服务器可以从镜像文件b中获取到该镜像信息,并将磁盘c的描述信息和该镜像信息发送给存储服务器,以使存储服务器存储磁盘c的描述信息和该镜像信息的对应关系。

步骤330,第一服务器将镜像文件b的镜像信息发送给第二服务器。

当然,还可以采用其它方式将镜像文件b的镜像信息发送给第二服务器,例如,开发者将镜像文件b的镜像信息发送给第二服务器,对此不做限制。

步骤331,第二服务器获取镜像文件b对应的镜像信息。

步骤332,第二服务器从存储服务器中查询到与该镜像信息对应的描述信息。其中,由于存储服务器中存储有镜像文件b的镜像信息与磁盘c的描述信息的对应关系,因此,第二服务器在获取到镜像文件b的镜像信息后,可以从存储服务器中查询到与该镜像信息对应的描述信息,即磁盘c的描述信息。

步骤333,第二服务器向存储设备发送携带磁盘c的描述信息的克隆消息。

步骤334,存储设备在接收到该克隆消息后,查询到与磁盘c的描述信息(如快照c的名称、创建时间等)对应的快照c,并对快照c进行克隆(对快照c进行克隆的过程,相当于对磁盘c进行克隆),得到克隆后的磁盘e。由于快照c包括镜像文件a和镜像文件b,则磁盘e也包括镜像文件a和镜像文件b。

步骤335,第二服务器将磁盘e挂载到第二服务器。例如,第二服务器可以创建磁盘e的挂载目录,并将该磁盘e挂载到第二服务器的该挂载目录下。

步骤336,第二服务器运行磁盘e中的镜像文件a和镜像文件b。例如,可以将上述挂载目录作为容器根目录,然后启动容器,从而使容器运行磁盘e中的镜像文件a和镜像文件b,从而可以向用户提供与镜像文件b对应的服务。

基于上述技术方案,本申请实施例中,第一服务器在生成镜像文件时,是在存储设备中创建与镜像文件对应的第一磁盘,并将第一磁盘挂载到第一服务器,将镜像文件写入到第一磁盘。这样,第一服务器可以利用存储设备的磁盘空间,而不会占用第一服务器的大量磁盘空间。而且,第一服务器是将第一磁盘的描述信息提供给第二服务器,而不是将镜像文件存储到存储服务器,描述信息的大小远远小于镜像文件的大小,从而解决占用大量带宽,耗费较长时间等问题。第二服务器(如第二服务器的容器)在获取镜像文件时,是将存储设备中的第三磁盘挂载到第二服务器,并运行第三磁盘中的镜像文件。这样,第二服务器可以利用存储设备的磁盘空间,而不会占用第二服务器的大量磁盘空间。第二服务器只需要获取第一磁盘的描述信息,而不用从存储服务器中获取镜像文件,由于描述信息的大小远远小于镜像文件的大小,从而解决占用大量带宽,耗费较长时间等问题。显然,基于上述方式,可以提高镜像文件的分发效率,加快镜像文件的分发,节省时间开销,节省服务器的本地存储资源。

在上述实施例中,为了对存储设备进行保护,还可以控制存储设备的并发度。例如,向存储设备申请磁盘的容器数量不超过预设阈值(如2000个);或者,通过实时检测存储设备的流量,确定是否接受新容器的申请流程,如当存储设备的流量不大于阈值时,则允许新容器申请磁盘,当存储设备的流量大于阈值时,则不允许新容器申请磁盘。当然,上述方式只是示例,对此不做限制。

基于与上述方法同样的申请构思,本申请实施例还提供一种镜像文件创建装置,可以应用于第一服务器,如图4所示,为该装置的结构图,该装置包括:

创建模块401,用于在存储设备中创建与镜像文件对应的第一磁盘;

挂载模块402,用于将所述第一磁盘挂载到所述第一服务器;

写入模块403,用于将所述镜像文件写入到所述第一磁盘。

所述创建模块401在存储设备中创建与镜像文件对应的第一磁盘时具体用于:确定镜像文件占用的磁盘大小;向所述存储设备发送携带所述磁盘大小的创建消息;其中,所述创建消息用于使所述存储设备创建与所述磁盘大小对应的第一磁盘;或者,确定与所述镜像文件关联的第二磁盘的描述信息;根据第二磁盘的描述信息在存储设备中创建与镜像文件对应的第一磁盘。

所述创建模块401确定与所述镜像文件关联的第二磁盘的描述信息时具体用于:确定第二磁盘中的镜像文件对应的镜像信息;获取与所述镜像信息对应的第二磁盘的描述信息;所述创建模块401获取与所述镜像信息对应的第二磁盘的描述信息时具体用于:从存储服务器中查询到与所述镜像信息对应的所述第二磁盘的描述信息;存储服务器用于记录镜像信息与描述信息的对应关系。

在一个例子中,所述镜像文件创建装置还可以包括(在图中未示出):

发送模块,用于将所述第一磁盘的描述信息提供给第二服务器,以使所述第二服务器根据所述描述信息获取所述第一磁盘中的所述镜像文件。

所述发送模块将第一磁盘的描述信息提供给第二服务器时具体用于:确定第一磁盘中的镜像文件对应的镜像信息;将镜像信息和第一磁盘的描述信息的对应关系存储到存储服务器中;将所述镜像信息发送给第二服务器,使第二服务器从存储服务器中查询到与所述镜像信息对应的第一磁盘的描述信息。

基于与上述方法同样的申请构思,本申请实施例还提供一种第一服务器,包括:处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:在存储设备中创建与镜像文件对应的第一磁盘;将所述第一磁盘挂载到所述第一服务器;将所述镜像文件写入到所述第一磁盘。

基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:在存储设备中创建与镜像文件对应的第一磁盘;将所述第一磁盘挂载到所述第一服务器;将所述镜像文件写入到所述第一磁盘。

基于与上述方法同样的申请构思,本申请实施例还提供一种镜像文件获取装置,可以应用于第二服务器,如图5所示,为该装置的结构图,该装置包括:

获取模块501,用于获取存储设备中的第一磁盘的描述信息;

创建模块502,用于根据所述第一磁盘的描述信息在所述存储设备中创建第三磁盘,其中,所述第三磁盘包括所述第一磁盘中的镜像文件;

挂载模块503,用于将所述第三磁盘挂载到所述第二服务器;

运行模块504,用于运行所述第三磁盘中的所述镜像文件。

所述获取模块501获取存储设备中的第一磁盘的描述信息时具体用于:获取第一磁盘中的镜像文件对应的镜像信息;获取与所述镜像信息对应的所述第一磁盘的描述信息;所述获取模块501获取与所述镜像信息对应的所述第一磁盘的描述信息时具体用于:从存储服务器中查询到与所述镜像信息对应的所述第一磁盘的描述信息;存储服务器用于记录镜像信息与描述信息的对应关系。

基于与上述方法同样的申请构思,本申请实施例还提供一种第二服务器,包括:处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:获取存储设备中的第一磁盘的描述信息;根据所述第一磁盘的描述信息在所述存储设备中创建第三磁盘,其中,所述第三磁盘包括所述第一磁盘中的镜像文件;将所述第三磁盘挂载到所述第二服务器;运行所述第三磁盘中的所述镜像文件。

基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:获取存储设备中的第一磁盘的描述信息;根据所述第一磁盘的描述信息在存储设备中创建第三磁盘,所述第三磁盘包括第一磁盘中的镜像文件;将第三磁盘挂载到所述第二服务器;运行第三磁盘中的所述镜像文件。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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