一种分发方法、设备和存储介质与流程

文档序号:27307241发布日期:2021-11-09 19:37阅读:88来源:国知局
一种分发方法、设备和存储介质与流程

1.本技术涉及通信,具体涉及一种分发方法、设备和存储介质。


背景技术:

2.虚拟机、容器或者裸机作为云计算技术中提供计算能力的载体,都需要基于镜像文件来启动和运行。在启动时,需要先下载镜像文件到本地,然后再运行。镜像文件包含操作系统程序以及应用程序,视应用场景不同大小各异。
3.虚拟机/裸机的镜像文件需要包含运行环境所有的应用,所以较大,通常在5gb以上,大的甚至达到10gb以上。容器镜像文件以单一应用为主,通常在300mb左右,为了完成某个场景功能,通常需要下载十几个甚至数十个容器镜像文件,一次文件下载大小同虚拟机/裸机也差不多。
4.当前主流云计算平台管理网络带宽通常为1gb,满带宽时下载镜像文件需要时间为分钟级别,随着部署规模的增加,镜像文件下载所耗费时间也在成倍的增长。这种级别的时间消耗在某些时间敏感的应用中是无法忍受的,比如在突发业务高峰需要短时间内部署大量的虚拟化实体以提供足够的计算能力时,一般会要求将镜像文件的下载时间控制在秒级。
5.常用的提升镜像文件下载速度的方式存在下述三种:方式一:缓存,即提前下载好,缓存在本地。需要在主机节点本地长期占用一定的存储空间,当镜像变化时,无法提前缓存。方式二:使用点对点(p2p)技术提升下载速度。p2p技术一般应用在开放的internet上,在相对来说较封闭的云计算平台上应用有一定的局限性,比如p2p技术需要tracker服务器以跟踪文件所在节点,造成了单点性能瓶颈和以及增加了等待时延。方式三:快照,基于某些分布式存储的快照技术直接创建,需要额外的分布式存储,从而占用了设备的存储空间,且快照的写时复制(copyonwrite,cow)技术对性能有一定的影响。


技术实现要素:

