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

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

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

收起
参与38

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

wanggengwanggeng系统运维工程师某银行

Hadoop HDFS(大数据分布式文件系统)
Hadoop分布式文件系统(HDFS)是一个分布式文件系统,适用于商用硬件上高数据吞吐量对大数据集的访问的需求。
该系统仿效了谷歌文件系统(GFS),数据在相同节点上以复制的方式进行存储以实现将数据合并计算的目的。
该系统的主要设计目标包括:容错,可扩展性,高效性和可靠性。
HDFS采用了MapReduce,不迁移数据而是以将处理任务迁移到物理节点(保存数据)的方式降低网络I/O。HDFS是Apache Hadoop的一个子项目并且安装Hadoop。

OpenStack的对象存储Swift
OpenStack Swift提供一个类似Amazon S3的对象存储。其主要特点为:
所有的存储对象都有自身的元数据和一个URL,这些对象在尽可能唯一的区域复制3次,而这些区域可被定义为一组驱动器,一个节点,一个机架等。
开发者通过一个RESTful HTTP API与对象存储系统相互作用。
对象数据可以放置在集群的任何地方。
在不影响性能的情况下,集群通过增加外部节点进行扩展。这是相对全面升级,性价比更高的近线存储扩展。
数据无需迁移到一个全新的存储系统。
集群可无宕机增加新的节点。
故障节点和磁盘可无宕机调换。
在标准硬件上运行,例如戴尔,HP和Supermicro。

Ceph
Ceph是一个遵循LGPL协议的存储平台,它可以在单个分布式节点上同时支持对象存储,块存储和文件存储。
Ceph主要设计的初衷是变成一个可避免单节点故障的分布式文件系统,EB级别的扩展能力,而且是一种开源自由软件,许多超融合的分布式文件系统都是基于Ceph开发的,作为开源软件在超融合商业领域的应用,Ceph因为性能等问题被诟病,但不乏许多厂商在Ceph上不断优化和努力。

IBM General Parallel File System(GPFS通用并行文件系统)
这个专有GPFS是一个由IBM开发的高性能集群文件系统。它可以在共享磁盘或非共享分布式并行模式中进行部署。
GPFS-SNC,其中SNC代表Shared Nothing Cluster(非共享集群),它是2012年12月正式发布的GPFS 3.5版本,如今被称为GPFS-FPO(文件配置优化)。这让GPFS可以在一个联网服务器的集群上采用本地连接磁盘,而不需要配置共享磁盘的专用服务器(例如使用SAN),GPFS-FPO可充当HDFS兼容的文件系统。
GPFS时常通过调用计算集群上的MPI-IO(Message Passing Interface)进行访问。功能包括:
分布式元数据处理。包括目录树。没有单独的“目录控制器”或“索引服务器”管理文件系统。
对非常大的目录进行高效索引目录项。很多文件系统被限制在单一目录(通常, 65536或类似的小二进制数)中的少数文件内,而GPFS并没有这样的限制。
分布式锁定。该功能考虑了完整的Posix文件系统语义,包括锁定文件进行独占访问。
Global Federated File System(GFFS全局联合文件系统)
XSEDE文件系统在美国弗吉尼亚大学Genesis II项目的一部分。
GFFS的出现是源于一个对诸如文件系统的资源以一种联合,安全,标准化,可扩展和透明化的方式进行访问和远程操作的需求,而无需数据所有者或应用程序开发者和用户改变他们存储和访问数据的任何方式。
GFFS通过采用一个全局基于路径的命名空间实现,例如/data/bio/file1。
在现有文件系统中的数据,无论它们是否是 Windows文件系统, MacOS文件系统,AFS,Linux或者Lustre文件系统都可以导出或链接到全局命名空间。
例如,一个用户可以将它 “C” 盘上一个本地根目录结构,C:\work\collaboration-with-Bob导出到全局命名空间,/data/bio/project-Phil,那么用户 “C” 盘\work\collaboration-with-bob 内的文件和目录将会受到访问限制,用户可以通过/data/bio/project-Bob路径在 GFFS上访问。
最后谈一下,最常见的GPFS和HDFS有什么区别?
GPFS和Hadoop的HDFS系统对比起来相当有趣,它设计用于在商用硬件上存储类似或更大的数据——换言之就是,不配置 RAID 磁盘的数据中心和一个SAN。
HDFS还将文件分割成块,并将它们存储在不同的文件系统节点内。
HDFS对磁盘可靠性的依赖并不高,它可以在不同的节点内存储块的副本。保存单一副本块的一个节点出现故障是小问题,可以再复制该组其它有效块内的副本。相较而言,虽然GPFS支持故障节点恢复,但它是一个更严重的事件,它可能包括数据(暂时性)丢失的高风险。
GPFS支持完整的Posix文件系统语义。 HDFS和GFS(谷歌文件系统)并不支持完整的Posix语义。
GPFS跨文件系统分布它的目录索引和其它元数据。相反, Hadoop将它们保留在主要和次要Namenode中,大型服务器必须在RAM内存储所有的索引信息。
GPFS将文件分割成小块。Hadoop HDFS喜欢64MB甚至更多的块,因为这降低了Namenode的存储需求。小块或很多小的文件会快速填充文件系统的索引,因此限制了文件系统的大小。
说到分布式文件系统,不得不提到许多超融合厂商,一部分是基于Ceph的,还有一部分是完全自主研发的。

银行 · 2019-04-19
浏览10278

回答者

wanggeng
系统运维工程师某银行
擅长领域: 服务器存储数据库

wanggeng 最近回答过的问题

回答状态

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