NFS介绍、NFS服务端安装配置、NFS配置选项

NFS介绍

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。NFS的数据传输基于RPC(remote procedure call)协议。(rpcbind服务)监听111端口。 
应用场景 
A,B,C三台机器上需要被访问到的文件是一样的,A共享数据出来,B和C分别取挂载A共享的数据目录,从而B和C访问到的数据和A上的一致。

这里写图片描述

NFS原理图:

这里写图片描述

NFS服务端安装配置

准备两台机器,一个做服务端,一个做客户端

服务器端:192.168.176.135 客户端:192.168.176.134

服务器端操作:

安装两个包 nfs-utils rpcbind

[root@shuai-01 ~]# yum install -y nfs-utils rpcbind

安装完后编辑export

[root@shuai-01 ~]# vim /etc/exports

加入下面内容

/home/nfstestdir 192.168.176.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

字段理解

#/home/nfstestdir :需要共享挂载的目录
#192.168.8.0/24:共享网段的权限,也可以是IP

保存配置文件后,执行如下准备操作

[root@shuai-01 ~]# mkdir /home/nfstestdir                           //创建分享的目录

[root@shuai-01 ~]# chmod 777 /home/nfstestdir                    //共享目录设置777权限


#systemctl start nfs                                //启动nfs服务,rpcbind默认监听端口111

#systemctl enable rpcbind                                     //设置开机启动
#systemctl enable nfs //开机启动nfs 

客户端的配置 
安装 nfs-utils

[root@shuai-02 ~]# yum install -y nfs-utils
                            //安装包

查看是否有权限连接

[root@shuai-02 ~]# showmount -e 192.168.176.135
Export list for 192.168.176.135:
/home/nfstestdir 192.168.176.0/24

错误:

[root@shuai-02 ~]# showmount -e 192.168.176.135
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

如果都配置完成了,但是连接有错误,查看nfs服务是否开启,可以检查一下机器防火墙(iptables or firewalld or selinux)

Export list for 192.168.176.135:  
/home/nfstestdir 192.168.176.0/24

//服务器机的/home/nfstestdir目录,共享给了192.168.176.0/24网段

在客户机上挂载:

[root@shuai-02 ~]# mount -t nfs 192.168.176.135:/home/nfstestdir /mnt/
[root@shuai-02 ~]# df -h
文件系统                          容量  已用  可用 已用% 挂载点
/dev/sda3                          18G  1.1G   17G    6% /
devtmpfs                          479M     0  479M    0% /dev
tmpfs                             489M     0  489M    0% /dev/shm
tmpfs                             489M  6.7M  482M    2% /run
tmpfs                             489M     0  489M    0% /sys/fs/cgroup
/dev/sda1                         197M  109M   88M   56% /boot
tmpfs                              98M     0   98M    0% /run/user/0
192.168.176.135:/home/nfstestdir   18G  7.0G   11G   40% /mnt

客户机创建文件,指定为1000

[root@shuai-02 mnt]# touch test
[root@shuai-02 mnt]# ls -l
总用量 0
-rw-r--r--. 1 1000 1000 0 1月  21 21:00 test
-rw-r--r--. 1 1000 1000 0 1月  21 20:51 test.log

服务器机创建文件:

[root@shuai-01 mnt]# touch test.log
[root@shuai-01 ~]# ls -l /home/nfstestdir/
总用量 0
-rw-r--r--. 1 shuai shuai 0 1月  21 21:00 test
-rw-r--r--. 1 shuai shuai 0 1月  21 20:51 test.log

NFS配置选项

rw:读写; 
ro :只读 
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用户受到约束,被限定成某个普通用户

exports命令

exportfs命令服务器端的操作 
exportfs命令用来管理当前NFS共享的文件系统列表

命令:exports 
选项:

-a:全部卸载或全部挂载 
-r:重新挂载 
-u:卸载某个目录 
-v:显示共享目录 
常用组合: exportfs -arv 
服务端更改配置文件后,不重启服务,直接执行该命令就可以使更改后的配置文件生效。

注意: 在重启nfs服务之前需要先将所有挂载点卸载,否则将发生程序错误

NFS客户端问题

NFS 4版本的问题

客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、数组为nobody

解决方法:

方法1:在客户端进行挂载时加上选项-o nfsvers=3

monunt -t nfs -o nfsvers=3 192.168.176.135:/tmp/ /mnt/

如果目录已经挂载,而又不想卸载,执行如下命令:

monunt -t nfs -o remount,nfsvers=3 192.168.176.135:/tmp/ /mnt/

方法2:客户端和服务端都需要

vim /etc/idmapd.conf

把该配置文件中的“Domain = local.domain.com”改为“Domain = xxx.com”(此处xxx.com自定义),然后重启rpcidmapd服务(在centos7中直接重启rpcbind服务)。

猜你喜欢

转载自blog.csdn.net/chen112826473/article/details/79970259