盘点分布式文件存储系统

一文看懂分布式存储架构 目录一、集中存储结构二、分布式存储1 、分布式存储的兴起2 、分布式存储的重要性3 、分布式存储的种类和比较三、分布式理论浅析1 、一致性和可用性2 、数据分布3 、复制4 、分布式协议5、跨机房部署四、分布式文件系统1、 Google 文件系统( GFS )2、 Taobao 文件系统( TFS )3、 Fackbook Haystack 文件系统4、 CDN 内容分发网络五、分布式键值系统1、 Amazon Dynamo2、 Taobao Tiar3、 ETCD4 、产品选型比较( Etcd , Zoo 阅读详情

在项目的数据存储中,结构化数据通常采用关系型数据库,非结构化数据(文件)的存储就有很多种方式,服务器本地存储、Nas挂载、ftp等等,今天就来盘点一下,分布式文件存储系统。

一、分布式存储简介

1、什么是分布式存储

在开始介绍分布式存储之前,先了解一下,非分布式的存储方案。

在单机时代,将文件直接存储在服务部署的服务器上——

  • 直连存储(DAS):存储和数据直连,拓展性、灵活性差。

为了扩展,将文件和服务分离,通过网络连接——

  • 中心化存储(NAS、SAN):设备类型丰富,通过网络互连,具有一定的拓展性,但是受到控制器能力限制,拓展能力有限。同时,设备到了生命周期要进行更换,数据迁移需要耗费大量的时间和精力。

DAS、SAN,还是NAS? 中小企业数据存储探究

分布式存储:通过网络使用企业中的每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在企业的各个角落。

图5 分布式存储示意图

2、分布式存储的优势

可扩展:分布式存储系统可以扩展到数百甚至数千个这样的集群大小,并且系统的整体性能可以线性增长。

高可用性:在分布式文件系统中,高可用性包含两层,一是整个文件系统的可用性,二是数据的完整和一致性

低成本:分布式存储系统的自动容错和自动负载平衡允许在成本较低服务器上构建分布式存储系统。此外,线性可扩展性还能够增加和降低服务器的成本。

弹性存储: 可以根据业务需要灵活地增加或缩减数据存储以及增删存储池中的资源,而不需要中断系统运行

二、主流分布式文件存储系统

目前主流的分布式文件系统有:GFS、HDFS、Ceph、Lustre、MogileFS、MooseFS、FastDFS、TFS、GridFS等。

1、GFS(Google File System)

​ Google公司为了满足本公司需求而开发的基于Linux的专有分布式文件系统。尽管Google公布了该系统的一些技术细节,但Google并没有将该系统的软件部分作为开源软件发布。

2、HDFS(Hadoop Distributed File System)

​ HDFS(Hadoop Distributed File System)是 Hadoop 项目的一个子项目。是 Hadoop 的核心组件之一, Hadoop 非常适于存储大型数据 (比如 TB 和 PB),其就是使用 HDFS 作为存储系统. HDFS 使用多台计算机存储文件,并且提供统一的访问接口,像是访问一个普通文件系统一样使用分布式文件系统。

HDFS架构

3、TFS(Taobao FileSystem)

​ TFS是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,主要针对海量的非结构化数据,它构筑在普通的Linux机器 集群上,可为外部提供高可靠和高并发的存储访问。TFS为淘宝提供海量小文件存储,通常文件大小不超过1M,满足了淘宝对小文件存储的需求,被广泛地应用在淘宝各项应用中。它采用了HA架构和平滑扩容,保证了整个文件系统的可用性和扩展性。同时扁平化的数据组织结构,可将文件名映射到文件的物理地址,简化 了文件的访问流程,一定程度上为TFS提供了良好的读写性能。

4、Lustre

Lustre是一个大规模的、安全可靠的,具备高可用性的集群文件系统,它是由SUN公司开发和维护的。该项目主要的目的就是开发下一代的集群文件系统,可以支持超过10000个节点,数以PB的数据量存储系统。目前Lustre已经运用在一些领域,例如HP SFS产品等。

5、 MooseFS

MooseFS是一款相对小众的分布式文件系统,不需要修改上层应用接口即可直接使用,支持FUSE的操作方式,部署简单并提供Web界面的方式进行管理与监控,同其他分布式操作系统一样,支持在线扩容,并进行横向扩展。MooseFS还具有可找回误操作删除的文件,相当于一个回收站,方便业务进行定制;同时MooseFS对于海量小文件的读写要比大文件读写的效率高的多。

但MooseFS的缺点同样明显,MFS的主备架构情况类似于MySQL的主从复制,从可以扩展,主却不容易扩展。短期的对策就是按照业务来做切分,随着MFS体系架构中存储文件的总数上升,Master Server对内存的需求量会不断增大。并且对于其单点问题官方自带的是把数据信息从Master Server同步到Metalogger Server上,Master Server一旦出问题Metalogger Server可以恢复升级为Master Server,但是需要恢复时间。目前,也可以通过第三方的高可用方案(heartbeat+drbd+moosefs)来解决 Master Server 的单点问题。

6、MogileFS

由memcahed的开发公司danga一款perl开发的产品,目前国内使用mogielFS的有图片托管网站yupoo等。MogileFS是一套高效的文件自动备份组件,由Six Apart开发,广泛应用在包括LiveJournal等web2.0站点上。

7. FastDFS

是一款类似Google FS的开源分布式文件系统,是纯C语言开发的。FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

8、GlusterFS

开源分布式横向扩展文件系统,可以根据存储需求快速调配存储,内含丰富的自动故障转移功能,且摈弃集中元数据服务器的思想。适用于数据密集型任务的可扩展网络文件系统,具有可扩展性、高性能、高可用性等特点。gluster于2011年10月7日被Red Hat收购。

9、 GridFS

MongoDB是知名的NoSQL数据库,GridFS是MongoDB的一个内置功能,它提供一组文件操作的API以利用MongoDB存储文件,GridFS的基本原理是将文件保存在两个Collection中,一个保存文件索引,一个保存文件内容,文件内容按一定大小分成若干块,每一块存在一个Document中,这种方法不仅提供了文件存储,还提供了对文件相关的一些附加属性(比如MD5值,文件名等等)的存储。文件在GridFS中会按4MB为单位进行分块存储。

在这里插入图片描述

三、分布式文件系统的对比

1、整体对比

文件系统开发者开发语言开源协议易用性适用场景特性缺点
GFSGoogle不开源
HDFSApacheJavaApache安装简单,官方文档专业化存储非常大的文件大数据批量读写,吞吐量高;一次写入,多次读取,顺序读写难以满足毫秒级别的低延时数据访问;不支持多用户并发写相同文件;不适用于大量小文件
Ceph加州大学圣克鲁兹分校Sage WeilC++LGPL安装简单,官方文档专业化单集群的大中小文件分布式,没有单点依赖,用C编写,性能较好基于不成熟的btrfs,自身也不够成熟稳定,不推荐在生产环境使用
TFSAlibabaC++GPL V2安装复杂,官方文档少跨集群的小文件针对小文件量身定做,随机IO性能比较高;实现了软RAID,增强系统的并发处理能力及数据容错恢复能力;支持主备热倒换,提升系统的可用性;支持主从集群部署,从集群主要提供读/备功能不适合大文件的存储;不支持POSIX,通用性较低;不支持自定义目录结构与文件权限控制;通过API下载,存在单点的性能瓶颈;官方文档少,学习成本高
LustreSUNCGPL复杂,而且严重依赖内核,需要重新编译内核大文件读写企业级产品,非常庞大,对内核和ext3深度依赖
MooseFSCore Sp. z o.o.CGPL V3安装简单,官方文档多,且提供Web界面的方式进行管理与监控大量小文件读写比较轻量级,用perl编写,国内用的人比较多对master服务器有单点依赖,性能相对较差
MogileFSDanga InteractivePerlGPL主要用在web领域处理海量小图片key-value型元文件系统;效率相比mooseFS高很多不支持FUSE
FastDFS国内开发者余庆CGPL V3安装简单,社区相对活跃单集群的中小文件系统无需支持POSIX,降低了系统的复杂度,处理效率更高;实现了软RAID,增强系统的并发处理能力及数据容错恢复能力;支持主从文件,支持自定义扩展名;主备Tracker服务,增强系统的可用性不支持断点续传,不适合大文件存储;不支持POSIX,通用性较低;对跨公网的文件同步,存在较大延迟,需要应用做相应的容错策略;同步机制不支持文件正确性校验;通过API下载,存在单点的性能瓶颈
GlusterFSZ RESEARCHCGPL V3安装简单,官方文档专业化适合大文件,小文件性能还存在很大优化空间无元数据服务器,堆栈式架构(基本功能模块可以进行堆栈式组合,实现强大功能),具有线性横向扩展能力;比mooseFS庞大由于没有元数据服务器,因此增加了客户端的负载,占用相当的CPU和内存;但遍历文件目录时,则实现较为复杂和低效,需要搜索所有的存储节点,不建议使用较深的路径
GridFSMongoDBC++安装简单通常用来处理大文件(超过16M)可以访问部分文件,而不用向内存中加载全部文件,从而保持高性能;文件和元数据自动同步

2、 特性对比

文件系统数据存储方式集群节点通讯协议专用元数据存储点在线扩容冗余备份单点故障跨集群同步FUSE挂载访问接口
HDFS文件私有协议(TCP)占用MDS支持存在不支持支持不支持POSIX
Ceph对象/文件/块私有协议(TCP)占用MDS支持支持存在不支持支持POSIX
Lustre对象私有协议(TCP)/ RDAM(远程直接访问内存)双MDS支持不支持存在未知支持POSIX/MPI
MooseFS块私有协议(TCP)占用MFS支持支持存在不支持支持POSIX
MogileFS文件HTTP占用DB支持不支持存在不支持不支持不支持POSIX
FastDFS文件/块私有协议(TCP)无支持支持不存在部分支持不支持不支持POSIX
GlusterFS文件/块私有协议(TCP)/RDAM(远程直接访问内存)无支持支持不存在支持支持POSIX
TFS文件私有协议(TCP)占用NS支持支持存在支持未知不支持POSIX

什么是POSIX?

POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),也就是Unix下应用程序共同遵循的一种规范。支持POSIX的应用程序意味着在各个Unix系统间提供了跨平台运行的支持。

