提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
NFS简单概要
1: NFS 是Network File System的缩写,中文意思是网络文件系统。它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录。NFS客户端(一般为应用服务器,例如web)可以通过挂载(mount)的方式将NFS服务器端共享的数据目录挂载到NFS客户端本地系统中(就是某一个挂载点下)。从客户端本地看,NFS服务器端共享的目录就好像是客户端自己的磁盘分区或者目录一样,而实际上却是远端的NFS服务器的目录。 NFS主要分为客户端和服务端
一、NFS客户端,服务端配置
1.服务端
1:检查nfs服务
rpm -qa|grep nfs rpm -qa|grep rpcbind
2:安装nfs
yum -y install nfs-utils rpcbind
3、设置开机自动启动服务
chkconfig nfs on chkconfig rpcbind on
4:创建共享目录:
mkdir /data/nfs-share chmod -R 777 /data/nfs-share
5:配置exports文件权限(下面的括号是 配置被共享的目录 权限,还有很多权限配置 后面贴....)
vi /etc/exports 加入: /data/nfs-share 192.168.1.1(rw)
6:刷新配置:
exportfs -a
7:查看mount目录
#此时可用showmount -e 服务端ip来查看可mount目录 showmount -e 192.168.1.1
2.客户端
1、创建共享目录
mkdir /data/share-file 这个目录主要是去 共享服务端分享的那个目录,同步那个文件
2:挂载目录:
mount 192.168.1.1:/data/nfs-share /data/share-file 这个是挂载
mount -t 服务端ip:/data/nfs-share /data/share-file 挂载指令
data/nfs-share这个是服务端的目录, /data/share-file这个是客户端同步服务端的目录路径
#若挂载失败,错误提示如下:
mount: wrong fs type, bad option, bad superblock on 192.168.1.1:/xxx/xxx,
missing codepage or helper program, or other error
(for several filesystems (e.g. nfs, cifs) you might
need a /sbin/mount.<type> helper program)
In some cases useful info is found in syslog - try dmesg | tail or so #安装 nfs-utils 即可 yum install nfs-utils
3:卸载已经挂载的目录:
umount /data/share-file
nfs的 重启指令 service nfs restart 、
防火墙的关闭命令是:systemctl stop firewalld
df -h 或者 df -TH 查看磁盘占用情况 和挂载的目录
rpcinfo –p 这个是专门查看rpc远程相关的端口, 也就是nfs 相关使用的端口
相关权限:
可以设定的参数主要有以下这些:
rw:可读写的权限;
ro:只读的权限;
no_root_squash:登入到NFS主机的用户如果是root,该用户即拥有root权限;
root_squash:登入NFS主机的用户如果是root,该用户权限将被限定为匿名使用者nobody;
all_squash:不管登陆NFS主机的用户是何权限都会被重新设定为匿名使用者nobody。
anonuid:将登入NFS主机的用户都设定成指定的user id,此ID必须存在于/etc/passwd中。
anongid:同anonuid,但是变成group ID就是了!
sync:资料同步写入存储器中。
async:资料会先暂时存放在内存中,不会直接写入硬盘。
insecure:允许从这台机器过来的非授权访问
BUG总结
服务器重启,挂载服务消失不见?
首先确定防火墙的 放行规则,对应的NFS的服务器相关 端口是否放开,相关命令是否启动
service nfs status 查看nfs 运行状态 ,正常应该是有active, (运行状态是有绿色active的)
防火墙的状态
然后重新挂载 添加一下 目录, 刷新 ,就完成了,
下面是添加挂载服务路径
然后使用 mount -t IP:/upload/2610 /upload/2610
重启 nfs 命令 service nfs restart
因为我是线上服务器遇见的问题,就没有分享 这个相关解决图片啥的了- - 要保密
4、NFS挂载时出现"access denied by server while mounting"的解决方法
1、使用了非法端口,也就是使用了大于1024的端口。
这个错误,可以通过查看日志确认:
[root@local~ /]# cat /var/log/messages | grep mount
Jan 2 12:49:04 localhost mountd[1644]: refused mount request from 192.168.1.1 for /data/nfs-share/ (/data/nfs-share): illegal port 1689解决办法:
修改配置文件/etc/exports,加入 insecure 选项,重启nfs服务,再尝试挂载。
/data/nfs-share/ *(insecure,rw,async,no_root_squash)2、NFS版本问题
编辑/etc/sysconfig/nfs文件,找到下面:
#Turn off v2 and v3 protocol support
#RPCNFSDARGS="-N 2 -N 3"
#Turn off v4 protocol support
#RPCNFSDARGS="-N 4" /*把这句前面的#号去掉*/最后保存,重启nfs服务,再尝试挂载;如果挂载不上,可尝试在后面加-o nolock参数。
3、查看客户端挂载的目录是否具备读写权限,添加相应权限即可。
4、nfs服务器上的/etc/hosts中设置了客户端机器IP对应域名,去掉即可。
https://blog.csdn.net/zwfmu/article/details/70300808