论文部分内容阅读
随着数据量的指数式增长,传统集中式存储已经不能满足业务需要。与集中式存储不同,分布式存储通过网络将每台普通计算机的存储资源统一管理起来并整合成一个能通过互联网以存储接口的形式对外提供存储服务的虚拟存储设备,因此拥有极强的可用性、可扩展性。Ceph是一种基于对象存储的分布式存储系统。由于采用了对象存储的方式,其数据处理过程高度并行化,通过添加普通服务器至集群,Ceph可轻松将存储规模扩展至PB级,而作为核心算法之一的CRUSH(Controlled Replication Under Scalable Hashing)能动态计算数据存储位置,实现了元数据服务器的功能,使之成为了一个没有单点故障的系统。但是CRUSH算法并没有考虑到不同网络状况下的存储效率问题,并且CRUSH算法中默认使用的StrawBucker存储类型并不适用于大量的查询操作的使用环境,而其中的Treebucket类型在数据迁移时,迁移量过大。针对这些缺陷,本文做了如下工作: 1.Ceph默认采用的Primary-Replica模型来进行读写操作,这将会导致系统在进行写操作时出现瓶颈效应,而且节点的权重仅与存储容量有关,没有考虑网络延时对存储性能的影响。本文针对这一问题提出了基于网络延时的CEPH存储性能优化方法。该方法可以在节点网络状况不佳时动态调整节点权重,控制流入该节点的数据量,使数据较大概率存入网络时延小的节点,达到提升系统性能的目的。 2.Ceph中的各节点都必须在同一个网段内,当某一台服务器被攻陷后,很有可能所有的服务器都被攻陷,数据的安全性得不到有效保障。对此本文考虑了数据需要安全存放、保护用户隐私等多方面原因,设计并初步实现了一个面向多个云中心的分布式存储系统。数据文件通过本系统可以将文件分散存储至多个云中心,以此保证某一云中心被攻破后并不能还原成一个完整的文件。并且针对节点失效时数据的迁移效率问题研究了两种存储拓扑构建及容灾方案,能分别提升数据迁移速度和减少迁移量: (1)基于云中心的双层拓扑构建方案。 普通数据中心通常采用树状的层次结构来描述存储拓扑,多副本模式下,源数据与备份数据被存储在不同的叶子节点内,节点失效时数据将在任意叶子节点内进行迁移。而在面向多个云的存储环境下,源数据与备份数据将有可能存储在不同的云中心中,节点失效时的数据迁移路径将可能跨过多个云,此时的迁移效率主要取决于互联网带宽影响。为提升多云环境下节点失效时的数据迁移效率,本文提出了一种基于云中心的双层拓扑构建方案并实现了初步的原型,当节点失效时数据不会跨云进行数据迁移,而是通过内网在同一个云中心内迁移,如此大大减少了云中心之间的数据交互,提升迁移速度。 (2)基于RAID热备盘技术的数据容灾方案。 节点失效时,数据的迁移量是影响迁移效率的关键,为减少数据的迁移量本文提出了基于RAID热备盘技术的数据容灾方案并实现了初步的原型。通过本方案,数据进行迁移时的迁移量将达到最小,且不会改变集群存储拓扑结构,提升迁移效率。