NFS,是Network File System的简写,即网络文件系统。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。

 

一、NFS安装、配置

yum -y install nfs-utils nfs-utils-lib rpcbind

mkdir -p /home/network/nfs

vim /etc/exports

增加

/home/network/nfs *(rw,sync,no_root_squash,no_all_squash)

保存退出

exportfs -r

service rpcbind restart
service nfs restart

chkconfig --level 35 nfs on

chkconfig --level 35 rpcbind on


服务端验证NFS共享:

showmount -e

 

注:正常能显示出上面设置的共享目录,如果报如下错误:

clnt_create: RPC: Program not registered

说明 rpcbind服务与NFS服务 启动顺序不对,把他俩都停了,重新启动,先启动rpcbind服务再启动nfs服务;

 

客户端验证NFS共享:

showmount -e 192.168.1.207 (即NFS服务器的IP地址)

 

注:正常也能显示出上面设置的共享目录,如果报如下错误:

clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

说明防火墙没有开启相应需要开启的端口,把防火墙关掉,再测试应该就可以正常了;不过防火墙比较重要,一般情况下,不会随意关闭,在服务端可开启如下命令列出的所有端口即可:

 

# rpcinfo -p localhost


 

二、客户端挂载

cd

mkdir testnfs

mount -t nfs 192.168.1.207:/home/network/nfs testnfs


验证NFS挂载

df

正常能多显示出类似红色字体内容:

文件系统                 1K-块      已用      可用 已用% 挂载点
/dev/sda3             50403012   1772272  46070384   4% /
tmpfs                   914652         0    914652   0% /dev/shm
/dev/sda1               198337     27655    160442  15% /boot
192.168.1.207:/home/network/nfs
                      13383232    538944  12164480   5% /root/testnfs

或者

cd /root/testnfs

mkdir test

然后到服务端 /home/network/nfs 目录下,是否出现一个 test的文件夹即可;


 

设置系统启动自动挂载:

vim /etc/fstab

新增

192.168.1.207:/home/network/nfs         /root/testnfs              nfs     defaults        0 0

 


 

三、知识扩展

 

exports命令:

 

参数说明如下。
(1)-a:全部挂载(或卸载)/etc/exports文件内的设定。
(2)-r:重新挂载/etc/exports中的设置,此外同步更新/etc/exports及/var/lib/nfs/xtab中的内容。
(3)-u:卸载某一目录。
(4)-v:在export时将共享的目录显示在屏幕上。

 


 

/etc/exports文件内容格式:

 

<共享目录> [客户端1 选项(访问权限,用户映射,其他)] 

 

用户映射选项

  • all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
  • no_all_squash:与all_squash取反(默认设置);
  • root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
  • no_root_squash:与rootsquash取反;
  • anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
  • anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

 

其它选项

  • secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
  • insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
  • sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
  • async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
  • wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
  • no_wdelay:若有写操作则立即执行,应与sync配合使用;
  • subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
  • no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

 

 

结束词:写了那么多,有些知识只是供学习参考使用,其实NFS服务器的安装与配置非常简单,安装-配置共享目录-客户端挂载 即可;

 


转载于:https://blog.51cto.com/63638790/1353187