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

[经验分享] 分布式文件系统介绍( MooseFS )

[复制链接]

尚未签到

发表于 2019-2-1 09:57:47 | 显示全部楼层 |阅读模式
  MooseFS系统简介
  MooseFS是一个高容错性的分布式文件系统,它能够将资源分布存储于几台不同的物理介质,对外只提供给用户一个访问接口。对它的操作与其它文件系统完全一样:
  l分层文件结构(目录树结构);
  l存储POSIX 文件属性(权限、最后访问、修改时间);
  l支持特殊的文件(块文件夹、字符文件及管道和socket )
  l软链接(文件名指向目标文件)及硬链接(不同的文件名指向同一块数据);
  l仅限于基于IP 地址或密码来访问文件系统。
  MoosFS具有以下特征:
  l高可靠性:数据可以被存储于几个不同的地方;
  l可扩展性:可以动态的添加计算机或磁盘来增加系统的容量产;
  l高可控性:系统能够设置删除文件的时间间隔;
  l可追溯性:能够根据文件的不同操作(写入/ 访问)生成文件快照。
  MooseFS的体系结构
  MooseFS体系结构包含以下四个模块:
  l管理服务器(master server):它用来管理整个文件系统,用来存储每个文件的元数据(包括文件大小、属性及存储位置,同时也包括的一些非规则性的文件,如目录、socket、管道及设备);
  l数据服务器(chunk servers):用于存储文件的服务器,同时它们之间可以同步数据;
  l元数据备份服务器(metalogger servers):用于存储元数据变化日志并周期性的下载元数据文件;同时也可以替代管理服务器暂不能工作的情况;
  l客户端:用于访问MooseFS中的文件,采用mfsmount来与管理服务器进行交互(接收或修改元数据文件)及与数据服务器交换真正的数据。
  mfsmount是基于FUSE机制的(FileSystem in USErspace),因此mooseFS能够工作于任何实现了FUSE的操作系统(Linux、FreeBSD、MacOS X等)。

  MooseFS读操作

  MooseFS写操作
  元数据存储在管理服务器的内存及磁盘中(周期性的更新二进制文件及增长的日志文件)。同时二进制文件及日志文件会被同步到元数据服务器。
  文件数据被切分成最大不超过64M的不同的片段,每个片段会存储于备选的数据服务器中。可以通过将数据配置在多个不同的数据服务器来保证高可靠性,可以通过mfssetgoal命令来设定最终要将数据存储在几台服务器上。
  系统如何工作
  在客户端上对挂载在MooseFS上的文件操作与的文件系统完全一样,操作系统内核将文件操作传输至FUSE模块,进而与mfsmount进程进行交互。Mfsmount进程通过网络与管理服务器及数据服务器交互。整个过程对用户来说是完全透明的。
  Mfsmount每次与管理服务器交互,以下的操作文件元是必须的:
  l创建文件;
  l删除文件;
  l读取文件目录;
  l读取及改变属性;
  l改变文件大小;
  l开始读取或写入数据;
  l访问MFSMETA 上的任何特殊文件。
  mfsmount直接连接到数据服务器,用于存储相关片段的文件。当写入一个文件时,写入过程完成后,管理服务器会接收从mfsmount发送回来的信息,用于更新文件的长度及最后的修改时间。
  此外,数据服务器间能够相互复制数据,以达到将数据文件存储在不同机器上的目的。
  容错性
  系统管理员可以通过管理命令将数据文件拷贝至不同的数据服务器上。设置多于一台数据服务器的目标将有利于提高系统的容错性。多份数据文件的存储有利于消除单一数据服务器宕机或网络延迟带来的灾难。
  当采用mfssetgoal的目标数为1时,会将数据文件存储在系统中的单一数据服务器中。当有重要数据时,可以将该目标值设置大于2,它能够有效的防止因系统宕机而带来数据无法访问的后果。当然了目标数的设定不能多于数据服务器的数目,否则将无法将数据保存到预定数目的服务器中。当有一个服务器已经存储满时,它将无法再容纳数据存储,在这种情况下,需要重新挂载一台数据服务器,才能够满足预期的目标数。如果有一台数据服务器临时无法访问或网络出现问题,由于之前数据文件至少有两份以上的备份,客户端可以从其它服务器上进行有效访问。
  新的数据服务器能够随时挂载到系统中,同时新的存储容量也会立即生效,用来存储新文件或从其它数据服务器复制备份文件。管理工具能够查询文件系统中的状态以及是否在目标值设定的范围之前内,工具也能够用来改变目标值的设置。客户端(运行mfsmount进程)的机器对文件系统的连贯性及其它客户端没有任何影响。最严重的情形也不过是客户端向数据服务器发送的数据失败。
  平台
  MooseFS能够被应用在实现了FUSE的任何操作系统:
  ·Linux (Linux 2.6.14及更高,支持FUSE的内核)
  ·FreeBSD
  ·OpenSolaris
  ·MacOS
  管理服务器、日志服务器及数据服务器使用Cygwin运行在Solaris及Windows上。不幸的是没有FUSE的话是不能将文件系统挂载到操作系统中。


运维网声明 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-670319-1-1.html 上篇帖子: Moosefs分布式文件系统的搭建与维护 下篇帖子: moosefs升级到1.6.27版本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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