实验原理:MFS是一个具有容错性的网络分布式文件系统,它把数据分散在多个物理服务器上,而呈现给用户的则是一个统一的资源。
实验拓扑:192.168.80.181 Master server(主机名:www.aa.com)(元数据服务器,在整个体系中负责管理文件系统,维护元数据)
192.168.80.182 Metlogger server (www.ab.com)(日志服务器,备份Master服务器的变化日志文件,当Master服务器数据丢失损坏时从这里取得文件进行恢复)
192.168.80.183 Client (www.ac.com)
192.168.80.184 Chunk server1 (www.ad.com) (真正存储数据的服务器)
192.168.80.185 Chunk server2 (www.ae.com)
-----搭建Master server---------
[www.aa.com@ ~]# service firewalld stop
[www.aa.com@ ~]# setenforce 0
[www.aa.com@ ~]# yum install -y zlib-devel
[www.aa.com@ ~]# groupadd mfs //创建用户组
[www.aa.com@ ~]# useradd -s /sbin/nologin -g mfs -M mfs //创建用户,-M不用指定家目录
[www.aa.com@ ~]# tar xf moosefs-3.0.100-1.tar.gz -C /opt/
[www.aa.com@ ~]# cd /opt/moosefs-3.0.100/
[www.aa.com@ ~]# ./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \ //不配置chunkserver
--disable-mfsmount //不配置客户端
[www.aa.com@ ~]# make && make install
//把模板文件复制为可以被执行的文件
[www.aa.com@ ~]# cd /usr/local/mfs/etc/mfs/
[www.aa.com@ ~]# cp mfsmaster.cfg.sample mfsmaster.cfg(主配置文件)
[www.aa.com@ ~]# cp mfsexports.cfg.sample mfsexports.cfg(被挂载目录及权限配置文件)
[www.aa.com@ ~]# cp mfstopology.cfg.sample mfstopology.cfg
[www.aa.com@ ~]# cd /usr/local/mfs/var/mfs/
[www.aa.com@ ~]# cp metadata.mfs.empty metadata.mfs
[www.aa.com@ ~]# chown mfs:mfs /usr/local/mfs/var/mfs //修改文件的属主和属组
[www.aa.com@ ~]# /usr/local/mfs/sbin/mfsmaster start
[www.aa.com@ ~]# netstat -anpt | grep mfs
-------搭建MetaLogger server---------
[www.ab.com@ ~]# service firewalld stop
[www.ab.com@ ~]# setenforce 0
[www.ab.com@ ~]# yum install -y zlib-devel
[www.ab.com@ ~]# groupadd mfs
[www.ab.com@ ~]# useradd -s /sbin/nologin -g mfs -M mfs
[www.ab.com@ ~]# tar xf moosefs-3.0.100-1.tar.gz -C /opt/
[www.ab.com@ ~]# cd /opt/moosefs-3.0.100/
[www.ab.com@ ~]# ./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \
--disable-mfsmount
[www.ab.com@ ~]# make && make install
[www.ab.com@ ~]# cd /usr/local/mfs/etc/mfs/
[www.ab.com@ mfs]# cp mfsmaster.cfg.sample mfsmaster.cfg
[www.ab.com@ mfs]# cp mfsexports.cfg.sample mfsexports.cfg
[www.ab.com@ mfs]# cp mfsmetalogger.cfg.sample mfsmetalogger.cfg
[www.ab.com@ mfs]# cd /usr/local/mfs/var/mfs
[www.ab.com@ mfs]# mv metadata.mfs.empty metadata.mfs
[www.ab.com@ mfs]#cd /usr/local/mfs/etc/mfs/
[www.ab.com@ mfs]#vi mfsmetalogger.cfg
MASTER_HOST = 192.168.80.181
:wq
[www.ab.com@ mfs]# /usr/local/mfs/sbin/mfsmaster start
[www.ab.com@ mfs]# netstat -anpt | grep mfs
-------搭建chunkserver-----
[www.ad.com@ ~]# service firewalld stop
[www.ad.com@ ~]# setenforce 0
[www.ad.com@ ~]# yum install -y zlib-devel
[www.ad.com@ ~]# groupadd mfs
[www.ad.com@ ~]# useradd -s /sbin/nologin -g mfs -M mfs
[www.ad.com@ ~]# tar xf moosefs-3.0.100-1.tar.gz -C /opt/
[www.ad.com@ ~]# cd /opt/moosefs-3.0.100/
[www.ad.com@ moosefs-3.0.100]# ./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \ //不配置master server
--disable-mfsmount
[www.ad.com@ moosefs-3.0.100]# make && make install
[www.ad.com@ moosefs-3.0.100]# cd /usr/local/mfs/etc/mfs/
[www.ad.com@ mfs]# cp mfschunkserver.cfg.sample mfschunkserver.cfg
[www.ad.com@ mfs]# cp mfshdd.cfg.sample mfshdd.cfg
[www.ad.com@ mfs]# vi mfschunkserver.cfg
MASTER_HOST = 192.168.80.181
:wq
[www.ad.com@ mfs]# vi mfshdd.cfg
/data
:wq
[www.ad.com@ mfs]# mkdir /data
[www.ad.com@ mfs]# chown -R mfs:mfs /data
[www.ad.com@ mfs]# /usr/local/mfs/sbin/mfschunkserver start
[www.ad.com@ mfs]# netstat -anpt | grep mfs
----还有一台185配置相同-------
----------客户端配置----------
[www.ac.com@ ~]# service firewalld stop
[www.ac.com@ ~]# setenforce 0
[www.ac.com@ ~]# yum install -y zlib-devel
[www.ac.com@ ~]# tar xzvf fuse-2.9.2.tar.gz
[www.ac.com@ ~]# cd fuse-2.9.2
[www.ac.com@ fuse-2.9.2]# ./configure
[www.ac.com@ fuse-2.9.2]# make && make install
[www.ac.com@ fuse-2.9.2]# vi /etc/profile
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
[www.ac.com@ fuse-2.9.2]# source /etc/profile
-----------安装mfs客户端------------
[www.ac.com@ fuse-2.9.2]# groupadd mfs
[www.ac.com@ fuse-2.9.2]# useradd -s /sbin/nologin -g mfs -M mfs
[www.ac.com@ ~]# tar xf moosefs-3.0.100-1.tar.gz -C /opt/
[www.ac.com@ ~]# cd /opt/moosefs-3.0.100/
[www.ac.com@ moosefs-3.0.100]# ./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \
--disable-mfschunkserver \
--enable-mfsmount
[www.ac.com@ moosefs-3.0.100]# make && make install
[www.ac.com@ moosefs-3.0.100]# mkdir /opt/mfs //创建挂接点
[www.ac.com@ moosefs-3.0.100]# modprobe fuse //加载fuse模块到内核
[www.ac.com@ moosefs-3.0.100]# /usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.80.181 //master地址
[www.ac.com@ moosefs-3.0.100]# df -hT
[www.ac.com@ moosefs-3.0.100]# umount /opt/mfs //如果要卸载使用这条命令
----优化客户端------
[www.ac.com@ moosefs-3.0.100]# vi /etc/profile
export PATH=/usr/local/mfs/bin:$PATH
:wq
[www.ac.com@ moosefs-3.0.100]# source /etc/profile
[www.ac.com@ moosefs-3.0.100]# mfsgetgoal -r /opt/mfs/ //查看备份目录中文件的拷贝份数
[www.ac.com@ moosefs-3.0.100]# mfssetgoal -r 3 /opt/mfs/ //设置备份目录中文件的拷贝份数,不要大于chunkserver的总数
[www.ac.com@ moosefs-3.0.100]# mfsgetgoal 文件名 //查看指定文件或目录的拷贝份数
-----MASTER-server-----启动监控程序--
[www.ac.com@ moosefs-3.0.100]# /usr/local/mfs/sbin/mfscgiserv
测试查看:
http://192.168.80.181:9425/mfs.cgi?masterhost=www.aa.com //注意主机名