Ceph、GlusterFS等五大常见存储系统PK
bigegpt 2025-01-11 10:31 14 浏览
##引言
在当前这个云计算蓬勃发展的时代,对于存储系统的思考热度也在逐渐升高。在众多的工具和存储系统中,如何进行选择,就变成了一个非常困惑人的问题。本篇将介绍常见的存储系统,希望可以解答大家这块的困惑。本手册将深度比较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
- 上一篇:Ceph分布式存储底层实现原理
- 下一篇:最详细得ceph 部署手册
相关推荐
- 当Frida来“敲”门(frida是什么)
-
0x1渗透测试瓶颈目前,碰到越来越多的大客户都会将核心资产业务集中在统一的APP上,或者对自己比较重要的APP,如自己的主业务,办公APP进行加壳,流量加密,投入了很多精力在移动端的防护上。而现在挖...
- 服务端性能测试实战3-性能测试脚本开发
-
前言在前面的两篇文章中,我们分别介绍了性能测试的理论知识以及性能测试计划制定,本篇文章将重点介绍性能测试脚本开发。脚本开发将分为两个阶段:阶段一:了解各个接口的入参、出参,使用Python代码模拟前端...
- Springboot整合Apache Ftpserver拓展功能及业务讲解(三)
-
今日分享每天分享技术实战干货,技术在于积累和收藏,希望可以帮助到您,同时也希望获得您的支持和关注。架构开源地址:https://gitee.com/msxyspringboot整合Ftpserver参...
- Linux和Windows下:Python Crypto模块安装方式区别
-
一、Linux环境下:fromCrypto.SignatureimportPKCS1_v1_5如果导包报错:ImportError:Nomodulenamed'Crypt...
- Python 3 加密简介(python des加密解密)
-
Python3的标准库中是没多少用来解决加密的,不过却有用于处理哈希的库。在这里我们会对其进行一个简单的介绍,但重点会放在两个第三方的软件包:PyCrypto和cryptography上,我...
- 怎样从零开始编译一个魔兽世界开源服务端Windows
-
第二章:编译和安装我是艾西,上期我们讲述到编译一个魔兽世界开源服务端环境准备,那么今天跟大家聊聊怎么编译和安装我们直接进入正题(上一章没有看到的小伙伴可以点我主页查看)编译服务端:在D盘新建一个文件夹...
- 附1-Conda部署安装及基本使用(conda安装教程)
-
Windows环境安装安装介质下载下载地址:https://www.anaconda.com/products/individual安装Anaconda安装时,选择自定义安装,选择自定义安装路径:配置...
- 如何配置全世界最小的 MySQL 服务器
-
配置全世界最小的MySQL服务器——如何在一块IntelEdison为控制板上安装一个MySQL服务器。介绍在我最近的一篇博文中,物联网,消息以及MySQL,我展示了如果Partic...
- 如何使用Github Action来自动化编译PolarDB-PG数据库
-
随着PolarDB在国产数据库领域荣膺桂冠并持续获得广泛认可,越来越多的学生和技术爱好者开始关注并涉足这款由阿里巴巴集团倾力打造且性能卓越的关系型云原生数据库。有很多同学想要上手尝试,却卡在了编译数据...
- 面向NDK开发者的Android 7.0变更(ndk android.mk)
-
订阅Google官方微信公众号:谷歌开发者。与谷歌一起创造未来!受Android平台其他改进的影响,为了方便加载本机代码,AndroidM和N中的动态链接器对编写整洁且跨平台兼容的本机...
- 信创改造--人大金仓(Kingbase)数据库安装、备份恢复的问题纪要
-
问题一:在安装KingbaseES时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。在Linux系统中,需要以非root用户执行安装程序,且该用户要有标准的home目录,您可...
- OpenSSH 安全漏洞,修补操作一手掌握
-
1.漏洞概述近日,国家信息安全漏洞库(CNNVD)收到关于OpenSSH安全漏洞(CNNVD-202407-017、CVE-2024-6387)情况的报送。攻击者可以利用该漏洞在无需认证的情况下,通...
- Linux:lsof命令详解(linux lsof命令详解)
-
介绍欢迎来到这篇博客。在这篇博客中,我们将学习Unix/Linux系统上的lsof命令行工具。命令行工具是您使用CLI(命令行界面)而不是GUI(图形用户界面)运行的程序或工具。lsoflsof代表&...
- 幻隐说固态第一期:固态硬盘接口类别
-
前排声明所有信息来源于网络收集,如有错误请评论区指出更正。废话不多说,目前固态硬盘接口按速度由慢到快分有这几类:SATA、mSATA、SATAExpress、PCI-E、m.2、u.2。下面我们来...
- 新品轰炸 影驰SSD多款产品登Computex
-
分享泡泡网SSD固态硬盘频道6月6日台北电脑展作为全球第二、亚洲最大的3C/IT产业链专业展,吸引了众多IT厂商和全球各地媒体的热烈关注,全球存储新势力—影驰,也积极参与其中,为广大玩家朋友带来了...
- 一周热门
- 最近发表
-
- 当Frida来“敲”门(frida是什么)
- 服务端性能测试实战3-性能测试脚本开发
- Springboot整合Apache Ftpserver拓展功能及业务讲解(三)
- Linux和Windows下:Python Crypto模块安装方式区别
- Python 3 加密简介(python des加密解密)
- 怎样从零开始编译一个魔兽世界开源服务端Windows
- 附1-Conda部署安装及基本使用(conda安装教程)
- 如何配置全世界最小的 MySQL 服务器
- 如何使用Github Action来自动化编译PolarDB-PG数据库
- 面向NDK开发者的Android 7.0变更(ndk android.mk)
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- resize函数 (64)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- mybatis大于等于 (64)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- libcrypto.so (74)
- logstashinput (65)
- hadoop端口 (65)
- vue阻止冒泡 (67)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)