掌桥专利:专业的专利平台
掌桥专利
首页

镜像处理的方法、装置、存储介质以及电子设备

文献发布时间:2024-04-18 20:00:50


镜像处理的方法、装置、存储介质以及电子设备

技术领域

本发明涉及计算机领域,具体而言,涉及一种镜像处理的方法、装置、存储介质以及电子设备。

背景技术

在开机过程中涉及镜像的获取,当开机并发量很大的时候,由于分布式存储空间的下载带宽只有300M左右,会完全占满下载带宽,从而导致带宽争抢,影响镜像的下载速率,导致开机速度变慢。在现有技术中,当创建虚拟机时,操作系统中负责计算部分的组件计算服务会向控制节点服务请求镜像,控制节点会查询镜像在分布式存储空间的位置,然后从分布式存储空间下载镜像到本节点,计算节点再从控制节点通过超文本传输协议的方式下载需要的镜像。但是当多并发量同时下载同一个镜像时,分布式存储空间会出现性能瓶颈,导致开机速度慢。当多个并发请求未命中镜像缓存时,会导致控制节点去分布式存储空间下载多份同一个镜像,造成缓存数据冗余,且对于控制节点的磁盘容量造成压力和浪费。

发明内容

本发明实施例提供了一种镜像处理的方法、装置、存储介质以及电子设备,以至少解决了同时接收到多个从分布式存储空间缓存镜像的请求的情况下,造成缓存数据冗余的技术问题。

根据本发明实施例的一个方面,提供了一种镜像处理的方法,包括:在收到镜像下载请求的情况下,在计算节点所在的第一可用区中确定第一控制节点组,其中,上述镜像下载请求用于请求从分布式存储空间下载第一镜像,上述第一控制节点组中的每一个控制节点中都存储有上述第一镜像;在上述第一控制节点组中确定连接数最少的第一控制节点;控制上述计算节点从上述第一控制节点中下载上述第一镜像。

根据本发明实施例的另一方面,提供了一种镜像处理的装置,包括:第一确定模块,用于在收到镜像下载请求的情况下,在计算节点所在的第一可用区中确定第一控制节点组,其中,上述镜像下载请求用于请求从分布式存储空间下载第一镜像,上述第一控制节点组中的每一个控制节点中都存储有上述第一镜像;第二确定模块,用于在上述第一控制节点组中确定连接数最少的第一控制节点;第一控制模块,用于控制上述计算节点从上述第一控制节点中下载上述第一镜像。

作为一种可选的示例,上述装置还包括:第三确定模块,用于在收到上述镜像下载请求之后,在上述第一可用区中的每一个控制节点中都未存储有上述第一镜像的情况下,在第二可用区中确定第二控制节点组,其中上述第二控制节点组中的每一个控制节点中都存储有上述第一镜像,其中,上述第二可用区为未包括上述计算节点的可用区;第四确定模块,用于在上述第二控制节点组中确定连接数最少的第二控制节点;第二控制模块,用于控制上述计算节点从上述第二控制节点中下载上述第一镜像。

作为一种可选的示例,上述装置还包括:第五确定模块,用于在收到上述镜像下载请求之后,在上述第一可用区和第二可用区中的每一个控制节点中都未存储有上述第一镜像的情况下,确定上述第一镜像的第一镜像大小;第六确定模块,用于在上述第一可用区中确定第三控制节点组,其中上述第三控制节点组中的每一个控制节点的剩余容量都大于或等于上述第一镜像大小,且连接数都未达到连接数限制;第七确定模块,用于在上述第三控制节点组中确定上述剩余容量最大的第三控制节点;第一缓存模块,用于将上述分布式存储空间中的上述第一镜像缓存到上述第三控制节点;第三控制模块,用于控制上述计算节点从上述第三控制节点中下载上述第一镜像。

作为一种可选的示例,上述装置还包括:第八确定模块,用于在收到上述镜像下载请求之后,在上述第一可用区和第二可用区中的每一个控制节点中都未存储有上述第一镜像,且剩余容量都小于第一镜像大小的情况下,在上述第一可用区中确定第四控制节点组,其中,上述第四控制节点组的每一个控制节点的连接数都未达到连接数限制;第九确定模块,用于在上述第四控制节点组中确定上述连接数最少的第四控制节点;第四控制模块,用于控制上述计算节点通过上述第四控制节点从上述分布式存储空间中下载上述第一镜像。

