NFS简介

NFS(Network File System)网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

因为NFS支持的功能相当的多,而不用的功能都会使用不同的程序来启动,没启动一个功能就会启用一些端口来传输数据,因此,NFS的功能所对应的端口不是固定的(小于1024的随机取值),但是客户端连接服务器端必须要知道对应端口。

这时候我们就得需要远程过程调用(RPC)的服务帮忙了,RPC最主要的功能就是在指定每个NFS功能所对应的port number,并且回传给客户端,让客户端可以连接到正确的端口上。

所以你要注意,要启动NFS之前,RPC就要先启动,否则NFS会无法向RPC注册。另外,RPC若重新重启,原本注册的数据会不见了,因此RPC重新启动后,它管理的所有服务都需要重新启动向RPC注册。

当客户端有NFS存取需求时,它回向服务器端的RPC(port111)发出NFS档案存取功能的询问要求,服务器端找到对应的已注册的NFS daemon端口后,会回报给客户端,客户端收到正确的端口后,就可以直接与NFS daemon来联机。

NFS的好处:

1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络进行访问;
2. 用户不需要在网络中的每个机器上都建有Home目录,可以将它放在NFS服务器上且可以在网络中被访问使用;
3. 一些存储设备(如CDROM、ZIP、硬盘)等都可以在网络上被别的机器使用。

NFS的应用:

1. 多个机器共享一台CDROM或者其他设备,提供了便利也提高了安全性;
2. 在大型网络中,配置一个中心NFS服务器用来放置所有用户HOME目录可能会带来便利,不管用户在哪台工作上登录,总能够得到相同的HOME目录;
3. 不同客户端可以在NFS上观看影视文件,节约本地空间;
4. 在客户端完成的工作数据,可以备份保存到NFS服务器上用户自己的路径下;

系统环境

服务器:RHEL 6.5
服务器IP:192.168.100.3

客户机:RHEL 6.5
客户机IP:192.168.100.4
客户机与服务器在用一个网段,网络可以互联互通

NFS服务部署

  1. 在安装nfs前,需要先安装rpcbind(用于NFS共享发布和访问)、nfs-utils(用于远端过程调用机制支持)这两个支持软件包。

    yum -y install nfs-utils rpcbind
  2. 修改/etc/exports配置文件

/opt/wwwroot 192.168.100.0/24(rw,sync,no_root_squash) #新增记录

常见参数说明:

参数值 说明内容
rw 该目录共享的权限可以读写(最终权限与文件系统权限及身份有关)
ro 该目录共享的权限仅读(最终权限与文件系统权限及身份有关)
sync 数据会同步写入到内存与硬盘中
async 数据会先暂存于内存中,而非直接写入硬盘
root_squash 客户端使用root身份来操作服务器会被转换成为nfsnobody,这样对服务器的文件系统较有保障
no_root_squash 允许客户端使用root身份来操作服务器的文件系统
all_squash 不论使用什么身份登录,都被转换成为匿名用户
  1. 创建wwwroot目录及设置权限

mkdir /opt/wwwroot
chmod 777 /opt/wwwroot

  1. 重启nfs、rpcbind服务

service nfs restart
service rpcbind restart

  1. 关闭防火墙及selinux

setenforce 0
service iptables stop

  1. 显示本机中NFS共享目录数据

showmount -e 192.168.100.3

NFS网络文件系统

客户端配置

  1. 安装nfs-utils
yum -y install nfs-utils
  1. 查看nfs服务器中共享目录信息
    showmount -e 192.168.100.3

NFS网络文件系统

  1. 创建挂载目录
    mkdir /share
  2. 为了提高nfs的稳定性,使用TCP协议挂载(默认用UDP协议)
    mount 192.168.100.3:/opt/wwwroot /share -o proto=tcp -o nolock

测试

客户端查看挂载结果

NFS网络文件系统_第1张图片
服务端进入目录创建文件
NFS网络文件系统
客户端进入挂载目录下查看文件
NFS网络文件系统