Container encapsulates the application, the supporting software and the operating system libraries as an image. The application is updated through publishing a newer image version. That would lead a certain degree of duplications between the neighboring versions. The loading process of container image is time-consuming and delays the starting time of a container from milliseconds to seconds or minutes. Reusing the same data of previous versions can help to reduce the loading time. The layered loading and inheritance features adopted by docker can help to reuse the supporting software and the operating system libraries effectively in image loading. However, reusing the application data is currently not supported. This study will make a research on container image loading methodology based on chunking reuse of older versions to improve the image loading performance. There are three key points: 1) A large number images coexisting in a runtime host cause a large same data search space which could lower the lookup performance. To address this issue, we will propose a clustering based image lookup method. 2) To address the data fragment problem, we will study a self-organized optimization method based on data rewritten. 3) To resolve the utility unpredictable problem caused by the bottleneck changing, we will study a maximum utility based strategy decision method. All the proposed methods will be tested in a prototype system implementation.
容器将应用和支持软件、库文件等封装为镜像,通过发布新版本镜像实现应用升级,导致不同版本之间存在大量相同数据。镜像加载消耗大量时间,使容器启动时间从毫秒级延迟为秒级甚至是分钟级。复用不同版本之间的相同数据有利于减少容器加载时间。当前容器镜像采用继承和分层加载机制,有效实现了支持软件、库文件等数据的复用,但对于应用内部数据还没有一种可靠的复用机制。本课题拟研究一种基于分片复用的多版本容器镜像加载方法,通过复用不同版本之间的相同数据,提升镜像加载效率。研究分为3个方面:1)针对容器镜像数量较多、相同数据查找效率低下的问题,研究一种基于启发式聚类的相似镜像查找方法;2)针对不同版本之间重复数据分布碎片化问题,研究一种基于重写的数据自组织优化方法;3)针对数据复用过程中瓶颈资源不同导致复用效果难以预测的问题,研究一种效用最大化的镜像加载策略决策方法。最后通过原型系统实现,完成对以上方法的检验。
以Docker为代表容器(Container)技术已经成为一种广泛使用的服务器资源共享技术,当前正大规模应用于弹性云平台和自动运维等方面。国内外主流云平台(如亚马逊AWS、阿里云等)全部支持Docker容器部署,各大、中、小型企业数据中心也正致力于采用Docker容器部署应用。Docker容器将应用封装到镜像(Image)中,通过运行镜像创建应用实例。由于镜像在镜像库(Repository)中集中存储,将镜像从集中存储加载到本地的过程需要耗费大量的时间,这将导致镜像实例创建时间由毫秒级延迟为分钟级,严重制约了应用在面对突发高负载时的处理能力,影响应用服务质量。这主要由两方面的原因造成:第一,虽然Docker镜像采用了继承和分级加载的机制,但是由于受到应用版本多样性等因素影响,在不同应用版本镜像之间依然存在重复存储和重复加载的现象;第二,Docker容器镜像在创建过程中可能引入冗余文件,使容器镜像体积变大,从而降低加载效率。.针对以上两个问题,我们分别运用内容寻址、机器学习、静态程序分析、动态程序分析等方法进行研究,提出了基于分片复用的多版本容器镜像加载方法、基于决策树的容器镜像加载策略决策和基于程序分析的临时文件错误检测方法,并采用私有云平台OnceCloud和Docker官方镜像库(Docker Hub)的开源数据对三种方法进行实验验证。实验结果表明:基于分片复用的多版本容器镜像加载方法和基于决策树的容器镜像加载策略决策方法可以提高5.8X以上的镜像加载速度;基于程序分析的临时文件错误检测方法可以100%检测镜像创建过程中的临时文件错误,从而达到减小镜像体积的目标。
{{i.achievement_title}}
数据更新时间:2023-05-31
涡度相关技术及其在陆地生态系统通量研究中的应用
硬件木马:关键问题研究进展及新动向
内点最大化与冗余点控制的小型无人机遥感图像配准
端壁抽吸控制下攻角对压气机叶栅叶尖 泄漏流动的影响
基于公众情感倾向的主题公园评价研究——以哈尔滨市伏尔加庄园为例
基于多版本技术的自适应编译优化方法研究
基于软件多版本演化的克隆家系提取研究
基于失配耦合多芯光纤光栅的复用/解复用器
基于人声检测及分离的多版本流行音乐检索关键技术研究