四、选型参考

  • 适合做通用文件系统的有:Ceph,Lustre,MooseFS,GlusterFS;

  • 适合做小文件存储的文件系统有:Ceph,MooseFS,MogileFS,FastDFS,TFS;

  • 适合做大文件存储的文件系统有:HDFS,Ceph,Lustre,GlusterFS,GridFS;

  • 轻量级文件系统有:MooseFS,FastDFS;

  • 简单易用,用户数量活跃的文件系统有:MooseFS,MogileFS,FastDFS,GlusterFS;

  • 支持FUSE挂载的文件系统有:HDFS,Ceph,Lustre,MooseFS,GlusterFS。

【GitHub项目推荐--不错的 C 开源项目】【转载】 FastDFS 类似 google FS,属于应用级文件系统,不是通用的文件系统,只能通过专有 API 访问,目前提供了 C 和 Java SDK,以及 PHP 扩展 SDK。FastDFS 是一款开源的分布式文件系统,功能主要包括:文件存储、文件同步、文件访问等,解决了文件大容量存储和高性能访问的问题。大学时接触的第一门语言就是 C语言,虽然距 C语言创立已过了40多年,但其经典性和可移植性任然是当今众多高级语言中不可忽视的,想要学好其他的高级语言,最好是先从掌握 C语言入手。 阅读详情

