一种实现容器主机兼容虚拟主机镜像文件的方法及装置与流程

文档序号:12905981阅读:153来源:国知局
一种实现容器主机兼容虚拟主机镜像文件的方法及装置与流程

本发明涉及云计算领域,尤其涉及一种实现容器主机兼容虚拟主机镜像文件的方法及装置。



背景技术:

容器主机和虚拟主机是云平台提供的两种实例。容器主机基于linuxkernel提供的隔离技术;虚拟主机基于虚拟化技术,比如linuxkvm。由于实现机制不同,容器主机的镜像包含容器文件系统的所有文件,通常是文件压缩包的形式提供;而虚拟主机的镜像基于虚拟的硬盘设备,是硬盘的镜像文件,所以他们使用完全不同的存储格式和内容。

相比于虚拟主机,容器主机具有启动速度快、资源利用率高、性能开销小等特点。而且,因为容器主机不需要为每个应用程序分配单独的操作系统,实例规模更小、创建和迁移速度也更快。这意味相比于虚拟主机,单个操作系统能够承载更多的容器主机,更有利于业务的部署。

基于容器主机的上述优点,用户更希望将虚拟主机的业务迁移到容器主机里面进行处理。但是,在传统的使用方式中,由于容器主机和虚拟主机分别具有一套独立且互不兼容的镜像文件,从而导致虚拟主机的业务很难迁移至容器主机中。



技术实现要素:

为解决上述问题,本发明提供了一种实现容器主机兼容虚拟主机镜像文件的方法及装置。

第一方面,本发明提供了一种实现容器主机兼容虚拟主机镜像文件的方法,该方法包括:

利用第一运行指令将虚拟主机镜像文件映射为虚拟硬盘;

利用第二运行指令将虚拟硬盘中的所有文件映射至宿主机的第一文件夹中,其中第一文件夹为宿主机的任一文件夹;

从第一文件夹中获取虚拟主机的操作系统文件;

利用虚拟主机的操作系统文件启动容器主机。

本发明的有益效果是:将虚拟主机镜像文件映射为虚拟硬盘,然后将虚拟硬盘中的所有文件映射至宿主机的第一文件夹中。将第一文件夹作为容器主机的根目录,从第一文件夹中获取虚拟主机的操作系统文件,并利用虚拟主机的操作系统文件,启动容器主机。而在这个过程中,容器主机已经可以兼容虚拟主机的镜像文件,并且启动后可以执行相应的动作。

进一步,利用第二运行指令将虚拟硬盘中的所有文件映射至宿主机的第一文件夹之后,方法还包括:

将容器主机对应的业务数据文件映射至宿主机的第二文件夹;

根据第一文件夹中的文件和第二文件夹中的文件,创建联合文件系统;

从联合文件系统中获取虚拟主机的操作系统文件;

根据虚拟主机的操作系统文件,启动容器主机,其中第二文件夹为宿主机中除第一文件夹之外的任一文件夹。

采用上述进一步方案的有益效果是:在利用第二运行指令将虚拟硬盘中的所有那文件映射至宿主机的第一文件夹后,还可以将容器主机的业务数据映射为至宿主机的第二文件夹。并且,根据第一文件夹中的文件和第二文件夹中的文件,创建联合文件系统。进一步的从联合文件系统中获取虚拟主机的操作系统文件,并利用虚拟主机的操作系统文件启动容器主机。而容器主机使用联合文件系统,可以保证容器主机的性能更好。

进一步,联合文件系统包括上层存储路径和下层存储路径,其中,下层存储路径用于存储第一文件夹的文件,上层存储路径用于存储第二文件夹的文件。

采用上述进一步方案的有益效果是:在上述进一步中已经简要的说明容器主机使用联合文件系统,可以使容器主机的性能更好。而这里则是详细说明,联合文件系统包括上下两层存储路径,上层用于存储第二文件夹的数据文件,也即是容器主机对应的数据文件;而下层则存储的是虚拟主机的镜像文件。上层可以用于读/写文件,下层则只用于读文件。其目的在于,在上层读或者写可以适应不同容器主机的不同性能。而下层则只读,目的是为了保证虚拟主机的镜像文件不受更改。

进一步,启动容器主机时,方法还包括:

将联合文件系统映射为容器主机的根文件夹,以便容器主机中的软件共享根文件夹中的文件。

采用上述进一步方案的有益效果是:在启动容器主机过程中,可以将第一文件夹或第二文件夹,也即是虚拟主机镜像文件所映射的文件夹作为容器主机的根文件夹,方便容器主机中的所有软件都可以直接访问容器主机的根文件夹中所有文件,并进行相应处理。

