镜像管理方法、装置及电子设备与流程

文档序号:22758409发布日期:2020-10-31 09:56阅读:113来源:国知局
镜像管理方法、装置及电子设备与流程

本公开涉及镜像管理技术领域,更具体地,涉及一种镜像管理方法、一种镜像管理装置、一种电子设备以及一种计算机可读存储介质。



背景技术:

云服务器镜像是一个包含软件配置(例如操作系统,应用服务器和应用程序)的云服务器的模板。用户在创建云服务器实例时需要指定一个镜像,该镜像提供的操作系统和软件会安装在该实例上。

openstack是一个开源的云计算管理平台项目,其主要组件包括身份服务模块keystone、计算服务组件nova、镜像服务组件glance、对象存储服务模块swift等。其中,计算服务组件、镜像服务组件和对象存储服务模块(或者称之为存储后端)可共同用于实现镜像查询、镜像上传、镜像下载等功能。

图1示出了一种现有的镜像下载方式。其中,计算管理组件向镜像管理组件发送下载请求,镜像管理组件根据该下载请求向存储后端请求镜像数据,存储后端通过镜像管理组件将镜像数据发送至计算机管理组件,从而完成对镜像的下载。上述方式的不足之处在于,镜像的下载过程需要依赖于镜像管理组件和存储后端之间的数据传输,因此镜像下载速度受限于镜像管理组件和存储后端之间的带宽,通常下载过程耗时较长。

图2示出了另外一种现有的镜像下载方式。该方式相对于图1中方式的区别在于,镜像管理组件在第一次处理某个下载请求时,在传输镜像数据的同时将其存储到了本地形成本地缓存。这样,在针对该镜像进行后续下载时,镜像管理组件可以直接将本地缓存中的镜像数据发送至计算管理组件,无需与存储后端通信,因此相对于图1中方式提高了下载速度。但是,这种下载方式仍然存在不足。例如,在镜像管理组件包括多个镜像管理节点的情况下,无法保证每次由相同节点处理下载请求,使得镜像缓存无法保证命中,并且同一镜像可能存在多份镜像缓存,造成磁盘空间浪费。另外,在上述方式中,第一次下载镜像时仍然需要与存储后端通信,速度仍然较慢。

因此,有必要提出一种进行镜像管理的新的技术方案。



技术实现要素:

本公开的一个目的是提供一种进行镜像管理的新的技术方案。

根据本公开的第一方面,提供了一种镜像管理方法,包括:

获取镜像上传请求,其中,所述镜像上传请求包括镜像标识;

根据预设的哈希算法,从至少一个镜像管理节点中选取所述镜像标识对应的目标节点;

向所述目标节点发送第一处理指令,其中,所述第一处理指令用于控制所述目标节点将所述镜像标识对应的镜像数据发送至存储后端以形成存储数据,并将所述镜像数据存储至本地以形成缓存数据。

可选地,还包括:

获取镜像下载请求,其中,所述镜像下载请求包括所述镜像标识;

根据所述哈希算法,从所述至少一个镜像管理节点中选出所述目标节点;

向所述目标节点发送第二处理指令,其中,所述第二处理指令用于控制所述目标节点将自身存储的所述镜像标识对应的缓存数据发送至目标设备。

可选地,所述根据预设的哈希算法,从至少一个镜像管理节点中选取与所述镜像标识对应的目标节点,包括:

基于所述哈希算法,获取所述镜像标识对应的哈希值;

计算所述哈希值相对于所述镜像管理节点总数目的余数;

根据所述余数,确定所述目标节点。

可选地,所述哈希算法包括循环冗余校验算法、消息摘要算法、安全散列算法中的至少一种。

根据本公开的第二方面,提供了一种镜像管理装置,包括:

第一获取模块,用于获取第一设备发送的镜像上传请求,所述镜像上传请求包括镜像标识;

第一选取模块,用于根据预设的哈希算法,从至少一个镜像管理节点中选取与所述镜像标识对应的目标节点;

第一发送模块,用于向所述目标节点发送第一处理指令,其中,所述第一处理指令用于控制所述目标节点将所述镜像标识对应的镜像数据发送至存储后端以形成存储数据,并将所述镜像数据存储至本地以形成缓存数据。

