1、简介

第NFS 就是 Network FileSystem 的缩写,最早之前是由 Sun 所发展出来的。他最大的功能就是可以透过网络,让不同的机器、 可以让你的 PC 来将网络远程的 NFS 主机分享的目录,挂载到本地端的机器当中,所以,在本地端的机器看起来,那个远程主机的目录就好象是自己的 partition 一般!
虽然 NFS 有属于自己的协议与使用的 port number ,但是在资料传送或者其它相关讯息传递的时候, NFS 使用的则是一个称为远程过程调用( Remote Procedure Call, RPC )的协议来协助 NFS 本身的运作!

1.2 安装

  1. 使用rpm qa | grep nfs-utils 查看软件包是否已安装
  2. 如果未安装 yum install y nfs-utils 安装即可
  3. #启动nfs
  4. systemctl start nfs
  5. #开机启动
  6. systemctl enable nfs

1.3 防火墙设置(可选)

iptables -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --dport 111 -j ACCEPT
  iptables -A INPUT -i eth0 -p UDP -s 192.168.0.0/24 --dport 111 -j ACCEPT
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind 
firewall-cmd --permanent --add-service=mountd
firewall-cmd --reload

2、配置讲解

2.1 /etc/exports

分享的目录 主机名称1或IP1(参数1,参数2)
/data1/nfs_dir 192.168.3.0/24(参数)

2.1.1 参数

rw: 可读写的权限
ro: 只读的权限
no_root_squash: 登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!
root_squash: 在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个身份;
all_squash: 不论登入 NFS 的使用者身份为何,他的身份都会被压缩成为匿名使用者,通常也就是 nobody !
anonuid: 前面关于 *_squash 提到的匿名使用者的 UID 设定值,通常为 nobody,但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中!
anongid: 同 anonuid ,但是变成 group ID 就是了
sync: 资料同步写入到内存与硬盘当中
async: 资料会先暂存于内存当中,而非直接写入硬盘

3、设置的实例

/tmp *(rw,no_root_squash)  //*号表示所有的IP都可以访问
/tmp *(rw)
/home/public 192.168.0.*(ro)  //下面两行作用一样
/home/public 192.168.0.0/24(rw) *(ro)
/home/test 192.168.0.100(rw) //只对某部机器设置权限
/home/linux *.linux.org(rw,all_squash,anonuid=40,anongid=40) //当*.linux.org登陆此NFS主机,并且在/home/linux下面写入档案时,该档案的所有人与所有组,就会变成/etc/passwd里面对应的UID为40的那个身份的使用者了.

3.1 .exportfs的用法

配置完成export之后,使用exportfs进行查看
systemctl reload nfs 进行加载

3.2 showmount命令

语法: showmount [-ae] hostname
-a: 显示目前主机与client所连上来的使用目录的状态
-e: 显示hostname的/etc/exports里面共享的目录

3.3 NFS客户端的设定

#临时挂载
mount -t nfs 192.168.37.129:/data1/nfs_test /data3
#永久挂载
#mount -t nfs hostname(orIP):/directory /mountpoint   
192.168.14.223:/public  /nfstest  nfs  defaults 0 0

作业:分配10G空间大小到/data1/nfs_dir,通过客户端挂载到本地。

服务端:
分区格式化:fdisk /dev/sdb 
挂载:mount /dev/sdb2 /data1/nfs_dir 
nfs配置exports:/data1/nfs_dir   192.168.108.164 (rw)
权限配置:chmod 757 -R /data1/nfs_dir
客户端:安装:yum install nfs-utils 
查看showmount -e 192.168.108.160 
挂载fstab:
10.10.33.38:/data       /mnt/data/              nfs     defaults        0 0  
mount -a 
检测df -h