基于nfs文件共享技术的分布式文件统一路径的解决方案

一。测试环境说明

nfs服务端:192.168.187.130

nfs客户端:192.168.187.129

服务器192.168.187.130环境说明:
java:java version "1.8.0_161"

tomcat:(tomcat7)

        节点1:/opt/apache-tomcat-7.0.63-vhost1

        节点2:/opt/ apache-tomcat-7.0.63-vhost2

nginx:1.13.8

工程部署说明:

        项目文件根目录:/opt/project/www

        日志文件根目录:/opt/project/logs

        附件存放根目录:/opt/project/filedir

 

服务器192.168.187.129环境说明:
java:java version "1.8.0_161"

tomcat:(tomcat7)

        节点1:/opt/apache-tomcat-7.0.63-vhost1

工程部署说明:

        项目文件根目录:/opt/project/www

        日志文件根目录:/opt/project/logs

        附件存放根目录:/opt/project/filedir

        中央工程根目录:/opt/project/centerRepo

 

 

二.nfs环境搭建

 

如果是redhat操作系统,则默认都是安装了nfs,可以通过 servicenfs status,如果打印下面的日志信息,则已经安装好nfs环境。

rpc.svcgssd isstopped

rpc.mountd isstopped

nfsd is stopped

rpc.rquotad isstopped

再查看rpcbind服务的状态,通过service rpcbind status查看,如果打印下面的日志信息,则已经安装好rpcbind服务。

        rpcbind(pid  1339) is running...

如果没有安装好nfs和rpcbind服务,则通过下面的教程进行搭建:

https://www.cnblogs.com/freeweb/p/6593861.html

 

 

三。nfs服务端设置

 

1.服务端192.168.187.130将以下的目录进行共享

vim /etc/exports

#编辑,添加以下内容并保存

 

#文件编辑开始

 

#分布式文件上传目录共享

/opt/project/filedir/ 192.168.187.129(rw,sync,no_root_squash)

#分布式日志文件目录共享

/opt/project/logs/ 192.168.187.129(rw,sync,no_root_squash)

#工程文件中央仓库

/opt/project/www 192.168.187.129(ro)

 

#文件编辑结束

 

2.启动nfs、rpcbind服务

                 servicenfs restart && service rpcbind restart

 

3.查看nfs共享情况

                 showmount-e 192.168.187.130

                 #如果打印下面日志,则nfs服务端设置完毕

 

                 Exportlist for 192.168.187.130:

/opt/project/www    192.168.187.129

/opt/project/logs   192.168.187.129

/opt/project/filedir 192.168.187.129

 

4.设置nfs,rpcbind服务开启启动

                 chkconfignfs on && chkconfig rpcbind on

 

四。nfs客户端设置

 

1.服务是否启动,操作方式同第三点

2.服务端共享的文件目录

 

showmount -e 192.168.187.130

#如果打印如下日志,则nfs整体环境已经搭建完毕

Export list for 192.168.187.130:

/opt/project/www    192.168.187.129

/opt/project/logs   192.168.187.129

/opt/project/filedir 192.168.187.129

       

3.服务端的共享目录到本地指定目录

 

mount 192.168.187.130:/opt/project/www/opt/project/centerRepo

 

#进入/opt/project/centerRepo目录下,如果可以查看到192.168.187.130共享的文件,则nfs挂载文件成功。

 

4.共享目录开机挂载

 

vim /etc/fstab

#编辑,添加以下内容并保存

 

#文件编辑开始

 

192.168.187.130:/opt/project/www /opt/project/centerRepo nfsrw,tcp,intr 0 1

192.168.187.130:/opt/project/logs /opt/project/logs nfs rw,tcp,intr0 1

192.168.187.130:/opt/project/filedir /opt/project/filedirnfs rw,tcp,intr 0 1

 

#文件编辑结束

 

5.重启服务器

 

备注:如果不能重启服务器,则先手动将nfs共享目录挂载到本机指定目录:

mount 192.168.187.130:/opt/project/www/opt/project/centerRepo

mount 192.168.187.130:/opt/project/logs/opt/project/logs

mount 192.168.187.130:/opt/project/filedir/opt/project/filedir

 

#手动挂载完之后,通过df -h进行挂载情况查看,如果有以下日志,则说明挂载成功。

192.168.187.130:/opt/project/www      2.0G 377M  1.5G  21% /opt/project/centerRepo

