MFS文件系统

更新时间:2023-09-11 23:52:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

对于mfs文件系统也用了半年了,确实不错,最近又翻译了作者的三篇文章,再此一同发上,希望对大家有所帮助。不足之处还请指出,以便完善,谢谢!

MFS文件系统

官方的网络示意图是这样的:

MFS文件系统结构: 包含4种角色:

管理服务器managing server (master)

元数据日志服务器Metalogger server(Metalogger) 数据存储服务器data servers (chunkservers) 客户机挂载使用client computers

4种角色作用:

管理服务器:负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝

元数据日志服务器: 负责备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在master server出问题的时候接替其进行工作

数据存储服务器:负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输.

客户端: 通过fuse内核接口挂接远程管理服务器上所管理的数据存储服务器,.看起来共享的文件系统和本地unix文件系统使用一样的效果.

一个具体的实例 (一)、安装和配置元数据服务(master server) 1、下载源代码

http://ncu.dl.sourceforge.net/pr ... 1/mfs-1.6.11.tar.gz 2、tar zxvf mfs-1.6.11.tar.gz

3、创建用户 useradd mfs –s /sbin/nologin

4、./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs 5、make ; make install 6、配置

配置文件位于安装目录/usr/local/mfs/etc,需要的配置文件有两个:mfsmaster.cfg和 mfsexports.cfg,

mfsmaster.cfg是主配置文件,mfsexports.cfg是被挂接目录及权限设置。 (1)、mfsmaster.cfg的配置

[root@nas etc]# cp mfsmaster.cfg.dist mfsmaster.cfg [root@nas etc]# vi mfsmaster.cfg # WORKING_USER = mfs # WORKING_GROUP = mfs # SYSLOG_IDENT = mfsmaster # LOCK_MEMORY = 0 # NICE_LEVEL = -19

# EXPORTS_FILENAME = /usr/local/mfs/etc/mfsexports.cfg # DATA_PATH = /usr/local/mfs/var/mfs # BACK_LOGS = 50

# REPLICATIONS_DELAY_INIT = 300

# REPLICATIONS_DELAY_DISCONNECT = 3600 # MATOML_LISTEN_HOST = * # MATOML_LISTEN_PORT = 9419 # MATOCS_LISTEN_HOST = * # MATOCS_LISTEN_PORT = 9420 # MATOCU_LISTEN_HOST = * # MATOCU_LISTEN_PORT = 9421 # CHUNKS_LOOP_TIME = 300 # CHUNKS_DEL_LIMIT = 100

# CHUNKS_WRITE_REP_LIMIT = 1 # CHUNKS_READ_REP_LIMIT = 5 # REJECT_OLD_CLIENTS = 0

需要注意的是,凡是用#注释掉的变量均使用其默认值,这里我解释一下这些变量:

#WORKING_USER和WORKING_GROUP:是运行master server的用户和组;

#SYSLOG_IDENT:是master server在syslog中的标识,也就是说明这是由master serve产生的;

#LOCK_MEMORY:是否执行mlockall()以避免mfsmaster 进程溢出(默认为0); #NICE_LEVE:运行的优先级(如果可以默认是 -19; 注意: 进程必须是用root启动); #EXPORTS_FILENAME:被挂接目录及其权限控制文件的存放位置

#DATA_PATH:数据存放路径,此目录下大致有三类文件,changelog,sessions和stats; #BACK_LOGS:metadata的改变log文件数目(默认是 50);

#REPLICATIONS_DELAY_INIT:延迟复制的时间(默认是300s);

#REPLICATIONS_DELAY_DISCONNECT:chunkserver断开的复制延迟(默认是3600); # MATOML_LISTEN_HOST:metalogger监听的IP地址(默认是*,代表任何IP); # MATOML_LISTEN_PORT:metalogger监听的端口地址(默认是9419);

# MATOCS_LISTEN_HOST:用于chunkserver连接的IP地址(默认是*,代表任何IP); # MATOCS_LISTEN_PORT:用于chunkserver连接的端口地址(默认是9420);

# MATOCU_LISTEN_HOST:用于客户端挂接连接的IP地址(默认是*,代表任何IP); # MATOCU_LISTEN_PORT:用于客户端挂接连接的端口地址(默认是9421); # CHUNKS_LOOP_TIME :chunks的回环频率(默认是:300秒); 注:原文为Chunks loop frequency in seconds (default is 300) # CHUNKS_DEL_LIMIT = 100

# CHUNKS_WRITE_REP_LIMIT:在一个循环里复制到一个chunkserver的最大chunk数目(默认是1)

# CHUNKS_READ_REP_LIMIT :在一个循环里从一个chunkserver复制的最大chunk数目(默认是5)