作为一种可选的示例,上述装置还包括:获取模块,用于在收到上述镜像下载请求之前,在收到镜像上传请求的情况下,获取上述第一镜像的镜像类型和第一镜像大小,其中上述镜像上传请求用于将上述第一镜像上传到上述分布式存储空间;第十确定模块,用于在上述镜像类型为目标格式的情况下,在上述第一可用区中确定第五控制节点组,其中上述第五控制节点组中的每一个控制节点的剩余容量都大于或等于上述第一镜像大小,且上述连接数都未达到连接数限制;第十一确定模块,用于在上述第五控制节点组中确定上述剩余容量最大的第五控制节点;第一上传模块,用于将上述第一镜像通过上述第五控制节点上传到上述分布式存储空间,并将上述第一镜像缓存在上述第五控制节点;第一记录模块,用于在上述第一镜像成功缓存在上述第五控制节点的情况下,将上述第一镜像和上述第五控制节点的对应关系记录在数据库中。

作为一种可选的示例,上述装置还包括:第十二确定模块,用于在收到镜像上传请求之后,在上述镜像类型为上述目标格式,且上述第一可用区中的每一个控制节点的上述剩余容量都小于上述第一镜像大小的情况下,在第二可用区中确定第六控制节点组,其中上述第六控制节点组中的每一个控制节点的上述剩余容量都大于或等于上述第一镜像大小,且上述连接数都未达到连接数限制;第十三确定模块,用于在上述第六控制节点组中确定上述剩余容量最大的第六控制节点;第二上传模块,用于将上述第一镜像通过上述第六控制节点上传到上述分布式存储空间,并将上述第一镜像缓存在上述第六控制节点;第二记录模块,用于在上述第一镜像成功缓存在上述第六控制节点的情况下,将上述第一镜像和上述第六控制节点的对应关系记录在上述数据库中。

作为一种可选的示例,上述装置还包括:第十四确定模块,用于在收到镜像上传请求之后,在上述镜像类型为非目标格式的情况下,在上述第一可用区中确定第七控制节点组,其中上述第七控制节点组中的每一个控制节点的剩余容量都大于或等于上述第一镜像大小的二倍,且上述连接数都未达到连接数限制;第十五确定模块,用于在上述第七控制节点组中确定上述剩余容量最大的第七控制节点;第三上传模块,用于将上述第一镜像通过上述第七控制节点上传到上述分布式存储空间,并将上述第一镜像缓存在上述第七控制节点;第三记录模块,用于在上述第一镜像成功缓存在上述第七控制节点的情况下,将上述第一镜像和上述第七控制节点的对应关系记录在上述数据库中。

根据本发明实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被处理器运行时执行上述镜像处理的方法。

根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的镜像处理的方法。

在本发明实施例中,采用了在收到镜像下载请求的情况下,在计算节点所在的第一可用区中确定第一控制节点组,其中,上述镜像下载请求用于请求从分布式存储空间下载第一镜像,上述第一控制节点组中的每一个控制节点中都存储有上述第一镜像;在上述第一控制节点组中确定连接数最少的第一控制节点;控制上述计算节点从上述第一控制节点中下载上述第一镜像的方法,由于在上述方法中,当计算节点的请求从分布式存储空间下载第一镜像的镜像下载请求时,从计算节点所在的第一可用区中存在第一镜像且连接数最少的的控制节点中下载第一镜像,从而可以在第一镜像被缓存在控制节点的情况下,不需要从分布式存储空间下载第一镜像,实现了提高镜像缓存的命中率的目的,进而解决了同时接收到多个从分布式存储空间缓存镜像的请求的情况下,造成缓存数据冗余的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的镜像处理的方法的流程图;

图2是根据本发明实施例的一种可选的镜像处理的方法的上传流程图;

图3是根据本发明实施例的一种可选的镜像处理的方法的下载流程图;

图4是根据本发明实施例的一种可选的镜像处理的装置的结构示意图;

图5是根据本发明实施例的一种可选的电子设备的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例的第一方面,提供了一种镜像处理的方法,可选地,如图1所示,上述方法包括:

S102,在收到镜像下载请求的情况下,在计算节点所在的第一可用区中确定第一控制节点组,其中,镜像下载请求用于请求从分布式存储空间下载第一镜像,第一控制节点组中的每一个控制节点中都存储有第一镜像;

S104,在第一控制节点组中确定连接数最少的第一控制节点;

S106,控制计算节点从第一控制节点中下载第一镜像。