6.本技术实施例提供一种分发方法、设备和存储介质,提升了镜像文件的分发速度,以及有效提升了镜像文件的分发效率。
7.本技术实施例提供一种分发方法,应用于镜像控制器,包括:
8.将待分发镜像文件分发到对应的分发主机;
9.向所述分发主机发送推送信息,所述推送信息用于触发分发主机将所述待分发镜像文件分发至其它分发主机以及本分区的所有待推送主机。
10.本技术实施例提供一种分发方法,应用于分发主机,包括:
11.接收镜像控制器发送的待分发镜像文件以及推送信息;
12.按照所述推送信息将所述待分发镜像文件推送至其它分发主机和本分区的所有待推送主机。
13.本技术实施例提供一种分发装置,应用于镜像控制器,包括:
14.分发器,配置为将待分发镜像文件分发到对应的分发主机;
15.发送器,配置为向所述分发主机发送推送信息,所述推送信息用于触发分发主机将所述待分发镜像文件分发至其它分发主机和本分区的所有待推送主机。
16.本技术实施例提供一种分发装置,应用于分发主机,包括:
17.第一接收器,配置为接收镜像控制器发送待分发镜像文件以及推送信息;
18.第一推送器,配置为按照所述推送信息将所述待分发镜像文件推送至其它分发主机和本分区的所有待推送主机。
19.本技术实施例提供一种设备,包括:通信模块,存储器,以及一个或多个处理器;
20.通信模块,配置为在镜像控制器和分发主机之间进行通信交互;
21.所述存储器,配置为存储一个或多个程序;
22.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例所述的方法。
23.本技术实施例提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的方法。
24.本技术实施例通过先将待分发镜像文件分发至对应的分发主机,并向分发主机发送推送信息,以使分发主机自发式地将待分发镜像文件分发至其它分发主机以及本分区的所有待推送主机,缩短了推送的等待时间,提升了待分发镜像文件的分发速度,以及有效提升了待分发镜像文件的分发效率。
附图说明
25.图1是本技术实施例提供的一种分发方法的流程图;
26.图2是本技术实施例提供的另一种分发方法的流程图;
27.图3是本技术实施例提供的一种分发主机采用一致性hash算法的示意图;
28.图4是本技术实施例提供的一种虚拟机或裸机场景下分发过程的流程图;
29.图5是本技术实施例提供的一种容器场景下分发过程的流程图;
30.图6是本技术实施例提供的一种分发装置的结构框图;
31.图7是本技术实施例提供的另一种分发装置的结构框图;
32.图8是本技术实施例提供的一种设备的结构示意图。
具体实施方式
33.下文中将结合附图对本技术的实施例进行说明。
34.图1是本技术实施例提供的一种分发方法的流程图。本实施例应用于镜像控制器。如图1所示,本实施例包括:s110-s120。
35.s110、将待分发镜像文件分发到对应的分发主机。
36.在实施例中,镜像文件指的是包含操作系统程序以及应用程序的文件。在实施例中,待分发镜像文件指的是待下载的镜像文件。也就是说,需要从镜像仓库中下载的镜像文件。其中,镜像仓库是一种用于提供镜像文件存储和下载的服务器。在一实施例中,镜像仓库和镜像控制器可以为同一个服务器,也可以为不同的服务器,对此并不进行限定,可根据实际应用场景进行调整。
37.在实施例中,在对待分发镜像文件进行分发之前,镜像控制器可以接收待分发镜像文件上传,然后采用本实施例中的分发策略,对接收到的待分发镜像文件进行分发。
38.在一实施例中,可按照待分发镜像文件的应用场景或者占用存储空间,对待分发镜像文件进行分发。在实施例中,应用场景包括下述之一:虚拟机或裸机场景;容器场景。在实施例中,待分发镜像文件的应用场景与占用存储空间是相对应的,即在虚拟机或裸机场景下的待分发镜像文件,对应的占用存储空间一般在5g以上,并且为单一镜像,即镜像文件数为一个;在容器场景下的待分发镜像文件,对应的占用存储空间一般在300兆(m)左右,并且为多镜像,即镜像文件数为多个。
39.在一实施例中,在待分发镜像文件为单一镜像,且镜像大小在5g以上的情况下,适用于虚拟机或裸机场景。为了便于对待分发镜像文件的分发,可在待分发镜像文件的占用存储空间超过预设阈值的情况下,将待分发镜像文件分片,得到多个待分发镜像子文件,并从主机全集列表中选取与待分发镜像子文件数量相等的分发主机,将所有待分发镜像子文件推送至对应的分发主机。
40.在一实施例中,在待分发镜像文件为多镜像,且镜像大小在300m左右的情况下,适用于容器场景。在该容器场景下,镜像控制器可从主机全集列表中选取与待分发镜像文件数量相等的分发主机,将所有待分发镜像文件推送至对应的分发主机。
41.s120、向分发主机发送推送信息,推送信息用于触发分发主机将待分发镜像文件分发至其它分发主机和本分区的所有待推送主机。
42.在实施例中,在镜像控制器将待分发镜像文件分发至每个分发主机之后,镜像控制器向从主机全集列表中选出的每个分发主机发送推送信息,以使分发主机根据推送信息从镜像仓库中下载与本分发主机编号对应的镜像文件,并将下载的镜像文件分发至其它分发主机和本分区的所有待推送主机,从而实现了分级分片分发,缩短了二级分发的启动时间,进而提升了待分发镜像文件的分发速度,以及有效提升了待分发镜像文件的分发效率。
43.在一实施例中,在应用场景为虚拟机或裸机场景的情况下,将待分发镜像文件分发到对应的分发主机,包括:对待分发镜像文件分片,得到至少两个待分发镜像子文件;从待推送主机列表中选取与待分发镜像子文件数量相同的分发主机;将待分发镜像子文件分发至对应的分发主机。
44.在实施例中,在应用场景为虚拟机或逻辑场景的情况下,待分发镜像文件所占用存储空间较大,且镜像文件数较少,可对待分发镜像文件进行分片,并采用多个分发主机进行文件分发,实现了负载均衡,以及提高镜像文件的分发效率。在实施例中,可以按照一定的选取策略对待分发镜像文件分片,得到至少两个待分发镜像子文件。示例性地,假设待分发镜像文件为6g,可按照每个待分发镜像子文件所占用内存对待分发镜像文件进行分片,比如,将待分发镜像文件分为15片,即每片对应的待分发镜像子文件所占用存储空间为400m。在得到待分发镜像子文件之后,即可确定待分发镜像子文件的数量,此时,可按照一定的选取策略,从待推送主机列表中选取与待分发镜像子文件数量相等的主机,作为分发主机。其中,待推送主机列表中包含了可用于对镜像文件进行分发的所有主机。然后,将待分发镜像子文件分发至对应的分发主机,即每个待分发镜像子文件对应唯一的一个分发主机,从而实现了对待分发镜像文件的自发式分发,并且不存在等待时间,提高了分发效率。
45.示例性地,一定的选取策略,可以为以一定的间隔顺序,从待推送主机列表中选取
分发主机。示例性地,假设待推送主机列表中包含30个主机,则可间隔一个主机,选取一个主机作为分发主机。
46.在一实施例中,在将待分发镜像子文件分发至对应的分发主机之前,还包括:为每个待分发镜像子文件分配唯一的待分发镜像子文件编号;为每个分发主机分配一个与待分发镜像子文件编号存在映射关系的分发主机编号。
47.在实施例中,在将待分发镜像文件进行分片之后,得到待分发镜像子文件。可对待分发镜像子文件分配唯一的单调递增的分片编号,作为待分发镜像子文件的唯一编号。在实施例中,为了实现分发主机与待分发镜像子文件之间的一一对应关系,可对从待推送主机列表中选取的,并作为分发主机的主机,分配一个唯一的单调递增的编号,以作为分发主机编号。在实施例中,分发主机编号和待分发镜像子文件编号之间存在映射关系,比如,映射关系可以为分发主机编号和待分发镜像子文件编号相同,也可以分发主机编号和待分发镜像子文件编号之间存在一定的比例关系,对此并不进行限定。在实施例中,以分发主机编号和待分发镜像子文件编号相同为例,对分发主机进行编号分配的过程进行说明。
48.在实施例中,在将待分发镜像子文件分发至对应的分发主机之前,还包括:计算每个待分发镜像子文件的校验和,以及生成待分发镜像子文件对应的镜像元数据文件,并以json格式保存镜像元数据文件。在实施例中,计算每个待分发镜像子文件的校验和,是为了接收方检验所接收文件的完整性。在镜像元数据文件中保存校验和,以及待分发镜像子文件的编号等信息。
49.在一实施例中,将待分发镜像子文件分配至对应的分发主机,包括:获取每个待分发镜像子文件的编号以及每个分发主机的编号;按照分发主机的编号和待分发镜像子文件的编号之间的映射关系,将待分发镜像子文件分配至对应的分发主机,其中,待分发镜像子文件与分发主机一一对应。
50.在实施例中,镜像控制器根据分发主机编号和待分发镜像子文件编号之间的映射关系,将待分发镜像子文件分发至对应的分发主机上。在一实施例中,待分发主机编号和分发主机编号相同,则将待分发镜像子文件分配至于待分发镜像子文件编号相同的分发主机编号的分发主机上。在一实施例中,待分发主机编号和分发主机编号之间存在一定的比例关系,等等,对此并不进行限定。
51.在一实施例中,在应用场景为虚拟机或裸机场景的情况下,推送信息包括:镜像元数据文件;分发主机编号;主机全集列表。在实施例中,镜像元数据文件指的是分片的待分发镜像子文件对应的元数据文件;分发主机编号指的是分发主机的序号,与待分发镜像子文件编号存在对应关系;主机全集列表指的是镜像控制器从待推送主机列表中选取的,并作为分发主机的所有主机的列表。主机全集列表可以为待推送主机列表的子集,即主机全集列表中的所有分发主机均包含在待推送主机列表中。
52.在一实施例中,在应用场景为容器场景的情况下,将待分发镜像文件分发到对应的分发主机,包括:从待推送主机列表中选取与待分发镜像文件数量相同的分发主机;将待分发镜像文件分发至对应的分发主机。
53.在实施例中,在应用场景为容器场景的情况下,待分发镜像文件所占用内存大小较小,且镜像文件数较多,可直接按照待分发镜像文件数从待推送主机列表中选取分发主机。在实施例中,镜像控制器确定待分发镜像文件数量,并根据待分发镜像文件数量,从待
推送主机列表中选取与待分发镜像文件数量相同的分发主机,以将待分发镜像文件分发至对应的分发主机上。在实施例中,选取与待分发镜像文件数量相同的分发主机的一定选取策略,与,选取与待分发镜像子文件数量相同的分发主机的一定选取策略是相同的。一定选取策略可参见上述实施例中的描述,在此不再赘述。
54.在一实施例中,在将所述待分发镜像文件分发至对应的分发主机之前,还包括:为每个待分发镜像文件分配一个待分发镜像文件编号;为每个分发主机分配一个与待分发镜像文件编号存在映射关系的分发主机编号。
55.在实施例中,为了便于对待分发镜像文件分配对应的分发主机,镜像控制器可为每个待分发镜像文件分配一个待分发镜像文件编号。同时,镜像控制器为每个分发主机分配一个与待分发镜像文件编号存在映射关系的分发主机编号,以便于镜像控制器可根据分发主机编号和待分发镜像文件编号之间的对应关系,对待分发镜像文件进行分发。在实施例中,可按照待分发镜像文件编号,生成对应的镜像文件列表。在实施例中,将所有待分发镜像文件编号对应的待分发镜像文件组成一个镜像文件列表,即镜像文件列表中包含所有待分发镜像文件。
56.在一实施例中,在待分发镜像文件的应用场景为容器场景的情况下,推送信息包括:待分发镜像文件列表;分发主机编号;主机全集列表。在实施例中,待分发镜像文件列表指的是包含所有待分发镜像文件的列表。对分发主机编号和主机全集列表的解释,见上述实施例中的描述,在此不再赘述。
57.图2是本技术实施例提供的另一种分发方法的流程图。本实施例应用于分发主机。如图2所示,本实施例包括:s210-s220。
58.s210、接收镜像控制器发送的待分发镜像文件以及推送信息。
59.在实施例中,分发主机接收到的推送信息,与接收到的待分发镜像文件的参数信息有关。在一实施例中,在待分发镜像文件的参数信息中的应用场景为虚拟机或裸机场景的情况下,推送信息包括:镜像元数据文件;分发主机编号;主机全集列表。在一实施例中,在待分发镜像文件的参数信息中的应用场景为容器场景的情况下,推送信息包括:待分发镜像文件列表;分发主机编号;主机全集列表。在实施例中,对推送信息中各个参数的解释,见上述实施例中的描述,在此不再赘述。
60.s220、按照推送信息将待分发镜像文件推送至其它分发主机和本分区的所有待推送主机。
61.在实施例中,在分发主机接收到推送信息之后,可按照推送信息中所包含的具体信息,从镜像仓库中下载对应的待分发镜像文件(或待分发镜像子文件),然后将待分发镜像文件(或待分发镜像子文件)推送至其它所有分发主机以及与本分发主机处于同一分区的所有待推送主机,实现了待镜像文件的二级分发,有效提升了待镜像文件的分发效率。
62.图3是本技术实施例提供的一种分发主机采用一致性hash算法的示意图。如图3所示,假设有n个分发主机,并且分级主机编号分别为0、1、2
……
n-2、n-1,并且,每个分发主机对应3个待推送主机,即每个分发主机和3个待推送主机处于一个hash环分区上。在分发主机接收到镜像控制器发送的待分发镜像文件(或待分发镜像子文件)之后,分发主机将待分发镜像文件(或待分发镜像子文件)推送至与本分发主机处于一致性hash环分区上的待推送主机。比如,本分发主机编号为1,则在本分发主机接收到待分发镜像文件(或待分发镜像
子文件)之后,分发主机1将待分发镜像文件(或待分发镜像子文件)推送至分发主机1负责的分区上的所有待推送主机,以及其它分发主机(比如,分发主机0,2,3,4
……
n-1)。在图3中的推送分片0指的是,向分发主机0推送待分发镜像文件0;推送分片1指的是,向分发主机1推送待分发镜像文件1;依次类推。在实施例中,分发主机可向镜像控制器发送待分发镜像文件(或待分发镜像子文件)的下载请求,以使分发主机从镜像控制器中下载对应的待分发镜像文件(或待分发镜像子文件)。
63.在一实施例中,在按照所述推送信息所述将所述待分发镜像文件推送至其它分发主机之前,还包括:从镜像仓库下载与本分发主机编号对应的待分发镜像文件。在实施例中,推送信息中包含待分发镜像文件的相关信息,可根据待分发镜像文件的相关信息,从镜像仓库中下载与本分发主机编号相同的待分发镜像文件,以推送至其它分发主机。
64.在一实施例中,在按照推送信息将待分发镜像文件推送至其它分发主机之前,还包括:获取预先生成的主机全集列表,并按照主机全集列表中的主机参数计算hash值;根据hash值获取与本分发主机处于一致性hash环分区上的主机列表。
65.在实施例中,主机参数可以为主机名,也可以为主机ip。在实施例中,分发主机获取主机全集列表,并按照主机名或主机ip计算hash值,计算后的hash值落在一致性hash环的不同分区上,并获取本分发主机负责的分区上的主机列表。其中,主机列表指的是与本分发主机处于同一个hash环的分区上的其它所有待推送主机的列表。
66.在一实施例中,按照推送信息将待分发镜像文件推送至其它分发主机和本分区的所有待推送主机,包括:按照推送信息,将待分发镜像文件推送至其它分发主机,以及与本分发主机处于一致性hash环分区上的主机列表中的所有待推送主机。在实施例中,本分发主机可根据自身的主机编号查找查找其它所有分发主机的编号,以及与自身编号处于一致性hash环中的同一个分区,并将待分发镜像文件推送至与本分发主机处于一致性hash环分区上的主机列表中的所有待推送主机,以及其它分发主机,再由其它分发主机将待分发镜像文件推送至与自身主机编号处于同一分区的待推送主机,从而完成对待分发镜像文件对所有分发主机和所有待推送主机的推送,实现了对待分发镜像文件的自发式二级分发,而无需等待,缩短了分发时间,有效提升了分发效率。
67.在一实施例中,应用于分发主机的分发方法,还包括:接收其它分发主机推送的待分发镜像文件;将其它分发主机推送的待分发镜像文件推送至与本分发主机处于一致性hash环分区上的所有待推送主机。
68.在实施例中,在本分发主机将从镜像仓库中下载的待分发镜像文件(或待分发镜像子文件)推送至其它分发主机之后,还可以接收其它分发主机推送的待分发镜像文件(待分发镜像子文件),将该待分发镜像文件(待分发镜像子文件)推送至与本分发主机处于一致性hash环分区上的待推送主机。如图3所示,假设本分发主机编号为1,在本分发主机编号1将自身从镜像仓库下载的待分发镜像文件(或待分发镜像子文件)推送至其它分发主机(比如,分发主机编号为0,2,3
……
n-1)以及与本分发主机处于一致性hash环分区上的待推送主机(分发主机1负责的分区上的主机,即分发主机1和分发主机2之间的所有主机)之后,本分发主机编号1,还可以接收其它分发主机(比如,分发主机编号为0,2,3
……
n-1)推送的待分发镜像文件(或待分发镜像子文件),并将该待分发镜像文件(或待分发镜像子文件)推送至本分发主机编号1负责的分区上的待推送主机(即分发主机1和分发主机2之间的所有
主机),从而实现了对所有待分发镜像文件(或待分发镜像子文件)的推送,即完成了整个镜像文件对所有主机的分发。
69.在实施例中,采用一致性hash环的分区方式,对待分发镜像文件(或待分发镜像子文件)进行分发,实现了对待推送分级的精确分区,不产生冲突。
70.在一实施例中,在按照推送信息将待分发镜像文件推送至其它分发主机之后,还包括:向镜像控制器上报待分发镜像文件的下载进度和推送进度。
71.在实施例中,分发主机可向镜像控制器上报待分发镜像文件的下载进度和推送进度,以使镜像控制器实时监控镜像文件的分发进度。
72.在一实现方式中,以待分发镜像文件为单一镜像,且文件大小在5g以上,并且适用于虚拟机或裸机场景为例,对待分发镜像文件的分发过程进行说明。图4是本技术实施例提供的一种虚拟机或裸机场景下分发过程的流程图。如图4所示,本实施例包括:s310-s370。
73.s310、计算每个待分发镜像子文件的校验和。
74.s320、向分发主机发送推送信息。
75.s330、从镜像仓库下载待分发镜像子文件。
76.s340、向镜像控制器上报下载进度。
77.s350、向其它分发主机推送待分发镜像子文件。
78.s360、向待推送主机推送待分发镜像子文件。s370、向镜像控制器上报推送进度。
79.在实际通信过程中,s350和s360之间可以同时进行;也可以先执行s350再执行s360,即先向其它分发主机推送待分发镜像子文件,再向待推送主机推送待分发镜像子文件;也可以先执行s360,再执行s350,即先向处于同一分区的待推送主机推送待分发镜像子文件,再向其它分发主机推送待分发镜像子文件,对此并不进行限定。
80.在实施例中,如图4所示的场景下,对待分发镜像文件的分发过程包括如下步骤:
81.步骤一,镜像控制器接收待分发镜像文件上传,当待分发镜像文件超过一定大小时,将待分发镜像文件分片(shard),得到待分发镜像子文件。然后,为每个待分发镜像子文件分配镜像文件内唯一的单调递增的分片编号(即待分发镜像子文件编号),并计算每分片(即每个待分发镜像子文件)的校验和。同时,生成待分发镜像子文件对应的镜像元数据文件,以json格式保存。
82.步骤二,镜像控制器分发待分发镜像子文件时,按照一定的策略从待推送主机列表中选取和待分发镜像子文件数相同的主机数作为分发主机(delivery hosts)。为每个分发主机分配一个镜像文件内唯一的单调递增的编号,此编号和待分发镜像子文件编号对应。向每个已选取主机推送镜像元数据文件、分配的主机编号和主机全集列表。
83.步骤三,分发主机接收到镜像控制器的推送信息,去镜像仓库下载分片编号(即待分发镜像子文件编号)与本分发主机编号相同的镜像文件。
84.步骤四,分发主机下载完待分发镜像子文件后,使用分发主机编号全集构建一致性hash环。每个下载好待分发镜像子文件的分发主机使用本主机编号去对应一致性hash环上的分区。
85.步骤五,取主机全集列表,并按主机名或者主机ip计算hash值,计算后的hash值落在一致性hash环的不同分区上,取本分发主机负责的分区上的主机列表。
86.一致性hash算法能够保证在分发主机数量确定的情况下,待推送主机落在固定的
分区上,这样不会出现多个分发主机推送相同待分发镜像子文件到相同主机上,避免了冲突。
87.在实施例中,采用一致性hash算法计算主机落在hash环某个分区上的步骤:
88.a)取分发主机数count。
89.b)采用hash算法计算主机hash值,输入为主机名或者主机ip。
90.hash_value=hash(hostname)
91.c)采用余数算法,计算partition。
92.partition=hash_value%count
93.步骤六,分发主机将从镜像仓库下载的待分发镜像子文件推送给所有其他分发主机以及本分发主机负责的一致性hash环分区上的待推送主机。
94.步骤七,分发主机接收到其他分发主机推送的待分发镜像子文件后,将待分发镜像子文件推送给本分发主机负责的分区上的待推送主机。
95.步骤八,接收到待推送镜像文件对应全部的待分发镜像子文件后,组装成一个完整的镜像文件。
96.步骤九,分发主机向镜像控制器器上报待分发镜像子文件的下载进度和推送进度。
97.步骤十,所有待分发镜像子文件推送完毕,完成整个镜像文件对所有主机的分发。
98.在一实现方式中,以待分发镜像文件为多镜像,且文件大小在300m左右,并且适用于容器场景为例,对待分发镜像文件的分发过程进行说明。图5是本技术实施例提供的一种容器场景下分发过程的流程图。如图5所示,本实施例包括:s410-s460。
99.s410、向分发主机发送推送信息。
100.s420、从镜像仓库下载待分发镜像文件。
101.s430、向镜像控制器上报下载进度。
102.s440、向其它分发主机推送待分发镜像文件。
103.s450、向待推送主机推送待分发镜像文件。
104.s460、向镜像控制器上报推送进度。
105.在实际通信过程中,s440和s450之间可以同时进行;也可以先执行s440再执行s450,即先向其它分发主机推送待分发镜像文件,再向待推送主机推送待分发镜像文件;也可以先执行s450,再执行s440,即先向处于同一分区的待推送主机推送待分发镜像文件,再向其它分发主机推送待分发镜像文件,对此并不进行限定。
106.在实施例中,如图5所示的场景下,对待分发镜像文件的分发过程包括如下步骤:
107.步骤一,镜像控制器一次性对待分发镜像文件分配镜像编号,即得到待分发镜像文件编号,待分发镜像文件编号在本次分发流程内唯一且单调递增。根据待分发镜像文件编号生成待分发镜像文件列表,以json格式保存。
108.步骤二,镜像控制器分发待分发镜像文件时,按照一定的策略从待推送主机列表中选取和待分发镜像文件数相同的主机数作为分发主机(delivery hosts)。为每个分发主机分配一个本次分发流程内唯一的单调递增的编号,此编号和待分发镜像文件编号对应。向每个已选取主机推送待分发镜像文件列表、分配的分发主机编号和主机全集列表。
109.步骤三,分发主机接收到镜像控制器的推送信息,去镜像仓库下载镜像编号与本
分发主机编号相同的待分发镜像文件。
110.步骤四,下载完待分发镜像文件后,使用分发主机编号全集构建一致性hash环。每个下载好待分发镜像文件的分发主机用本分发主机编号对应一致性hash环上的分区。
111.步骤五,取主机全集列表,并按主机名或者主机ip计算hash值,计算后的hash值落在一致性hash环的不同分区上,取本主机负责的分区上的主机列表。
112.步骤六,分发主机将从镜像仓库下载的待分发镜像文件推送给所有其他分发主机以及本分发主机负责的一致性hash环分区上的待推送主机。
113.步骤七,分发主机接收到其他分发主机推送的待分发镜像文件后,将该待分发镜像文件推送给本分发主机负责的分区上的待推送主机。
114.步骤八,分发主机向镜像控制器上报待分发镜像文件的下载进度和推送进度。
115.步骤九,所有待分发镜像文件推送完毕,完成整个镜像文件列表对所有主机的分发。
116.图6是本技术实施例提供的一种分发装置的结构框图。本实施例应用于镜像控制器。如图6所示,本实施例包括:分发器510和发送器520。
117.分发器510,配置为将待分发镜像文件分发到对应的分发主机;
118.发送器520,配置为向分发主机发送推送信息,推送信息用于触发分发主机将待分发镜像文件分发至其它分发主机和本分区的所有待推送主机。
119.本实施例提供的分发装置设置为实现图1所示实施例的分发方法,本实施例提供的分发装置实现原理和技术效果类似,此处不再赘述。
120.在一实施例中,在应用场景为虚拟机或裸机场景的情况下,分发器,包括:
121.分片单元,配置为对待分发镜像文件分片,得到至少两个待分发镜像子文件;
122.选取单元,配置为从待推送主机列表中选取与待分发镜像子文件数量相同的分发主机;
123.分发单元,配置为将待分发镜像子文件分发至对应的分发主机。
124.在一实施例中,分发器,还包括:第一分配单元,配置为在将待分发镜像子文件分发至对应的分发主机之前,为每个待分发镜像子文件分配唯一的待分发镜像子文件编号;
125.第一分配单元,配置为为每个分发主机分配一个与待分发镜像子文件编号存在映射关系的分发主机编号。
126.在一实施例中,分发单元,包括:
127.获取子单元,配置为获取每个所述待分发镜像子文件的编号以及每个所述分发主机的编号;
128.第二分配单元,配置为根据分发主机的编号和待分发镜像子文件的编号之间的映射关系,将待分发镜像子文件分配对应的分发主机,其中,待分发镜像子文件与分发主机一一对应。
129.在一实施例中,在应用场景为虚拟机或裸机场景的情况下,推送信息包括:镜像元数据文件;分发主机编号;主机全集列表。
130.在一实施例中,在应用场景为容器场景的情况下,分发器,包括:
131.选取单元,配置为从待推送主机列表中选取与待分发镜像文件数量相同的分发主机;
132.分发单元,配置为将待分发镜像文件分发至对应的分发主机。
133.在一实施例中,分发器,还包括:第一分配单元,配置为在将所述待分发镜像文件分发至对应的分发主机之前,为每个待分发镜像文件分配一个待分发镜像文件编号;
134.第三分配单元,配置为为每个分发主机分配一个与待分发镜像文件存在映射关系的分发主机编号。
135.在一实施例中,在待分发镜像文件的应用场景为容器场景的情况下,推送信息包括:待分发镜像文件列表;分发主机编号;主机全集列表。
136.图7是本技术实施例提供的另一种分发装置的结构框图。本实施例应用于分发主机。如图7所示,本实施例包括:第一接收器610和第一推送器620。
137.第一接收器610,配置为接收镜像控制器发送的待分发镜像文件以及推送信息;
138.第一推送器620,配置为按照推送信息将待分发镜像文件推送至其它分发主机本分区的所有待推送主机。
139.本实施例提供的分发装置设置为实现图2所示实施例的分发方法,本实施例提供的分发装置实现原理和技术效果类似,此处不再赘述。
140.在一实施例中,应用于分发主机的分发装置,还包括:下载器,配置为在按照所述推送信息所述将所述待分发镜像文件推送至其它分发主机之前,从镜像仓库下载与本分发主机编号对应的待分发镜像文件。
141.在一实施例中,应用于分发主机的分发装置,还包括:第一获取模块,配置为在将待分发镜像文件推送至其它分发主机以及与本分发主机处于一致性哈希hash环分区上的待推送主机之前,获取预先生成的主机全集列表,并按照主机全集列表中的主机参数计算hash值;
142.第二获取模块,配置为根据hash值获取与本分发主机处于一致性hash环分区上的主机列表。
143.在一实施例中,第一推送器,配置为按照推送信息,将待分发镜像文件推送至其它分发主机,以及与本分发主机处于一致性hash环分区上的主机列表中的所有待推送主机。
144.在一实施例中,应用于分发主机的分发装置,还包括:第二接收器,配置为接收其它分发主机推送的待分发镜像文件;
145.第二推送器,配置为将其它分发主机推送的待分发镜像文件推送至与本分发主机处于一致性hash环分区上的所有待推送主机。
146.在一实施例中,应用于分发主机的分发装置,还包括:上报模块,配置为向镜像控制器上报待分发镜像文件的下载进度和推送进度。
147.图8是本技术实施例提供的一种设备的结构示意图。如图8所示,本技术提供的设备,包括:处理器710、存储器720和通信模块730。该设备中处理器710的数量可以是一个或者多个,图8中以一个处理器710为例。该设备中存储器720的数量可以是一个或者多个,图8中以一个存储器720为例。该设备的处理器710、存储器720和通信模块730可以通过总线或者其他方式连接,图8中以通过总线连接为例。在该实施例中,该设备为镜像控制器。
148.存储器720作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序以及模块,如本技术任意实施例的设备对应的程序指令/模块(例如,分发装置中的分发器510和发送器520)。存储器720可包括存储程序区和存储数据区,其中,存储程序区可存
储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器720可进一步包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
149.通信模块,配置为在镜像控制器和分发主机之间进行通信交互。
150.上述提供的设备可设置为执行上述任意实施例提供的分发方法,具备相应的功能和效果。
151.本技术实施例还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行应用于镜像控制器的一种分发方法,该方法包括:将待分发镜像文件分发到对应的分发主机;向分发主机发送推送信息,推送信息用于触发分发主机将待分发镜像文件分发至其它分发主机和本分区的所有待推送主机。
152.本技术实施例还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行应用于分发主机的一种分发方法,该方法包括:接收镜像控制器发送的待分发镜像文件以及推送信息;按照推送信息将待分发镜像文件推送至其它分发主机和本分区的所有待推送主机。
153.本领域内的技术人员应明白,术语用户设备涵盖任何适合类型的无线用户设备,例如移动电话、便携数据处理装置、便携网络浏览器或车载移动台。
154.一般来说,本技术的多种实施例可以在硬件或专用电路、软件、逻辑或其任何组合中实现。例如,一些方面可以被实现在硬件中,而其它方面可以被实现在可以被控制器、微处理器或其它计算装置执行的固件或软件中,尽管本技术不限于此。
155.本技术的实施例可以通过移动装置的数据处理器执行计算机程序指令来实现,例如在处理器实体中,或者通过硬件,或者通过软件和硬件的组合。计算机程序指令可以是汇编指令、指令集架构(instruction set architecture,isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码。
156.本技术附图中的任何逻辑流程的框图可以表示程序步骤,或者可以表示相互连接的逻辑电路、模块和功能,或者可以表示程序步骤与逻辑电路、模块和功能的组合。计算机程序可以存储在存储器上。存储器可以具有任何适合于本地技术环境的类型并且可以使用任何适合的数据存储技术实现,例如但不限于只读存储器(read-only memory,rom)、随机访问存储器(random access memory,ram)、光存储器装置和系统(数码多功能光碟(digital video disc,dvd)或光盘(compact disk,cd))等。计算机可读介质可以包括非瞬时性存储介质。数据处理器可以是任何适合于本地技术环境的类型,例如但不限于通用计算机、专用计算机、微处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、可编程逻辑器件(field-programmable gate array,fgpa)以及基于多核处理器架构的处理器。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1