MFS的工作原理图:

管理服务器:master 负责各个数据存储服务器的管理,文件读写调度,文件空间回收和恢复,多节点的拷贝
元数据日志服务器:metalogger 负责备份master服务器的变化日志文件,类型为changelog_ml.*.mfs
数据存储服务器:chunkservers  负责连接master,听从master调度,提供存储空间,并且为客户端提供数据传输
客户机挂载使用:client  通过fuse 内核接口远程管理服务上管理的数据存储服务器

 

MFS安装开始:

元数据服务器安装和配置:masteruseradd mfs -s /sbin/nologintar zxvf moosefs-2.0.81-1.tar.gz cd moosefs-2.0.81 ./configure  --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs   make && make install    cd /usr/local/mfs/etc/mfs  cp mfsmaster.cfg.dist mfsmaster.cfg  cp mfsexports.cfg.dist mfsexports.cfg  cp /usr/local/mfs/var/mfs/metadata.mfs.empty  /usr/local/mfs/var/mfs/metadata.mfs  这是一个8字节的文件,为mfs新增项目  ln -s /usr/local/mfs/sbin/mfsmaster /usr/sbin/  mfsmaster start

mfsmaster.cfg配置文件:# WORKING_ USER = mfs      #运行master server 的用户# WORKING_ GROUP = mfs     #运行master server 的组# SYSLOG_IDENT = mfsmaster #master server 在syslog 中的标识,说明是由master serve 产生的# LOCK_MEMORY = 0          #是否执行mlockall()以避免mfsmaster 进程溢出(默认为0)# NICE_LEVEL = -19         #运行的优先级(如果可以默认是-19; 注意: 进程必须是用root 启动)# EXPORTS_FILENAME = /usr/local/mfs/etc/mfsexports.cfg #被挂接目录及其权限控制文件的存放位置# DATA_PATH = /usr/local/mfs/var/mfs    #数据存放路径,此目录下大致有三类文件,changelog,sessions 和stats;# BACK_LOGS = 50                        #metadata 的改变log 文件数目(默认是50);# REPLICATIONS_ DELAY_INIT = 300        #延迟复制的时间(默认是300s);# REPLICATIONS_ DELAY_DISCONNECT = 3600 #chunkserver 断开的复制延迟(默认是3600);# MATOML_LISTEN_HOST = *     #metalogger 监听的IP 地址(默认是*,代表任何IP);# MATOML_LISTEN_PORT = 9419 #metalogger 监听的端口地址(默认是9419);# MATOCS_LISTEN_ HOST = *   #用于chunkserver 连接的IP 地址(默认是*,代表任何IP);# MATOCS_LISTEN_PORT = 9420 #用于chunkserver 连接的端口地址(默认是9420);# MATOCU_LISTEN_HOST = *    #用于客户端挂接连接的IP 地址(默认是*,代表任何IP);# MATOCU_LISTEN_PORT = 9421 #用于客户端挂接连接的端口地址(默认是9421);# CHUNKS_LOOP_TIME = 300    #chunks 的回环频率(默认是:300 秒);# CHUNKS_DEL_LIMIT = 100# CHUNKS_WRITE_REP_LIMIT = 1 #在一个循环里复制到一个chunkserver 的最大chunk 数目(默认是1)# CHUNKS_READ_REP_LIMIT = 5  #在一个循环里从一个chunkserver 复制的最大chunk 数目(默认是5)# REJECT_OLD_ CLIENTS = 0    #弹出低于1.6.0 的客户端挂接(0 或1,默认是0)
元数据日志服务器安装和配置:metalogger该服务仅需要一个配置文件,这里我们只需要从模板文件复制一个,然后稍微加以修改即可cp mfsmetalogger.cfg.dist mfsmetalogger.cfgvim mfsmetalogger.cfg修改为master的地址:MASTER_HOST = xxx.xxx.xxx.xxxln -s /usr/local/mfs/sbin/mfsmetalogger /usr/sbin/ mfsmetalogger start
metalogger配置文件:# 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 元数据备份文件下载请求频率。默认为24小时,即每隔一天从元数据服务器(MASTER)下载一个metadata.mfs.back 文件。当元数据服务器关闭或者出故障时,matedata.mfs.back 文件将消失,那么要恢复整个mfs,则需从metalogger 服务器取得该文件。请特别注意这个文件,它与日志文件一起,才能够恢复整个被损坏的分布式文件系统。# MASTER_RECONNECTION_DELAY = 5MASTER_HOST = 192.168.0.1# MASTER_PORT = 9419# MASTER_TIMEOUT = 60# deprecated, to be removed in MooseFS 1.7# LOCK_FILE = /var/run/mfs/mfsmetalogger.lock

 数据存储chunkserver服务器的安装配置:chunkservers数据存储服务器有2个配置服务器需要修改,一个是主配置文件 mfschunkserver.cfg ,另一个配置文件是 mfshdd.cfg。每个服务器用来分配给 MFS使用的空间最好是一个单独的硬盘或者一个raid卷,最低要求是一个分区cp mfschunkserver.cfg.dist  mfschunkserver.cfg修改为master的IP地址:MASTER_HOST = xxx.xxx.xxx.xxx 元数据服务器的名称或地址cp mfshdd.cfg.dist mfshdd.cfg需要如下一行内容就可以了:/sdb#我添加了一个硬盘mkfs.ext4 /dev/vdcmkdir sdbmount /dev/vdc sdb/chown –R mfs:mfs /sdbln -s /usr/local/mfs/sbin/mfschunkserver /usr/sbin/mfschunkserver start
mfschunkserver.cfg:配置文件# WORKING_USER = mfs# WORKING_GROUP = mfs# DATA_PATH = /usr/local/mfs/var/mfs# LOCK_FILE = /var/run/mfs/mfschunkserver.pid# SYSLOG_IDENT = mfschunkserver# BACK_LOGS = 50# MASTER_RECONNECTION_DELAY = 30MASTER_HOST = 192.168.0.1 #元数据服务器的名称或地址,可以是主机名,也可以是ip 地址# MASTER_PORT = 9420 #为Matser中 MATOCS_LISTEN_PORT指定的端口# MASTER_TIMEOUT = 60# CSSERV_LISTEN_HOST = *# CSSERV_LISTEN_PORT = 9422 这个监听端口用于与其它数据存储服务器间的连接,通常是数据复制# CSSERV_TIMEOUT = 60# CSTOCS_TIMEOUT = 60# HDD_CONF_FILENAME = /usr/local/mfs/etc/mfshdd.cfg 分配给MFS 使用的磁盘空间配置文件的位置

MFS客户端的安装及配置:clienttar zxvf fuse-2.7.4.tar.gz cd fuse-2.7.4./configure  make && make install tar zxvf moosefs-2.0.81-1.tar.gz cd moosefs-2.0.81 ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount  make && make install  echo 'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' >>/etc/profile source /etc/profile   mkdir /mnt/mfs ln -s /usr/local/mfs/bin/mfsmount /usr/sbin/ mfsmount /mnt/mfs/ -H xxx.xxx.xxx.xxx   注意,所有的MFS都是挂接同一个元数据服务器master,而不是其他数据存储服务器chunkserver    设置文件副本数量,建议以3份为佳  设置副本数目 mfsrsetgoal 3 /mnt/mfs