可选地,本实施例中,镜像,一种文件形式,可以把许多文件做成一个镜像文件,镜像是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本。可用区(AZ,Availability Zone),一个AZ是一个或多个物理数据中心的集合,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。控制节点,负责镜像管理服务的组件,其功能包括系统镜像的查找、注册和获取等。分布式存储空间是一种数据存储技术,通过网络使用每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备。计算节点为运行虚拟机的节点。

可选地,本实施例中,用户需要从分布式存储空间下载第一镜像时,下发镜像下载请求,收到镜像下载请求后,在第一可用区中查找是否有已经缓存的第一镜像,若第一可用区中存储有第一镜像,在存储有第一镜像的控制节点中确定连接数未达到连接数限制的第一控制节点组,从第一控制节点组中确定连接数最少的第一控制节点,从第一控制节点中下载第一镜像。

可选地,本实施例中,当计算节点的请求从分布式存储空间下载第一镜像的镜像下载请求时,从计算节点所在的第一可用区中存在第一镜像且连接数最少的的控制节点中下载第一镜像,从而可以在第一镜像被缓存在控制节点的情况下,不需要从分布式存储空间下载第一镜像,实现了提高镜像缓存的命中率的目的,进而解决了同时接收到多个从分布式存储空间缓存镜像的请求的情况下,造成缓存数据冗余的技术问题。

作为一种可选的示例,在收到镜像下载请求之后,上述方法还包括:

在第一可用区中的每一个控制节点中都未存储有第一镜像的情况下,在第二可用区中确定第二控制节点组,其中第二控制节点组中的每一个控制节点中都存储有第一镜像,其中,第二可用区为未包括计算节点的可用区;

在第二控制节点组中确定连接数最少的第二控制节点;

控制计算节点从第二控制节点中下载第一镜像。

可选地,本实施例中,在第一可用区中未存储有第一镜像的情况下,在其他用区中查找,在其他可用区中存储有第一镜像的情况下,在存储有第一镜像的控制节点中确定连接数未达到连接数限制的第一控制节点组,从第二控制节点组中确定连接数最少的第二控制节点,从第二控制节点中下载第一镜像。

作为一种可选的示例,在收到镜像下载请求之后,上述方法还包括:

在第一可用区和第二可用区中的每一个控制节点中都未存储有第一镜像的情况下,确定第一镜像的第一镜像大小;

在第一可用区中确定第三控制节点组,其中第三控制节点组中的每一个控制节点的剩余容量都大于或等于第一镜像大小,且连接数都未达到连接数限制;

在第三控制节点组中确定剩余容量最大的第三控制节点;

将分布式存储空间中的第一镜像缓存到第三控制节点;

控制计算节点从第三控制节点中下载第一镜像。

可选地,本实施例中,在第一可用区和其他可用区中都未存储有第一镜像的情况下,确定第一镜像的第一镜像大小,则在第一可用区中查找剩余空间大于或等于第一镜像大小的且未达到连接限制的第三控制节点组,将第三控制节点组的剩余容量最大的控制节点确实为第三控制节点,从分布式存储空间中获取第一镜像,并将第一镜像缓存在第三控制节点,从第三控制节点中下载第一镜像。若第一可用区的每一个控制节点都达到连接数限制,或每一个控制节点的剩余容量都小于第一镜像的大小,在其他可用区中查找剩余容量大于或等于第一镜像大小的且未达到连接限制的控制节点,如果存在,则将分布式存储空间中的第一镜像缓存到剩余容量大于或等于第一镜像大小,未达到连接限制的控制节点,剩余容量最大的控制节点。

作为一种可选的示例,在收到镜像下载请求之后,上述方法还包括:

在第一可用区和第二可用区中的每一个控制节点中都未存储有第一镜像,且剩余容量都小于第一镜像大小的情况下,在第一可用区中确定第四控制节点组,其中,第四控制节点组的每一个控制节点的连接数都未达到连接数限制;

在第四控制节点组中确定连接数最少的第四控制节点;

控制计算节点通过第四控制节点从分布式存储空间中下载第一镜像。

可选地,本实施例中,若第一可用区和其他可用区中都未存储有第一镜像,第一可用区和其他可用区中所有控制节点的剩余容量都小于第一镜像的大小,在第一可用区中查找连接数未达到连接数限制的第四控制节点组,若存在,则将第三控制节点组中的连接数最少的的控制节点确实为第四控制节点,通过第四控制节点从分布式存储空间中下载第一镜像。若第一可用区中的每一个控制节点的连接数都达到连接数限制,则在其他可用区中查找连接数未达到连接数限制的控制节点,若存在,通过其他可用区中的连接数未达到连接数限制且连接数最少的的控制节点从分布式存储空间中下载第一镜像。

