首页 > 编程知识 正文

主流的开源分布式存储有,分布式存储系统方案

时间:2023-05-05 01:18:51 阅读:41496 作者:3278

在项目的数据存储中,结构化数据通常采用关系数据库。 有多种存储非结构化数据(文件)的方法。 今天要清点分布式文件存储系统,包括服务器的本地存储、Nas装载和ftp。

另一方面,分布式存储概述1,在开始介绍分布式存储之前,请先了解非分布式存储的方案。

在独立时代,文件直接存储在部署服务的服务中——

直连存储(DAS):存储和数据直接连接,不灵活、可扩展。 为了扩展,将文件和服务分离,通过网络连接到——

中心化存储(NAS、SAN):设备类型丰富,网络互联,具有一定的可扩展性,但受控制器能力限制,扩展能力有限。 另一方面,由于设备在生命周期内进行更换,因此迁移数据需要很多时间和精力。

分布式存储

2、分布式存储的好处可扩展

高可用性分布式文件系统中,高可用性包括两个级别:整个文件系统的可用性、数据完整性和一致性

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

弹性存储:在不中断系统运行的情况下,可以根据业务需求灵活地添加或减少数据存储,并在存储池中添加或删除资源

二、主流分布式文件存储系统当前主流分布式文件系统为GFS、HDFS、Ceph、Lustre、MogileFS、MooseFS、FastDFS、TFS、GridFS等。

1、谷歌文件系统(GFS )谷歌公司为满足我们的需要而开发的基于Linux的专有分布式文件系统。 谷歌公布了该系统的技术细节,但谷歌没有将该系统的软件部分作为开源软件公开。

2、HDFS (hadoopdistributedfilesystem ) HDFS (hadoopdistributedfilesystem )是Hadoop项目的子项目。 它是Hadoop的核心组件之一,非常适合存储TB和PB等大数据。 Hadoop使用HDFS作为存储系统。 HDFS使用多台计算机存储文件,并提供使用分布式文件系统的统一访问接口,就像使用典型文件系统一样。

3、淘宝文件系统(TFS ) TFS是一种可扩展、高可用性、高性能、面向互联网服务的分布式文件系统,主要面向大量非结构化数据,构建在普通Linux计算机群集中TFS为淘宝提供大量的小文件存储,通常文件大小不超过1M,满足淘宝对小文件存储的需求,广泛应用于淘宝的各项应用。 它采用高可用性体系结构和平稳的扩展能力,确保整个文件系统的可用性和可扩展性。 同时扁平化的数据结构将文件名映射到文件的物理地址,简化了文件访问过程,在一定程度上为TFS提供了良好的读写性能。

4、Lustre Lustre是一个大规模、安全可靠、高可用性的集群文件系统,由SUN公司开发和维护。 该项目的主要目的是开发新一代群集文件系统,可以支持10000多个节点和数Pb数据量的存储系统。 目前,Lustre已用于惠普SFS产品等领域。

5、MooseFS MooseFS是一个比较小的分布式文件系统,可以直接使用而不更改上层APP应用程序的接口,支持FUSE的操作方式,采用部署简单、提供Web接口的方式进行管理和监视,其他分布式操作系统MooseFS还提供回收站,用于检索意外删除的文件,这对于定制业务非常有用。 同时,MooseFS对大容量小文件的读写比大文件效率高得多。

然而,MooseFS的缺点也同样明显,MFS的主从架构情况类似于MySQL的主从复制,可以从扩展,但主站不容易扩展。 短期措施是按业务划分,随着存储在MFS体系结构中的文件总数的增加,对主服务器内存的需求也在增加。 此外,对于单个问题,数据信息从主服务器同步到元日志服务器是正式的。 如果主服务器出现问题,则Metalogger Server可以恢复到主服务器的升级,但恢复需要一些时间。 目前,主服务器的单点问题还可以通过第三方高可用性程序“heartbeat drbd moosefs”解决。

6、MogileFS是由memcahed的开发公司danga的perl开发的产品,目前国内使用mogielFS的有图片托管网站yupoo等。 MogileFS是Six Apart开发的高效文件自动备份组件,广泛使用,包括LiveJou

rnal等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高很多不支持FUSEFastDFS国内开发者余庆CGPL V3安装简单,社区相对活跃单集群的中小文件系统无需支持POSIX,降低了系统的复杂度,处理效率更高;实现了软RAID,增强系统的并发处理能力及数据容错恢复能力;支持主从文件,支持自定义扩展名;主备Tracker服务,增强系统的可用性不支持断点续传,不适合大文件存储;不支持POSIX,通用性较低;对跨公网的文件同步,存在较大延迟,需要应用做相应的容错策略;同步机制不支持文件正确性校验;通过API下载,存在单点的性能瓶颈GlusterFSZ RESEARCHCGPL V3安装简单,官方文档专业化适合大文件,小文件性能还存在很大优化空间无元数据服务器,堆栈式架构(基本功能模块可以进行堆栈式组合,实现强大功能),具有线性横向扩展能力;比mooseFS庞大由于没有元数据服务器,因此增加了客户端的负载,占用相当的CPU和内存;但遍历文件目录时,则实现较为复杂和低效,需要搜索所有的存储节点,不建议使用较深的路径GridFSMongoDBC++安装简单通常用来处理大文件(超过16M)可以访问部分文件,而不用向内存中加载全部文件,从而保持高性能;文件和元数据自动同步2、 特性对比 文件系统数据存储方式集群节点通讯协议专用元数据存储点在线扩容冗余备份单点故障跨集群同步FUSE挂载访问接口HDFS文件私有协议(TCP)占用MDS支持存在不支持支持不支持POSIXCeph对象/文件/块私有协议(TCP)占用MDS支持支持存在不支持支持POSIXLustre对象私有协议(TCP)/ RDAM(远程直接访问内存)双MDS支持不支持存在未知支持POSIX/MPIMooseFS块私有协议(TCP)占用MFS支持支持存在不支持支持POSIXMogileFS文件HTTP占用DB支持不支持存在不支持不支持不支持POSIXFastDFS文件/块私有协议(TCP)无支持支持不存在部分支持不支持不支持POSIXGlusterFS文件/块私有协议(TCP)/RDAM(远程直接访问内存)无支持支持不存在支持支持POSIXTFS文件私有协议(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。



参考:

【1】:分布式文件系统对比与选型参考

【2】:只知道HDFS和GFS?你其实并不懂分布式文件系统

【3】:分布式存储主流框架

【4】:如果要设计个分布式文件系统,该从哪些方面考虑?

【5】: 常见分布式文件存储介绍、选型比较、架构设计

【6】:分布式文件系统对比与选型参考

【7】:中小企业存储:DAS、NAS和SAN的选择

【8】:从DAS到分布式存储,存储形式总结

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。