专栏首页L宝宝聊ITMFS分布式文件系统

MFS分布式文件系统

一、工作原理

1、分布式原理

分布式文件系统就是把一些分散在多台计算机上的共享文件夹,集合到一个共享文件夹内,用户要访问这些文件夹的时候,只要打开一个文件夹,就可以的看到所有链接到此文件夹内的共享文件夹。

2、MFS原理

MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。

1)MFS的组成

元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据,目前不支持高可用。

元数据日志服务器(MetaLogger):备份Master服务器的变化日志文件,当master服务器损坏,可以从日志服务器中取得文件恢复。

数据存储服务器(Chunk Server):真正存储数据的服务器,服务器越多,容量就越大,可靠性越高,性能越好。

客户端(Client):可以像挂载NFS一样挂载MFS文件系统

2)MFS读数据的处理过程

n 客户端向元数据服务器发出读请求

n 元数据服务器把所需数据存放的位置(Chunk Server的IP地址和Chunk编号)告知客户端

n 客户端向已知的ChunkServer请求发送数据

n Chunk Server向客户端发送数据

3)写入的过程

n 客户端向元数据服务器发送写入请求

n 元数据服务器与ChunkServer进行交互,但元数据服务器只在某些服务器创建新的分块Chunks,创建成功后由Chunk Servers告知元数据服务器操作成功

n 元数据服务器告知客户端,可以在哪个Chunk Server的哪些Chunks写入数据

n 客户端向指定的ChunkServer写入数据

n 该Chunk Server与其他ChunkServer进行数据同步,同步成功后Chunk Server告知客户端数据写入成功

n 客户端告知元数据服务器本次写入完毕

3、配置文件(下面的只是介绍一下)

需要用到两个配置文件:mfsmaster.cfg(主配置文件)和mfsexport.cfg(被挂载目录及访问权限)

mfsmaster.cfg常用的参数如下,默认全部都是不需要修改的,全文都是以#开头,也就是说都是默认配置

[root@centos1mfs]# cd /usr/local/mfs/etc/mfs/

[root@centos1mfs]# vim mfsmaster.cfg

#WORKING_USER= mfs //运行masterserver的用户

#WORKING_GROUP = mfs //运行masterserver的组

#SYSLOG_IDENT = mfsmaster //masterserver在syslog的标示,说明是由masterserver产生的

#LOCK_MEMORY = 0 //是否执行mlockall(),以避免mfsmaster进程溢出默认为0

#NICE_LEVEL = -19 //运行的优先级,进程必须由root启动

#EXPORTS_FILENAME = /usr/local/mfs/etc/mfs/mfsexports.cfg

//被挂载目录及其权限控制文件的存放位置

#TOPOLOGY_FILENAME = /usr/local/mfs/etc/mfs/mfstopology.cfg

#DATA_PATH = /usr/local/mfs/var/mfs //数据存放路径

#BACK_LOGS = 50 //metadata改变的log文件数目(默认是50)

#BACK_META_KEEP_PREVIOUS = 1

#REPLICATIONS_DELAY_INIT = 300 //延迟复制的时间(默认300)

#REPLICATIONS_DELAY_DISCONNECT = 3600 //Chunkserver断开复制延迟(默认是3600秒)

#MATOML_LISTEN_HOST = * //metalogger监听的IP地址默认是所有地址

#MATOML_LISTEN_PORT = 9419 //metalogger监听的端口地址(默认为9419)

#MATOML_LOG_PRESERVE_SECONDS = 600

#MATOCL_LISTEN_HOST = * //用于chunkserver连接的IP地址(默认为*代表所有IP)

#MATOCL_LISTEN_PORT = 9421 //用户客户端挂在的监听端口9421

#CHUNKS_LOOP_MAX_CPS = 100000

#CHUNKS_LOOP_MIN_TIME = 300 //chunks的回环频率(默认300)

#CHUNKS_SOFT_DEL_LIMIT = 10

#CHUNKS_HARD_DEL_LIMIT = 25

#CHUNKS_WRITE_REP_LIMIT = 2 //在一个循环里复制到另外一个Chunkserver的最大Chunk数

#CHUNKS_READ_REP_LIMIT = 10 //在一个循环里从一个Chunkserver复制的的最大Chunk数

#ACCEPTABLE_DIFFERENCE = 0.1

#SESSION_SUSTAIN_TIME = 86400

# REJECT_OLD_CLIENTS= 0 //弹出低于1.6.0的客户端挂接(0或1,默认是0)

#deprecated:

#CHUNKS_DEL_LIMIT - use CHUNKS_SOFT_DEL_LIMIT instead

#LOCK_FILE - lock system has been changed, and this option is used onl

y tosearch for old lockfile

mfsexport.cfg文件参数格式如下

# Allow everythingbut "meta".

* / rw,alldirs,maproot=0

# Allow"meta".

* . rw

该文件,每一个条目分为三个部分

第一部分:客户端IP地址

第二部分:被挂载的目录

第三部分:客户端拥有的权限

地址可以指定几种表现形式

*代表所有的IP地址

n.n.n.n单个ip地址

n.n.n.n/b IP网络地址/位数掩码

n.n.n.n/m.m.m.m IP网络地址/子网掩码

f.f.f.f-t.t.t.t IP段

目录部分的标示如下

/标示MFS根

.表示MFSMETA文件系统

权限部分如下所示

ro——只读模式共享

rw——读写模式共享

alldirs——允许挂载任何指定的子目录

maproot——映射为root,还是普通用户

password——指定客户端的密码

以上就是对mfsmaster.cfg和mfsexport文件的解释。

本文分享自微信公众号 - L宝宝聊IT(gh_b0e552aa80db),作者:L宝宝

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-04-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MFS搭建分布式文件系统

    L宝宝聊IT
  • mysql主从复制与读写分离示例

    L宝宝聊IT
  • LVS负载均衡群集

    L宝宝聊IT
  • 指纹、面部识别解锁都out,科学家要用心脏解锁电脑 | 黑科技

    镁客网
  • JVM之调优工具详解 - jps、jstack、jmap、jhat、jstat、hprof

    这些问题在日常开发中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源),但能够理解并解决这些问题是Java程序员...

    23号杂货铺
  • 浅谈数据中心IT外包管理

    【开篇语】 记得十年前刚入行的时候,我们部门还叫管理工程部,数据中心已经存在了,不过那时我们都喊他机房,而我的主要工作就是做好我们租用的运营商机房内几十台服务器...

    腾讯数据中心
  • C#网络编程(订立协议和发送文件) - Part.4

    前面两篇文章所使用的范例都是传输字符串,有的时候我们可能会想在服务端和客户端之间传递文件。比如,考虑这样一种情况,假如客户端显示了一个菜单,当我们输入S1、S2...

    张子阳
  • Linux之父道歉后,Linux社区颁布开发人员行为准则

      本周Linux之父Linus Torvalds出人意表地发表忏悔录后,Linux社交周二再公布关于开发人员的言行的行为准备,不过社交反应不一。

    数据星河
  • BAT 前端开发面经 —— 吐血总结

    最近暑期实习招聘已经开始,个人目前参加了阿里的内推及腾讯和百度的实习生招聘,在此总结一下 一是备忘、总结提升,二是希望给大家一些参考 其他面试及基础相关可以...

    超然
  • Samsung Pay国内正式上线 ,目前仅支持高端机型

    导语 3月29日,三星公司的移动支付服务“三星智付(Samsung Pay)”在中国大陆正式上线。共有15家银行对其表示支持,银联高层人士也参加了三星召开的发布...

    BestSDK

扫码关注云+社区

领取腾讯云代金券