##引言
在当前这个云计算蓬勃发展的时代,对于存储系统的思考热度也在逐渐升高。在众多的工具和存储系统中,如何进行选择,就变成了一个非常困惑人的问题。本篇将介绍常见的存储系统,希望可以解答大家这块的困惑。本手册将深度比较Ceph ,GlusterFS,MooseFS , HDFS 和 DRBD。
1. Ceph
Ceph是一个强大的存储系统,它在同一个系统中同时提供了对象,块(通过RBD)和文件存储。无论您是希望在虚拟机中使用块设备,还是将非结构化数据存储在对象存储中,Ceph都可以在一个平台上提供所有功能,并且还能获得出色的灵活性。 Ceph中的所有内容都以对象的形式存储,不管原始的数据类型是什么,RADOS(reliable autonomic distributed object store)都会把它们当做对象来进行存储。
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/
结论
通过对于上面这些存储系统的功能和特性的介绍使我们对其有了初步的认识。 有关它们的更多详细信息,请参见各自下方引用的各个网页。 非常感谢您阅读,希望对您有所帮助。
作者:杨俊俊