使用NFS在服务器间共享文件

10 篇文章 0 订阅

今天手上负责的一个管理平台发布,测试的时候发现处理详情无法直接在页面展示。

这里的处理详情是通过WEB后台的JAVA程序直接读取磁盘文件获取,但现在后台和WEB分布在两台机器上,当然无法显示。
考虑到两台机器分别申请了不同的网络策略,互相不可迁移,必须通过某种机制保证两台服务器能够实时同步文件。

考虑的方案有下面两种:
1、使用 rsync 定期同步文件,比如每分钟同步,但这样延迟会比较大
2、使用 NFS 文件系统,把台后机器上的日志目录直接映射到WEB所在主机,以做到实时显示。

说干就干,处理步骤如下:

1、打开文件 /etc/exports ,增加下面一行:

[root@172.27.39.37:/etc/rc.d/rc3.d]#vim /etc/exports 
# See the exports(5) manpage for a description of the syntax of this file.
# This file contains a list of all directories that are to be exported to 
# other computers via NFS (Network File System).
# This file used by rpc.nfsd and rpc.mountd. See their manpages for details
# on how make changes in this file effective.
/data/amc_data/logs 10.130.23.142(rw,no_root_squash,sync)


(这里设置/data/amc_data/logs目录,允许WEB主机142访问,对应权限为:rw 可读写; no_root_squash 如果是root属主目录则不继承root权限; sync 实时写入内存和磁盘)


2、在后台机器上启动 rpc 服务:

[root@172.27.39.37:/etc/rc.d/rc3.d]#/etc/init.d/portmap start
Starting RPC portmap daemon                                           done
[root@172.27.39.37:/etc/rc.d/rc3.d]#
[root@172.27.39.37:/etc/rc.d/rc3.d]#/etc/init.d/portmap status
Checking for RPC portmap daemon:                                      running
[root@172.27.39.37:/etc/rc.d/rc3.d]#


查看状态:

[root@172.27.39.37:/etc/rc.d/rc3.d]#rpcinfo -p
   program vers proto   port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100024    1   udp  33428  status
    100021    1   udp  33428  nlockmgr
    100021    3   udp  33428  nlockmgr
    100021    4   udp  33428  nlockmgr
    100024    1   tcp  38543  status
    100021    1   tcp  38543  nlockmgr
    100021    3   tcp  38543  nlockmgr
    100021    4   tcp  38543  nlockmgr
    100005    1   udp    907  mountd
    100005    1   tcp    908  mountd
    100005    2   udp    907  mountd
    100005    2   tcp    908  mountd
    100005    3   udp    907  mountd
    100005    3   tcp    908  mountd
[root@172.27.39.37:/etc/rc.d/rc3.d]#


3、在后台机器上启动 nfs 服务:

[root@172.27.39.37:/etc/rc.d/rc3.d]#/etc/init.d/nfsserver start
Starting kernel based NFS serverFATAL: Could not load /lib/modules/2.6.16.54-0.2.3-TENCENT64-STATE-OC-080623/modules.dep: No such file or directory
/etc/init.d/nfsserver: line 105: echo: write error: Device or resource busy
                                                                      done
[root@172.27.39.37:/etc/rc.d/rc3.d]#/etc/init.d/nfsserver status
Checking for kernel based NFS server:                                 running
[root@172.27.39.37:/etc/rc.d/rc3.d]#


(注:有些机器上启动命令为 /etc/init.d/nfs start)

查看状态:

[root@172.27.39.37:/etc/rc.d/rc3.d]#showmount -e
Export list for 39_37:
/data/amc_data/logs 10.130.23.142
[root@172.27.39.37:/etc/rc.d/rc3.d]#


4、在WEB机器上挂载NFS分区到目录:

[root@10.130.23.142:/root]#mkdir -p /data/amc_data/logs
[root@10.130.23.142:/root]#

[root@10.130.23.142:/root]#mount -t nfs -o tcp 172.27.39.37:/data/amc_data/logs /data/amc_data/logs
[root@10.130.23.142:/root]#


(挂载过程比较久,等一下就好了)

测试,在WEB机器上成功看到后台机器上的文件列表:

[root@10.130.23.142:/data/amc_data/logs]#ll
total 448K
drwxr-xr-x 2 mqq mqq 4.0K 2011-11-03 23:09:59 20111103213404243/
drwxr-xr-x 2 mqq mqq 4.0K 2011-11-04 09:54:26 20111104095229170/


至此,文件系统挂载成功:

[root@10.130.23.142:/data/amc_data/logs]#df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             10325748   1632848   8168380  17% /
udev                   8214280       176   8214104   1% /dev
/dev/sda3             20641788   2933412  16659736  15% /usr/local
/dev/sda4            107448544  34551704  67438760  34% /data
172.27.39.37:/data/amc_data/logs
                     107448544  66630880  35359584  66% /data/amc_data/logs
[root@10.130.23.142:/data/amc_data/logs]#


增加自动启动功能:

1、在WEB机器上修改 /etc/fstab 文件,增加下面一行(用于开机时自动挂载文件系统):

[root@172.27.39.37:/data/amc_data/logs]#vim /etc/rc.d/rc.local
/etc/rc.d/portmap


修改自动启动文件/etc/rc.d/rc.local,增加下面记录:

[root@10.130.23.142:/data/amc_data/logs]#vim /etc/fstab 
172.27.39.37:/data/amc_data/logs /data/amc_data/logs nfs vers=3,rsize=4096,wsize=4096,timeo=14,intr


2、检查后台机器上的自动启动服务:

[root@172.27.39.37:/etc/rc.d/rc3.d]#chkconfig --list | grep -E "portmap|nfsserver"
nfsserver                 0:off  1:off  2:off  3:off  4:off  5:off  6:off
portmap                   0:off  1:off  2:off  3:off  4:off  5:off  6:off
[root@172.27.39.37:/etc/rc.d/rc3.d]#


设置 portmap 和 nfsserver 服务在runlevel为3或5时自动启动:

root@172.27.39.37:/etc/rc.d/rc3.d]#chkconfig portmap 35 on
Usage: chkconfig -s service on|off|runlevels
[root@172.27.39.37:/etc/rc.d/rc3.d]#chkconfig nfsserver 35        
[root@172.27.39.37:/etc/rc.d/rc3.d]#
[root@172.27.39.37:/etc/rc.d/rc3.d]#chkconfig --list | grep -E "portmap|nfsserver"
nfsserver                 0:off  1:off  2:off  3:on   4:off  5:on   6:off
portmap                   0:off  1:off  2:off  3:on   4:off  5:on   6:off
[17:12:27][root@172.27.39.37:/etc/rc.d/rc3.d]#

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值