MFS的工作原理图:

wKioL1ZvroaSTD2FAAFxieVKXhA935.png


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

 

MFS安装开始:

元数据服务器安装和配置:master
useradd mfs -s /sbin/nologin
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 
  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.cfg
vim mfsmetalogger.cfg
修改为master的地址:
MASTER_HOST = xxx.xxx.xxx.xxx
ln -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 = 5
MASTER_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/vdc
mkdir sdb
mount /dev/vdc sdb/
chown –R mfs:mfs /sdb
ln -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 = 30
MASTER_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客户端的安装及配置:client
tar 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