分布式存储主流技术及其应用场景

作为一种新的数据存储技术,分布式存储通过网络使用每台机器上的磁盘空间,将数据分散存储到多个存储服务器上,将这些分散的存储资源构成一个虚拟的存储设备,而数据分散存储在企业甚至全球各个角落。分布式存储因大规模横向扩展性、高性能、高可靠性和高安全性等的特性,有着广泛的应用,市场占有率不断攀升,并且不断催生新产业、新业态、新模式。

存储根据其类型,可分为块存储,对象存储和文件存储。在主流的分布式存储技术中,HDFS/GPFS/GFS属于文件存储,Swift属于对象存储,而Ceph可支持块存储、对象存储和文件存储,也称为统一存储。

以下对主流的五大分布式存储技术基本特性做一简介。

Ceph

Ceph最早起源于Sage就读博士期间的工作、成果于2004年发表,并随后贡献给开源社区。经过多年的发展之后,已得到众多云计算和存储厂商的支持,成为应用最广泛的开源分布式存储平台。

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

Ceph的不足之处是,去中心化的分布式解决方案,需要提前做好规划设计,对技术团队的要求能力比较高;Ceph扩容时,由于其数据分布均衡的特性,会导致整个存储系统性能的下降。

GFS

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

GFS适合大文件场景的应用,特别是针对GB级别的大文件,适用于数据访问延时不敏感的搜索类业务,采取中心化架构(只有1个master处于active状态),缓存和预取、高可靠性。

HDFS

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

HDFS的特点是分块更大(每个数据块默认128MB)、不支持并发(同一时刻只允许一个写入者或追加者)、过程一致性(写入数据的传输顺序与最终写入顺序一致)等。因此,HDFS适用于大文件、大数据处理,处理数据达到 GB、TB、甚至PB级别的数据,也适合于一次写入、多次读取的流式文件访问,且文件一旦写入不能修改,只能追加。

Swift

Swift 最初是由Rackspace公司开发的分布式对象存储服务, 2010 年贡献给OpenStack 开源社区。作为其最初的核心子项目之一,为其 Nova 子项目提供虚机镜像存储服务。

Swift 采用完全对称、面向资源的分布式系统架构设计,所有组件都可扩展,避免因单点失效而影响整个系统的可用性。其组件包括代理服务、认证服务、缓存服务、账户服务、容器服务、对象服务、复制服务、更新服务、审计服务和账户清理服务。

Swift支持原生的对象存储,不支持实时的文件读写、编辑功能,作为完全对称架构,Swift无主节点,无单点故障,易于大规模扩展,性能容量线性增长,其数据实现最终一致性,不需要所有副本写入即可返回,读取数据时需要进行数据副本的校验;由于是OpenStack的子项目之一,因此其适合云环境的部署。

Lustre分布式存储

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

Lustre支持数万个客户端系统、PB级存储容量,单个文件最大支持320TB容量,支持RDMA网络、大文件读写分片优化,多个OSS能获得更高的聚合带宽。由于缺少副本机制,存在单点故障。如果一个客户端或节点发生故障,存储在该节点上的数据在重新启动前将不可访问。

主流分布式存储技术的特点比较如下:

【根据网上资料整理】