相关推荐

【信息科学与工程学】【数据中心】 第十篇 智算中心存储系统的各类、分片方案

简单性原则:在满足需求的前提下,选择最简单的架构和实现可扩展性原则:设计应考虑水平扩展能力,避免单点瓶颈韧性原则:系统应具备故障容忍和自我修复能力安全性原则:安全应内置而非外挂,遵循最小权限原则成本效益原则:在性能和成本之间寻求最佳平衡可观测性原则:系统应提供充分的监控和诊断能力演进性原则:设计应支持平滑演进和技术更新架构先行:设计前瞻性、可扩展的存储网络架构性能与成本平衡:在性能、可靠性和成本之间找到最优平衡点安全合规内嵌:将安全和合规要求融入设计和实施全过程自动化智能化。

weixin_49199313的博客 1144

分布式存储

2)在 Ceph 中,一切皆对象。Ceph从Nautilus版本(14.2.0)开始,每年都会有一个新的稳定版发行,预计是每年的3月份发布,每年的新版本都会起一个新的名称(例如,“Mimic”)和一个主版本号(例如,13代表Mimic,因为“M”是字母表的第13个字母)。例如OSS,一个存储可以被多服务同时访问,具备块存储的高速读写能力,也具备文件存储共享的特性,适用图片存储、视频存储 基于API接口提供的文件存储,每一个文件都是一个对象,且文件大小各不相同的,文件的元数据和实际数据是存放在一起的。