可选地,还包括:

第二获取模块,用于获取第二设备发送的镜像下载请求,所述镜像下载请求包括所述镜像标识;

第二选取模块,用于根据预设哈希算法,从所述至少一个镜像管理节点中选出所述目标节点;

第二发送模块,用于向所述目标节点发送第二处理指令,其中,所述第二处理指令用于控制所述目标节点将自身存储的所述镜像标识对应的缓存数据发送至所述目标设备。

可选地,所述第一选取模块还用于:

基于所述哈希算法,获取所述镜像标识对应的哈希值;

计算所述哈希值相对于所述镜像管理节点总数目的余数;

根据所述余数确定所述目标节点。

可选地,所述哈希算法包括循环冗余校验算法、消息摘要算法、安全散列算法中的至少一种。

根据本公开的第三方面,提供了一种电子设备,包括处理器和存储器,

所述存储器存储有能够被所述处理器执行的机器可执行指令;

所述处理器执行所述机器可执行指令以实现本公开第一方面描述的镜像管理方法。

根据本公开的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有可执行指令,所述可执行指令在被处理器调用和执行时,所述可执行指令促使处理器实现本公开第一方面描述的镜像管理方法。

本公开的实施例中的镜像管理方法,根据镜像标识和预设的哈希算法从至少一个镜像管理节点中选取目标节点,通过目标节点处理镜像上传请求,除了将镜像数据发送至存储后端外还进行本地存储,一方面能够使同一镜像数据缓存在同一镜像管理节点,避免存储空间浪费并保证镜像缓存命中,另一方面由于在镜像上传时已形成本地缓存,首次下载镜像时无需与存储后端通信,使得下载速度得到了提升。

通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。

附图说明

被结合在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且连同其说明一起用于解释本公开的原理。

图1是现有的一种镜像下载方式的示意图。

图2是现有的另外一种镜像下载方式的示意图。

图3是可用于实现本公开实施例的电子设备的示意图。

图4是根据本公开实施例的镜像管理方法的流程图。

图5是根据本公开实施例的镜像上传过程的示意图。

图6是根据本公开实施例的镜像下载过程的示意图。

具体实施方式

现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为说明书的一部分。

在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

<硬件配置>

图3示出了可用于实现本公开的实施例的电子设备的硬件配置。

