|
引用本文
赵旭, 李艳梅, 罗建, 罗金梅. 基于云预存储技术的Docker在线迁移方法. 自动化学报, 2023, 49(11): 2426−2436 doi: 10.16383/j.aas.c180777
Zhao Xu, Li Yan-Mei, Luo Jian, Luo Jin-Mei. Docker online migration method based on cloud pre-storage technology. Acta Automatica Sinica, 2023, 49(11): 2426−2436 doi: 10.16383/j.aas.c180777
http://www.aas.net.cn/cn/article/doi/10.16383/j.aas.c180777
关键词
Docker容器,预存储,动态迁移算法,云计算,容错率
摘要
针对基于Docker容器的分布式云计算下出现负载不均衡问题, 有必要将较高负载服务器中的Docker容器进程迁移到其他相对空闲的服务器上. 而传统的容器迁移算法忽视了容器本身的特征, 从而导致在迁移过程中传输效率低下. 基于此, 利用第三方管理平台和数据预存储阈值机制, 提出一种Docker容器动态迁移预存储算法PF-Docker. 首先将Docker容器内部进程运行相关文件和流动数据预存至云端存储器, 然后通过预存储阈值机制减少流动数据的无效传输, 最后在停机传输阶段将流动数据和冗余数据传输给目的服务器. 实验表明, 该方法在Docker容器迁移中能有效地降低迁移时间, 减少数据传输量, 提高容器的容错率.
文章导读
云服务[1]是一种当下热门的互联网模型, 它将软硬件资源进行整合, 以虚拟环境和裸机环境两种方式为用户提供对象存储、容量型、性能型等存储和计算功能. 一方面, 云平台可以隐藏复杂硬件特征, 用户无需具备专业计算机软、硬资源知识即可使用, 这种特性大大降低了个体运维成本; 另一方面, 虚拟技术为用户应用提供了独占资源环境, 可避免由资源共享带来的干扰[2-3]. 然而, 随着部署于云中的应用数量以及规模的急剧扩张, 云服务面临着一个难以忽视的高能耗问题. 在这种场景下, 在线迁移技术应时而生, 它可将应用在云中适时聚合与分离, 实现能耗可控性, 进而成为当下的研究热点之一. 深入研究有效的云端管理平台将对控制理论的发展和各种实际应用起到积极推动的作用[4-5].
与裸机在线迁移技术不同, 云进程在线迁移成本主要受两方面的影响: 虚拟执行环境和任务执行环境. 虚拟执行环境由应用执行所必须的虚拟机构成; 任务执行环境则包括任务自身执行状态, 所需输入、输出数据等. 当前云服务平台最主流的几种执行环境为KVM[6], VMware[7]和Xen[8]. 然而在迁移场景下, 由于程序运行局部性和磁盘I/O (Input/output)读写局限性原理, 导致记录磁盘的写操作会有较多的冗余, 它们高昂的管理开销、繁冗的管理层次更成为阻碍其发展的主要缺陷[9-10]. 鉴于虚拟机环境上述特征并不适于为大数据应用提供服务, 虚拟执行环境自身开销过高严重影响了在线迁移效率, 而轻量级容器利用自身低开销可以降低迁移系统自身的数据成本, 满足当前企业需求——高效、节能. 因此, 基于轻量级容器的迁移策略成为云服务相关技术中所急需的研究内容之一.
Docker[11]是目前热门的容器技术之一, 如图1所示, 根据最新RightScale[12]云计算调查报告显示Docker的采用率从2017年的35%增长到了2018年的49% (增长率为40%). 作为一款轻量级开源容器引擎, 有能力简化和快速部署应用隔离环境, 完成云平台不同企业应用之间的“隔离”需求.
图 1 2018年RightScale云计算调查报告
在图2中, 分别对比了KVM和Docker的执行开销, 具体的实验是以内存带宽基准测试程序Stream的Copy, Scale, Add和Traid四个组件为例. 横坐标分别代表内存占用为20 ~ 800 MB, 纵坐标分别代表Stream四个组件随着脏页速率变化各自的数据处理能力. 实验结果表明, 对于内存密集型程序而言, KVM自身执行环境比Docker自身执行环境多出了20%以上的开销. 内存计算型任务的迁移成本是影响在线迁移效率的另一个重要因素, 将庞大的应用数据迁入内存, 降低与外设交互所引发的开销是实现大数据应用高效执行的重要手段. 然而, 在动态迁移的场景下, 庞大的内存数据迁移会带来高昂的迁移开销.
图 2 Stream测试KVM和Docker开销
总的来说, 云端虚拟机迁移的成本主要源于两方面, 即虚拟机自身开销和用户应用所占据的资源开销. 单纯对某一方面进行管控, 都无法明显降低迁移成本. 根据对比Docker和KVM测试Stream发现, Docker技术已显著减少了虚拟机自身开销, 但仍然无法满足内存密集型或者大数据应用动态迁移的成本需求. 实际上, 诸如华为、阿里等主流云服务提供商对于动态迁移所产生的时刻和所迁往的目标都有明确的管理方法, 只要科学采用这些信息, 充分利用云平台的闲置资源, 提前将一部分必须且稳定的数据放在云端存储上, 那么将显著降低宿主机的数据规模, 减少宿主机在后续迁移过程中的开销. 此外, 待迁移开始之后, 利用网络并行性, 宿主机和云端存储同时将各自数据迁移至指定目的主机, 在线迁移将同时获益于宿主机数据规模缩小以及网络并行性.
本文提出一种新的基于云预存储技术的Docker在线迁移方法: PF-Docker, 该方法将预存技术与成熟的Pre-copy技术相结合, 充分利用云平台的网络和存储资源, 实现高效在线迁移. PF-Docker在应用程序平稳运行时, 将动态搜集用户数据行为, 并将稳定数据预存至闲置的网络存储资源上. 待在线迁移启动, 宿主机将对剩余数据实施基于Pre-copy的在线迁移, 而云存储中的数据将同时向目标机进行传输. PF-Docker明显受益于缩小的宿主机数据规模以及云平台中丰富的网络存储并行性. 实验结果说明, 相对于现有容器迁移方法, 本文方法在不同类型的服务负载下均能正确执行. 对于空负载的Docker容器, 本方法对比文献[13]中的迁移方法降低了25%的数据成本; 在高负载写密集环境下, 本方法降低了15%的数据成本迁移和减少了总传输时间11%; 在服务降级率方面, 本文Docker动态迁移框架比KVM动态迁移更加稳定.
本文主要贡献如下:
1)云服务和预存储结合的动态迁移策略. 在迁移命令下达之前, 在云端寻找空闲服务器作为数据管理平台, 宿主机在特定条件下将容器动态迁移的稳定数据预存储到云端存储; 在迁移命令下达之后, 云端存储与宿主机利用网络并行性同时向目的机传输数据.
2)轻量级容器Docker动态预存储迁移框架. 采用预存储、迭代传输和检查点恢复机制相结合的方式, 减少迭代次数与传输时间, 实现轻量级容器Docker动态预存储迁移.
3)引入限定预存储阈值触发策略. 设定服务器预负载的上限, 判断运行Docker容器的服务器是否满足预存储的条件, 防止预存储无效占用云端资源.
图 3 基于预存储的容器动态迁移框架: PF-Docker
随着云计算技术的高速发展, 如何降低能耗是保证高效利用云资源的前提. Docker作为目前业界使用率最高的容器引擎, 实现其动态迁移技术能有效降低能耗, 提高容器本身的容错率. 实验结果表明, 本文提出的基于Docker容器动态迁移预存储算法通过在容器迁移过程加入预存储机制和引入预存储阈值的操作, 使得容器迁移过程中减少了不必要的迁移, 从而提高了迁移的效率和降低了能耗, 可以帮助现有的云资源进行有效的利用和管理. 随着容器迁移技术的持续发展, 在后续研究中, 将会进一步考虑降低内存页的传输量和数据的存储开销, 研究并设计切实可行的相关算法, 最后从大规模任务、跨域云迁移等多种环境来证实算法的可行性, 使得容器迁移更加有效、节能.
作者简介
赵旭
西华师范大学计算机学院硕士研究生. 主要研究方向为云计算, 虚拟化平台.E-mail: zhaouxu_xu@163.com
李艳梅
西华师范大学计算机学院副教授. 2013年获得电子科技大学计算机科学与工程学院博士学位. 主要研究方向为计算机视觉, 云计算与大数据处理. 本文通信作者. E-mail: liyanmei76@126.com
罗建
西华师范大学计算机学院副教授. 2009年获得电子科技大学计算机科学与工程学院硕士学位. 主要研究方向为计算机视觉, 云计算与大数据处理. E-mail: luojian@cwnu.edu.cn
罗金梅
西华师范大学计算机学院硕士研究生. 主要研究方向为计算机视觉和云计算. E-mail: luojinmei_w@163.com
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-4-27 23:07
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社