2301_76288258的博客 3852

echarts实现折线图上下限区域展示

效果图: 画这种区域中主要是利用了series的两个属性: 思路:上下限都画上区域,然后折线利用图形透明度隐藏,给上区域加上颜色,给下区域加上白色(echarts图背景是啥色,就加啥色) lineStyle: { opacity: 0 }, // 图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形 areaStyle: { color: 'rgba(0,122,255,0.1)' }, // 填充的颜色 我的需求是最大天数、最小天数、

小太阳的博客 1万+

常见分布式存储系统

一、数据存储类型 一般情况下,我们将存储分成了4种类型,基于本机的DAS和网络的NAS存储、SAN存储、对象存储。对象存储是SAN存储和NAS存储结合后的产物,汲取了SAN存储和NAS存储的优点。 1.DAS DAS将计算、存储能力一把抓,封装在一个服务器里。大家日常用的电脑,就是一个DAS系统。 2.NAS 如果将计算和存储分离了,存储成为一个独立的设备,并且存储有自己的文件系统,可以自己管理...

清平乐的技术专栏 4968

分享一下使用Xilinx FPGA驱动MIPI DSI LCD屏的心路历程

分享一下调试用Xilinx FPGA驱动MIPI DSI LCD屏的心路历程,看到的朋友们,可以避免继续踩坑。

haoxingheng的专栏 5010

不懂就学之挑战成为WorldQuant Brain顾问的第1天

WorldQuant Brain 是由 WorldQuant 公司开发的一个基于人工智能和机器学习的量化研究平台,旨在帮助量化研究员发现和构建有效的投资策略。WorldQuant 是一家全球领先的量化投资公司,专注于利用数据科学、技术和金融工程开发量化交易策略。

Yanbang1的博客 8381

常见开源分布式存储系统

系统整体对比 对比说明 /文件系统 TFS FastDFS MogileFS MooseFS GlusterFS Ceph 开发语言 C++ C Perl C C C++ 开源协议

一休求索 2410

STM32G4系列数字LLC控制程序开发实战

本文详细介绍了基于STM32G4系列MCU的数字LLC控制程序开发全流程。从开发环境搭建、中断服务函数设计,到核心的电压环PID算法、Burst模式控制、状态机设计以及软启动优化,提供了完整的实战代码和关键参数调试经验,帮助开发者高效实现高性能数字电源控制。

