主流分布式存储技术架构对比分析.docx

? ? ? ? ? ? ? 主流分布式存储技术架构对比分析 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 目 录 TOC \o 1-3 \h \z \u 主流分布式存储技术架构对比分析 1 一、 Ceph 3 二、 GFS 6 三、 HDFS 9 四、 Swift 10 五、 Lustre分布式存储 15 六、 主流分布式存储技术的比较 16 存储根据其类型,可分为块存储,对象存储和文件存储。在主流的分布式存储技术中,HDFS/GPFS/GFS属于文件存储,Swift属于对象存储,而Ceph可支持块存储、对象存储和文件存储,故称为统一存储。 一、 Ceph Ceph最早起源于Sage就读博士期间的工作、成果于2004年发表,并随后贡献给开源社区。经过多年的发展之后,已得到众多云计算和存储厂商的支持,成为应用最广泛的开源分布式存储平台。 Ceph根据场景可分为对象存储、块设备存储和文件存储。Ceph相比其它分布式存储技术,其优势点在于:它不单是存储,同时还充分利用了存储节点上的计算能力,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡。同时,由于采用了CRUSH、HASH等算法,使得它不存在传统的单点故障,且随着规模的扩大,性能并不会受到影响。 1.Ceph的主要架构 Ceph的最底层是RADOS(分布式对象存储系统),它具有可靠、智能、分布式等特性,实现高可靠、高可拓展、高性能、高自动化等功能,并最终存储用户数据。RADOS系统主要由两部分组成,分别是OSD和Monitor。 RADOS之上是LIBRADOS,LIBRADOS是一个库,它允许应用程序通过访问该库来与RADOS系统进行交互,支持多种编程语言,比如C、C++、Python等。 基于LIBRADOS层开发的有三种接口,分别是RADOSGW、librbd和MDS。 RADOSGW是一套基于当前流行的RESTFUL协议的网关,支持对象存储,兼容S3和Swift。 librbd提供分布式的块存储设备接口,支持块存储。 MDS提供兼容POSIX的文件系统,支持文件存储。 2.Ceph的功能模块 Ceph的核心组件包括Client客户端、MON监控服务、MDS元数据服务、OSD存储服务,各组件功能如下: ? Client客户端:负责存储协议的接入,节点负载均衡 ? MON监控服务:负责监控整个集群,维护集群的健康状态,维护展示集群状态的各种图表,如OSD Map、Monitor Map、PG Map和CRUSH Map ? MDS元数据服务:负责保存文件系统的元数据,管理目录结构 ? OSD存储服务:主要功能是存储数据、复制数据、平衡数据、恢复数据,以及与其它OSD间进行心跳检查等。一般情况下一块硬盘对应一个OSD。 3.Ceph的资源划分 Ceph采用crush算法,在大规模集群下,实现数据的快速、准确存放,同时能够在硬件故障或扩展硬件设备时,做到尽可能小的数据迁移,其原理如下: 当用户要将数据存储到Ceph集群时,数据先被分割成多个object,(每个object一个object id,大小可设置,默认是4MB),object是Ceph存储的最小存储单元。 由于object的数量很多,为了有效减少了Object到OSD的索引表、降低元数据的复杂度,使得写入和读取更加灵活,引入了pg(Placement Group ):PG用来管理object,每个object通过Hash,映射到某个pg中,一个pg可以包含多个object。 Pg再通过CRUSH计算,映射到osd中。如果是三副本的,则每个pg都会映射到三个osd,保证了数据的冗余。 4.Ceph的数据写入 Ceph数据的写入流程 1) 数据通过负载均衡获得节点动态IP地址; 2) 通过块、文件、对象协议将文件传输到节点上; 3) 数据被分割成4M对象并取得对象ID; 4) 对象ID通过HASH算法被分配到不同的PG; 5) 不同的PG通过CRUSH算法被分配到不同的OSD 5.Ceph的特点 ? Ceph支持对象存储、块存储和文件存储服务,故 称为统一存储。 ? 采用CRUSH算法,数据分布均衡,并行度高,不需要维护固定的元数据结构; ? 数据具有强一致,确保所有副本写入完成才返回确认,适合读多写少场景; ? 去中心化,MDS之间地位相同,无固定的中心节点 Ceph存在一些缺点: ? 去中心化的分布式解决方案,需要提前做好规划设计,对技术团队的要求能力比较高。 ? Ceph扩容时,由于其数据分布均衡的特性,会导致整个存储系统性能的下降。 二、 GFS GFS是google的分布式文件存储系统,是专为存储海量搜索数据而

文档评论(0)

1亿VIP精品文档

相关文档