论文部分内容阅读
Docker容器技术作为新型的虚拟化技术近年来受到了广泛的关注,通过隔离操作系统内核对象实现安全性隔离,改进了 Docker在安全性和故障恢复方面的问题。Docker容器技术逐渐成为平台服务(PaaS)的技术关注点。Docker容器的可靠性是当下研究的热点问题。检查点技术有助于实现容器的高可用性,它将某些特定时间的Docker的运行状态保存到存储介质的向后恢复容错技术。在容器云服务场景下,用户的业务需求存在动态变化性,高负载的业务访问会导致容器出现故障,进而停止提供服务,需要在对容器集群进行负载监控的基础上,通过使用容器检查点的故障恢复技术,使得容器能够在出现故障时及时进行检查点的恢复,保证容器中服务的正常运行。首先,以Docker Swarm容器集群为基础,首先设计了基于Zabbix的容器性能监控方案,实现了对容器集群的负载监控,提供了负载达到阈值的情况下向用户发送告警通知的功能。由于容器未来负载状态的不断变化,所以采用了基于马尔科夫链的容器未来负载状态的概率预测算法,通过实验验证,在容器下一时刻负载不断变化的场景下,相较于传统的负载预测算法,该算法更加精确的计算出状态概率值,提高了容器未来负载所处状态的预测精度,根据当前容器的负载值比较准确的预测容器未来的负载状态。其次,针对容器检查点的时间开销问题,本文设计了一种自适应预复制容器检查点策略SPC-CKPOT,主要包括预复制和停止-复制两部分。在预复制过程中优先复制不经常修改的容器的内存页面,其中预复制的轮数由容器中负载工作量自适应地决定,在前一轮预复制中生成的脏页通过冷冻容器保存在每一轮预复制中,从而减少检查点的停机时间。实验结果表明,随着容器内存配置和工作量的不断增加,SPC-CKPOT策略实现了根据负载工作量自适应确定预复制轮数,避免了由于过多的预复制操作产生大量的内存脏页而导致容器检查点停机时间过长,减少了容器检查点的时间开销,提高了容器检查点恢复的效率。最后,设计并实现了一个原型系统,用于Docker容器性能数据的采集和故障告警,提高了性能监控的可靠性。通过实验验证了基于马尔科夫链的容器未来负载状态的概率预测算法的精度,以及自适应预复制容器检查点策略在减少容器检查点时间开销方面的有效性。