分布式存储技术路线选型探讨:HDFS、Ceph、GFS、gpfs、Switf等各种技术的特点和适用场景?

随着数字化转型的深入,海量数据对存储提出了新的要求。传统存储虽然有技术成熟、性能良好、可用性高等优点,但面对海量数据,其缺点也越来越明显:如扩展性差、成本高等。为了克服上述缺点,满足海量数据的存储需求,市场上出现了分布式存储技术。当前,分布式存储有多种实现技术,如HD...显示全部

随着数字化转型的深入,海量数据对存储提出了新的要求。传统存储虽然有技术成熟、性能良好、可用性高等优点,但面对海量数据,其缺点也越来越明显:如扩展性差、成本高等。为了克服上述缺点,满足海量数据的存储需求,市场上出现了分布式存储技术。
当前,分布式存储有多种实现技术,如HDFS、Ceph、GFS、GPFS、Switf等。在实际工作中,为了更好地引入分布式存储技术,我们需了解各种分布式存储技术的特点,以及各种技术的适用场景,在此希望请教下同行,城商行应该如何选择这些分布式存储技术,他们各自的特点和场景如何?

收起
参与38

查看其它 4 个回答s6dong的回答

s6dongs6dong  it技术咨询顾问 , 东软集团

答:在以上几种分布式存储技术中,每一种存储技术都有各自的特点和应用场景。其中HDFS、Ceph和Switf应用比较多,这也和它们的技术发展比较快和应用场景比较多相关。下面分别介绍:
一、HDFS。
主要用于大数据的存储场景,是Hadoop大数据架构中的存储组件。HDFS在开始设计的时候,就已经明确的它的应用场景,就是为大数据服务。主要的应用场景有:
1、对大文件存储的性能比较高,例如几百兆,几个G的大文件。因为HDFS采用的是以元数据的方式进行文件管理,而元数据的相关目录和块等信息保存在NameNode的内存中, 文件数量的增加会占用大量的NameNode内存。如果存在大量的小文件,会占用大量内存空间,引起整个分布式存储性能下降,所以尽量使用HDFS存储大文件比较合适。
2、适合低写入,多次读取的业务。就大数据分析业务而言,其处理模式就是一次写入、多次读取,然后进行数据分析工作,HDFS的数据传输吞吐量比较高,但是数据读取延时比较差,不适合频繁的数据写入。
3、HDFS采用多副本数据保护机制,使用普通的X86服务器就可以保障数据的可靠性,不推荐在虚拟化环境中使用。
二、Ceph。
是一个开源的存储项目,是目前应用最广泛的开源分布式存储系统,已得到众多厂商的支持,许多超融合系统的分布式存储都是基于Ceph深度定制。而且Ceph已经成为LINUX系统和OpenStack的“标配”,用于支持各自的存储系统。Ceph可以提供对象存储、块设备存储和文件系统存储服务。同时支持三种不同类型的存储服务的特性,在分布式存储系统中,是很少见的。
Ceph没有采用HDFS的元数据寻址的方案,而且采用CRUSH算法,数据分布均衡,并行度高。而且在支持块存储特性上,数据可以具有强一致性,可以获得传统集中式存储的使用体验。对象存储服务,Ceph支持Swift和S3的API接口。在块存储方面,支持精简配置、快照、克隆。在文件系统存储服务方面,支持Posix接口,支持快照。但是目前Ceph支持文件的性能相当其他分布式存储系统,部署稍显复杂,性能也稍弱,一般都将Ceph应用于块和对象存储。
Ceph是去中心化的分布式解决方案,需要提前做好规划设计,对技术团队的要求能力比较高。特别是在Ceph扩容时,由于其数据分布均衡的特性,会导致整个存储系统性能的下降。
三、GFS。
GFS是google分布式文件存储,是为了存储海量搜索数据而设计的专用文件系统。和HDFS 比较类似,而且HDFS系统最早就是根据 GFS的概念进行设计实现的。 GFS同样适合大文件读写,不合适小文件存储。适合处理大量的文件读取,需要高带宽,而且数据访问延时不敏感的搜索类业务。同样不适合多用户同时写入。GFS 是最早的推出分布式存储概念的的存储系统之一,后来的大部分的分布式式文件系统或多或少都参考了 GFS 的设计。HDFS和 GFS 的主要区别是,对GFS 中关于数据的写入进行了一些改进,同一时间只允许一个客户端写入或追加数据。而GFS 是支持并发写入的。这样会减少同时写入带来的数据一致性问题,在写入流程上,架构相对比较简单,容易实现。
四、GPFS。
GPFS是 IBM 的共享文件系统,它是一个并行的磁盘文件系统,可以保证在资源组内的所有节点可以并行访问整个文件系统。GPFS 允许客户共享文件,而这些文件可能分布在不同节点的不同硬盘上。GPFS提供了许多标准的 UNIX 文件系统接口,允许应用不需修改或者重新编辑就可以在其上运行。
GPFS和其他分布式存储不同的是,GPFS是由网络共享磁盘(NSD)和物理磁盘组成。网络共享磁盘(NSD)是由物理磁盘映射出来的虚拟设备,与磁盘之间是一一对应的关系。所以,使用两台传统的集中式存储设备,通过划分不同的网络共享磁盘,也可以部署GPFS,不一定部署在X86设备上。GPFS文件系统允许在同一个节点内的多个进程使用标准的UNIX文件系统接口并行的访问相同文件进行读写,性能比较高。GPFS支持传统集中式存储的仲裁机制和文件锁,保证数据安全和数据的正确性,这是其他分布式存储系统无法比拟的。GPFS主要用于IBM 小型机和UNIX系统的文件共享和数据容灾等场景。
五、Switf。
Swift也是一个开源的存储项目,但是主要面向的是对象存储。和Ceph提供的对象存储服务类似。主要用于解决非结构化数据存储问题。它和Ceph的对象存储服务的主要区别是。
1、客户端在访问对象存储系统服务时,Swift要求客户端必须访问Swift网关才能获得数据。而Ceph使用一个运行在每个存储节点上的OSD(对象存储设备)获取数据信息,没有一个单独的入口点,比Swift更灵活一些。
2、在数据一致性方面,Swift的数据是最终一致,在海量数据的处理效率上要高一些,但是主要面向对数据一致性要求不高,但是对数据处理效率要求比较高的对象存储业务。而Ceph是始终跨集群强一致性。
主要的应用场景,在在OpenStack中,对象存储服务使用的就是Swift,而不是Ceph。

互联网服务 · 2019-04-22
浏览9773

回答者

s6dong
s6dong1729
it技术咨询顾问东软集团
擅长领域: 存储服务器灾备

s6dong 最近回答过的问题

回答状态

  • 发布时间:2019-04-22
  • 关注会员:9 人
  • 回答浏览:9773
  • X社区推广