NFS介绍
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。NFS的数据传输基于RPC(remote procedure call)协议。
应用场景
A,B,C三台机器上需要被访问到的文件是一样的,A共享数据出来,B和C分别取挂载A共享的数据目录,从而B和C访问到的数据和A上的一致。
NFS服务端安装配
服务器端:192.168.3.74 客户端:192.168.3.83
服务器端操作:
1、[[email protected] ~]# yum install -y nfs-utils rpcbind
2、[[email protected] ~]# vim /etc/exports
/home/nfstestdir 192.168.3.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
#/home/nfstestdir :需要共享挂载的目录
#192.168.8.0/24:共享网段的权限,也可以是IP
#rw:读写;sync:(同步)将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:(异步)将数据先保存在内存缓冲区中,必要时才写入磁盘;
all_squash:所有访问用户都映射为匿名用户或用户组(这里指的/etc/exports定义的用户);
no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;
anonuid=1000,anongid=1000:uid:1000;gid=1000
#no_root_squash 客户端挂载NFS服务后,root用户不受约束,权限很大
#root_squash 与上面选项相对,客户端上的root用户受到约束,被限定成某个普通用户
3、
[[email protected] ~]# mkdir /home/nfstestdir
[[email protected] ~]# chmod 777 /home/nfstestdir
4、[[email protected] ~]# systemctl start nfs
客户端操作:
1、[[email protected] yum.repos.d]# yum install -y nfs-utils
2、查看是否有权限连接
[[email protected] yum.repos.d]# showmount -e 192.168.3.74
Export list for 192.168.3.74:
/home/nfstestdir 192.168.8.0/24
3、挂载:
[[email protected] yum.repos.d]# mount -t nfs 192.168.3.74:/home/nfstestdir /mnt/
4、创建文件,指定为1000
[[email protected] mnt]# touch test.log
[[email protected] mnt]# ll
total 0
-rw-r--r-- 1 1000 1000 0 Nov 20 09:55 test.log
exportfs命令服务器端的操作
exportfs命令用来管理当前NFS共享的文件系统列表
-a:全部卸载或全部挂载
-r:重新挂载
-u:卸载某个目录
-v:显示共享目录
常用组合: exportfs -arv
服务端更改配置文件后,不重启服务,直接执行该命令就可以使更改后的配置文件生效。
注意: 在重启nfs服务之前需要先将所有挂载点卸载,否则将发生程序错误
NFS客户端存在的问题
针对NFS4版本在centos6中应用存在如下问题:
客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、数组为nobody。
解决方法:
方法1:在客户端进行挂载时加上选项-o nfsvers=3
[[email protected] ~]# monunt -t nfs -o nfsvers=3 192.168.3.74:/tmp/ /mnt/
如果目录已经挂载,而又不想卸载,执行如下命令:
monunt -t nfs -o remount,nfsvers=3 192.168.3.74:/tmp/ /mnt/