可选地,本实施例中,若第一可用区和其他可用区中都未存储有第一镜像,第一可用区和其他可用区中所有控制节点的剩余容量都小于第一镜像的大小,第一可用区和其他可用区中所有控制节点的连接数都达到连接数限制,标记第一镜像为下载失败。

作为一种可选的示例,在收到镜像下载请求之前,上述方法还包括:

在收到镜像上传请求的情况下,获取第一镜像的镜像类型和第一镜像大小,其中镜像上传请求用于将第一镜像上传到分布式存储空间;

在镜像类型为目标格式的情况下,在第一可用区中确定第五控制节点组,其中第五控制节点组中的每一个控制节点的剩余容量都大于或等于第一镜像大小,且连接数都未达到连接数限制;

在第五控制节点组中确定剩余容量最大的第五控制节点;

将第一镜像通过第五控制节点上传到分布式存储空间,并将第一镜像缓存在第五控制节点;

在第一镜像成功缓存在第五控制节点的情况下,将第一镜像和第五控制节点的对应关系记录在数据库中。

可选地,本实施例中,镜像类型是镜像文件格式,有ISO、BIN、IMG、TAO等格式,目标格式可以为qcow2镜像,是磁盘镜像格式之一,qcow2的表现形式为在一个文件中模拟一个固定大小的块设备。

可选地,本实施例中,在用户需要从分布式存储空间下载第一镜像时,为了提高镜像缓存的命中率,可以在控制节点中提前缓存第一镜像,避免从分布式存储空间直接下载。在收到计算节点的请求将第一镜像上传到分布式存储空间的镜像上传请求时,获取第一镜像的镜像类型和第一镜像的大小,若第一镜像的镜像类型为目标格式,先在第一可用区中查找剩余容量都大于或等于第一镜像大小,且连接数都未达到连接数限制的第五控制节点组,将第一镜像通过第五控制节点组中剩余容量最大的第五控制节点上传到分布式存储空间,同时缓存在第五控制节点中,第一镜像被成功缓存在第五控制节点后,将第一镜像被缓存在第五控制节点的对应关系记录在数据库中,以方便用户查看哪个镜像缓存在了哪个控制节点中。

作为一种可选的示例,在收到镜像上传请求之后,方法还包括:

在镜像类型为目标格式,且第一可用区中的每一个控制节点的剩余容量都小于第一镜像大小的情况下,在第二可用区中确定第六控制节点组,其中第六控制节点组中的每一个控制节点的剩余容量都大于或等于第一镜像大小,且连接数都未达到连接数限制;

在第六控制节点组中确定剩余容量最大的第六控制节点;

将第一镜像通过第六控制节点上传到分布式存储空间,并将第一镜像缓存在第六控制节点;

在第一镜像成功缓存在第六控制节点的情况下,将第一镜像和第六控制节点的对应关系记录在数据库中。

可选地,本实施例中,若第一镜像的镜像类型为目标格式,第一可用区中的每一个控制节点的剩余容量都小于第一镜像大小,从其他可用区中查找每一个控制节点的剩余容量都大于或等于第一镜像大小,且连接数都未达到连接数限制的第六控制节点组,若存在,则通过第六控制节点组中剩余容量最大的第六控制节点将第一镜像上传到分布式存储空间,同时缓存在第六控制节点。第一镜像被成功缓存在第六控制节点后,将第一镜像被缓存在第六控制节点的对应关系记录在数据库中,以方便用户查看哪个镜像缓存在了哪个控制节点中。

可选地,本实施例中,若第一可用区和其他可用区中每一个控制节点的剩余容量都小于第一镜像大小,则将第一镜像的缓存状态设置为未成功缓存,并记录数据库中。可以每过一段时间根据上述方法重新缓存,直达第一镜像被成功缓存在控制节点。

作为一种可选的示例,在收到镜像上传请求之后,上述法还包括:

在镜像类型为非目标格式的情况下,在第一可用区中确定第七控制节点组,其中第七控制节点组中的每一个控制节点的剩余容量都大于或等于第一镜像大小的二倍,且连接数都未达到连接数限制;

在第七控制节点组中确定剩余容量最大的第七控制节点;

将第一镜像通过第七控制节点上传到分布式存储空间,并将第一镜像缓存在第七控制节点;

在第一镜像成功缓存在第七控制节点的情况下,将第一镜像和第七控制节点的对应关系记录在数据库中。

