设为首页 收藏本站
查看: 1516|回复: 0

[经验分享] mfs vs fastdfs

[复制链接]

尚未签到

发表于 2019-1-31 12:53:16 | 显示全部楼层 |阅读模式

  •   MooseFS MooseFS是一个运行于多台物理机上的网络分布式文件系统,特性如下:
  Unix-alike, 支持层级目录结构 支持POSIX文件属性(rwx,访问时间) 支持块设备文件,管道文件和套接口文件等特殊文件类型 支持文件的软连接和硬链接 通过IP地址和密码限制客户端对文件系统的访问权限
  高可用性,文件可以有多个拷贝。 动态扩展文件系统容量。 支持文件回收站功能 文件快照
组成

  •   Managing server(master server) - 文件系统的管理节点,保存着每个文件的元数据(大小,属性,位置等)
  •   Metadata backup server(s)(metalogger server) - 作为Managing server的备份
  •   Data server(Chunk server) - 负责存储文件的多台机器
  客户端访问文件系统是需要通过mfsmount,它从Managing Server获取文件信息。这方面与NFS的访问类似(mount)。
  MooseFS是实现在用户空间的文件系统,因此可以在各种实现了FUSE的平台上安装。如(Linux, FreeBSD, MacOS X)
  文件元数据(Metadata)放在managing server的内存中,定时以二进制文件和增量日志的形式同步保存到磁盘上,并同步到备份metaloggers上
  文件数据被分为64Mib大小的分片(块)存储,同时可以配置在data servers上保留几个备份。 每个(Chunk)是位于磁盘上的一个文件。这些64Mib的文件分布在多个data server上并配置成多份拷贝,这样实现高可用性。
工作原理图:


  通过从客户机挂载到MooseFS系统上,所有在的文件操作就像在本地文件系统之上。客户端操作系统内核把对文件的操作(read/write)通过FUSE模块传到mfsmount进程,后者再经由网络与Managing server 和 data server交换信息,整个过程对于用户是看不到的。(用户看到的是操作本地文件)
  mfsmount进程每次和managing server通信的时候无非以下几种文件操作:
  1.创建文件
  2.删除文件
  3.读目录
  4.修改文件属性xwr
  5.修改文件尺寸
  mfsmount与data server直接相通存储文件chunk。当完成写文件后,managing server会从mfsmount取回文件信息来更新文件长度和最后修改时间。
  另外,data server之间会相互传播文件数据来实现冗余。
容错性:
  管理员可以配置单个文件和目录的备份数量,这样就避免了单点故障带来的数据损失。 通过设置“goal”属性可以实现文件备份的数量,goal=1时文件只存在一台data server。重要的文件一般需要设置2+份拷贝。
  当一台data server挂掉,一个具有两份拷贝的文件会失去这台server上的一个拷贝,剩下的拷贝会选择一台活的data server把数据传播过去,这样仍然会维持两个拷贝数量。
  文件系统扩容很方便,新data server可以随时加入,并且即时变为可用状态。
  管理工具可以查询文件状态并设置拷贝数量。
  如果一个文件跨多个chunk存储,每个chunk上的分片数据都有一个版本号,当一个chunk所在data server宕机期间文件发生改变,在这个server恢复后,会对当前其他文件部分做同步,发现版本滞后的情况下,会自动清理废弃的chunk,腾出空间分配新chunk。
  客户机的文件操作失败不会影响文件的一致性。
平台:
  MooseFS可以安装在支持FUSE的操作系统之上。以下列出适用的系统: Linux(内核版本2.6.14以及后续版本) FreeBSD OpenSolaris MacOS X
  master server, metalogger server 和 chunk servers也可以运行在Solaris或Windows Cygwin模拟器上,但是没有FUSE支持,就不能挂载文件系统
  参考: http://www.moosefs.org

  •   FastDFS
  FastDFS是一款开源的高性能分布式文件系统。主要功能包括文件存储、同步、访问(上传下载),支持海量文件存储,负载均衡等。多用于照片,视频文件共享的网站。
  FastDFS中包含两个角色:tracker和storage。 tracker掌管文件访问的请求调度和负载均衡。 storage负责存储,同步,提供文件访问接口。storage还要管理文件元数据(Key-Value形式)。
  tracker和storage集群可以随时加入新机器,不会影响在线服务,tracker采用点对点通信模式。 storage server采用文件卷组(volume group)的形式做集群,整个storage系统由一个或多个 Volume组成,每个Volume包含多台storage server,每个server上持有相同的文件数据互为备份,对Volume中每台服务器的访问是负载均衡的。当加入一台storage server后,Volume上的文件会复制到这台机器上,完成后新机器上线对外服务。
  FastDFS上文件的标识由两部分组成Volume名和文件名。
  文件上传过程:

  文件下载过程:

  参考: https://code.google.com/p/fastdfs/ http://www.programmer.com.cn/4380/
功能点对比分析
比较项目MooseFSFastDFS单点故障Managing server,metalogger互为备份,无单点故障一个group至少有两台服务器,不存在单点故障的问题适合单个文件大小64MB以上大文件小文件负载均衡支持支持文件元数据Managing server管理storage分散管理文件是否有多个副本是是扩展性在线,即时在线,即时文件操作形式POSIX,Unix-alike,local file accessVolume+File NameFUSE支持不支持源产地PolandChina对mogileFS改进应用场合照片,电子文档,视频照片,电子文档,视频模块Managing server,metalogger server,Chunk serverTracker,Storage代码托管sourcegorgegoogle code开发语言PerlC许可证GPL v3GPL v3  参考:


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-670069-1-1.html 上篇帖子: FastDFS学习笔记 下篇帖子: V 11 FastDFS
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表