各种分布式文件系统的比较

适合做通用文件系统的有 MooseFS,GlusterFS,Lustre。

MooseFS



支持FUSE,相对比较轻量级,对master服务器有单点依赖,用perl编写,性能相对较差,国内用的人比较多,易用,稳定,对小文件很高效。

    + 支持文件元信息
    + mfsmount 很好用
    + 编译依赖少,文档全,默认配置很好
    + mfshdd.cfg 加 * 的条目会被转移到其它 chunk server,以便此 chunk server 安全退出
    + 不要求 chunk server 使用的文件系统格式以及容量一致
    + 开发很活跃
    + 可以以非 root 用户身份运行
    + 可以在线扩容
    + 支持回收站
    + 支持快照
    - master server 存在单点故障
    - master server 很耗内存
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

MogileFS



Key-Value型元文件系统,不支持FUSE,应用程序访问它时需要API,主要用在web领域处理海量小图片,效率相比mooseFS高很多,据说对于 Web 2.0 应用存储图片啥的很好。

不适合做通用文件系统,适合存储静态只读小文件,比如图片

GlusterFS



支持FUSE,比mooseFS庞大,感觉广告宣传做的比产品本身好。

    + 无单点故障问题
    + 支持回收站
    + 模块化堆叠式架构
    - 对文件系统格式有要求,ext3/ext4/zfs 被正式支持,xfs/jfs 可能可以,reiserfs 经测试可以

    - 需要以 root 用户身份运行(用了 trusted xattr,mount 时加 user_xattr 选项是没用的,官方说法是glusterfsd 需要创建不同属主的文件,所以必需 root 权限)
    - 不能在线扩容(不 umount 时增加存储节点),计划在 3.1 里实现
    - 分布存储以文件为单位,条带化分布存储不成熟
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

GFS2


http://sourceware.org/cluster/wiki/DRBD_Cookbook
http://www.smop.co.uk/blog/index.php/2008/02/11/gfs-goodgrief-wheres-the-documentation-file-system/
http://wiki.debian.org/kristian_jerpetjoen
http://longvnit.com/blog/?p=941
http://blog.chinaunix.net/u1/53728/showart_1073271.html (基于红帽RHEL5U2 GFS2+ISCSI+XEN+Cluster 的高可性解决方案)
http://www.yubo.org/blog/?p=27 (iscsi+clvm+gfs2+xen+Cluster)
http://linux.chinaunix.net/bbs/thread-777867-1-1.html

并不是 distributed file system, 而是 shared disk cluster file system,需要某种机制在机器
之间共享磁盘,以及加锁机制,因此需要 drbd/iscsi/clvm/ddraid/gnbd 做磁盘共享,以及 dlm 做锁管理)
- 依赖 Red Hat Cluster Suite (Debian: aptitude install redhat-cluster-suite, 图形配置工具包
system-config-cluster, system-config-lvm)
- 适合不超过约 30 个节点左右的小型集群,规模越大,dlm 的开销越大,默认配置 8 个节点

OCFS2



GFS 的 Oracle 翻版,据说性能比 GFS2 好 (Debian: aptitude install ocfs2-tools, 图形配置工具包 ocfs2console)
不支持 ACL、flock,只是为了 Oracle database 设计

OpenAFS/Coda



是很有特色的东西。

     + 成熟稳定
    + 开发活跃,支持 Unix/Linux/MacOS X/Windows
    - 性能不够好
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

ceph



支持FUSE,客户端已经进入了linux-2.6.34内核,也就是说可以像ext3/rasierFS一样,选择ceph为文件系统。彻底的分布式,没有单点依赖,用C编写,性能较好。基于不成熟的btrfs,其本身也非常不成熟

Lustre



Oracle公司的企业级产品,非常庞大,对内核和ext3深度依赖
复杂,高效,适合大型集群。

    * 适合大型集群
    + 很高性能
    + 支持动态扩展
    - 需要对内核打补丁,深度依赖 Linux 内核和 ext3 文件系统
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