第二方面,本发明提供了一种实现容器主机兼容虚拟主机镜像文件的装置,该装置包括:

处理单元,用于利用第一运行指令将虚拟主机镜像文件映射为虚拟硬盘;

利用第二运行指令将虚拟硬盘中的所有文件映射至宿主机的第一文件夹中,其中第一文件夹为宿主机的任一文件夹;

从第一文件夹中获取虚拟主机的操作系统文件;

启动单元,用于利用虚拟主机的操作系统文件启动容器主机。

本发明的有益效果是:将虚拟主机镜像文件映射为虚拟硬盘,然后将虚拟硬盘中的所有文件映射至宿主机的第一文件夹中。将第一文件夹作为容器主机的根目录,从第一文件夹中获取虚拟主机的操作系统文件,并利用虚拟主机的操作系统文件,启动容器主机。而在这个过程中,容器主机已经可以兼容虚拟主机的镜像文件,并且启动后可以执行相应的动作。

进一步,处理单元还用于:

将容器主机对应的业务数据文件映射至宿主机的第二文件夹;

根据第一文件夹中的文件和第二文件夹中的文件,创建联合文件系统;

从联合文件系统中获取虚拟主机的操作系统文件;

启动单元用于,根据虚拟主机的操作系统文件,启动容器主机,其中第二文件夹为宿主机中除第一文件夹之外的任一文件夹。

采用上述进一步方案的有益效果是:在利用第二运行指令将虚拟硬盘中的所有那文件映射至宿主机的第一文件夹后,还可以将容器主机的业务数据映射为至宿主机的第二文件夹。并且,根据第一文件夹中的文件和第二文件夹中的文件,创建联合文件系统。进一步的从联合文件系统中获取虚拟主机的操作系统文件,并利用虚拟主机的操作系统文件启动容器主机。而容器主机使用联合文件系统,可以保证容器主机的性能更好。

进一步的,联合文件系统包括上层存储路径和下层存储路径,其中,下层存储路径用于存储第一文件夹的文件,上层存储路径用于存储第二文件夹的文件。

采用上述进一步方案的有益效果是:在上述进一步中已经简要的说明容器主机使用联合文件系统,可以使容器主机的性能更好。而这里则是详细说明,联合文件系统包括上下两层存储路径,上层用于存储第二文件夹的数据文件,也即是容器主机对应的数据文件;而下层则存储的是虚拟主机的镜像文件。上层可以用于读/写文件,下层则只用于读文件。其目的在于,在上层读或者写可以适应不同容器主机的不同性能。而下层则只读,目的是为了保证虚拟主机的镜像文件不受更改。

进一步的,处理单元还用于,将联合文件系统映射为容器主机的根文件夹,以便容器主机中的软件共享根文件夹中的文件。

采用上述进一步方案的有益效果是:在启动容器主机过程中,可以将第一文件夹或第二文件夹,也即是虚拟主机镜像文件所映射的文件夹作为容器主机的根文件夹,方便容器主机中的所有软件都可以直接访问容器主机的根文件夹中所有文件,并进行相应处理。

附图说明

图1为本发明实施例提供的一种实现容器主机兼容虚拟主机镜像文件的方法流程示意图;

图2为本发明实施例提供的一种实现容器主机兼容虚拟主机镜像文件的方法流程示意图;

图3为本发明实施例提供的一种实现容器主机兼容虚拟主机镜像文件的装置结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本发明。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

图1为本发明实施例提供的一种实现容器主机兼容虚拟主机镜像文件的方法流程示意图,具体如图1所示,该方法包括:

步骤110,利用第一运行指令将虚拟主机镜像文件映射为虚拟硬盘。

具体的,首先要获取虚拟主机镜像文件在宿主机中的存储路径。而这里的第一运行指令可以如qemu-nbd等的指令,利用该第一运行指令,从虚拟主机镜像文件在宿主机中的存储位置读取虚拟主机的镜像文件,然后将其映射为虚拟硬盘。从实际应用而言,则是将i/o操作指令映射为了读/写操作指令。

步骤120,利用第二运行指令将虚拟硬盘中的所有文件映射至宿主机的第一文件夹中,其中第一文件夹为宿主机的任一文件夹。

具体的,将虚拟硬盘中的所有文件映射至宿主机中的第一文件夹中。通过步骤110可知,虚拟硬盘中的所有文件其实就是虚拟主机镜像文件汇总的所有文件,只是将其映射至虚拟硬盘中。

而在本步骤中,则是利用第二运行指令,例如mount指令将虚拟硬盘中的所有文件映射至宿主机中的第一文件夹中。实际也就是将虚拟硬盘中的所有文件存放于宿主机的一个文件夹中。而这个文件夹可以是宿主机中的任意一个文件夹。

