论文部分内容阅读
随着当前信息技术的发展,数据呈现爆炸式的增长,云计算成为了研究的热点技术。云存储作为云计算的一个重要部分,其技术也越来越成熟,多种形式的云存储应运而生。作为分布式的对象存储,Swift在云存储中具有重要的意义。纠删码应用在大量的分布式存储中,从最初的RS码到EVENODD码和RDP码,再到基于RS码增加局部校验码的LRC码,编码效率和修复过程中数据下载量优化都有了长足的进步。虽然Swift对象存储性能在逐渐完善,但是其集群内出现的系统完整性和用户请求响应的网络资源管理,以及集群单节点故障修复问题的研究仍然具有很大的意义。 本文主要是对Swift集群中如何更有效的利用带宽资源进行分析研究,通过对集群结构和Swift使用的纠删码算法进行分析,从使用基于回归模型的带宽管理和改进故障修复算法进两个方面,对Swift集群中的带宽资源进行优化。具体工作内容包括: 1)通过对 Swift中存在的不同种类工作负载进行分析,包括以用户为中心的工作负载和以系统为中心的工作负载。然后针对这两种负载构建负载与网络带宽之间的关系模型,并通过关系模型实时对网络资源进行预测。当集群内的系统负载和用户请求负载出现资源需要均衡的情况时,通过带宽管理来对Swift端口带宽进行分配调节。使得Swift集群在出现故障时,既能保证集群内数据的完整性,又能够尽可能高效的响应用户请求,从而保证用户体验。 2)针对 Swift集群拓扑环境改变时,回归模型参数改变的情况,使用了自适应回归模型模块。此模块能够在存储集群拓扑结构改变时,自动地修正回归模型参数,从而使得带宽管理能够在集群拓扑结构改变时更有效的利用带宽资源。 3)在 Swift加入纠删码后,当使用纠删码存储策略时,存储编码块或数据块的存储节点无效时,传统的纠删码修复的数据下载量过高,从而导致占用了更多的集群内的网络带宽资源。在本文中通过基于爬山法算法,计算得到修复故障节点时最小或近似最小数据下载量和网络带宽修复代价两种修复方案,使得Swift存储节点出现单节点故障后能够在短时间内找到最优或近似最优的修复方案。 4)对爬山法修复方案与NTar算法进行实验对比,相较于NTar算法,虽然在数据下载量方面爬山法比NTar算法的数据量大,但是爬山法修复方案执行时间短,在一定程度上加快了数据的修复速率,从另一方面来说也是对于带宽资源更有效的利用。 最后,将基于回归模型的带宽管理和基于爬山法的故障修复方案应用在Swift集群中,从实验结果可以看出,上述两种方案能够在一定程度上对带宽资源进行优化。