weixin_29185493的博客 278

盘点分布式文件存储系统____分布式文件存储系统简介

在项目的数据存储中,结构化数据通常采用关系型数据库,非结构化数据(文件)的存储就有很多种方式,服务器本地存储、Nas挂载、ftp等等,今天就来盘点一下,分布式文件存储系统。 一、分布式存储简介 1、什么是分布式存储 在开始介绍分布式存储之前,先了解一下,非分布式的存储方案。 在单机时代,将文件直接存储在服务部署的服务器上—— 直连存储(DAS):存储和数据直连,拓展性、灵活性差。 为了扩展,将文件和服务分离,通过网络连接—— 中心化存储(NAS、SAN):设备类型丰富,通过网络互连,具有一定的拓展.

qq_43842093的博客 1万+

C# Socket网络通信UDP(关键字:Socket)

简单Socket-Udp通信 在本文中涉及到通信,仅做简单的通信(服务端接受消息,由客户端发出消息) 如有需要,根据需求可直接copy使用 关键字Socket 需要引用命名空间: using System.Net; using System.Net.Sockets; 服务端: using System; using System.Net; using System.Net.Sockets; u...

MelanceXin的博客 3884

【Python开发者必看】Windows下Python版本管理器Pyenv安装使用,轻松管理Python版本的入门与进阶指南,从此告别Python环境不兼容的噩梦

好了,关于 【Python开发者必看】Windows下Python版本管理器Pyenv安装使用,轻松管理Python版本的入门与进阶指南,从此告别Python环境不兼容的噩梦 就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。1、手动下载对应版本到 pyenv-win\install_cache 目录(如上手动操作安装步骤,文件名需匹配,如 python-3.10.0-amd64.exe)。该指令会列出,pyenv包管理工具所支持的所有python版本,

Spring Boot-Common On With You 851

盘点分布式文件存储系统,2024年京东Java岗面试必问

手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友下面V无偿领取!(备注Java)**[外链图片转存中…(img-lcGgFDmj-1711183453420)]手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友[外链图片转存中…(img-XEset7M3-1711183453420)]本文已被。

m0_61331407的博客 1066

Python爬虫:抓取专利数据并分析专利趋势

本文展示了如何使用 Python 爬虫技术抓取中国专利数据,并对数据进行了清洗、分析和趋势预测。通过分析专利数据,企业和科研机构可以了解行业的技术发展趋势,进行技术创新战略规划。未来,我们可以进一步扩展爬虫的功能,抓取更多专利数据,增加多维度的数据分析,如技术领域、地域分布等。同时,可以尝试使用深度学习模型(如 LSTM)进行时间序列预测,以获得更准确的专利趋势预测。

2201_76125261的博客 1785

DeepSeek开源周 Day05:从3FS盘点分布式文件存储系统

今天是DeepSeek开源周的第五天,官方开源了一种高性能分布式文件系统Fire-Flyer File System,简称3FS,目的是解决人工智能训练和推理工作负载的挑战。Fire-Flyer 文件系统 (3FS) - 一种并行文件系统,可利用现代 SSD 和 RDMA 网络的全部带宽。⚡ 180 节点集群中的 6.6 TiB/s 聚合读取吞吐量⚡ 在 25 节点集群中,GraySort 基准测试的吞吐量为 3.66 TiB/min。

yanqianglifei的专栏 2363

2025年最新雷电模拟器9.22安装Magisk面具和LSPosed框架完整图文教程 文章末尾附所需软件下载