步骤130,从第一文件夹中获取虚拟主机的操作系统文件。

具体的,容器主机如果要兼容虚拟主机的镜像文件,实际就是要利用虚拟主机的操作文件系统,启动容器主机。因此,首先就要获取到虚拟主机的操作文件系统。

由步骤120可知,虚拟主机的镜像文件已经被间接映射至宿主机的第一文件夹中。那么,就需要从第一文件夹中获取虚拟主机的操作系统文件。

优选的,虚拟主机的镜像文件至少包括引导文件和操作系统文件,其中,引导文件用于指示虚拟主机的操作系统文件的存储路径。当虚拟主机的镜像文件间接映射至第一文件夹中后,引导文件自然而然的也随之映射至第一文件夹中。那么宿主机只要读取引导文件,并且根据引导文件的指示,从虚拟主机的操作系统文件存储位置获取虚拟主机的操作系统文件即可。

获取到虚拟主机的操作系统文件后,则可可执行步骤140了。

步骤140,利用虚拟主机的操作系统文件,启动容器主机。

截止上述步骤,已经可以实现容器主机兼容虚拟主机的镜像文件,并且能够在容器主机中处理虚拟主机对应的业务了。

本发明实施例提供的一种实现容器主机兼容虚拟主机镜像文件的方法,将虚拟主机镜像文件映射为虚拟硬盘,然后将虚拟硬盘中的所有文件映射至宿主机的第一文件夹中。将第一文件夹作为容器主机的根目录,从第一文件夹中获取虚拟主机的操作系统文件,并利用虚拟主机的操作系统文件,启动容器主机。而在这个过程中,容器主机已经可以兼容虚拟主机的镜像文件,并且启动后可以执行相应的动作。

但是,上述方案中的容器主机的性能可能比虚拟主机的性能稍好一些。为了能够使容器主机的性能有所提升,更好的为用户提供服务,提升用户体验。本发明实施例还提供了另一种实现容器主机兼容虚拟主机镜像文件的方法,具体如图2所示,该方法包括如下步骤:

步骤210,利用第一运行指令将虚拟主机镜像文件映射为虚拟硬盘。

具体的,首先要获取虚拟主机镜像文件在宿主机中的存储路径。而这里的第一运行指令可以如qemu-nbd等的指令,利用该第一运行指令,从虚拟主机镜像文件在宿主机中的存储位置读取虚拟主机的镜像文件,然后将其映射为虚拟硬盘。从实际应用而言,则是将i/o操作指令映射为了读/写操作指令。

步骤220,利用第二运行指令将虚拟硬盘中的所有文件映射至宿主机的第一文件夹中,其中第一文件夹为宿主机的任一文件夹。

具体的,将虚拟硬盘中的所有文件映射至宿主机中的第一文件夹中。通过步骤210可知,虚拟硬盘中的所有文件其实就是虚拟主机镜像文件汇总的所有文件,只是将其映射至虚拟硬盘中。

而在本步骤中,则是将虚拟硬盘中的所有文件映射至宿主机中的第一文件夹中。实际也就是将虚拟硬盘中的所有文件存放于宿主机的一个文件夹中。而这个文件夹可以是宿主机中的任意一个文件夹。

步骤230,将容器主机对应的业务数据文件映射至宿主机的第二文件夹。

具体的,将容器中主机对应的业务数据文件映射至宿主机中的第二文件夹,其中第二文件夹可以是宿主机中除第一文件夹之外的任一文件夹。也可以是新创建的一个文件夹。而将容器主机对应的业务数据映射至第二文件夹的目的在于,用户可以根据实际需要,通过宿主机对容器主机的业务数据进行修改,以便于能够达到不同的需求。

步骤240,根据第一文件夹中的文件和第二文件夹中的文件,创建联合文件系统。

具体的,根据第一文件夹中的文件和第二文件夹中的文件,创建联合文件系统,其实就是在宿主机中创建一个可以包含第一文件夹和第二文件夹中所有文件的虚拟文件夹。

而这个虚拟文件夹包括两层。其中上层用于存储第二文件夹中的文件,也即是容器主机对应的业务数据文件,而下层用于存储第一文件夹中的文件,也即是虚拟主机镜像文件。且,上层存储的文件为可以读/写的文件,而下层存储的文件则是只读文件。其目的在于,保证镜像文件不发生变动的情况下,用户可以随意改动容器主机对应的业务数据文件,以实现不同的业务功能。如果想对下层存储做改动,那么则需要利用联合文件系统其写时复制技术来修改只读层中的文件,它工作在文件层面,对只读层中的文件做修改,文件被拷贝到上面的可写层然后再被修改。当然,也可以给根据实际需要,将上层设置为可/读写文件,下层同样是设置为可读/写文件。或者根据实际需要设置为其他形式,这里均不做任何限定。