# REJECT_OLD_CLIENTS:弹出低于1.6.0的客户端挂接(0或1,默认是0) 注意mfsexports访问控制对于那些老客户是没用的

以上是对master server的mfsmaster.cfg配置文件的解释,对于这个文件不需要做任何修改就可以工作。

(2)、mfsexports.cfg的配置

[root@nas etc]# vi mfsexports.cfg

#* / ro #192.168.1.0/24 / rw

#192.168.1.0/24 / rw,alldirs,maproot=0,password=passcode #10.0.0.0-10.0.0.5 /test rw,maproot=nobody,password=test * . rw

#* / rw,alldirs,maproot=0

192.168.3.98 /tt rw,alldirs,maproot=0 192.168.3.139 / rw,alldirs,maproot=0

192.168.3.138 / rw,alldirs,maproot=0,password=111111

该文件每一个条目分为三部分: 第一部分:客户端的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段

目录部分需要注意两点: / 标识MooseFS 根;

. 表示MFSMETA 文件系统

权限部分:

ro 只读模式共享 rw 的方式共享

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

maproot 映射为root,还是指定的用户 password 指定客户端密码

7、启动master server

master server可以单独启动(所谓单独启动就是在没有数据存储服务器(chunkserver)的时候也可以启动,但是不能存储,chunkserver启动后会自动的加入)。安装配置完MFS后,即可启动它。

执行命令 /usr/local/mfs/sbin/mfsmaster start ,可通过检查如下: [root@nas etc]# ps -ef|grep mfs

mfs 12327 1 0 08:38 ? 00:00:00 /usr/local/mfs/sbin/mfsmaster start 8、停止master server

安全停止master server是非常必要的,最好不要用kill。利用mfsmaster –s来安全停止master serve,一旦是用了kill也是有解决方法的,后文有说明。 9、要经常性的查看系统日志(tail -f /var/log/messages) (二)、安装和配置元数据日志服务器(metalogger) 1、下载源码

http://ncu.dl.sourceforge.net/pr ... 1/mfs-1.6.11.tar.gz 2、tar zxvf mfs-1.6.11.tar.gz

3、创建用户 useradd mfs –s /sbin/nologin

4、./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs 5、make ; make install 6、配置

该服务只有一个配置文件,那就是mfsmetalogger.cfg。 [root@mail etc]# vi mfsmetalogger.cfg # WORKING_USER = mfs

# WORKING_GROUP = mfs

# SYSLOG_IDENT = mfsmetalogger # LOCK_MEMORY = 0 # NICE_LEVEL = -19

# DATA_PATH = /usr/local/mfs/var/mfs # BACK_LOGS = 50

# META_DOWNLOAD_FREQ = 24

# MASTER_RECONNECTION_DELAY = 5 MASTER_HOST = 192.168.3.34 # MASTER_PORT = 9419 # MASTER_TIMEOUT = 60

# deprecated, to be removed in MooseFS 1.7

# LOCK_FILE = /var/run/mfs/mfsmetalogger.lock

文中的大多数变量不难理解,类似于mfsmaster.cfg中的变量,其中: META_DOWNLOAD_FREQ需要说明一下:

元数据备份文件下载请求频率。默认为24小时,即每隔一天从元数据服务器(MASTER)下载一个metadata.mfs.back文件。当元数据服务器关闭或者出故障时,matedata.mfs.back文件将消失,那么要恢复整个mfs,则需从metalogger服务器取得该文件。请特别注意这个文件,它与日志文件一起,才能够恢复整个被损坏的分布式文件系统。

这个文件中需要修改的是MASTER_HOST变量,这个变量的值是master server的IP地址。 7、启动metalogger服务

[root@mail sbin]# ./mfsmetalogger start working directory: /usr/local/mfs/var/mfs lockfile created and locked

initializing mfsmetalogger modules ...

mfsmetalogger daemon initialized properly

这说明metalogger服务正常启动了。利用命令检查: 通过进程:

[root@mail sbin]# ps -ef |grep mfs

mfs 12254 1 0 15:25 ? 00:00:00 ./mfschunkserver start 通过检查端口:

[root@mail sbin]# lsof -i:9419

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

mfsmetalo 12292 mfs 7u IPv4 1395372 TCP mail.tt.com:52456->192.168.3.34:9419 (ESTABLISHED) 查看日志服务器的工作目录 [root@mail mfs]# pwd /usr/local/mfs/var/mfs [root@mail mfs]# ll total 8

-rw-r----- 1 mfs mfs 249 Jan 13 15:39 changelog_ml.1.mfs -rw-r----- 1 mfs mfs 519 Jan 13 15:40 sessions_ml.mfs

本文来源:https://www.bwwdw.com/article/7g1h.html

Top