关于分布式文件系统_常用分布式文件系统比对 这个很多人还不知道,今天小编来为大家解答以上的问题,现在让我们一起来看看吧!
【资料图】
分布式文件系统(常见分布式文件系统的比较)
分布式文件系统(DFS)是指文件系统管理的物理存储资源不一定直接连接到本地节点,而是通过计算机 *** 连接到节点(可以简单理解为一台计算机);或者由几个不同的逻辑磁盘分区或卷标组合而成的完整的层次文件系统。它为分布在 *** 上任何地方的DFS资源提供了一个逻辑树文件系统结构,使用户更容易访问分布在 *** 上的共享文件。
分布式文件系统
通用文件系统
存储数据的方式
数据以分散的方式存储在多个服务器上。
将所有数据存储在一台服务器中。
特性
分布式 *** 存储系统采用可扩展的体系结构,使用多台服务器分担负载,使用位置服务器定位和存储信息,不仅提高了系统的可靠性、可用性和访问效率,而且易于扩展,避免了单点故障。
传统的 *** 存储系统使用集中式服务器来存储所有数据。在一定程度上,服务器将成为系统性能的瓶颈和可靠性、安全性的焦点,无法满足大规模存储应用的需求。
目前有很多 *** 服务可用于文件存储,如阿里云OSS、腾讯云、百度云等。对于中小型企业来说,如果不选择存储在云上,或者为了帮助取消合同成本,可以部署自己的文件系统。
本文主要介绍如何根据需求筛选常见的分布式文件系统。
目前,您正在寻找的分布式文件系统至少满足以下条件:
经常读写,从不修改,基本从不删除。
可以存储100MB以上的图片、音频、视频等文件。
非常稳定、高度可用、可扩展、可操作的部署,
好用,易维护,相对活跃的社区。
常用的分布式文件系统有GFS、TFS、HDFS、MooseFs、FastDfs、MogileFs、GridFs、MinIO、SeaweedFS、GlusterFS、Ceph、GlusterFS等。
1、GFS(谷歌文件系统)
Google为满足公司需求而开发的基于Linux的可扩展分布式文件系统,用于大数据的大规模、分布式访问和应用,成本较低。适用于廉价的普通硬件,但不是开源的,所以暂时不考虑。
2、TFS( *** 文件系统)
阿里巴巴开发了一个可扩展、高可用、高性能、面向互联网服务的开源分布式文件系统,以满足 *** 对小文件存储的需求。主要针对海量非结构化数据。它建立在普通的Linux机器集群上,可以对外提供高可靠性和高并发的存储访问。为TFS *** 提供海量小文件存储,通常文件大小小于1M,暂时不考虑这个。
3、HDFS(Hadoop分布式文件系统)
Hadoop文件系统适合在通用硬件上进行分布式存储和计算,因为它具有高容错性和可扩展性的特点,可以部署在廉价的机器上,适合处理大数据,在离线批量处理大数据方面具有先天优势。
Hadoop是一个广泛使用的文本搜索库,由Apache Lucene的创始人Doug Cutting开发。它起源于Apache Nutch,是一个开源的web搜索引擎,也是Luene项目本身的一部分。Aapche Hadoop架构是MapReduce算法的开源应用,是Google打造帝国的重要基石。
4、穆塞夫斯
MooseFS是来自波兰的开源分布式POSIX文件系统,具有冗余和容错功能。它还引用了GFS架构,并实现了大多数POSIX语义和API。它支持通过FUSE挂载文件。同时,它提供的web管理界面非常方便查看当前文件存储状态,对主服务器有单点依赖。它是用perl写的,用于中大型文件应用,但是性能比较差,因为可能实时访问,所以暂时不考虑。
注:POSIX代表UNIX的可移植操作系统接口(简称POSIX),POSIX标准定义了操作系统应该为应用提供的接口标准。
5、FastDFS
*** 的余庆先生开发的开源分布式文件系统。它管理文件,其功能包括:文件存储、文件同步、文件访问(文件上传和文件下载)等。解决了大容量存储和负载均衡问题。适合文件的在线服务,如相册网站、视频网站等。FastDFS是为互联网量身定制的,充分考虑冗余备份、负载均衡、线性扩容等机制,注重高可用、高性能等指标。FastDFS用于构建一组高性能文件服务器集群,提供文件上传下载等服务。但是FastDFS的部署有点麻烦,它的SKD不完整。
6、MogileFS
MogileFS是一个高效开源的文件自动备份组件,由Six Apart开发,广泛应用于包括LiveJournal在内的web2.0网站。支持多节点冗余,实现文件自动复制。没有RAID,应用层可以直接实现RAID,不需要共享任何东西。通过集群接口提供的服务在应用层工作,没有特殊的组件要求。使用HTTP进行通信。
使用MogileFS的公司在国内比较知名,比如yupoo优派、digg、土豆、豆瓣、1号店、大众点评、搜狗、安居客等等。基本上很多网站都是30T以上的图片容量。
7、GridFS
MongoDB是一个著名的NoSql数据库。GridFS是MongoDB的内置函数。它用于存储和恢复文件(如图片、音频、视频等。)超过16M(BSON文件限制)。它是文件存储的一种方式,但是存储在MonoDB的 *** 中。它可以直接利用已经建立的复制或碎片机制,所以文件存储很容易恢复和扩展,GridFS不会产生磁盘碎片。
8、迷你欧
MinIO是基于Apache License v2.0开源协议的对象存储服务。兼容亚马逊S3云存储服务接口,非常适合存储大容量非结构化数据,如图片、视频、日志文件、备份数据、容器/虚拟机镜像等。,而目标文件可以是任何大小,从几kb到更大5T。它也是一个非常轻量级的服务,可以很容易地与其他应用程序结合。MinIO的特点是简单、轻量、开发者友好、学习成本低、安装操作简单、开箱即用。
MinIO是apache项目,性能高,100% s3兼容,学习成本低,安装操作简单,开箱即用。
9、海草
SeaweedFS是一个基于go语言开发的高度可扩展的开源分布式存储系统,它可以存储数十亿个文件(最终受您硬盘大小的限制),速度高,内存占用小。比fastDFS好用多了,而且自带Rest API。对于中小文件,效率很高,但是单个卷的更大容量被程序限制在30G。建议将文件存储在100MB以内。
10、Ceph
Ceph是红帽旗下成熟的分布式文件系统,也是具有企业级功能的对象存储生态环境。该系统具有高性能、高可用性、高可扩展性和实时存储的特点。ceph虽然功能强大,但是学习成本高,安装操作复杂。Ceph是用C++写的,存储容量可以轻松达到PB级别。
11、GlusterFS
Glufs是美国GlusterFS公司开发的POSIX分布式文件系统(带有GPL的开源)。它主要用于集群系统,具有高可扩展性、高可用性、高性能和横向可扩展性的特点。而且它没有元数据服务器设计,使得整个服务没有单点故障的隐患。这个系统主要是为中大型文件设计的,存储容量可以轻松达到PB。它有一些缺点,如影响许多服务器的扩展和收缩,遍历目录中的文件很耗时,小文件的性能很差。
常见的文件系统有Ceph、MooseFS和MinIO;
适合存储中小型文件的文件系统有:Ceph、FastDFS、MinIO、SeaweedFS;
适合大文件存储的文件系统有HDFS、MinIO、Ceph、GridFS;
轻量级文件系统有:FastDFS、MinIO、SeaweedFS;
易于使用、用户主动的文件系统有:HDFS、FastDFS;
综上所述,ceph目前还不成熟稳定,官方已经明确指出不应该在生产环境中使用Ceph,所以暂不考虑;
初步筛选后剩下的文件系统是HDFS、FastDFS、MinIO和GridFS。
MinIO:简单易用,适合存储大容量非结构化数据,基本满足目前的业务需求,但目前没有中文社区。
FastDFS:功能简化,支持在线扩容和冗余备份,部分支持跨集群同步,无单点故障,性能良好。不支持FUSE mount和POSIX提供程序。
HDFS:适合批量数据处理。它可以部署在廉价的机器上。可以部署在便宜的机器上,但是不适合大量的小文件。通过牺牲响应延迟,它可以获得高吞吐量。
GridFS:它可以简化技术栈。如果已经使用了MongoDB,那么使用GridFS时就不需要其他独立的存储工具了(可惜我们还没有引入MongoDB),但是性能没有直接访问文件系统快。无法修改文档。如果要修改GridFS中的文档,只能先删除再添加(对我们目前的业务没有影响)
目前推荐的选择参考是MinIO或者FastDFS,
如果想减少技术栈,可以考虑HDFS或者GridFS,
如果你不在乎响应时间,你可以考虑HDFS。
相关文章:高性能对象存储的MinIO学习