NFS是Network File System(网络文件系统)。主要功能是通过网络让不同的服务器之间可以共享文件或者目录。NFS客户端一般是应用服务器(比如web,负载均衡等),可以通过挂载的方式将NFS服务器端共享的目录挂载到NFS客户端本地的目录下
NFS 的基本原则是“允许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。
NFS 协议
需要远程调用(RPC)服务,因为NFS本身是没有提供信息传输的协议和功能
安装配置NFS服务
关闭防火墙和SElinux
systemctl stop firewalld
setenforce 0
getenforce
安装NFS服务器
yum install rpcbind nfs-utils -y
服务器端配置
创建共享目录
mkdir /nfs_dir
chmod 666 /nfs_dir
编辑export 文件
vi /etc/exports
/nfs_dir 192.168.0.155/255.255.255.0(rw,sync,no_root_squash,no_all_squash)
常见的参数
rw:read-write,可读写;
ro:read-only,只读;
sync:文件同时写入硬盘和内存;
async:文件暂存于内存,而不是直接写入内存;
no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。
root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;
all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;
anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
anongid:匿名用户的GID值。
重启服务
systemctl restart rpcbind
systemc restart nfs-utils
客户端配置
安装nfs-utils客户端
yum install nfs_utils -y
创建挂载目录
mkdir /nfs_dir
查看服务器的共享信息
[root@wangq1 nfs_dir]# showmount -e 192.168.0.155
Export list for 192.168.0.155:
/nfs_dir 192.168.0.155/255.255.255.0
挂载
mount -t nfs 192.168.0.155:/nfs_dir /nfs_dir
查看挂载结果
[root@wangq1 nfs_dir]# mount
192.168.0.155:/nfs_dir on /nfs_dir type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.131,local_lock=none,addr=192.168.0.155)
则挂载成功
测试
在服务端(在共享目录下)
[root@wangq nfs_dir]# echo 'hell' >>test1
[root@wangq nfs_dir]# ls
test1
在客户端
[root@wangq1 nfs_dir]# ls
test1
[root@wangq1 nfs_dir]# cat test1
hell
[root@wangq1 nfs_dir]# echo 'wqzds' >>file
在服务器端
[root@wangq nfs_dir]# ls
file test1
[root@wangq nfs_dir]# cat file
wqzds