PVFS2



http://blog.csdn.net/yfw418/archive/2007/07/06/1680930.aspx
搭配定制应用会很好,据说曙光的并行文件系统就是基于 PVFS。  fastDFS:国人在mogileFS的基础上进行改进的key-value型文件系统,同样不支持FUSE,提供比mogileFS更好的性能。

    * 高性能
    - 没有锁机制,不符合 POSIX 语意,需要应用的配合,不适合做通用文件系统
      (See pvfs2-guide chaper 5:  PVFS2 User APIs and Semantics)
    - 静态配置,不能动态扩展
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

Coda


    * 从服务器复制文件到本地,文件读写是本地操作因此很高效
    * 文件关闭后发送到服务器
    + 支持离线操作,连线后再同步到服务器上
    - 缓存基于文件,不是基于数据块,打开文件时需要等待从服务器缓存到本地完毕
    - 并发写有版本冲突问题
    - 并发读有极大的延迟,需要等某个 client 关闭文件,比如不适合 tail -f some.log
    - 研究项目,不够成熟,使用不广
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Hadoop HDFS



本地写缓存,够一定大小 (64 MB) 时传给服务器
不适合通用文件系统

FastDFS


- 只能通过 API 使用,不支持 fuse

NFS



  老牌网络文件系统,具体不了解,反正NFS最近几年没发展,肯定不能用。

dCache


依赖 PostgreSQL

xtreemfs


* 服务端是 Java 实现的
- 性能不高

CloudStore (KosmosFS)


+ 被 Hadoop 作为分布式文件系统后端之一
- 不支持文件元信息
- kfs_fuse 太慢,不可用
- 编译依赖多,文档落后,脚本简陋
- 开发不活跃

NFSv4 Referrals


+ 简单
- 没有负载均衡,容错

NFSv4.1 pNFS


- 没有普及

spNFS


* pNFS 在 Linux 上的一个实现