可选地,本实施例中,若第一镜像的镜像类型为非目标格式,先在第一可用区中查找剩余容量都大于或等于第一镜像大小的二倍,且连接数都未达到连接数限制的第七控制节点组,将第一镜像通过第七控制节点组中剩余容量最大的第七控制节点上传到分布式存储空间,同时缓存在第七控制节点中,第一镜像被成功缓存在第七控制节点后,将第一镜像被缓存在第七控制节点的对应关系记录在数据库中,以方便用户查看哪个镜像缓存在了哪个控制节点中。

可选地,本实施例中,若第一可用区中的每一个控制节点的剩余容量都小于第一镜像大小的二倍,从其他可用区中查找每一个控制节点的剩余容量都大于或等于第一镜像大小的二倍,且连接数都未达到连接数限制的第八控制节点组,若存在,则通过第八控制节点组中剩余容量最大的第八控制节点将第一镜像上传到分布式存储空间,同时缓存在第八控制节点。第一镜像被成功缓存在第八控制节点后,将第一镜像被缓存在第八控制节点的对应关系记录在数据库中,以方便用户查看哪个镜像缓存在了哪个控制节点中。

可选地,本实施例中,若第一可用区和其他可用区中每一个控制节点的剩余容量都小于第一镜像大小的二倍,则将第一镜像的缓存状态设置为未成功缓存,并记录数据库中。可以每过一段时间根据上述方法重新缓存,直达第一镜像被成功缓存在控制节点。

可选地,本申请涉及一种镜像处理的方法,在用户需要从分布式存储空间下载第一镜像时,为了提高镜像缓存的命中率,可以在控制节点中提前缓存第一镜像,避免从分布式存储空间直接下载。镜像的优化分为两个部分:镜像上传和镜像下载,分别在这两个部分,触发镜像缓存机制,实现流程如图2、图3所示:

A.上传第一镜像:

1、第一镜像的镜像类型为qcow2:判断当前可用区中有没有控制节点的剩余容量大于第一镜像的大小,如果有,则在剩余容量最大的控制节点中进行提前预热,即缓存第一镜像;如果没有,判断其他可用区中有没有控制节点的剩余容量大于第一镜像的大小,如果有,则在剩余容量最大的控制节点中进行提前预热,即缓存第一镜像;在成功缓存后,将第一镜像缓存在哪个控制节点记录在数据库中。如果所有可用区中的所有控制节点的剩余容量都小于第一镜像的大小,则设置镜像状态为错误。

2、第一镜像的镜像类型为非qcow2:判断当前可用区中有没有控制节点的剩余容量大于第一镜像的二倍大小,如果有,则在剩余容量最大的控制节点中进行提前预热,即缓存第一镜像;如果没有,判断其他可用区中有没有控制节点的剩余容量大于第一镜像的二倍大小,如果有,则在剩余容量最大的控制节点中进行提前预热,即缓存第一镜像;在成功缓存后,将第一镜像缓存在哪个控制节点记录在数据库中。如果所有可用区中的所有控制节点的剩余容量都小于第一镜像的二倍大小,则设置镜像状态为错误。

B.下载第一镜像:先查找当前可用区有没有已缓存第一镜像,且连接数未达到连接数限制的控制节点,如果有,从连接数最少的控制节点中下载第一镜像;

1、如果当前可用区没有已缓存第一镜像,且连接数未达到连接数限制的控制节点,就从其他可用区进行查找有没有已缓存第一镜像,且连接数未达到连接数限制的控制节点,如果有,从连接数最少的控制节点中下载第一镜像;

2、如果其他可用区中也没有已缓存第一镜像,且连接数未达到连接数限制的控制节点,在当前可用区中查找有没有剩余容量大于第一镜像大小,且连接数未达到连接数限制的控制节点,如果有,通过剩余容量最大的控制节点将第一镜像从分布式存储空间中下载下来,同时缓存在剩余容量最大的控制节点;

3、如果当前可用区中没有剩余容量大于第一镜像大小,且连接数未达到连接数限制的控制节点,在其他可用区中查找有没有剩余容量大于第一镜像大小,且连接数未达到连接数限制的控制节点,如果有,通过剩余容量最大的控制节点将第一镜像从分布式存储空间中下载下来,同时缓存在剩余容量最大的控制节点;

4、如果其他可用区中没有剩余容量大于第一镜像大小,且连接数未达到连接数限制的控制节点,在当前可用区中查找有没有连接数未达到连接数限制的控制节点,如果有通过连接数最少的控制节点将第一镜像从分布式存储空间中下载下来;

