百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

Ceph、GlusterFS等五大常见存储系统PK

bigegpt 2025-01-11 10:31 9 浏览

##引言

在当前这个云计算蓬勃发展的时代,对于存储系统的思考热度也在逐渐升高。在众多的工具和存储系统中,如何进行选择,就变成了一个非常困惑人的问题。本篇将介绍常见的存储系统,希望可以解答大家这块的困惑。本手册将深度比较Ceph ,GlusterFS,MooseFS , HDFS 和 DRBD。

1. Ceph

Ceph是一个强大的存储系统,它在同一个系统中同时提供了对象,块(通过RBD)和文件存储。无论您是希望在虚拟机中使用块设备,还是将非结构化数据存储在对象存储中,Ceph都可以在一个平台上提供所有功能,并且还能获得出色的灵活性。 Ceph中的所有内容都以对象的形式存储,不管原始的数据类型是什么,RADOS(reliable autonomic distributed object store)都会把它们当做对象来进行存储。

RADOS层确保数据始终保持一致状态并且可靠。Ceph会通过数据复制,故障检测和恢复,以及跨群集节点进行数据迁移和重新平衡来实现数据一致性。 Ceph提供了一个符合POSIX的网络文件系统(CephFS),旨在实现高性能,大数据存储以及与传统应用程序的最大兼容。Ceph可以通过各种编程语言或者radosgw(RGW)实现无缝的访问对象存储,(RGW)这是一种REST接口,它与为S3和Swift编写的应用程序兼容。另一方面,Ceph的RADOS块设备(RBD)可以访问在整个存储集群中条带化和复制的块设备映像。

Ceph的特性

  • 独立、开放和统一的平台:将块,对象和文件存储组合到一个平台中,包括最新添加的CephFS
  • 兼容性:您可以使用Ceph 存储对外提供最兼容Amazon Web Services(AWS)S3的对象存储。
  • 精简配置模式:分配存储空间时,只是虚拟分配容量,在跟进使用情况占用实际磁盘空间。这种模式提供了更多的灵活性和磁盘空间利用率。
  • 副本:在Ceph Storage中,所有存储的数据都会自动从一个节点复制到多个其他节点。默认任何时间群集中的都有三份数据。
  • 自我修复:Ceph Monitors会不断监控你的数据集。一旦出现一个副本丢失,Ceph会自动生成一个新副本,以确保始终有三份副本。
  • 高可用:在Ceph Storage中,所有存储的数据会自动从一个节点复制到多个其他的节点。这意味着,任意节点中的数据集被破坏或被意外删除,在其他节点上都有超过两个以上副本可用,保证您的数据具有很高的可用性。
  • Ceph很强大:您的集群可以用于任何场景。无论您希望存储非结构化数据或为数据提供块存储或提供文件系统,或者希望您的应用程序直接通过librados使用您的存储,而这些都已经集成在一个Ceph平台上了。
  • 可伸缩性:Ceph Works 可以在集群中随时增加,从而满足将来的规模需求。

