欢迎来到个人简历网!永久域名:gerenjianli.cn (个人简历全拼+cn)
当前位置:首页 > 范文大全 > 实用文>GridFS:基于MongoDB的分布式文件存储系统

GridFS:基于MongoDB的分布式文件存储系统

2022-07-18 08:15:28 收藏本文 下载本文

“dave2007”通过精心收集,向本站投稿了6篇GridFS:基于MongoDB的分布式文件存储系统,下面小编给大家整理后的GridFS:基于MongoDB的分布式文件存储系统,希望大家喜欢!

GridFS:基于MongoDB的分布式文件存储系统

篇1:GridFS:基于MongoDB的分布式文件存储系统

GridFS是MongoDB之上的分布式文件系统,其利用了MongoDB的分布式存储机制并通过MongoDB来存储文件数据和文件元数据,兼具文档型数据库和文件系统的优势,GridFS是当前大数据潮流和复杂数据分析需求的产物。

简单来说,GridFS通过将文件数据和文件元数据保存在MongoDB里来实现文件系统,通过复制(Replication)来应对故障切换,数据集成,还可以用来做读扩展,热备份或者作为离线批处理的数据源,通过分片来实现自动切分数据,实现大数据存储和负载均衡,通过数据库对集合中文档的管理和查询(包括MapReduce)实现轻量级文件系统接口和搜索与分析。

GridFS的一个基本思想是可以将大文件分成很多块,每一块作为一个单独的文档存储,则有就能存储大文件了。由于MongoDB支持在文档中存储二进制数据,可以最大限度减小块的存储开销。GridFS使用MongoDB的复制,分片等机制来实现分布式文件存储,使用MongoDB进行管理和复杂分析。

GridFS使用两个文档来存储文件,一个用来存储文件本身的块,另外一个用来存储分块的信息和文件的元数据,默认对应的集合分别为fs.chunks和fs.files.

Chunks集合:

{

“_id”:,

“files_id”: ,

“n”: ,

“data”:

}

块集合中文档包含以下属性:chunk_id:块ID。Chunks.files_id:对应files集合中文档的_id。Chunks.n:块的编号,由GridFS管理,从0开始。Chunks.data:文件数据,是BSON二进制类型。

Chunks集合使用files_id和n作为混合索引,files集合:

{

“_id”: ,

“length”: ,

“chunkSize”:,

“uploadDate”: ,

“md5”: ,

“filename”: ,

“contentType”: ,

“aliases”: ,

“metadata”:

}

Files集合中的文档包含以下属性,应用还可以创建额外任意的属性:files_id:唯一的文件表示,

MongoDB的默认值是BOSN ObjectID。Files.length:文件的字节数大小。Files.chunkSize:每个块的大小,默认为256KB,GridFS根据这个值将文件分成多个快,files.uploadDate:GridFS第一次存储此文件的时间,类型为ISODate。Files.md5:文件的md5散列值,是字符串。Files.filename:可选。人类可读的文件名。Files.contentType:可选。合法的文件MIME类型。Files.aliases:可选。别名的字符串数组。Files.metadata:可选。自定义存储的文件元数据。

可以通过mongofiles工具或者MongoDB驱动程序来使用GridFS,GridFS主要提供5种操作接口:

List:获取文件列表

Get:获取文件

Put:写入文件

Search:根据文件名搜索文件

Delete:删除文件

因为GridFS文件的元数据存储在files集合中,因此GridFS可以非常方便地进行文件管理,比如根据文件名,上传时间,文件大小或者自定义的文件元数据进行查询,还可以利用MapReduce做复杂数据分析。这是GridFS把传统文件系统和数据库相结合得到的众多好处之一。

对比传统文件系统的优势

分布式:GridFS是基于MongoDB的分布式文件系统,可以直接使用MongoDB Replication和Sharding机制,数据可靠性和水平扩展性都得到保证。GridFS不产生磁盘碎片,因为MongoDB分配数据文件空间时以2GB为一块。

MapReduce:可以进行复杂管理和查询分析。

索引和缓存:元数据存储在MongoDB中,非常方便索引,并且可以对文件和文件元数据进行索引,能提高系统效率。

Checksum: GridFS会为文件产生散列值,可用于校验文件以检查完整性。

开发者友好:利用Grid可以简化需求,减小开发成本。要是已经用了MongoDB,GridFS就可以不需要使用独立文件存储架构,并且使代码和数据真正分离,方便管理。

其他:GridFS可以避免用于存储用户上传内容的文件系统出现的某些问题。例如,GridFS在同一个目录下防止大量的文件是没有任何问题的。GridFS不产生磁盘碎片,因为MongoDB分配数据文件空间时以2GB为一块。

篇2:分布式存储系统:TDSS

