MooseFS是一种分布式文件系统,MooseFS文件系统结构包括以下四种角色:

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

2 元数据日志服务器Metalogger serverMetalogger

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

3 数据存储服务器data servers (chunkservers)

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

4 客户机挂载使用client computers(需要FUSE支持)

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

 

MooseFs数据读取过程如下图:


MooseFs
数据写入过程如下图:

 

 

环境如下:
Master:192.168.1.10
Metalogger
:
192.168.3.140
Chunkserver
:
192.168.3.161/192.168.3.162
Client
:
192.168.3.163
MFS
: mfs-1.6.20-2.tar.gz  fuse-2.7.6

OS: linux centos5.4

 

Master Server安装

创建用户

Useradd  -M –s /sbin/nologin mfs

解压软件

Tar zxf mfs-1.6.20-2.tar.gz

进入软件目录

Cd mfs-1.6.20-2

编译安装

./configure  --prefix=/usr/local/mfs \          #安装路径

--with-default-user=mfs \                    #默认用户

--with-default-group=mfs \                   #默认组

--disable-mfsmount \                         #不编译客户端

--disable-mfschunkserver                      #不编译数据存储端

Make && make install

 

MasterServer配置

Masterserver的配置文件在/usr/local/mfs/etc下,分别是mfsmaster.cfgmfsexports.cfg

安装完成后2个配置文件默认都以dist结尾,所以只需要将2个配置文件改名:

Cd /usr/local/mfs/etc

Cp mfsmaster.cfg.dist mfsmaster.cfg

Cp mfsexports.cfg.dist mfsexport.cfg

默认配置文件里面的配置是注释掉的,但是实际他们是生效的,如要修改配置直接把#去掉修改分别查看2个配置文件:

 

[root@test1 etc]# vi mfsmaster.cfg

# WORKING_USER = mfs

#运行master的用户

# WORKING_GROUP = mfs

#运行master的组

# SYSLOG_IDENT = mfsmaster

#masterserversyslog中的标示,表示是由master产生

# LOCK_MEMORY = 0

#是否执行mlockall,以避免master进程溢出

# NICE_LEVEL = -19

#进程优先级,默认是-19时必须以root启动

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

#被挂载目录配置文件的位置

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

#数据存放路径,有sessionsstatsmetadatachangelog等日志

# BACK_LOGS = 50

#metadata更改的log文件数目

# REPLICATIONS_DELAY_INIT = 300

#延迟复制时间

# REPLICATIONS_DELAY_DISCONNECT = 3600

#chunkserver断开的复制延迟

# MATOML_LISTEN_HOST = *

# MATOML_LISTEN_PORT = 9419

#metalog监听的ip地址和端口

# MATOCS_LISTEN_HOST = *

# MATOCS_LISTEN_PORT = 9420

#用于chunkserver连接的ip地址和端口

# MATOCU_LISTEN_HOST = *

# MATOCU_LISTEN_PORT = 9421

#用于客户端挂载的ip地址和端口

# CHUNKS_LOOP_TIME = 300

#chunk的回环频率

# CHUNKS_DEL_LIMIT = 100

#chunkloop中被删除的最大延迟时间

# CHUNKS_WRITE_REP_LIMIT = 1

# CHUNKS_READ_REP_LIMIT = 5

# REJECT_OLD_CLIENTS = 0

# deprecated, to be removed in MooseFS 1.7

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

 

 

[root@test1 etc]# vi mfsexports.cfg

192.168.0.0/16                 /               rw,alldirs,maproot=mfs

#配置挂载目录权限

#允许的客户端IP              目录            读写权限,所有子目录,映射的用户

 

最后还需要复制一个文件

Cp  /usr/local/mfs/var/mfs/metadata.mfs.empty   /usr/local/mfs/var/mfs/metadata.mfs

 

现在可以启动mater服务器

cd /usr/local/mfs/sbin/

./mfsmaster  start

查看mfsmaster状态

[root@test1 sbin]# netstat -tupln|grep mfsmaster

tcp   0   0 0.0.0.0:9419      0.0.0.0:*              LISTEN      31631/mfsmaster    

tcp   0   0 0.0.0.0:9420      0.0.0.0:*              LISTEN      31631/mfsmaster    

tcp   0   0 0.0.0.0:9421      0.0.0.0:*              LISTEN      31631/mfsmaster  

另外可以tail –f var/log/message  可以查看master的一些日志
注意:在关闭master server不要使用kill命令,使用./mfsmaster  stop关闭,否则会造成无法启动,但可以用mfsmetastore修复。