国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:陆志刚,徐继伟,黄涛
单位:陆志刚,中国科学院 软件研究所 软件工程技术中心, 北京 100190;计算机科学国家重点实验室(中国科学院 软件研究所), 北京 100190;中国科学院大学, 北京 10019011,徐继伟,中国科学院 软件研究所 软件工程技术中心, 北京 10019002,黄涛,中国科学院 软件研究所 软件工程技术中心, 北京 100190;计算机科学国家重点实验室(中国科学院 软件研究所), 北京 100190;中国科学院大学, 北京 10019003
关键词:容器|docker|镜像|重复数据删除
基金:国家重点研发计划(2017YFC0804407);国家自然科学基金(61602454,61872344);北京市自然科学基金(4182070)
容器将应用和支持软件、库文件等封装为镜像,通过发布新版本镜像实现应用升级,导致不同版本之间存在大量相同数据.镜像加载消耗大量时间,使容器启动时间从毫秒级延迟为秒级甚至是分钟级.复用不同版本之间的相同数据,有利于减少容器加载时间.当前,容器镜像采用继承和分层加载机制,有效实现了支持软件、库文件等数据的复用,但对于应用内部数据还没有一种可靠的复用机制.提出一种基于分片复用的多版本容器镜像加载方法,通过复用不同版本镜像之间的相同数据,提升镜像加载效率.方法的核心思想是:利用边界匹配数据块切分方法将容器镜像切分为细粒度数据块,将数据块哈希值作为唯一标识指纹,借助B-树搜索重复指纹判断重复数据块,减少数据传输.实验结果表明,该方法可以提高5.8X以上容器镜像加载速度.
来源:2020年第6期
《软件学报》期刊编辑部