文编|JavaBuild

大家好呀,我是JavaBuild,以后可以喊我鸟哥,嘿嘿!俺滴座右铭是不在沉默中爆发,就在沉默中灭亡,一起加油学习,厚积薄发!

在程序员的日常工作中,我们常常会遇到这样一种场景:应用部署在通过nginx和keepalived实现的双主负载均衡的两台机器上,这时候供应用调用的文件夹就需要在部署时操作两边,有时候因为疏漏会导致两台机器上相同文件夹中的内容不一致,从而导致应用在被使用时的故障。

 

很多企业都拥有类似阿里云NAS服务器进行多台机器文件的共享机制,但在测试环境下没有NAS支持,我们怎么实现呢,今天就来分享一下鸟哥日常工作中常用的Linux环境下文件夹共享方法:NFS挂载

测试环境配置NFS挂载步骤:

首先,要确认的是两台机器上均安装了NFS服务,通过以下命令查看是否安装NFS:

rpm -qa|grep nfs

以下操作在第一台应用服务器上执行

  1. 使用test用户在/home/test目录下创建需要共享的文件夹

    # 进入到对应用户路径下
    cd /home/test   
    # 在相应路径下创建需要共享的文件目录名
    mkdir test_share
  2. 使用root用户,修改/etc/exports文件,添加如下内容。其中XXX.XXX.XXX为服务器ip的前三段,XXX.XXX.XXX.0/24 表示拥有共享权限的IP所在网段及子网掩码

    # 编辑文件
    vim /etc/exports
    # 在文件中填下如下内容
    /home/test/test_share XXX.XXX.XXX.0/24(rw,sync,no_root_squash)
    1. 配置的括号里,可添加的参数如下:
      ro:该主机对该共享目录有只读权限 
      rw:该主机对该共享目录有读写权限 
      root_squash:客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户 ;
      no_root_squash:NFS服务器共享目录用户的属性,客户机用root访问该共享文件夹时,不映射root用户;
      all_squash 客户机上的任何用户访问该共享目录时都映射成匿名用户 
      anonuid 将客户机上的用户映射成指定的本地用户ID的用户 
      anongid 将客户机上的用户映射成属于指定的本地用户组ID 
      sync 资料同步写入到内存与硬盘中 
      async 资料会先暂存于内存中,而非直接写入硬盘 
      insecure 允许从这台机器过来的非授权访问 
  3. 使用root用户,重启NFS服务

    service nfs restart

以下操作在第二台应用服务器上执行

  1. 使用test用户在/home/test目录下创建需要共享的文件夹

    # 进入到对应用户路径下
    cd /home/test   
    # 在相应路径下创建需要共享的文件目录名
    mkdir test_share
  2. 使用root用户,执行挂载语句,其中ip 为第一台服务器的地址,如203.3.248.10

    mount -t nfs 203.3.248.10:/home/test/test_share /home/test/test_share
  3. 使用root用户,将以上的挂载命令添加到/etc/rc.d/rc.local文件中

    # 编辑文件
    vim /etc/rc.d/rc.local
    # 在文件中填下如下内容
    mount -t nfs 203.3.248.10:/home/test/test_share /home/test/test_share

完事儿!可以选择其中一个机器,在共享目录中新建一个文件,在另外一台机器上查看是否同步啦。

注意:以上的用户和对应路径都是测试使用,具体根据您们的使用时需要替换。

posted on 2023-11-14 19:21  JavaBuild  阅读(1052)  评论(0)    收藏  举报