分布式文件系统是什么? 为什么要使用分布式文件系统? 如何找到适合自己的分布式文件系统? 本文主要是介绍分布式文件系统的选型,关于定义和为何使用,请查询相关资料。 目前要找的文件系统至少满足以下条件: 常用分布式文件系统有:GFS、TFS、BFS、HDFS、Ceph、MinIO、MogileFS、MooseFS、FastDFS、GridFS等。 1.GFS(Google File System) 2.TFS是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,主要针对海量的非结构化数据,可为外部提供高可靠和高并发的存储访问。TFS为淘宝提供海量小文件存储,通常文件大小不超过1M,所以我们暂时也不考虑。 3.BFS是一个高吞吐量、低延迟、高容错性、高效维护简单的小文件系统,是基于facebook haystack 用golang实现。 bfs 更适合图片存储,小文件存储所以暂时不考虑。 4.MooseFS 参考链接: 5.MogileFS 6.HDFS(Hadoop Distributed File System) 7.FastDFS 8.Minio 参考链接: 9.Ceph 10.GridFS 参考链接: 适合做通用文件系统的有:Ceph、MooseFS、MinIO; MinIO:上手简单,适合存储大容量非结构化的数据, 基本满足当前业务需求但是目前没有中文社区。 目前提供的建议选型参考为FastDFS或MinIO, END
分布式文件系统选型小记
Q&A
需求说明
常用分布文件系统概述
第一轮筛选
Google公司为了满足本公司需求而开发的基于Linux的专有分布式文件系统。但是Google并没开源,我们暂时不考虑。
支持FUSE,相对比较轻量级,对master服务器有单点依赖,用perl编写,性能相对较差,由于可能会实时访问所以暂时也不考虑。
https://moosefs.com
https://www.cnblogs.com/hjc4025/p/9956988.html
由memcahed的开发公司danga一款perl开发的产品,目前国内使用mogielFS的有图片托管网站yupoo等。MogileFS是一套高效的文件自动备份组件,由Six Apart开发,广泛应用在包括LiveJournal等web2.0站点上。
Hadoop 实现了一个分布式文件系统,简称HDFS。Hadoop是Apache Lucene创始人Doug Cutting开发的使用广泛的文本搜索库。它起源于Apache Nutch,后者是一个开源的网络搜索引擎,本身也是Luene项目的一部分。Aapche Hadoop架构是MapReduce算法的一种开源应用,是Google开创其帝国的重要基石。
由淘宝的余庆先生所开发的一个轻量级、高性能、纯C语言开发的开源分布式文件系统。它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。适合以文件为载体的在线服务,如视频网站等等。
是一个基于Go语言的对象存储服务。它实现了大部分亚马逊S3云存储服务接口,可以看做是是S3的开源版本,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。区别于分布式存储系统,minio的特色在于简单、轻量级,对开发者友好,认为存储应该是一个开发问题而不是一个运维问题。
https://docs.min.io/cn
https://blog.csdn.net/tianshan2010
是加州大学圣克鲁兹分校的Sage Weil攻读博士时开发的分布式文件系统。
由于 ceph 使用 btrfs 文件系统, 而btrfs 文件系统需要 Linux 2.6.34 以上的内核才支持。ceph目前还不足够成熟,它基于的btrfs本身也不成熟,它的官方网站上也明确指出不要把ceph用在生产环境中。
MongoDB是一种知名的NoSql数据库,GridFS是MongoDB的一个内置功能,它提供一组文件操作的API以利用MongoDB存储文件,GridFS的基本原理是将文件保存在两个Collection中,一个保存文件索引,一个保存文件内容,文件内容按一定大小分成若干块,每一块存在一个Document中,这种方法不仅提供了文件存储,还提供了对文件相关的一些附加属性(比如MD5值,文件名等等)的存储。
https://docs.mongodb.com/manual/core/gridfs/
https://www.jianshu.com/p/d135aa7dfe9c几种备选分布式文件系统比较
存储系统
HDFS
FastDFS
MinIO
Ceph
GridFS
开发语言
Java
C
Go
C++
C++
开源协议
Apache
GPL V3
Apache V2
LGPL
存储方式
文件(偏大)
文件/快
文件
对象/文件块
块/文档
在线扩容/冗余备份/单点故障
支持/支持/存在
支持/支持/不存在
暂时不支持/支持/不存在
支持/支持/不存在
支持/支持/不存在
易用性
安装简单,官方文档专业化
安装简单,社区相对活跃
安装简单,无中文社区
安装简单,官方文档专业化
安装简单
优点
大数据批量读写,吞吐量高
支持主从文件,支持自定义扩展名;主备Tracker服务,增强系统的可用性
简约的对象存储服务器系统,这是一种轻量级、高度并发的解决方案
分布式,没有单点依赖,用C编写,性能较好
可以访问部分文件,而不用向内存中加载全部文件,从而保持高性能;文件和元数据自动同步
分类筛选
第二轮筛选
适合做中小文件存储的文件系统有:Ceph、FastDFS、MinIO;
适合做大文件存储的文件系统有:HDFS、MinIO、Ceph、GridFS;
轻量级文件系统有:FastDFS、MinIO;
简单易用,用户活跃的文件系统有:HDFS、FastDFS;
综上:Ceph目前不够成熟稳定,官方也明确指出不要把ceph用在生产环境中,暂不考虑;
经初步筛选剩下的文件系统有:HDFS、FastDFS、MinIO、GridFS。第三轮步筛选
FastDFS:功能精简,支持在线扩容、冗余备份,部分支持跨集群同步,不存在单点故障,性能较好。但是不支持FUSE挂载和POSIX访问接口。
HDFS:适合批量数据处理.可以部署在廉价的机器上。可以部署在廉价的机器上,但是不适合大量小文件,通过牺牲响应延时来换取高的吞吐量。
GridFS:能够简化技术栈,如果已经使用了MongoDB,那么使用GridFS,就不需要其它独
立的存储工具了(很遗憾我们当前还没有引入MongoDB),不过性能不如直接访问文件系统快。无法修改文档。如果要修改GridFS里面的文档,只能是先删除再添加(对我们当前业务没有影响)综述
如果想减少技术栈的话可以考虑HDFS或GridFS,
如果不在乎响应时间可以考虑HDFS。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算