MFS一键部署脚本,安装主机角色可选 master-server metalogger chunkServer mfs-client
MFS-client windows挂载(简单来说就是使用NFS再共享)
目录结构:
部署步骤
前提:服务器需连通外网、yum命令可正常使用
1、将MFS.zip包上传至服务器/home目录并解压
sudo unzip -o MFS.zip
2、修改部署脚本 MfsInstall.sh 中的ip地址、网段,为自己实际部署环境
sudo vim MfsInstall.sh
#!/bin/sh
echo "./MfsInstall.sh master-server"
echo "执行的文件名:$0";
echo "安装主机角色可选 master-server metalogger chunkServer mfs-client:$1";
#绑定host,修改为自己的主机ip,关闭防火墙
sudo cat >> /etc/hosts <<EOF
10.173.1.78 master-server
10.173.1.83 metalogger
10.173.1.84 chunkServer1
10.173.1.85 chunkServer2
EOF
sudo systemctl stop firewalld
sudo systemctl stop iptables
sudo systemctl disable firewalld
sudo systemctl disable iptables
sudo setenforce 0
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#创建mfs用户和组
sudo useradd mfs -s /sbin/nologin
#编译安装
sudo yum install -y gcc c++ zlib-devel
cd /home
sudo tar -zvxf moosefs-3.0.91-1.tar.gz
cd moosefs-3.0.91
if [ "$1" = mfs-client ];then
sudo yum -y install fuse fuse-devel
sudo ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount
sudo make && make install
else
sudo ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
sudo make && make install
fi
echo "编译安装完成"
cd /usr/local/mfs/etc/mfs
#master
if [ "$1" = master-server ]; then
sudo cp -a mfsmaster.cfg.sample mfsmaster.cfg && cp -a mfstopology.cfg.sample mfstopology.cfg && cp -a mfsexports.cfg.sample mfsexports.cfg
#修改为自己的网段
sudo cat >>mfsexports.cfg<<EOF
10.173.1.0/24 / rw,alldirs,maproot=0
EOF
cd ../../var/mfs/
sudo cp -a metadata.mfs.empty metadata.mfs
sudo chown -R mfs:mfs /usr/local/mfs
#可以使用/usr/local/mfs/sbin/mfsmaster -a 命令进行启动,这种方式一般可用于修复性启动。
echo "mfsmaster 启动..."
sudo /usr/local/mfs/sbin/mfsmaster start
echo "mfscgiserv-GUI 启动..."
sudo /usr/local/mfs/sbin/mfscgiserv start
fi
#metalogger
if [ "$1" = metalogger ]; then
sudo cp mfsmetalogger.cfg.sample mfsmetalogger.cfg
#修改为自己的master主机ip
sudo cat >>mfsmetalogger.cfg<<EOF
META_DOWNLOAD_FREQ = 1
MASTER_HOST = 10.173.1.78
MASTER_PORT = 9419
EOF
cd ../../var/mfs/
sudo cp -a metadata.mfs.empty metadata.mfs
sudo chown -R mfs:mfs /usr/local/mfs
echo "metalogger 启动..."
sudo /usr/local/mfs/sbin/mfsmetalogger start
fi
#chunkServer
if [ "$1" = chunkServer ]; then
sudo cp mfschunkserver.cfg.sample mfschunkserver.cfg && cp mfshdd.cfg.sample mfshdd.cfg
#修改为自己的master主机ip
sudo cat >>mfschunkserver.cfg<<EOF
MASTER_HOST = 10.173.1.78
MASTER_PORT = 9420
EOF
#data目录必须独立分区,事先准备
sudo cat >>mfshdd.cfg<<EOF
# mount points of HDD drives
/data
EOF
chown -R mfs:mfs /data
cd ../../var/mfs/
sudo cp -a metadata.mfs.empty metadata.mfs
sudo chown -R mfs:mfs /usr/local/mfs
echo "chunkserver 启动..."
sudo /usr/local/mfs/sbin/mfschunkserver start
fi
#mfs-client
if [ "$1" = mfs-client ]; then
sudo mkdir -p /ABS_DOCUMENT/doc_mfs
sudo mkdir -p /ABS_DOCUMENT/mfsmeta
echo "挂载MFS文件系统"
sudo /usr/local/mfs/bin/mfsmount /ABS_DOCUMENT/doc_mfs -H 10.173.1.78
echo "挂载MFS文件系统的mfsmeta,使用回收站功能"
sudo /usr/local/mfs/bin/mfsmount -m /ABS_DOCUMENT/mfsmeta/ -H 10.173.1.78
df -h
mount
echo "设置开启自动挂载"
sudo cat >>/etc/rc.local<<EOF
# mount points of HDD drives
sudo /usr/local/mfs/bin/mfsmount /ABS_DOCUMENT/doc_mfs -H 10.173.1.78
sudo /usr/local/mfs/bin/mfsmount -m /ABS_DOCUMENT/mfsmeta/ -H 10.173.1.78
EOF
fi
#特殊用法,因为windows没有支持MFS-client,所以通过nfs-server在linux上共享MFS-client已挂载的目录,然后windows再进行挂载。如果nfs-server服务器宕机重启,需要restart nfs服务,并重载数据
#cat >> /etc/exports <<EOF
#/ABS_DOCUMENT/doc_mfs 10.173.1.0/24(fsid=0,rw,async,no_root_squash)
#EOF
#systemctl start nfs
#exportfs -rv
echo "查看启动状态"
ps -ef|grep mfs
3、授予MfsInstall.sh执行权限
sudo chmod u+x MfsInstall.sh
4、执行
sudo ./MfsInstall.sh master-server ##作为管理服务器安装
sudo ./MfsInstall.sh metalogger ##作为元数据日志服务器安装
sudo ./MfsInstall.sh chunkServer ##作为数据存储服务器安装(推荐至少两台chunkserver)
sudo ./MfsInstall.sh mfs-client ##作为客户端安装