参见图3,电子设备1000包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500和输入装置1600。处理器1100例如可以是中央处理器cpu、微控制单元mcu等。存储器1200例如包括rom(只读存储器)、ram(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括usb接口、串行接口等。通信装置1400例如是有线网卡或无线网卡。显示装置1500例如是液晶显示屏。输入装置1600例如包括触摸屏、键盘、鼠标、麦克风等。

应用于本说明书的实施例中,电子设备1100的存储器1200用于存储指令,该指令用于控制处理器1100进行操作以支持实现根据本说明书任意实施例的方法。技术人员可以根据本说明书所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。

本领域技术人员应当理解,尽管在图3中示出了电子设备1000的多个装置,但是,本说明书实施例的电子设备1000可以仅涉及其中的部分装置,例如,只涉及处理器1100、存储器1200和通信装置1400。

图3所示的硬件配置仅是解释性的,并且决不是为了要限制本公开、其应用或用途。

<方法实施例>

本实施例提供了一种集镜像管理方法,例如由图3所示的电子设备1000实施。

如图4所示,该方法包括以下步骤s1100-s1300。

在步骤s1100中,获取镜像上传请求,其中,镜像上传请求包括镜像标识。

本实施例中的镜像管理方法可应用于镜像管理客户端,该镜像管理客户端能够与镜像管理组件交互,二者共同实现镜像管理服务。

本实施例中,镜像管理组件包括至少一个镜像管理节点。其中,每个镜像管理节点可以是一个物理机或者虚拟机。

本实施例中,镜像管理客户端接收针对目标镜像的上传请求即镜像上传请求。该上传请求例如由用户终端发送。

本实施例中,上传请求包括镜像标识(或者称为镜像id)。镜像标识是在镜像管理服务中对一个镜像的唯一标识,例如为镜像的uuid(universallyuniqueidentifier,通用唯一识别码)。

在步骤s1200中,根据预设的哈希算法,从至少一个镜像管理节点中选取镜像标识对应的目标节点。

本实施例中,镜像管理客户端从至少一个镜像管理节点中选出唯一的目标节点,通过该目标节点处理上传请求。

哈希算法是一种把任意长度的输入通过散列算法变换成固定长度的输出的算法,或者说,是一种将任意长度的消息压缩到某一固定长度的消息摘要的算法。哈希算法可以将一个数据转换为一个标志(哈希值),这个标志和源数据的每一个字节都有十分紧密的关系。哈希算法是一个广义的算法,也可以认为是一种思想,使用哈希算法可以提高存储空间的利用率,可以提高数据的查询效率,也可以做数字签名来保障数据传递的安全性。

本实施例中,哈希算法包括循环冗余校验算法、消息摘要算法、安全散列算法中的至少一种。其中,循环冗余校验算法(cyclicredundancycheck,crc)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,可以用来检测或校验数据传输或者保存后可能出现的错误。消息摘要算法(message-digestalgorithm)是一个广泛的算法家族,包括md2、md3、md4、md5等,目前被广泛应用于数据完整性校验、数据(消息)摘要、数据加密等。安全散列算法是数宇签名等密码学应用中重要的工具。目前最常用的安全散列算法是sha-1算法,它被广泛地应用于电子商务等信息安全领域。

在一个例子中,根据预设的哈希算法,从至少一个镜像管理节点中选取镜像标识对应的目标节点,包括:基于哈希算法,获取镜像标识对应的哈希值;计算哈希值相对于镜像管理节点总数目的余数;根据余数,确定目标节点。

在上述例子中,假设目标镜像标识为“51971ff4bae24e66a6370abbbd24a163”,预设的哈希算法为循环冗余校验算法crc16。对目标镜像标识的前16为进行crc16运算,得到目标镜像标识对应的哈希值,记为h。假设镜像管理节点总数为3个,依次为节点a、节点b、节点c。取h相对于镜像管理节点总数的余数,例如余数为2。容易理解,余数为2表示哈希值h对应于第二个镜像管理节点,因此节点b即为目标节点。

在步骤s1300中,向目标节点发送第一处理指令,其中,第一处理指令用于控制目标节点将镜像标识对应的镜像数据发送至存储后端以形成存储数据,并将镜像数据存储至本地以形成缓存数据。

本实施例中,第一指令用户控制目标节点处理镜像上传请求。

本实施例中,目标节点在处理镜像上传请求时,一方面,目标节点接收用户终端发送的镜像数据并转发至存储后端已形成存储数据。另一方面,目标节点将镜像数据同时存储在本地,以形成镜像的缓存数据。上述存储数据具有一定的稳定性,例如为持久化存储。上述缓存数据具有临时性,例如存在被其他数据覆盖的可能。

本实施例中的镜像管理方法,根据镜像标识和预设的哈希算法从至少一个镜像管理节点中选取目标节点,通过目标节点处理镜像上传请求,除了将镜像数据发送至存储后端外还进行本地存储,一方面能够使同一镜像数据缓存在同一镜像管理节点,避免存储空间浪费并保证镜像缓存命中,另一方面由于在镜像上传时已形成本地缓存,首次下载镜像时无需与存储后端通信,使得下载速度得到了提升。

在一个例子中,上述镜像管理方法还包括以下步骤s1400-s1600。

在步骤s1400中,获取镜像下载请求,其中,镜像下载请求包括镜像标识。

该例子中,镜像管理客户端接收针对目标镜像的镜像下载请求。该镜像下载请求例如由计算管理组件发送。计算管理组件下载目标镜像后,可据此创建虚拟机等。

该例子中,镜像下载请求包括的镜像标识与上文描述的镜像上传请求包括的镜像标识为同一镜像标识。

在步骤s1500中,根据哈希算法,从至少一个镜像管理节点中选出目标节点。

该例子中,镜像管理客户端从至少一个镜像管理节点中选出唯一的目标节点,通过该目标节点处理下载请求。

该例子中,下载过程中的哈希算法与上传过程中的哈希算法相同,因此对于同一镜像标识,上传过程和下载过程中选取的目标节点也相同。也就是说,本实施例中由同一节点处理针对同一镜像的上传请求和下载请求。

在步骤s1600中,向目标节点发送第二处理指令,其中,第二处理指令用于控制目标节点将自身存储的镜像标识对应的缓存数据发送至目标设备。

该例子中,第二处理指令用于控制目标节点处理镜像下载请求。

该例子中,由于由同一节点处理针对目标镜像的上传请求和下载请求,因此在下载过程中,目标节点已在本地存储了目标镜像的镜像缓存。在处理镜像下载请求时,目标节点可根据镜像标识查找本地的镜像缓存,并将该镜像缓存直接发送至目标设备,例如请求下载镜像的设备。

在上述例子中,在镜像下载阶段根据与镜像上传阶段采用相同的哈希算法选取目标节点,能够保证同一节点处理针对目标镜像的上传请求和下载请求,使得处理下载请求的节点本地存储有目标镜像的镜像缓存(即保证缓存命中),无需与存储后端通信便能完成下载。

图5是根据本公开实施例的镜像上传过程的示意图。如图5所示,镜像管理组件包括了节点a、节点b、节点c三个节点。首先,用户终端向镜像管理客户端发送了针对目标镜像的上传请求。其次,镜像管理客户端根据目标镜像标识和预设的哈希算法从三个镜像管理节点中选取目标节点,例如选取节点b作为目标节点。之后,镜像管理客户端向节点b发送相关指令,控制节点b处理上传请求。节点b一方面从用户终端接收镜像数据并将其发送至存储后端完成存储,另一方面还将镜像数据存储在本地以形成镜像缓存。

图6是根据本公开实施例的镜像下载过程的示意图。如图6所示,计算管理组件向镜像管理客户端发送了针对目标镜像(与图5中的目标镜像为同一镜像)的下载请求。镜像客户端根据与上传阶段相同的目标镜像标识和哈希算法,同样选取了节点b为目标节点。由于此时节点b中存储有目标镜像的镜像缓存,因此节点b将该镜像缓存直接发送至计算机管理组件,完成镜像下载。

<装置实施例>

本实施例提供一种镜像管理装置,包括第一获取模块、第一选取模块和第一发送模块。

第一获取模块,用于获取第一设备发送的镜像上传请求,镜像上传请求包括镜像标识。

第一选取模块,用于根据预设的哈希算法,从至少一个镜像管理节点中选取与镜像标识对应的目标节点。

第一发送模块,用于向目标节点发送第一处理指令,其中,第一处理指令用于控制目标节点将镜像标识对应的镜像数据发送至存储后端以形成存储数据,并将镜像数据存储至本地以形成缓存数据。

可选地,镜像管理装置还包括第二获取模块、第二选取模块和第二发送模块。

第二获取模块,用于获取第二设备发送的镜像下载请求,镜像下载请求包括镜像标识。

第二选取模块,用于根据预设哈希算法,从至少一个镜像管理节点中选出目标节点。

第二发送模块,用于向目标节点发送第二处理指令,其中,第二处理指令用于控制目标节点将自身存储的镜像标识对应的缓存数据发送至目标设备。

可选地,第一选取模块还用于:基于哈希算法,获取镜像标识对应的哈希值;计算哈希值相对于镜像管理节点总数目的余数;根据余数确定目标节点。

可选地,哈希算法包括循环冗余校验算法、消息摘要算法、安全散列算法中的至少一种。

本实施例中镜像管理装置能够实现本公开方法实施例中描述的各个步骤,也能实现相同的技术效果,这里不再赘述。

<电子设备实施例>

本实施例提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现本公开方法实施例描述的镜像管理方法。

本实施例中的电子装置能够实现本公开方法实施例中描述的各个步骤,也能实现相同的技术效果,这里不再赘述。

<计算机可读存储介质>

本实施例提供一种计算机可读存储介质,计算机可读存储介质存储有可执行指令,可执行指令在被处理器调用和执行时,可执行指令促使处理器实现本公开方法实施例描述的镜像管理方法。

本实施例中的计算机可读存储介质能够实现本公开方法实施例中描述的各个步骤,也能实现相同的技术效果,这里不再赘述。

本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。

这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本公开的范围由所附权利要求来限定。

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