192.168.187.130:/opt/project/logs     2.0G 377M  1.5G  21% /opt/project/logs

192.168.187.130:/opt/project/filedir  2.0G 377M  1.5G  21% /opt/project/filedir

 

        到此,192.168.187.129和192.168.187.130两台服务器共享工程的日志文件、工程附件、以及将主节点的工程文件共享到从节点的中央工程文件目录下,方便从节点工程的更新。如果还有其他节点,配置方式一样。


五。从节点同步中央库文件


1.在各从节点创建工程包自动和中央库同步服务(实际生产环境,根据实际情况修改以下脚本即可)

 

vim /etc/init.d/entss

#编辑,添加以下内容并保存

 

#文件编辑开始

#!/bin/bash

# entss

#chkconfig:345 71 71

#description:  Start up the Tomcat servletengine.

 

# Sourcefunction library.

./etc/init.d/functions

 

RETVAL=$?

 

#工程的文件名

WEB_NAME=entss

#主节点工程文件挂载点

REPO_DIR=/opt/project/centerRepo

#本地工程文件根目录

ENTSS_DIR=/opt/project/www

 

# checkfor dir script

if [ ! -d$REPO_DIR ]; then

         echo "主节点工程文件挂载点不可用!"

        exit

fi

 

if [ ! -d$ENTSS_DIR ]; then

         echo "本地工程文件根目录不可用!"

        exit

fi

 

syncy(){

          #清空ENTSS_DIR

          echo "清空本地工程..."

          rm -rf $ENTSS_DIR/$WEB_NAME

          echo "清空本地工程成功!"          

         

          #同步主节点工程文件

          echo "同步主节点工程文件..."

          cp -r $REPO_DIR/$WEB_NAME $ENTSS_DIR

          echo "同步主节点工程文件成功!"

}

 

stopTomcat(){

          #停止tomcat服务

          echo "停止tomcat服务..."           

          service tomcat stop

          echo "停止tomcat服务成功!"     

}

 

startTomcat(){

          #启动tomcat服务

          echo "启动tomcat服务..."

          service tomcat start

        echo"启动tomcat服务成功!"

}

 

restart(){

          stopTomcat 

          syncy      

          startTomcat    

}

 

 

case"$1" in

        restart)

                restart ;;

          reload)

                syncy ;;

          help)

                          echo "该服务用户将主节点的项目复制到从节点"

                          echo"==============使用之前须知=============="

                          echo "1:请先确保nfs环境已搭建完毕,并且将要求的目录共享"

                          echo "2:本机已将以下目录mount"

                          echo " 上传文件共享目录:/opt/project/filedir"

                          echo " 日志文件共享目录:/opt/project/logs"

                          echo " 工程文件共享目录:/opt/project/centerRepo"

                          echo "2:tomcat已安装成为服务,且服务名为tomcat"

                          echo "==============使用说明=============="

                          echo " restart:同步工程文件并重启tomcat"

                          echo " reload:同步工程文件部重启tomcat"

                          echo"===================================="

                          echo " author:早起的睡熊"

                          ;;

 

        *)

                echo "Usage: tomcatd{start|help}"

                exit 1

esac

 

exit $RETVAL

 

#文件编辑结束

 

2.测试entss服务

 

                #授以entss执行的权限

                 chmod+x /etc/init.d/entss

                

                 #查看entss帮助信息

                 serviceentss help

                 #如果打印下面日志,则entss编辑成功

                 该服务用户将主节点的项目复制到从节点

==============使用之前须知==============

1:请先确保nfs环境已搭建完毕,并且将要求的目录共享

2:本机已将以下目录mount

 上传文件共享目录:/opt/project/filedir

 日志文件共享目录:/opt/project/logs

 工程文件共享目录:/opt/project/centerRepo

2:tomcat已安装成为服务,且服务名为tomcat

==============使用说明==============

 restart:同步工程文件并重启tomcat

 reload:同步工程文件不重启tomcat

 

3.将entss加进服务

                

                 #注意这里不需要将entss服务设置为开启启动

                 chkconfig--add entss

 

4.同步本机工程文件,不需要重启tomcat服务

 

                 serviceentss reload

 

5.同步本机工程文件,需要重启tomcat服务

 

                 serviceentss restart


你可能感兴趣的:(开发环境配置)