操作环境:雷电模拟器9.0.22 虚拟系统版本android 91、设置-其他设置-Root权限-开启2、设置-性能设置-System.vmdk可写入3、安装Magisk-18a0b94a-delta(25205).apk,运行并给予root权限4、选择右上角安装弹出“允许“magisk Delta”访问您设备上的照片、媒体内容和文件吗?“选择允许,然后结束magisk进程。5、从新运行magisk选择右上角安装-选择修补boot镜像中的vbmeta和安装到Recovery。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 7088

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

盘点 6 个本周 yyds 的 GitHub 项目。

并且完美兼容亚马逊 S3 的标准,你现有的那些备份工具、网盘应用基本都能直接用它,不用折腾。这个公众号历史发布过很多有趣的开源项目,如果你懒得翻文章一个个找,你直接关注微信公众号:逛逛 GitHub ,后台对话聊天就行了。他标榜自己是 AI Agent 的产品,很多其实并不那么「智能」,实现方法很粗暴.. 最后总结出上面这个 12 个准则,,在里面定义好哪些数据库操作是被允许的,MCP Toolbox 就能把这些操作封装成标准的工具。,专攻最难、最模糊的问题,找资料和推理能力超强(据说是开源里最好的)。

公众号:逛逛GitHub 1236

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【C语言开源项目】盘点 GitHub 上不错的 4 个C语言项目

大学时接触的第一门语言就是 C语言,虽然距 C语言创立已过了40多年,但其经典性和可移植性任然是当今众多高级语言中不可忽视的,想要学好其他的高级语言,最好是先从掌握 C语言入手。 今天盘点 GitHub 上不错的四个 C语言 开源项目,分别是: 01.分布式文件系统 02.云存储系统 03.游戏模拟器 mGBA 04.太空侵略者复刻版 01.分布式文件系统 FastDFS 是一款开源的分布式文件系统,功能主要包括:文件存储、文件同步、文件访问等,解决了文件大容量存储和高性能访问的...

致力于C语言C++知识分享! 4625

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

2025中国数据存储领域最具商业合作价值企业盘点

华瑞指数云ExponTech提供的分布式存储解决方案,真正意义上实现了一套存储集群支持多套应用,对于自动驾驶常见的HPC仿真集群和AI训练集群,除了提供S3/NFS类型的对象和文件接口之外,基于多协议互通的能力,通过 HDFS 接口面向原来的大数据分析集群,提供 HDFS 接口,数据存入以后,可以一站式仿真,分析,训练。帮助用户解决了海量数据所面临的存储、管理和计算的挑战,同时还能收获高性能、高可靠的分层专项存储服务,以及高效的数据管理和计算能力,提升了分析速度,降低了研发门槛,最大化了资源利用率。

数据猿 244

港股上市!小米开源项目盘点

作者|小智 写在前面 7 月 9 日,小米在香港挂牌上市,股票代码 1810.hk。据了解,小米将香港 IPO 报价 16.60 港元,较发行价低...

纯洁的微笑 1923

2023中国数据存储领域最具商业合作价值企业盘点

‍数据智能产业创新服务媒体——聚焦数智· 改变商业无论是庞大的企业还是个人用户,我们的生活和工作都离不开对数据的高效处理。数据量的激增,以及对实时性、安全性和可扩展性的需求,引领了数据存储市场的快速发展。同样,新的技术趋势如固态驱动器的进化、多云与边缘存储的普及,以及存储类记忆体和人工智能在存储管理中的应用,也正在不断推动数据存储领域的革新。今天,无论是大数据、人工智能、物联网等技术的广泛应用,...

数据猿 593

盘点Hadoop生态中 6 个核心的大数据组件

大数据生态圈中有很多优秀的组件,可谓琳琅满目,按组件类别可分为存储引擎、计算引擎,消息引擎,搜索引擎等;按应用场景可分为在线分析处理OLAP型,在线事务处理OLTP型,以及混合事务与分析处...

weixin_44742132的博客 1291
上一篇: 思维导图整理Java并发基础
下一篇: synchronized详解
加班不秃顶
博客等级 码龄7年 1822粉丝 599原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值