5、如果当前可用区中没有连接数未达到连接数限制的控制节点,在其他可用区中查找有没有连接数未达到连接数限制的控制节点,如果有通过连接数最少的控制节点将第一镜像从分布式存储空间中下载下来;

6、如果其他可用区中没有连接数未达到连接数限制的控制节点,则下载失败。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

根据本申请实施例的另一方面,还提供了一种镜像处理的装置,如图4所示,包括:

第一确定模块402,用于在收到镜像下载请求的情况下,在计算节点所在的第一可用区中确定第一控制节点组,其中,镜像下载请求用于请求从分布式存储空间下载第一镜像,第一控制节点组中的每一个控制节点中都存储有第一镜像;

第二确定模块404,用于在第一控制节点组中确定连接数最少的第一控制节点;

第一控制模块406,用于控制计算节点从第一控制节点中下载第一镜像。

可选地,本实施例中,镜像,一种文件形式,可以把许多文件做成一个镜像文件,镜像是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本。可用区(AZ,Availability Zone),一个AZ是一个或多个物理数据中心的集合,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。控制节点,负责镜像管理服务的组件,其功能包括系统镜像的查找、注册和获取等。分布式存储空间是一种数据存储技术,通过网络使用每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备。计算节点为运行虚拟机的节点。

可选地,本实施例中,用户需要从分布式存储空间下载第一镜像时,下发镜像下载请求,收到镜像下载请求后,在第一可用区中查找是否有已经缓存的第一镜像,若第一可用区中存储有第一镜像,在存储有第一镜像的控制节点中确定连接数未达到连接数限制的第一控制节点组,从第一控制节点组中确定连接数最少的第一控制节点,从第一控制节点中下载第一镜像。

可选地,本实施例中,当计算节点的请求从分布式存储空间下载第一镜像的镜像下载请求时,从计算节点所在的第一可用区中存在第一镜像且连接数最少的的控制节点中下载第一镜像,从而可以在第一镜像被缓存在控制节点的情况下,不需要从分布式存储空间下载第一镜像,实现了提高镜像缓存的命中率的目的,进而解决了同时接收到多个从分布式存储空间缓存镜像的请求的情况下,造成缓存数据冗余的技术问题。

作为一种可选的示例,上述装置还包括:

第三确定模块,用于在收到镜像下载请求之后,在第一可用区中的每一个控制节点中都未存储有第一镜像的情况下,在第二可用区中确定第二控制节点组,其中第二控制节点组中的每一个控制节点中都存储有第一镜像,其中,第二可用区为未包括计算节点的可用区;

第四确定模块,用于在第二控制节点组中确定连接数最少的第二控制节点;

第二控制模块,用于控制计算节点从第二控制节点中下载第一镜像。

可选地,本实施例中,在第一可用区中未存储有第一镜像的情况下,在其他用区中查找,在其他可用区中存储有第一镜像的情况下,在存储有第一镜像的控制节点中确定连接数未达到连接数限制的第一控制节点组,从第二控制节点组中确定连接数最少的第二控制节点,从第二控制节点中下载第一镜像。

作为一种可选的示例,上述装置还包括:

第五确定模块,用于在收到镜像下载请求之后,在第一可用区和第二可用区中的每一个控制节点中都未存储有第一镜像的情况下,确定第一镜像的第一镜像大小;

第六确定模块,用于在第一可用区中确定第三控制节点组,其中第三控制节点组中的每一个控制节点的剩余容量都大于或等于第一镜像大小,且连接数都未达到连接数限制;

第七确定模块,用于在第三控制节点组中确定剩余容量最大的第三控制节点;

第一缓存模块,用于将分布式存储空间中的第一镜像缓存到第三控制节点;

第三控制模块,用于控制计算节点从第三控制节点中下载第一镜像。

可选地,本实施例中,在第一可用区中未存储有第一镜像的情况下,在其他用区中查找,在其他可用区中存储有第一镜像的情况下,在存储有第一镜像的控制节点中确定连接数未达到连接数限制的第一控制节点组,从第二控制节点组中确定连接数最少的第二控制节点,从第二控制节点中下载第一镜像。可选地,本实施例中,在第一可用区和其他可用区中都未存储有第一镜像的情况下,确定第一镜像的第一镜像大小,则在第一可用区中查找剩余空间大于或等于第一镜像大小的且未达到连接限制的第三控制节点组,将第三控制节点组的剩余容量最大的控制节点确实为第三控制节点,从分布式存储空间中获取第一镜像,并将第一镜像缓存在第三控制节点,从第三控制节点中下载第一镜像。若第一可用区的每一个控制节点都达到连接数限制,或每一个控制节点的剩余容量都小于第一镜像的大小,在其他可用区中查找剩余容量大于或等于第一镜像大小的且未达到连接限制的控制节点,如果存在,则将分布式存储空间中的第一镜像缓存到剩余容量大于或等于第一镜像大小,未达到连接限制的控制节点,剩余容量最大的控制节点。

