主流分布式存储技术对比

2017-01-11 00:00

一、 Ceph

Ceph根据场景可分为对象存储、块设备存储和文件存储。Ceph相比其它分布式存储技术,其优势点在于:它不单是存储,同时还充分利用了存储节点上的计算能力,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡。同时,由于采用了CRUSH、HASH等算法,使得它不存在传统的单点故障,且随着规模的扩大,性能并不会受到影响。


  • Ceph支持对象存储、块存储和文件存储服务,故 称为统一存储。采用CRUSH算法,数据分布均衡,并行度高,不需要维护固定的元数据结构。数据具有强一致,确保所有副本写入完成才返回确认,适合读多写少场景,去中心化,MDS之间地位相同,无固定的中心节点。


二、 GFS

GFS是google的分布式文件存储系统,是专为存储海量搜索数据而设计的,2003年提出,是闭源的分布式文件系统。适用于大量的顺序读取和顺序追加,如大文件的读写。注重大文件的持续稳定带宽,而不是单次读写的延迟。


适合大文件场景的应用,特别是针对GB级别的大文件,适用于数据访问延时不敏感的搜索类业务;

中心化架构,只有1个master处于active状态;

缓存和预取,通过在client端缓存元数据,尽量减少与master的交互,通过文件的预读取来提升并发性能;

高可靠性,master需要持久化的数据会通过操作日志与checkpoint的方式存放多份,故障后master会自动切换重启。


三、 HDFS

HDFS(Hadoop Distributed File System),是一个适合运行在通用硬件(commodity hardware)上的分布式文件系统,是Hadoop的核心子项目,是基于流数据模式访问和处理超大文件的需求而开发的。该系统仿效了谷歌文件系统(GFS),是GFS的一个简化和开源版本。

适用于大文件、大数据处理,处理数据达到 GB、TB、甚至PB级别的数据。

适合流式文件访问,一次写入,多次读取。

文件一旦写入不能修改,只能追加。


四、 Swift


原生的对象存储,不支持实时的文件读写、编辑功能;

完全对称架构,无主节点,无单点故障,易于大规模扩展,性能容量线性增长;

数据实现最终一致性,不需要所有副本写入即可返回,读取数据时需要进行数据副本的校验;

是OpenStack的子项目之一,适合云环境的部署;

Swift的对象存储与Ceph提供的对象存储区别:客户端在访问对象存储系统服务时,Swift要求客户端必须访问Swift网关才能获得数据。而Ceph可以在每个存储节点上的OSD(对象存储设备)获取数据信息; 在数据一致性方面,Swift的数据是最终一致,而Ceph是始终跨集群强一致性)


五、 Lustre分布式存储


Lustre是基于Linux平台的开源集群(并行)文件系统,最早在1999年由皮特•布拉姆创建的集群文件系统公司(Cluster File Systems Inc.)开始研发,后由HP、Intel、Cluster File System和美国能源部联合开发,2003年正式开源,主要用于HPC超算领域。


支持数万个客户端系统,支持PB级存储容量,单个文件最大支持320TB容量。

支持RDMA网络,大文件读写分片优化,多个OSS能获得更高的聚合带宽。

缺少副本机制,存在单点故障。如果一个客户端或节点发生故障,存储在该节点上的数据在重新启动前将不可访问。

适用高性能计算HPC领域,适用于大文件连续读写。