摘要:
近年来,互联网技术飞速发展,互联网用户的数量呈指数级增长;随之而来的是用户需求的服务数量越来越大、服务种类也越来越多.不仅如此,虚拟化技术也在推陈出新,Docker以其轻量性、可移植性好等优良特性备受开发者青睐,Docker在虚拟化技术中扮演越来越重要的角色;为了提升服务的部署效率,越来越多的人选择使用Docker在云环境中部署服务.在集群中部署服务时需要将具有对应服务的镜像分发到节点上,如何高效地分发Docker镜像成了研究的热点问题.然而,在当代互联网发展的趋势下,集群呈现规模大、异构性强的特点;尤其是异构性比较明显的集群,节点的类型多种多样,节点的性能更是参差不齐,低性能节点的不恰当使用会严重制约Docker镜像分发的效率.为此,在本文中,我们基于实际应用场景的真实特性,提出了一种异构云环境下高效的Docker镜像分发方案,并实现成Docker镜像分发系统,记为RainbowD.RainbowD采用了一种新型的高并发机制处理镜像分发的任务;首先,发挥集群中所有节点的作用来减轻仓库节点的负载;其次,使用一种性能优先级排序的方法动态的选择性能高的节点,在有限的资源下提升镜像分发效率;最后,由于对节点进行优先级排序,集群中每个节点不需要再向其余所有节点发送消息,并首次使用SSH协议分发镜像,解决了P2P网络中存在的消息延迟、消息重复和冗余等问题,减少了带宽资源的浪费.特别地,由于BitTorrent协议的安全性的弊端备受学者诟病,考虑到云环境下集群的安全性问题,利用SSH协议加密特性和安全性验证,提升了云环境的安全性.在本文中,我们设置了两个独立实验,结果如下:首先,RainbowD和其他镜像分发方案对比验证其镜像分发效率,在实验的异构云环境下,RainbowD与使用Docket的方案相比,镜像分发效率显著提升,分发效率提高了30%以上,分发耗时最多缩短了80%;和Dragonfly相比,RainbowD在70%的情况下效率近似或优于Dragonfly;在集群规模为100个节点、分发200M的镜像耗时可以达到150s;其次,RainbowD可以有效的抵御常见的网络攻击,如DNS欺骗和会话劫持攻击.从实验结果可以看出,RainbowD在镜像分发的任务中具有高效性和安全性.