TDSS是一个高可扩展、高可用、高性能、面向互联网服务的分布式存储系统,主要针对海量的非结构化数据,它构筑在普通的Linux机 器集群上,可为外部提供高可靠和高并发的存储访问,它采用了HA架构和平滑扩容,保证了整个文件系统的可用性和扩展性,

同时扁平化的数据组织结构,可将文 件名映射到文件的物理地址,简化了文件的访问流程,一定程度上为TDSS提供了良好的读写性能。

项目主页:www.open-open.com/lib/view/home/1365411366593

篇3:分布式存储系统 Katta

Katta是一个可扩展的、故障容错的、分布式实施访问的数据存储,

Katta可用于大量、重复、索引的碎片,以满足高负荷和巨大的数据集。这些索引可以是不同的类型。当前该实现在Lucene和Hadoop mapfiles

让大型高负荷的索引变简单

能为许多具有大型Lucene或Hadoop Mapfile 的索引碎片的服务器提供服务

在不同服务器上复制碎片以保证性能和容错性

支持插件化的网络拓扑

故障管理

快速、轻量级、易于集成

与Hadoop集群工作良好

Apache License,Version 2.0

项目主页:www.open-open.com/lib/view/home/1339138553594

篇4:分布式存储系统 dCache DSS

dCache是一个分布式的存储解决方案,它组织多台电脑的存储,合并后可用于存储数据;最终用户只是看到了大量的存储空间。由于最终用户不必知道 哪台计算机上的数据存储,其数据可从一台计算机迁移到另一台没有任何中断的服务,

这使得计算机dCache存储将要采取的服务或额外的 机器(附加存储) ,以增加在不中断服务的最终用户体验。

项目主页:www.open-open.com/lib/view/home/1338995969531

篇5:分布式K/V存储系统 kumofs

kumofs是一个分布式key-value存储系统,它的持久化存储是基于Tokyo Cabinet实现的,并且采用了兼容memcached的通讯协议,它拥有以下特性:

数据的分区,并在多个服务器复制。

极端单一节点的性能与memcached的相媲美。

当服务器添加时,读写操作的性能都将得到改善

服务器可以动态添加而不用停机

服务器可以动态添加而不用修改任何配置文件

当一两个服务器当掉,整个系统也不会停机

恢复崩溃的服务器,整个系统不同停机

自动负载平衡与一致性控制算法的支持,

安全CAS操作支持

memcached 协议支持

性能比较:

架构:

项目主页:www.open-open.com/lib/view/home/1326512644749

篇6:Windows 分布式文件系统分析和应用

如果你的网络已经运行了一段,毫无疑问,你的服务器硬盘会装满,通常这说明是时候清除用户不再使用的文件了,你可以将极少使用的文件移至离线存储器,而在Windows 2000中,你还有另外的选择,当服务器硬盘可是填满:你可以建立分布式文件系统(DFS)树结构。建立DFS树结构不仅可以解决硬盘填满的问题,事实上DFS还可以增强网络安全性,效率以及性能。

DFS结构使得分散在多服务器的文件和目录看起来就好像它们在同一服务器上。例如,假设你的用户需要从两台不同的服务器的共享节点读取文件。你可以通过建立包含两个不同共享节点的DFS树结构使他们的操作变得简单。在此基础之上,用户能够读取单一共享节点的DFS树结构,而且无须知道文件实际寄存在哪个服务器或共享节点之中。

实行DFS树结构确实可以使大型组织的成员工作更加便捷。然而,在许多的组织中,成员工作的便捷性是没有发音权的。大部分时间里,除非是实行新的事物有利于网络的性能和安全性,否则管理员总是简单地以太忙为理由不这样做。如果你了解:构建DFS树结构可以增强网络的安全性,可靠性和本身的表现性能。那么,DFS可能是解决这些问题的最好办法之一。

一、安全性加强

首先,我们来看看安全性。我在前面提过,DFS树结构将单一的共享节点并入树型结构,使得用户好像在单机服务器上存在的共享资源中操作。这些共享节点仅仅是逻辑上结合-同时,每一共享节点都在各自的服务器上作为独立的共享节点保留。DFS要求任何你用来构造DFS树结构部分的共享节点使用NTFS安全属性。因此,无论共享节点是独立还是经过DFS树结构读取,任何你通过NTFS指定的独立共享节点的安全属性同时起作用。

那么,既然现存的安全属性依然适用,DFS如何增强安全性呢?记得从用户端看来在DFS树结构中所有的文件和文件夹看似存在于单机服务器吗?这一伪装使得 更难追踪一个文件的实际位置。当然, 还是会继续探究网络并查找所需文件夹或文件,但是,他完成该项的时间越长,被捕获的风险也就越高。许多的 从公司的某个成员处获取了内部信息。既然你的用户不会了解共享节点的文件确实操作与哪一台服务器,不满的雇员就不可能告诉组织外部的人员文件和文件夹实际的存储位置。

二、可靠性

