本发明专利技术通过分布式系统领域的方法,实现了一种基于延迟加载和P2P分发的容器部署加速方法。通过定义一种新的镜像存储格式存储于利用可扩展的分布式对象存储架构或分层的对象位置追踪架构的本地对象存储池,实现去除镜像间的文件冗余,在升级等场景下复用已有的数据,并在该格式之上实现延迟加载和P2P分发;并在基于所述镜像存储格式的基础上,设计基于所述镜像存储格式的由两个模块组成的服务端最终根据对象的名称从本地对象存储池中返回相应的数据。本发明专利技术提供的方法解决了镜像数据的延迟加载、镜像存储中的文件冗余和不可复用的问题,同时通过可扩展的分布式对象存储分发镜像中的文件,减小镜像仓库在大规模分发时的瓶颈。颈。颈。
【技术实现步骤摘要】
一种基于延迟加载和P2P分发的容器部署加速方法
[0001]本专利技术涉及网络
,尤其涉及一种基于延迟加载和P2P分发的容器部署加速方法。
技术介绍
[0002]传统容器部署方式存在冷启动慢、大规模分发慢、存储冗余大、数据复用度低的问题。冷启动指的是在镜像尚未存在的节点上部署容器,此时节点需要先从仓库拉取镜像,然后再启动容器。一项研究对常用的镜像进行了分析,表明镜像拉取过程平均占据容器冷启动时间的76%,而其中仅有6.4%的数据被真正使用到。当大量节点都需要从仓库拉取镜像时,镜像仓库就容易称为大规模部署的瓶颈。此外,由于镜像按层打包的格式,导致大量文件被冗余存储。一项研究分析了Docker Hub上的大量镜像,发现镜像中仅有3%的文件是独一无二的。而在当前的镜像格式下,镜像间的冗余文件不可被复用,在镜像版本升级时可能会重复下载已经存在的数据。
[0003]现有的容器部署加速方法可以分为三类:
[0004]第一类是基于分布式存储的镜像仓库,比如Slacker、Cider、CernVM等。这一类方法将镜像预先解包存储在一个分布式文件系统中,通过NFS等协议实现延迟加载,通过文件系统的特性实现去冗余。这一类方法的缺点是镜像仓库的规模是预先设定的,规模过大会产生浪费,规模过小易成为瓶颈。
[0005]第二类是通过缓存共享镜像,比如Wharf。它让多个节点共享一个镜像缓存,通过NFS等协议使用缓存中的镜像数据,实现延迟加载。这是一种折中的方案,缓存从镜像仓库中拉取和解包镜像的过程与原始的镜像分发模式一致。所以在冷启动加速和去冗余的效果上还是有限。
[0006]第三类是定义新的镜像存储格式,比如Stargz、DADI、D4C等。其中Stargz通过可寻址的压缩包格式实现延迟加载。DADI通过块设备ZFile格式在延迟加载的同时结合了树形P2P分发减小镜像仓库的瓶颈。D4C重组了镜像的层次顺序,使得数据可以按预先测得的优先级进行下载。这一类方案比较灵活,可能是出于设计优先级的问题,他们的方案没有同时兼顾前面提到的三个问题。
[0007]上述方法往往仅针对了其中一两个问题,且相互不兼容,无法进行简单组合。本方法也属于第三类,希望能同时解决冷启动慢、数据冗余且难以复用、镜像仓库瓶颈这三个问题。
技术实现思路
[0008]为此,本专利技术首先提出一种基于延迟加载和P2P分发的容器部署加速方法,通过定义一种新的镜像存储格式存储于利用可扩展的分布式对象存储架构或分层的对象位置追踪架构的本地对象存储池,实现去除镜像间的文件冗余,在升级等场景下复用已有的数据,并在该格式之上实现延迟加载和P2P分发;
[0009]并在基于所述镜像存储格式的基础上,设计本地端和远端结构;
[0010]所述本地端包括本地镜像管理单元和本地对象管理单元,所述远端包括远端镜像仓库和远端对象管理单元;
[0011]所述远端镜像仓库存储包含元数据文件的镜像层压缩包和镜像描述文件;所述远端对象管理单元包括远端对象存储服务端、远端对象存储客户端和对象位置管理单元;
[0012]所述本地对象管理单元包括本地对象存储客户端和本地对象存储服务端;
[0013]所述本地镜像管理单元通过守护容器进程,从所述镜像层压缩包和所述镜像描述文件中拉取数据,传输至快照管理程序,所述快照管理程序将镜像层元数据发送给虚拟文件系统,由所述虚拟文件系统读取本地对象存储池中数据并向所述本地对象存储客户端发送对象加载请求;
[0014]所述本地对象存储客户端接收对象加载请求,将对象写入所述本地对象存储池,并向对象位置管理单元进行汇报查询,所述远端对象存储服务端从所述本地对象存储客户端获取对象;
[0015]所述远端对象存储客户端向对象位置管理单元进行汇报查询,所述本地对象存储服务端从所述远端对象存储客户端获取对象,并从本地对象存储池读取对象。
[0016]所述新的镜像存储格式为:镜像中包含配置信息和层级信息,所述层级信息包含文件元数据和目录树信息,目录和符号链接的内容被编码在所述文件元数据中,使用所述文件元数据中文件内容的哈希值作为key从对象存储中找到文件内容。
[0017]所述可扩展的分布式对象存储架构具体为:通过分片设置的对象位置追踪服务tracker分别负责追踪对象的一个子集,通过设置对等的镜像仓库registry和节点host是对等的,让一个节点需要获取某对象时选择节点获取数据;
[0018]所述分层的对象位置追踪架构在可扩展的分布式对象存储架构基础上,将所述对象位置追踪服务tracker分为本地寻找对象追踪服务Local tracker和全局寻找对象追踪服务Global tracker,节点优先在本地寻找对象追踪服务Local tracker中寻找对象,在本地找不到相应的对象时,才去全局寻找对象追踪服务Global tracker寻找。
[0019]所述对象位置追踪服务tracker追踪对象的一个子集的具体方法为,当收到来自客户端的查询时,只返回对象位置的一个子集,使得客户端有足够的信息找到需要的对象,当收到来自客户端的汇报时,需要更新对象位置信息,同时与客户端维护一个心跳连接,当无法联系上一个客户端时,将该客户端从位置信息中屏蔽,对象位置追踪服务tracker还负责流量管理,防止大量节点同时去向小部分对象存储请求对象,选择让后面的客户端等待前面的客户端完成后,从更多的来源获取对象;使用etcd进行动态的配置管理,当一个对象位置追踪服务tracker的节点失效时,将该节点的负载迁移到其它节点上,集群中的节点会定期与etcd通信以获取最新的配置
[0020]所述本地寻找对象追踪服务Local tracker向所述全局寻找对象追踪服务Global tracker定期通信汇报对象位置信息,在某一客户端在本地寻找对象追踪服务Local tracker上无法找到某一个对象时,向所述全局寻找对象追踪服务Global tracker查询对象位置,同时所述本地寻找对象追踪服务Local tracker会记录这一客户端正在获取该对象,以避免本地的其它客户端同时去查询所述全局寻找对象追踪服务Global tracker。
[0021]所述客户端负责进行对象增删和汇报,当需要获取一个新的对象时,向对象位置
追踪服务tracker取得一个位置列表,然后根据一定的规则从目标位置获取对象,并且记录本次变动。在定期的心跳消息中,向对象位置追踪服务tracker更新变动;变动更新的频率和对象的副本数量负相关,当该对象副本数量比较少时,要求更快得更新对象位置。当该对象的副本数比较多时,可以延缓位置更新以节省通信数量。
[0022]所述虚拟文件系统使用FUSE实现,根据镜像层的元数据信息挂载出一个只读的文件系统,当进程请求打开一个文件时,所述虚拟文件系统根据文件哈希值从本地对象池中打开对应的文件,假如该文件在本地对象池中尚未存在,则需要先向对象加载模块请求该对象,使用FUSE passthro本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于延迟加载和P2P分发的容器部署加速方法,其特征在于:通过定义一种新的镜像存储格式存储于利用可扩展的分布式对象存储架构或分层的对象位置追踪架构的本地对象存储池,实现去除镜像间的文件冗余,在升级等场景下复用已有的数据,并在该格式之上实现延迟加载和P2P分发;并在基于所述镜像存储格式的基础上,设计本地端和远端结构;所述本地端包括本地镜像管理单元和本地对象管理单元,所述远端包括远端镜像仓库和远端对象管理单元;所述远端镜像仓库存储包含元数据文件的镜像层压缩包和镜像描述文件;所述远端对象管理单元包括远端对象存储服务端、远端对象存储客户端和对象位置管理单元;所述本地对象管理单元包括本地对象存储客户端和本地对象存储服务端;所述本地镜像管理单元通过守护容器进程,从所述镜像层压缩包和所述镜像描述文件中拉取数据,传输至快照管理程序,所述快照管理程序将镜像层元数据发送给虚拟文件系统,由所述虚拟文件系统读取本地对象存储池中数据并向所述本地对象存储客户端发送对象加载请求;所述本地对象存储客户端接收对象加载请求,将对象写入所述本地对象存储池,并向对象位置管理单元进行汇报查询,所述远端对象存储服务端从所述本地对象存储客户端获取对象;所述远端对象存储客户端向对象位置管理单元进行汇报查询,所述本地对象存储服务端从所述远端对象存储客户端获取对象,并从本地对象存储池读取对象。2.如权利要求1所述的一种基于延迟加载和P2P分发的容器部署加速方法,其特征在于:所述新的镜像存储格式为:镜像中包含配置信息和层级信息,所述层级信息包含文件元数据和目录树信息,目录和符号链接的内容被编码在所述文件元数据中,使用所述文件元数据中文件内容的哈希值作为key从对象存储中找到文件内容。3.如权利要求2所述的一种基于延迟加载和P2P分发的容器部署加速方法,其特征在于:所述可扩展的分布式对象存储架构具体为:通过分片设置的对象位置追踪服务tracker分别负责追踪对象的一个子集,通过设置对等的镜像仓库registry和节点host是对等的,让一个节点需要获取某对象时选择节点获取数据;所述分层的对象位置追踪架构在可扩展的分布式对象存储架构基础上,将所述对象位置追踪服务tracker分为本地寻找对象追踪服务Local tracker和全局寻找对象追踪服务Global tracker,节点优先在本地寻找对象追踪服务Localtracker中寻找对象,在本地找不到相应的对象时,才去全局寻找对象追踪服务Global tracker寻...
【专利技术属性】
技术研发人员:沃天宇,陈凯杰,
申请(专利权)人:北京航空航天大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。