基于Docker容器的混合式集群伸缩方法研究
发布时间:2017-09-18 06:33
本文关键词:基于Docker容器的混合式集群伸缩方法研究
【摘要】:互联网时代的到来,给人们的工作和生活带来巨大的改变。庞大的在线用户数、各种各样的网络服务给企业带来了庞大的流量和经济效益,同时也给支撑在线服务的集群带来了巨大的负担。目前,基于云环境的集群大多数采用虚拟机来构建,对其的伸缩策略也多属基于阈值的响应式伸缩方法。当负载过大时,即使是搭建在云环境里的集群可以动态的进行伸缩,用户的请求响应时间依然会变长。而当负载过小的时候,又会有不少机器空闲,造成不必要的浪费。如何使集群在进行伸缩调整的时候,尽可能地减少用户等待的时间和伸缩造成的开销,这已成为相关企业不得不考虑的两个问题。针对这两个问题,本文提出了一种基于Docker的混合式集群伸缩方法。首先,调研了国内外关于伸缩方法的研究现状,确定了Docker容器与虚拟机混合部署集群的可行性。在概括了伸缩方法具备的三个理论要素之后,研究了请求响应时长和开销大的成因。根据常见的云环境的计费规则,归纳出云环境下集群的计费公式。其次,提出综合使用基于阈值的响应式和预测式伸缩方法。工作负载属于时序序列,且具有自相似性,可采用自回归模型对未来的工作负载进行预测解决伸缩的时机问题。通过对工作负载变化的特征分析,利用工作负载变化率判断其类型,以便决定选择虚拟机或者Docker容器伸缩,解决了伸缩的对象问题。最后对集群上的服务采用排队论进行建模,通过当前工作负载量计算出伸缩所需的服务数量,解决了伸缩的数量问题。然后,根据前面的研究结果,在明确了设计目标后,使用伪代码对扩展算法和收缩算法进行描述。在此基础上,设计并实现了自动伸缩控制器,它包括监控器、建模器、报警器和伸缩器四部分,能够按照本文方法对目标集群自动进行伸缩调整。最后,对本文提出的方法进行验证测试。围绕其设计及应用场景,实现了测试所需的负载发生器,并设计了典型的周期性负载和突发式负载供测试使用。经过与纯响应式伸缩方法的比较,验证了本文伸缩方法的有效性。
【关键词】:Docker 虚拟机 集群 伸缩方法
【学位授予单位】:西安邮电大学
【学位级别】:硕士
【学位授予年份】:2016
【分类号】:TP368.5
【目录】:
- 摘要3-4
- ABSTRACT4-7
- 第1章 绪论7-13
- 1.1 研究背景、目的及意义7-8
- 1.2 国内外研究现状8-10
- 1.3 论文主要内容及创新点10
- 1.4 论文组织结构10-13
- 第2章 相关技术研究13-23
- 2.1 容器技术研究13-16
- 2.1.1 容器技术简介13
- 2.1.2 Docker容器简介13-14
- 2.1.3 Docker容器与虚拟机的对比14-16
- 2.2 混合式集群研究16-19
- 2.2.1 集群简介16
- 2.2.2 基于云环境的集群16-17
- 2.2.3 混合式集群17-19
- 2.3 伸缩方法研究19-22
- 2.3.1 伸缩方法简介19-21
- 2.3.2 伸缩方法理论要素21-22
- 2.4 本章小结22-23
- 第3章 基于Docker容器的伸缩方法研究23-37
- 3.1 存在问题成因分析23-26
- 3.1.1 响应时长分析23-24
- 3.1.2 开销分析24-26
- 3.2 亚马逊AWS伸缩方法26-28
- 3.3 伸缩方法关键问题研究28-35
- 3.3.1 伸缩对象选择28-29
- 3.3.2 伸缩时机判断29-33
- 3.3.3 伸缩数量计算33-35
- 3.4 本章小结35-37
- 第4章 伸缩方法设计与实现37-47
- 4.1 伸缩方法设计目标37
- 4.2 伸缩方法设计37-41
- 4.2.1 伸缩算法38-39
- 4.2.2 扩展算法39-40
- 4.2.3 收缩算法40-41
- 4.3 伸缩方法实现41-46
- 4.3.1 系统设计41
- 4.3.2 模块设计41-46
- 4.4 本章小结46-47
- 第5章 伸缩方法性能测试47-57
- 5.1 测试方法47
- 5.1.1 性能测试目的47
- 5.1.2 测试对照组设计47
- 5.2 验证测试47-55
- 5.2.1 测试工具47-50
- 5.2.2 测试环境50-53
- 5.2.3 测试结果及分析53-55
- 5.3 本章小结55-57
- 第6章 结论与展望57-59
- 6.1 本文总结57
- 6.2 工作展望57-59
- 参考文献59-61
- 攻读学位期间取得的研究成果61-63
- 致谢63-65
本文编号:873962
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/873962.html