现在,让我们查看安全性和容错性的问题。实行DFS的Windows 2000允许你使用复制品。DFS树结构中,复制品即为存在于原定和源服务器保持同步的分散服务器上的文件夹拷贝。所以,不同的服务器上有可能拥有两个可识别的文件夹。

一旦你拷贝了文件夹,你就可以在服务器离线时使用它们。假定有一个用户经常读取的文件夹,而该文件夹在一台你想要下线做日常维护的服务器上。在断开服务器连接之前,你可以将本来指向DFS树结构的源文件夹改为指向文件夹拷贝。这样做使得用户得到一个服务器依然在线的假相,因为文件夹中的文件像以往一样还是能够在同一位置获得。当离线的服务器恢复可用状态,拷贝保持同步,然后你就可以将DFS树结构指回源文件夹了。

三、性能

拷贝还可以用来加强服务器性能。你可能知道,如果太多人试图读取一个单一的共享节点会是服务器的性能受损,

为了补偿,你可以同时应用频繁使用的文件夹和拷贝,这样就可以实现一系列的网络装载平衡。用户还是通过DFS树结构读取该文件夹,但是DFS树结构会将他们连接到离文件夹最近的拷贝,因此在分散的服务器上交叉分布负荷并增强性能。对于非常繁忙的共享节点,你可以将符合交叉分布在多达32个分散的服务器上。

如果我已经为你展示完了DFS的长处,那么是时间开始配置DFS树结构了。

四、安装DFS

在你开始设置DFS以前你还需要了解有关DFS的一些事情。首先,Windows 2000版的DFS可以按照两种不同的方式实现。你可以在单击版服务器或属于活动目录域的服务器群上安装DFS。单击版的DFS操作有一些限制,比如不能读取活动目录(很明显)因此就不能制作拷贝,虽然一些组织可能这样操作加强存储能力。所以,我强烈推荐构造一活动目录基础的DFS树结构。本文的余下部分会假定你安装活动目录基础的DFS树结构。

在客户端读取DFS之前,必须运行DFS客户端软件。如果你的客户端是Windows 2000专业版或Windows NT 4.0工作站(服务包3以上),那么你无须其他特殊软件。据说Windows Me也包含此功能,但我不能确定。Windows 98SE(第二版)包含一个DFS客户端程序,该程序可以和Windows NT 4版本的DFS或单机版的DFS树结构一起使用。你还可以为Windows 95和Windows 98的用户下载活动目录DFS(也叫做域客户端)。再无其他操作系统支持客户端的DFS结构了。

五、配置DFS

叙述完以上内容,现在我们进入配置过程。从开始菜单点击:程序>管理工具>分布式文件系统开始,装载微软的管理控制台和分布式文件系统控制台。下一步,从操作菜单选择新建DFS根节点命令。如果你计划使用以前存在的DFS根节点,你可以使用显示现存DFS根节点选项。

Windows进入新建DFS根节点向导。介绍界面之后的第一个画面供你选择是新建域DFS根节点还是单机版DFS根节点。因为我们在活动目录环境下工作,选择新建域DFS根结点选项。

下一画面要求给出DFS根节点使用的域名,寄存DFS根节点的服务器DNS名称,以及你是否想为DFS根节点新建一个共享节点还是使用已经存在的共享节点。然后,你输入DFS根节点的名字,并可以选择添加一个描述DFS根节点功能的提示。点击下一步出现完成画面,结束向导。

六、添加共享根节点

祝贺你-你已经建立好了一个DFS根节点。你现在可以开始给DFS添加共享节点。当然,除非你添加了附加的共享节点,DFS根节点只是另一个共享节点而已。

选择DFS根节点添加共享节点,然后从操作菜单选择新建FS链接命令,弹出新建DFS链接对话框。填写链接名称,共享节点以及可选注释。你还可以设置客户端缓存推迟时间,这样能够控制客户看到有效的时间,而不必查看该链接是否实际有效。设置的时间越长,发生的可能性越小。但是,当你可能需要维护关闭服务器时你应该切换链接指向的位置,这样设置长时间可能导致服务中断。

既然你知道了如何配置一个基本的DFS树结构,你就可以开始扩展你的知识了。例如,你完全可能在DFS系统中实现负载平衡。

注:本文和网站中已有的文章《Windows 2000中的分布式文件系统》侧重点不同,互为补充,有相得益彰之处。

【GridFS:基于MongoDB的分布式文件存储系统】相关文章:

1.分布式文件系统 MogileFS

2.文件范本

3.文件管理制度

4.规范文件

5.工作文件

6.十个提高MongoDB安全性的配置技巧

7.分布式电气控制系统改造分析论文

8.水务局文件范文

9.处分文件范文

10.工作文件范文

下载word文档
《GridFS:基于MongoDB的分布式文件存储系统.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度: 评级1星 评级2星 评级3星 评级4星 评级5星
点击下载文档

文档为doc格式

  • 返回顶部