Ceph最适合用于块存储,大数据或直接与librados通信的任何其他应用程序。 这一切都会顺利运行的非常好。 更多Ceph的信息可以参见[Ceph文档](http://docs.ceph.com/)

2. MooseFS

MooseFS是波兰公司Gemius SA公司在12年前推出的,是大数据存储行业中的突破性概念。 它使您可以使用负担得起的商用硬件将数据存储和数据处理结合在一个单元中。

MooseFS特性

  • 冗余:所有系统组件都是冗余的,如果发生故障,会触发自动故障转移机制,这些对用户是透明的。
  • 节点上的计算:通过利用空闲的CPU和内存资源,支持在数据节点上调度计算,可以降低系统的总体拥有成本。
  • 原子快照:在任何特定时间点配置文件系统都是瞬间完成且不间断。 此特性非常适合用于在线备份的解决方案。
  • 分层存储:将不同类别的数据分配给各种类型的存储介质,以降低总存储成本。 可以将热数据存储在快速的SSD磁盘上,而将不经常使用的数据转移到更便宜,更慢的机械硬盘驱动器上。
  • 本地客户端:通过专门为Linux,FreeBSD和MacOS系统设计的专用客户端(安装)组件来提高性能。
  • 全局回收站::一个虚拟的全局空间,用于记录删除对象的,和每个文件和目录的配置。 借助这个有利的特性,可以轻松恢复意外删除的数据
  • 配额限制:系统管理员可以灵活地设置限制,以限制每个目录的数据存储容量。
  • 滚动升级:能够一次执行一个节点的升级,硬件替换和添加,而不会中断服务。 此功能使您可以在不停机的情况下保持硬件平台的最新状态。
  • 快速磁盘恢复:万一硬盘或硬件出现故障,系统会立即启动从冗余副本到系统内其他可用存储资源的并行数据复制。 此过程比传统的磁盘重建方法快得多。
  • 并行性:在执行的并行线程中执行所有I / O操作,以提供高性能的读/写操作。
  • 管理界面:提供丰富的管理工具,例如基于命令行和基于Web的界面

有关MooseFS的更多信息,请参见https://moosefs.com/

3. GlusterFS

Gluster是一个免费的开源可扩展网络文件系统。 使用通用的现成硬件,您可以为媒体流,数据分析以及其他数据和带宽密集型任务创建大型的分布式存储解决方案。 基于GlusterFS的横向扩展存储系统适用于非结构化数据,例如文档,图像,音频和视频文件以及日志文件。 通常,分布式文件系统依赖于元数据服务器,但是Gluster不再使用元数据服务器。 元数据服务器是单点故障,并且可能是扩展的瓶颈。 相反,Gluster使用哈希机制来查找数据。

Gluster特性

  • 可扩展性:可扩展的存储系统,可提供弹性和配额
  • 快照:卷和文件级快照都支持,用户可以直接发起快照请求,这意味着用户不必费心管理员即可创建快照
  • 归档:只读卷和一次写入多次读(WORM)卷都支持归档。
  • 为了获得更好的性能,Gluster会对readdir()的数据,元数据和目录条目进行缓存。
  • 集成:Gluster与oVirt虚拟化管理器以及用于服务器的Nagios监控器可以集成在一起。
  • 大数据:对于那些希望使用Gluster文件系统中的数据进行数据分析的人,提供了Hadoop分布式文件系统(HDFS)支持。
  • libgfapi:应用程序可以绕过其他访问方式,直接使用libgfapi与Gluster对话。这对于上下文切换或内核空间复制敏感的工作负载很有用

有关Gluster的其他详细信息,请参见[Gluster Docs](https://docs.gluster.org/)。

4. HDFS

Hadoop分布式文件系统(HDFS)是一个分布式文件系统,它允许快速同时存储和检索多个文件。 它可以方便地在商业硬件上运行,并提供处理非结构化数据的功能。 它应用程序提供数据的高吞吐量访问,并且适用于具有大数据集的应用程序。 HDFS与Hadoop YARN,Hadoop MapReduce和Hadoop Common一起是Hadoop的主要组成部分。 它是Hadoop框架的基本组件之一。

HDFS特性

  • 数据复制:HDFS被设计用于在大型群集中的计算机之间可靠地存储非常大的文件。 它将每个文件分块进行存储; 除了这个文件最后一个块以外的所有块都具有相同的大小。 这些块将通过复制的方式进行容错。
  • 文件命名: HDFS支持传统的分层方式组织文件。 用户或应用程序可以创建目录并将文件存储在这些目录中。 文件系统名称空间的层次结构与大多数其他现有文件系统相似。 可以创建和删除文件,将文件从一个目录移动到另一个目录或重命名文件。 HDFS尚未实现用户配额。 HDFS不支持硬链接或软链接。
  • 健壮: HDFS的主要目标是即使在出现故障的情况下也能可靠地存储数据。 三种常见的故障类型是NameNode故障,DataNode故障和网络分区。
  • 适用性:应用程序访问HDFS支持多种不同的方式。 HDFS本身就为应用程序提供了Java API, 同时也提供此Java API的C语言包装器。 另外,HTTP浏览器也可用于浏览HDFS实例的文件。 通过WebDAV协议公开HDFS的工作正在进行中。
  • 可扩展性:HDFS被设计用于在大型群集中的计算机之间可靠地存储非常大的文件。 可以根据当时的需求增加或减少群集。
  • 高可用性:HDFS被设计用于在大型集群中的机器之间可靠地存储非常大的文件。 它将每个文件存储为一系列块; 文件中除最后一块以外的所有块都具有相同的大小。 复制文件的块是为了容错,因此在发生任何故障的情况下数据的可用性很高。

有关HDFS的更多信息请参见https://hadoop.apache.org/docs/r1.2.1/hdfs_design.html

5. DRDB

DRBD是一个分布式冗余存储系统,由内核驱动程序,多个用户空间管理应用程序和一些Shell脚本实现。 分布式复制块设备(一个逻辑卷中的逻辑块设备)在多个主机之间镜像块设备,以实现高可用集群。 基于DRBD的群集通常用于为文件服务器,关系数据库(例如MySQL)和许多其他工作负载提供同步复制和高可用性。 DRBD实质上可以作为共享磁盘文件系统,额外的逻辑块设备(例如LVM),常规文件系统或需要直接访问块设备的任何应用程序的基础。

DRDB特性

  • DRDB具有共享秘密身份验证功能;
  • DRBD与LVM(Logical Volume Manager)兼容;
  • 支持与heartbeat/pacemaker 集成;
  • 支持读取请求的负载平衡;
  • 支持出现故障时自动检测最新数据
  • Delta重新同步
  • 支持在线调整DRBD配置,而不会丢失数据
  • 支持自动带宽管理
  • 支持自定义的调整参数
  • 支持相互在线数据验证
  • 高可用性:块设备在多个主机之间镜像块设备,以实现高度可用的群集。
  • 支持与Xen等虚拟化解决方案集成,并且可以在Linux LVM 之上和之下使用

有关DRBD更多的信息请参见https://docs.linbit.com/


结论

通过对于上面这些存储系统的功能和特性的介绍使我们对其有了初步的认识。 有关它们的更多详细信息,请参见各自下方引用的各个网页。 非常感谢您阅读,希望对您有所帮助。

原文链接:https://computingforgeeks.com/ceph-vs-glusterfs-vs-moosefs-vs-hdfs-vs-drbd/


翻译:杨俊俊

相关链接:https://blog.tyun.cn

相关推荐

得物可观测平台架构升级:基于GreptimeDB的全新监控体系实践

一、摘要在前端可观测分析场景中,需要实时观测并处理多地、多环境的运行情况,以保障Web应用和移动端的可用性与性能。传统方案往往依赖代理Agent→消息队列→流计算引擎→OLAP存储...

warm-flow新春版:网关直连和流程图重构

本期主要解决了网关直连和流程图重构,可以自此之后可支持各种复杂的网关混合、多网关直连使用。-新增Ruoyi-Vue-Plus优秀开源集成案例更新日志[feat]导入、导出和保存等新增json格式支持...

扣子空间体验报告

在数字化时代,智能工具的应用正不断拓展到我们工作和生活的各个角落。从任务规划到项目执行,再到任务管理,作者深入探讨了这款工具在不同场景下的表现和潜力。通过具体的应用实例,文章展示了扣子空间如何帮助用户...

spider-flow:开源的可视化方式定义爬虫方案

spider-flow简介spider-flow是一个爬虫平台,以可视化推拽方式定义爬取流程,无需代码即可实现一个爬虫服务。spider-flow特性支持css选择器、正则提取支持JSON/XML格式...

solon-flow 你好世界!

solon-flow是一个基础级的流处理引擎(可用于业务规则、决策处理、计算编排、流程审批等......)。提供有“开放式”驱动定制支持,像jdbc有mysql或pgsql等驱动,可...

新一代开源爬虫平台:SpiderFlow

SpiderFlow:新一代爬虫平台,以图形化方式定义爬虫流程,不写代码即可完成爬虫。-精选真开源,释放新价值。概览Spider-Flow是一个开源的、面向所有用户的Web端爬虫构建平台,它使用Ja...

通过 SQL 训练机器学习模型的引擎

关注薪资待遇的同学应该知道,机器学习相关的岗位工资普遍偏高啊。同时随着各种通用机器学习框架的出现,机器学习的门槛也在逐渐降低,训练一个简单的机器学习模型变得不那么难。但是不得不承认对于一些数据相关的工...

鼠须管输入法rime for Mac

鼠须管输入法forMac是一款十分新颖的跨平台输入法软件,全名是中州韵输入法引擎,鼠须管输入法mac版不仅仅是一个输入法,而是一个输入法算法框架。Rime的基础架构十分精良,一套算法支持了拼音、...

Go语言 1.20 版本正式发布:新版详细介绍

Go1.20简介最新的Go版本1.20在Go1.19发布六个月后发布。它的大部分更改都在工具链、运行时和库的实现中。一如既往,该版本保持了Go1的兼容性承诺。我们期望几乎所...

iOS 10平台SpriteKit新特性之Tile Maps(上)

简介苹果公司在WWDC2016大会上向人们展示了一大批新的好东西。其中之一就是SpriteKitTileEditor。这款工具易于上手,而且看起来速度特别快。在本教程中,你将了解关于TileE...

程序员简历例句—范例Java、Python、C++模板

个人简介通用简介:有良好的代码风格,通过添加注释提高代码可读性,注重代码质量,研读过XXX,XXX等多个开源项目源码从而学习增强代码的健壮性与扩展性。具备良好的代码编程习惯及文档编写能力,参与多个高...

Telerik UI for iOS Q3 2015正式发布

近日,TelerikUIforiOS正式发布了Q32015。新版本新增对XCode7、Swift2.0和iOS9的支持,同时还新增了对数轴、不连续的日期时间轴等;改进TKDataPoin...

ios使用ijkplayer+nginx进行视频直播

上两节,我们讲到使用nginx和ngixn的rtmp模块搭建直播的服务器,接着我们讲解了在Android使用ijkplayer来作为我们的视频直播播放器,整个过程中,需要注意的就是ijlplayer编...

IOS技术分享|iOS快速生成开发文档(一)

前言对于开发人员而言,文档的作用不言而喻。文档不仅可以提高软件开发效率,还能便于以后的软件开发、使用和维护。本文主要讲述Objective-C快速生成开发文档工具appledoc。简介apple...

macOS下配置VS Code C++开发环境

本文介绍在苹果macOS操作系统下,配置VisualStudioCode的C/C++开发环境的过程,本环境使用Clang/LLVM编译器和调试器。一、前置条件本文默认前置条件是,您的开发设备已...