作为一种可选的示例,上述装置还包括:

第八确定模块,用于在收到镜像下载请求之后,在第一可用区和第二可用区中的每一个控制节点中都未存储有第一镜像,且剩余容量都小于第一镜像大小的情况下,在第一可用区中确定第四控制节点组,其中,第四控制节点组的每一个控制节点的连接数都未达到连接数限制;

第九确定模块,用于在第四控制节点组中确定连接数最少的第四控制节点;

第四控制模块,用于控制计算节点通过第四控制节点从分布式存储空间中下载第一镜像。

可选地,本实施例中,若第一可用区和其他可用区中都未存储有第一镜像,第一可用区和其他可用区中所有控制节点的剩余容量都小于第一镜像的大小,在第一可用区中查找连接数未达到连接数限制的第四控制节点组,若存在,则将第三控制节点组中的连接数最少的的控制节点确实为第四控制节点,通过第四控制节点从分布式存储空间中下载第一镜像。若第一可用区中的每一个控制节点的连接数都达到连接数限制,则在其他可用区中查找连接数未达到连接数限制的控制节点,若存在,通过其他可用区中的连接数未达到连接数限制且连接数最少的的控制节点从分布式存储空间中下载第一镜像。

作为一种可选的示例,上述装置还包括:

获取模块,用于在收到镜像下载请求之前,在收到镜像上传请求的情况下,获取第一镜像的镜像类型和第一镜像大小,其中镜像上传请求用于将第一镜像上传到分布式存储空间;

第十确定模块,用于在镜像类型为目标格式的情况下,在第一可用区中确定第五控制节点组,其中第五控制节点组中的每一个控制节点的剩余容量都大于或等于第一镜像大小,且连接数都未达到连接数限制;

第十一确定模块,用于在第五控制节点组中确定剩余容量最大的第五控制节点;

第一上传模块,用于将第一镜像通过第五控制节点上传到分布式存储空间,并将第一镜像缓存在第五控制节点;

第一记录模块,用于在第一镜像成功缓存在第五控制节点的情况下,将第一镜像和第五控制节点的对应关系记录在数据库中。

可选地,本实施例中,镜像类型是镜像文件格式,有ISO、BIN、IMG、TAO等格式,目标格式可以为qcow2镜像,是磁盘镜像格式之一,qcow2的表现形式为在一个文件中模拟一个固定大小的块设备。

可选地,本实施例中,在用户需要从分布式存储空间下载第一镜像时,为了提高镜像缓存的命中率,可以在控制节点中提前缓存第一镜像,避免从分布式存储空间直接下载。在收到计算节点的请求将第一镜像上传到分布式存储空间的镜像上传请求时,获取第一镜像的镜像类型和第一镜像的大小,若第一镜像的镜像类型为目标格式,先在第一可用区中查找剩余容量都大于或等于第一镜像大小,且连接数都未达到连接数限制的第五控制节点组,将第一镜像通过第五控制节点组中剩余容量最大的第五控制节点上传到分布式存储空间,同时缓存在第五控制节点中,第一镜像被成功缓存在第五控制节点后,将第一镜像被缓存在第五控制节点的对应关系记录在数据库中,以方便用户查看哪个镜像缓存在了哪个控制节点中。

作为一种可选的示例,上述装置还包括:

第十二确定模块,用于在收到镜像上传请求之后,在镜像类型为目标格式,且第一可用区中的每一个控制节点的剩余容量都小于第一镜像大小的情况下,在第二可用区中确定第六控制节点组,其中第六控制节点组中的每一个控制节点的剩余容量都大于或等于第一镜像大小,且连接数都未达到连接数限制;

第十三确定模块,用于在第六控制节点组中确定剩余容量最大的第六控制节点;

第二上传模块,用于将第一镜像通过第六控制节点上传到分布式存储空间,并将第一镜像缓存在第六控制节点;

第二记录模块,用于在第一镜像成功缓存在第六控制节点的情况下,将第一镜像和第六控制节点的对应关系记录在数据库中。

