论文部分内容阅读
随着社交网络及物联网的快速发展,个体及社会应用产生的数据呈指数增长,海量数据的存储需求日益强烈。传统的存储模式无法应对海量数据存储需求的容量可扩展性、数据可靠性以及高性能,云存储系统在这种背景下应运而生。云存储系统采用分布式文件系统等技术将不同的存储设备通过网络连接的方式汇集成一个资源池,统一提供存储服务,具有高可扩展性、高可靠性等优点。现有的面向云存储的分布式文件系统有很多种,Ceph分布式文件系统以其开源性、提供统一存储能力的特点在企业和科研领域得到广泛关注。 数据分布策略是分布式文件系统中关键技术,其决定了数据存储位置以及系统的负载均衡和容错性。CRUSH算法是Ceph分布式文件系统中的伪随机数据分布算法,可以在异构的大规模层级结构化存储集群中高效地分布数据对象及其副本。然而,CRUSH算法在存储节点负载均衡的设计上存在不足,并没有把底层网络状况和节点负载考虑在内,当存储节点的网络情况恶化后比如集群内部进行数据迁移会占用大量的网络带宽而目前系统中数据选择存储位置仅仅是以节点的存储容量作为权重因子,这使得集群的性能明显下降,降低系统的读写性能。因此,在CRUSH算法中加入网络状态和节点负载的测量对提高负载均衡性具有非常重要的作用。传统的网络架构中,获取网络状态需要繁琐的配置和大量的测量开销,软件定义网络作为新型网络架构采用控制平面和数据平面相分离,通过集中化的控制平面,SDN简化了网络测量和管理并提供灵活、高效的维护策略,因此论文采用SDN技术完成对网络和节点负载的监测。改进后的CRUSH算法结合SDN技术能综合考虑网络和主机负载信息,设计出合理的数据分布策略。论文的主要创新性工作总结如下: (1)针对CRUSH算法中权重因子只以存储容量作为约束条件导致的存储节点负载不均衡问题,提出改进的CRUSH算法,在节点权重因子中添加网络状态和负载的因素,权重因子的确定具有更细的粒度。 (2)在获取节点网络状态和负载状态问题上,设计软件定义网络和Ceph分布式文件系统结合的架构,通过对SDN控制器进行应用开发,提出主被动相结合的测量方式分别测量存储节点网络状态和负载状态。 论文通过大量的实验对提出的解决方案进行测试,测试结果表明设计的SDN监测应用能准确获取需要的数据信息,通过与现有的CRUSH算法相比,改进的CRUSH算法减少了调整权重引起的数据迁移量,在系统性能方面保持相同的写操作吞吐量的同时对读操作的吞吐量有明显的提升,同时降低了读写操作响应时间。