Ceph (http://ceph.newdream.net/)
- 开发初期,不稳定
- 依赖 btrfs

GFarm



http://datafarm.apgrid.org/software/

转载:http://blog.csdn.net/gatieme/article/details/44982961

时间: 2024-08-04 04:25:12

各种分布式文件系统的比较的相关文章

C#和.NET中如何利用FastDFS打造分布式文件系统

背景 海量存储.系统负载的迁移.服务器吞吐的瓶颈等等 让文件系统独立于业务系统 提高整个项目的扩展性以及可维护性 目前主流的方案 MFS FASTDFS GFS LUSTRE HADOOP等等 我选择的是FASTDFS 用一句广告语来说 "免费.快速.找得到".FASTDFS的作者是淘宝的资深架构师余庆,很诙谐.很有爱!!!其他方案还没玩过 暂不评论. 简介 FastDFS是一款开源的轻量级分布式文件系统纯C实现,支持Linux.FreeBSD等UNIX系统类google FS,不是通

分布式文件系统应用(上) 理论

自从6月份出山以来 就一直琢磨着搞一套通用的服务化平台.在设计用户行为分析以及用户推广的时候,发现自己的构架里对海量文件的存储没有一个合理的方案.起初打算用windows2003中dfs系统开发一套新的文件系统,后来发现win下的dfs是个大坑,未遂.然后考虑到win平台与linux系统之间关于文件处理的优劣与稳定性,最终选择linux下fastdfs. 下面先简单介绍下分布式文件系统然后结合我的实际case给大家图文演示,在这之前先感谢下fishman.咕咚.以及菲雪同学的大力支持.你们是最棒

Hadoop (HDFS)分布式文件系统基本操作

Hadoop HDFS提供了一组命令集来操作文件,它既可以操作Hadoop分布式文件系统,也可以操作本地文件系统.但是要加上theme(Hadoop文件系统用hdfs://,本地文件系统用file://) 1. 添加文件,目录 HDFS文件系统(需要加hdfs://): 因为我们在core-site.xml中配置了fs.default.name 所以所有和HDFS打交道的命令都不需要加上前缀hdfs://192.168.129.35:9000 比如我们要在Hadoop 文件系统中创建一个目录叫

Windows Server 2003分布式文件系统特性

微软为了推动他们的Windows存储技术而进行了大量的投入.其中的一个非常关键的措施是在Windows Server 2003上不断投入成本,发展了一些新的分布式文件系统(DFS)特性. 分布式文件系统(DFS)是微软存储策略的基石,这一点在他们关于配置文件服务器的策略指南(在微软的官方网站上可以查到)上有所体现,这本指南还包括关于策划和实现基于分布式文件系统解决方案的进一步的资料. 下面介绍新的分布式文件系统(DFS)特性在技术上的一些亮点以及它们如何为用户提供长期的利益. 第一点好处是新技术

四步轻松创建Win2003分布式文件系统

当微软公司最初介绍分布式文件系统(Distributed File System,简称DFS)的时候,它把终端用户希望让事情变得简单一些的注意力都集中在自己身上.这种技术的思路是用户本身并不需要知道哪些服务器资源是真正存在的.他们只要简单地通过一个特殊的共享就可以访问到文件系统,而且还可以访问到所有他们所需要的数据,无论这些数据是集中存储在本地还是分散存储在许多不同的服务器中. 尽管在用户端把把事情变得简单总是好处多多,但是我认为DFS的用途要比仅仅用于负载平衡与容错要多得多.DFS可以用来把用

AD部署教程:分布式文件系统(DFS)(命名空间)

分布式文件系统(DFS,Distributed File System)是文件服务非常重要的一个功能,DFS使用户更加容易访问和管理物理上跨网络分布的文件. 通过DFS,可以将同一网络中的不同计算机上的共享文件夹组织起来,形成一个单独的.逻辑的.层次式的共享文件系统. 在文件服务中直接添加DFS分布式文件系统即可 打开服务器管理可以看到文件服务多了DFS管理右键命名空间,可以打开新建命名空间向导来新建命名空间服务器. 接着是命名空间的名字

分布式基础学习【一】 —— 分布式文件系统

分布式基础学习 所谓分布式,在这里,很狭义的指代以Google的三驾马车,GFS.Map/Reduce.BigTable 为框架核心的分布式存储和计算系统.通常如我一样初学的人,会以Google这几份经典的论 文作为开端的.它们勾勒出了分布式存储和计算的一个基本蓝图,已可窥见其几分风韵,但 终究还是由于缺少一些实现的代码和示例,色彩有些斑驳,缺少了点感性.幸好我们还有 Open Source,还有Hadoop.Hadoop是一个基于Java实现的,开源的,分布式存储和计算的项 目.作为这个领域最

GlusterFS分布式文件系统的安装配置教程

GlusterFS主要应用在集群系统中,具有很好的可扩展性.软件的结构设计良好,易于扩展和配置,通过各个模块的灵活搭配以得到针对性的解决方案.可解决以下问题:网络存储,联合存储(融合多个节点上的存储空间),冗余备份,大文件的负载均衡(分块). 由于缺乏一些关键特性,可靠性也未经过长时间考验,还不适合应用于需要提供 24 小时不间断服务的产品环境.目前适合应用于大数据量的离线应用,下面一起来看GlusterFS分布式文件系统的安装配置 GlusterFS是一个开源的分布式文件系统,用户可以使用多台

分布式文件系统试用比较

  MooseFS 很不错,已经实用了半月了,易用,稳定,对小文件很高效. MogileFS 据说对于 Web 2.0 应用存储图片啥的很好. GlusterFS 感觉广告宣传做的比产品本身好. OpenAFS/Coda 是很有特色的东西. Lustre 复杂,高效,适合大型集群. PVFS2 搭配定制应用会很好,据说曙光的并行文件系统就是基于 PVFS. 适合做通用文件系统的有 MooseFS,GlusterFS,Lustre. ================================