文件共享NFS
使用场景说明
如图当我们有这样一个场景,s1系统在运行过程中生成了日志写入到logs中,当s2系统需要读取这些信息时怎么办,这里就需要使用nfs文件共享工具,通过对文件进行挂载实现多台服务器之间文件夹中文件的共享;
安装
首先看是否安装了nfs
rpm -qa|grep nfs
rpm -qa|grep rpcbind
没有的话我们进行安装
yum -y install rpcbind nfs-utils
安装后我们来分一下客户端与服务端
服务端是把自己的文件夹进行暴露给别人进行挂载的
客户端是通过挂载来共享使用他人的文件夹
服务端
新建一个文件夹并对该文件夹进行赋予权限
mkdir logs
chmod -R 777 logs
对该文件夹进行暴露处理
vi /etc/exports
/home/esblogs *(rw,sync,no_root_squash) or
/primetonesb67/esblog *(rw,sync,no_root_squash) or
/primetonesb67/esblog 192.168.100.0/24(rw,sync,no_root_squash)
配置完后使用exportfs -r
命令进行生效
启动或者重启服务
service nfs restart 重启
systemctl start nfs 启动
systemctl start rpcbind
systemctl status nfs 查看状态
systemctl status rpcbind
showmount -e ip 查看开放的目录
df -h 查看机器挂载情况
客户端
安装完后我们通过命令查看已经暴露的挂载文件
找到我们要挂在的文件进行挂载
mount -t nfs ip:xxx/xxxx xxx/xxx
配置
我们要注意是否能找到暴露的文件夹和是否能挂载上很大部分的原因是防火墙端口是否开启
1.查看端口情况
rpcinfo -p localhost
2.分配端口,编辑配置文件:
# vim /etc/sysconfig/nfs
添加:
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004
进行固定端口
3.重启rpc、nfs的配置与服务:
systemctl restart rpcbind.service
systemctl restart nfs.service
4.还需在/etc/modprobe.d/lockd.conf中添加以下设置:
options lockd nlm_tcpport=30002
options lockd nlm_udpport=30002
5.重新加载NFS配置和服务:
systemctl restart nfs-config
systemctl restart nfs-idmap
systemctl restart nfs-lock
systemctl restart nfs-server
参考 https://www.cnblogs.com/zhaojingyu/p/10529945.html
开机自启
systemctl enable nfs-server.server
systemctl enable rpcbind
开机自动挂载
在rc.local中写上脚本
mount -t nfs ip:xxx/xxxx xxx/xxx
问题解决
1.在客户端showmount -e 192.168.122.10遇到以下错误提示,“clnt_create: RPC: Program not registered”
解决方法:
服务端[root@server /]# rpc.mountd 即可