步骤250,根据虚拟主机的操作系统文件启动容器主机。

进一步优选的,启动容器主机时,方法还包括步骤260,将联合文件系统映射为容器主机的根文件夹,以便容器主机中的软件共享根文件夹中的文件。

读者应理解的是,将容器主机对应的业务数据映射至第二文件夹,而不要镜像文件同时映射至同一文件夹的好处包括:

第一,可以复用镜像文件。

具体的,如果宿主机启动容器主机,执行多项任务。同样可以共用第一文件夹中的映射过来的“镜像文件”,而不需要每一项任务一一对应一份“镜像文件”,由此来节约存储空间。

第二,业务数据可以和“镜像文件”分离,可以便于管理。

容器主机业务数据可以根据实际需要进行添加、删除或者更改。而这不会影响到“镜像文件”的更改或者删除等。而且,“镜像文件”也可以随时更新版本,而不影响业务数据的变动。总之,分离之后,各自可以随时做出更改,而不影响对方。

当然,如果在将镜像文映射到宿主机之前,虚拟主机中已经存在待处理的业务数据,那么则将虚拟主机待处理的业务数据和镜像文件同时映射至第一文件夹。而第二文件夹则是容器主机的业务数据。上述两条有点同样适用,并且不产生任何冲突。

读者还应理解的是,本实施例虽然有些步骤和上一实施例的步骤不尽相同,但是该实施例可以理解为是上一实施例的“升级版”,利用联合文件系统,可以使容器主机的性能更加优化。而本发明的上述两个实施例的一个隐含的优点在于,不需要拷贝虚拟主机的镜像文件至宿主机中,从而较少了宿主机中存储空间的使用。利用层层映射关系,就可以实现容器主机兼容虚拟主机的镜像文件,并且利用虚拟主机的操作文件系统,开启容器主机。在容器主机中处理虚拟主机的一些业务。

与上述两个实施例相对应的,本发明实施例还提供了一种实现容器主机兼容虚拟主机镜像文件的装置结构示意图,具体如图3所示,该装置包括:处理单元301和启动单元302。

其中,处理单元301用于,利用第一运行指令将虚拟主机镜像文件映射为虚拟硬盘;利用第二运行指令将虚拟硬盘中的所有文件映射至宿主机的第一文件夹中,其中第一文件夹为宿主机的任一文件夹;从第一文件夹中获取虚拟主机的操作系统文件。

优选的,第一文件夹中包括:引导文件;引导文件用于指示虚拟主机的操作系统文件的存储路径,以便宿主机根据引导文件指示的虚拟主机的操作系统文件的存储路径,获取虚拟主机的操作系统文件。

启动单元302,用于利用虚拟主机的操作系统文件启动容器主机。

进一步优选的,处理单元301还用于,将容器主机对应的业务数据文件映射至宿主机的第二文件夹;根据第一文件夹中的文件和第二文件夹中的文件,创建联合文件系统;从联合文件系统中获取虚拟主机的操作系统文件。

启动单元302用于,根据虚拟主机的操作系统文件,启动容器主机,其中第二文件夹为宿主机中除第一文件夹之外的任一文件夹。

具体的,联合文件系统包括上层存储路径和下层存储路径,其中,下层存储路径用于存储第一文件夹的文件,上层存储路径用于存储第二文件夹的文件。

进一步优选的,处理单元301还用于,将联合文件系统映射为容器主机的根文件夹,以便容器主机中的软件共享根文件夹中的文件。

本发明实施例提供的一种实现容器主机兼容虚拟主机镜像文件的装置中各功能单元所执行的方法步骤均已在前两个实施例中做了详尽介绍,为叙述简便,这里将不再赘述。

本发明实施例提供的一种实现容器主机兼容虚拟主机镜像文件的装置,将虚拟主机镜像文件映射为虚拟硬盘,然后将虚拟硬盘中的所有文件映射至宿主机的第一文件夹中。将第一文件夹作为容器主机的根目录,从第一文件夹中获取虚拟主机的操作系统文件,并利用虚拟主机的操作系统文件,启动容器主机。而在这个过程中,容器主机已经可以兼容虚拟主机的镜像文件,并且启动后可以执行相应的动作。另外,不需要拷贝虚拟主机的镜像文件至宿主机中,从而较少了宿主机中存储空间的使用。利用层层映射关系,就可以实现容器主机兼容虚拟主机的镜像文件,并且利用虚拟主机的操作文件系统,开启容器主机。在容器主机中处理虚拟主机的一些业务。

读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元301中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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