目的:公司现在有两台服务器,做了负载均衡,但是只有一台存放了一些网站图片和文件,每次访问到其中一台的时候就会出现图片找不到的情况,所以准备用nfs来解决这个问题
一 nfs服务端操作:
1 安装nfs-utils 和rpcbind 两个软件包 (rpcbind是用来通信的)
2 编辑/etc/exports 这个文件(默认是空的)在里面添加
/tmp 192.168.1.1(rw,sync) ( 共分为三部分,第一部分就是本地要共享出去的目录,第二部分为允许访问的主机(可以是一个IP也可以是一个IP段)第三部分就是小括号里面的,为一些权限选项。)
3 启动/etc/init.d/rpcbind 和/etc/init.d/nfs 这两个服务
二 客户端验证:
验证,在客户端输入showmount -e 192.168.1.100(服务器ip)回车如果看到共享的目录就成功了
最后挂载这个目录到你的客户端 mount -t nfs 192.168.1.100:/tmp /mnt
如果你在挂载的这个目录里无法新建东西就更改权限就行了(注意在nfs服务器上面修改/tmp目录的权限即可)
这就完成了整个操作,但是在实际环境中服务器上面开启了iptables,而且不能关闭,所以造成了nfs一直不能通信。
###################################################################################
解决办法:(只在服务端操作即可)
注意:如果你的主机开启了防火墙同时又想使用nfs,则必须在防火墙上面开启如下端口
其中 rpcbind nfs 服务端口是固定的分别是 111 2049
另外 rquotad nlockmgr mountd 服务端口是随机的。由于端口是随机的,这导致防火墙无法设置。
这时需要配置/etc/sysconfig/nfs 使 rquotad nlockmgr mountd 的端口固定。
找到以下几项,将前面的#号去掉。
RQUOTAD_PORT=875
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
service nfs restart
[root@bk /]# rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 53713 status
100024 1 tcp 47753 status
100011 1 udp 875 rquotad
100011 2 udp 875 rquotad
100011 1 tcp 875 rquotad
100011 2 tcp 875 rquotad
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049 nfs_acl
100227 3 tcp 2049 nfs_acl
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049 nfs_acl
100227 3 udp 2049 nfs_acl
100021 1 udp 32769 nlockmgr
100021 3 udp 32769 nlockmgr
100021 4 udp 32769 nlockmgr
100021 1 tcp 32803 nlockmgr
100021 3 tcp 32803 nlockmgr
100021 4 tcp 32803 nlockmgr
100005 1 udp 892 mountd
100005 1 tcp 892 mountd
100005 2 udp 892 mountd
100005 2 tcp 892 mountd
100005 3 udp 892 mountd
100005 3 tcp 892 mountd
添加防火墙规则,在服务端上面的/etc/sysconfig/iptables里面加入下面这些:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 111 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp --dport 111 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 875 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp --dport 875 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp --dport 892 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 892 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp --dport 2049 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 2049 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp --dport 32803 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 32803 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp --dport 32769 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 32769 -j ACCEPT
最后验证 在客户端输入showmount -e 192.168.1.100(服务器ip)回车如果看到共享的目录就成功了
测试:
在服务端1.10 /data/wwroot/这个目录下建立一个文件,看客户端上面是否会出现,在客户端上面删除这个文件,看服务端上面是否会消失。
转载于:https://blog.51cto.com/825536458/1783025