MooseFS(Moose File System)是一种分布式文件系统,它将数据分布在网络中不同服务器上,支持FUSE(用户空间文件系统Filesystem in Userspace简称FUSE),客户端挂载后可以作为一个 普通的Unix 文件系统使用MooseFS。MooseFS中共有四种角色:主控服务器server server、主控备份服务器metalogger server、存储块服务器chunkserver、客户端主机client。
Master:(元数据服务器)负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复,多节点拷贝;
Metalogger:(元数据日志服务器)负责备份Master服务器的changelog。文件类型为 changelog.*.mfs ,以便在Master出问题时接替其工作;
Chunk:(数据存储服务器)负责连接Master,听从Master调度,提供存储空间并为客户端提供数据传输;
Client:(客户端挂载)通过FUSE内核接口挂载远程管理服务器(master)上所管理的数据存储服务器;
实验环境:四台服务器部署,IP地址为:192.168.10.30~33 分别作为主控、备份、存储、客户端。
[root@server ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@server ~]# curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo //添加YUM仓库
[root@server ~]# curl "http://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS //添加YUM仓库校验
[root@mfsmaster ~]# yum install -y moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli
[root@mfsmaster ~]# vim /etc/mfs/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)
[root@mfsmaster ~]# echo '192.168.10.0/24 / rw,alldirs,mapall=mfs:mfs,password=888' >> mfsexports.cfg
[root@mfsmaster ~]# vim /etc/mfs/mfstopology.cfg
[root@mfsmaster ~]# systemctl enable moosefs-master && systemctl restart moosefs-master
[root@mfsmaster ~]# systemctl enable moosefs-cgiserv && systemctl restart moosefs-cgiserv
网页管理地址http://192.168.10.30:9425
[root@mfsMetalogger ~]# yum install -y moosefs-metalogger
[root@mfsMetalogger ~]# vim /etc/mfs/mfsmetalogger.cfg
MASTER_HOST = 192.168.10.30
[root@mfsMetalogger ~]# systemctl enable moosefs-metalogger && systemctl restart moosefs-metalogger
[root@mfschunkserver ~]# yum install -y moosefs-chunkserver
[root@mfschunkserver ~]# vim /etc/mfs/mfschunkserver.cfg
[root@mfschunkserver ~]# vim /etc/mfs/mfshdd.cfg
[root@mfschunkserver ~]# systemctl enable moosefs-chunkserver && systemctl restart moosefs-chunkserver
[root@mfsclient ~]# yum install -y moosefs-client
[root@mfsclient ~]# vim /etc/mfs/mfsmount.cfg
[root@mfsclient ~]#
[root@mfsclient ~]#
[root@mfsclient ~]# |