1.一种基于IPFS的分批式镜像分发方法,其特征在于,包括:利用容器编排引擎获得容器调度结果,基于所述容器调度结果,获取待下载镜像的集群节点列表;
基于所述集群节点列表,计算各节点已拥有的待分发镜像的镜像层的缓存比例,将每个节点缓存比例与预设节点的阈值进行比较,选取缓存比例超出阈值的节点从镜像仓库中获取完整镜像;
将具有完整镜像的节点加入源节点列表中,以及将待下载镜像的节点加入到需求节点列表中,并根据所述源节点列表中的各节点构建初始的IPFS网络,并基于所述IPFS网络导出和共享镜像文件;
采用优化算法计算目标需求节点,并按照优化算法结果将所述目标需求节点分批次地输入至IPFS网络中进行镜像下载,并将下载后的镜像文件导入并启动容器;
将当前下载完成的需求节点从所述需求节点列表中移出,并添加到所述源节点列表中,继续进行下一批次需求节点的镜像下载,直至所述需求节点列表为空,完成全部需求节点的镜像下载。
2.根据权利要求1所述的基于IPFS的分批式镜像分发方法,其特征在于,所述计算各节点待分发镜像的镜像层的缓存比例,包括:获取待下载镜像的集群节点列表中各节点已缓存的镜像层信息,以及待分发镜像的镜像层信息,其中镜像层信息包括镜像层digest和镜像层size;
将所述待下载镜像的集群节点列表中各节点已缓存的镜像层digest和待分发镜像的镜像层digest进行比较,判断所述集群节点列表中各节点是否具有待分发镜像的镜像层缓存;
若部分节点具有待分发镜像的镜像层缓存,则根据所述镜像层size计算所述待分发镜像的镜像层缓存比例。
3.根据权利要求2所述的基于IPFS的分批式镜像分发方法,其特征在于,所述镜像层信息获取过程,包括:根据镜像名和版本号,从所述镜像仓库中获取对应的镜像manifest文件,并根据所述镜像manifest文件提取镜像层信息。
4.根据权利要求2所述的基于IPFS的分批式镜像分发方法,其特征在于,所述待分发镜像的镜像层缓存比例的表达式如下:;
其中, 表示节点i具有的缓存比例;N表示镜像层总数; 表示第j个镜像层的大小;
表示节点上是否已缓存第j个镜像层。
5.根据权利要求4所述的基于IPFS的分批式镜像分发方法,其特征在于,所述待分发镜像的镜像层缓存比例均未超过预设节点的阈值,则任意选取一个节点从所述镜像仓库中获取完整镜像。
6.根据权利要求1所述的基于IPFS的分批式镜像分发方法,其特征在于,基于所述IPFS网络导出和共享镜像文件,包括:所述源节点列表中各节点启动IPFS daemon进程;
所述源节点列表中各节点的容器运行时将所述镜像文件导出,并通过add指令将所述镜像文件共享到IPFS网络。
7.根据权利要求1所述的基于IPFS的分批式镜像分发方法,其特征在于,所述需求节点加入到IPFS网络中进行镜像下载,包括:采用带宽检测工具获取所述源节点列表中各节点的上传带宽,以及所述需求节点列表中各节点的下载带宽;
利用优化算法计算出当前批次传输的目标需求节点;
所述目标需求节点将所述源节点列表中各节点的IP地址和网络ID添加到IPFS网络配置中;
所述目标需求节点启动 IPFS daemon进程,并根据所述镜像文件的哈希值以及get指令下载所需镜像文件。
8.根据权利要求7所述的基于IPFS的分批式镜像分发方法,其特征在于,计算出当前批次传输的目标需求节点的表达式如下:其中,N表示需求节点的数量;M表示当前源节点的数量; 表示需求节点i的下载带宽;
表示源节点j的上传带宽;S表示节点所需镜像大小; 表示需求节点i的已有镜像层缓存比例; 表示需求节点是否在该批次进行下载的决策变量;表示平均下载时延的加权值;
表示未利用的源节点带宽的加权值。
9.一种基于IPFS的分批式镜像分发系统,其特征在于,包括:节点列表获取模块,用于利用容器编排引擎获得容器调度结果,基于所述容器调度结果,获取待下载镜像的集群节点列表;
节点信息收集模块,用于基于所述集群节点列表,计算各节点已拥有的待分发镜像的镜像层的缓存比例,将每个节点缓存比例与预设节点的阈值进行比较,选取缓存比例超出阈值的节点从镜像仓库中获取完整镜像;
策略执行模块,用于将具有完整镜像的节点加入源节点列表中,以及将待下载镜像的节点加入到需求节点列表中,并根据所述源节点列表中的各节点构建初始的IPFS网络,并基于所述IPFS网络导出和共享镜像文件;
分发协调模块,用于采用优化算法计算目标需求节点,并按照优化算法结果将所述目标需求节点分批次地输入至IPFS网络中进行镜像下载,并将下载后的镜像文件导入并启动容器;
列表更新模块,用于将当前下载完成的需求节点从所述需求节点列表中移出,并添加到所述源节点列表中,继续进行下一批次需求节点的镜像下载,直至所述需求节点列表为空,完成全部需求节点的镜像下载。
10.计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1 8任一项所述方法的步骤。
~