可选地,本实施例中,若第一镜像的镜像类型为目标格式,第一可用区中的每一个控制节点的剩余容量都小于第一镜像大小,从其他可用区中查找每一个控制节点的剩余容量都大于或等于第一镜像大小,且连接数都未达到连接数限制的第六控制节点组,若存在,则通过第六控制节点组中剩余容量最大的第六控制节点将第一镜像上传到分布式存储空间,同时缓存在第六控制节点。第一镜像被成功缓存在第六控制节点后,将第一镜像被缓存在第六控制节点的对应关系记录在数据库中,以方便用户查看哪个镜像缓存在了哪个控制节点中。

作为一种可选的示例,上述装置还包括:

第十四确定模块,用于在收到镜像上传请求之后,在镜像类型为非目标格式的情况下,在第一可用区中确定第七控制节点组,其中第七控制节点组中的每一个控制节点的剩余容量都大于或等于第一镜像大小的二倍,且连接数都未达到连接数限制;

第十五确定模块,用于在第七控制节点组中确定剩余容量最大的第七控制节点;

第三上传模块,用于将第一镜像通过第七控制节点上传到分布式存储空间,并将第一镜像缓存在第七控制节点;

第三记录模块,用于在第一镜像成功缓存在第七控制节点的情况下,将第一镜像和第七控制节点的对应关系记录在数据库中。

可选地,本实施例中,若第一镜像的镜像类型为非目标格式,先在第一可用区中查找剩余容量都大于或等于第一镜像大小的二倍,且连接数都未达到连接数限制的第七控制节点组,将第一镜像通过第七控制节点组中剩余容量最大的第七控制节点上传到分布式存储空间,同时缓存在第七控制节点中,第一镜像被成功缓存在第七控制节点后,将第一镜像被缓存在第七控制节点的对应关系记录在数据库中,以方便用户查看哪个镜像缓存在了哪个控制节点中。

可选地,本实施例中,若第一可用区中的每一个控制节点的剩余容量都小于第一镜像大小的二倍,从其他可用区中查找每一个控制节点的剩余容量都大于或等于第一镜像大小的二倍,且连接数都未达到连接数限制的第八控制节点组,若存在,则通过第八控制节点组中剩余容量最大的第八控制节点将第一镜像上传到分布式存储空间,同时缓存在第八控制节点。第一镜像被成功缓存在第八控制节点后,将第一镜像被缓存在第八控制节点的对应关系记录在数据库中,以方便用户查看哪个镜像缓存在了哪个控制节点中。

可选地,本实施例中,若第一可用区和其他可用区中每一个控制节点的剩余容量都小于第一镜像大小的二倍,则将第一镜像的缓存状态设置为未成功缓存,并记录数据库中。可以每过一段时间根据上述方法重新缓存,直达第一镜像被成功缓存在控制节点。

本实施例的其他示例请参见上述示例,在此不在赘述。

图5是根据本申请实施例的一种可选的电子设备的结构框图,如图5所示,包括处理器502、通信接口504、存储器506和通信总线508,其中,处理器502、通信接口504和存储器506通过通信总线508完成相互间的通信,其中,

存储器506,用于存储计算机程序;

处理器502,用于执行存储器506上所存放的计算机程序时,实现如下步骤:

在收到镜像下载请求的情况下,在计算节点所在的第一可用区中确定第一控制节点组,其中,镜像下载请求用于请求从分布式存储空间下载第一镜像,第一控制节点组中的每一个控制节点中都存储有第一镜像;

在第一控制节点组中确定连接数最少的第一控制节点;

控制计算节点从第一控制节点中下载第一镜像。

可选地,在本实施例中,上述的通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线、或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括RAM,也可以包括非易失性存储器(non-volatile memory),例如,至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。

作为一种示例,上述存储器506中可以但不限于包括上述镜像处理的装置中的第一确定模块402、第二确定模块404以及第一控制模块406。此外,还可以包括但不限于上述请求的处理装置中的其他模块单元,本示例中不再赘述。

上述处理器可以是通用处理器,可以包含但不限于:CPU(Central ProcessingUnit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(DigitalSignal Processing,数字信号处理器)、ASIC(ApplicationSpecific IntegratedCircuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图5所示的结构仅为示意,实施上述镜像处理的方法的设备可以是终端设备,该终端设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图5其并不对上述电子设备的结构造成限定。例如,电子设备还可包括比图5中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图5所示的不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、ROM、RAM、磁盘或光盘等。

根据本发明的实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被处理器运行时执行上述镜像处理的方法中的步骤。

可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

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

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

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 基于视觉感知的动态目标识别和情景记忆认知方法及系统
  • 基于视觉感知的动态目标识别和情景记忆认知方法及系统
技术分类

06120116542858