Bootstrap

NFS服务器

1、简介

NFS Network File System ,网络文件系统)是 FreeBSD 支持的文件系统中的一种,它允许网络中的计 算机(不同的计算机、不同的操作系统)之间通过TCP/IP 网络共享资源,主要在 unix 系列操作系统上使 用。在NFS 的应用中,本地 NFS 的客户端应用可以透明地读写位于远端 NFS 服务器上的文件,就像访问本 地文件一样。
NFS 服务器可以让 PC 将网络中的 NFS 服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统 中看来,那个远程主机的目录就好像是自己的一个磁盘分区一样。
由于 NFS 支持的功能比较多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些 端口来传输数据,因此NFS 的功能所对应的端口并不固定,而是随机取用一些未被使用的小于 1024 的端 口用于传输。但如此一来就会产生客户端连接服务器的问题,因为客户端需要知道服务器端的相关端口 才能够连接。 此时就需要RPC Remote Procedure Call ,远程过程调用)的服务。由于当服务器在启动 NFS 时会随机 选取数个端口号,并主动向RPC 注册,所以 RPC 知道每个 NFS 功能所对应的端口号, RPC 将端口号通知给 客户端,让客户端可以连接到正确的端口上去。RPC 采用固定端口号 port 111 来监听客户端的需求并向 客户端响应正确的端口号。
注:在启动 NFS 之前,要先启动 RPC ,否则 NFS 会无法向 RPC 注册。另外, RPC 若重新启动,原来注册的 数据会消失不见,因此RPC 重启后,它管理的所有服务都需要重新启动以重新向 RPC 注册。

2nfs配置

[root@localhost ~] # yum install rpcbind
[root@localhost ~] # yum install nfs-utils
/etc/exports 主配置文件(文件不一定存在)
/usr/sbin/showmount 该命令主要用在 client 端。这个命令可以查看 NFS 共享出来的目录资源
# 服务端 (192.168.168.128)
[root@server data] # mkdir /data
[root@server data] # cat /etc/exports
/data 192 .168.168.140(rw)
# 共享目录 主机名(权限)
# 可以使用完整的 IP 或者是网络号,例如 172.24.8.128 172.24.8.0/24 或者
172.24.8.128/255.255.255.0 ;也可以使用 * 表示所有主机
# 权限相关参数可以写多个,多个参数之间用逗号隔开,具体相关参数说明如下:

3、配置autofs自动挂载

在一般 NFS 文件系统的使用过程中,如果客户端要使用服务端所提供的文件系统,可以在 /etc/rc.d/rc.local 中设置开机时自动挂载( /etc/rc.d/rc.local 文件中写入的命令,在每次启动系统用户 登录之前都会执行一次); 也可以在登录系统后手动利用 mount 来挂载。
由于网络的问题, NFS 服务器与客户端的连接不会一直存在,当我们挂载了 NFS 服务器之后,任何一方 脱机都可能造成另外一方等待超时。为了解决这样的问题,就出现了下面的想法:
当客户端在有使用 NFS 文件系统的需求时才让系统自动挂载。
NFS 文件系统使用完毕后,让 NFS 自动卸载。
于是就产生了 autofs 这个服务。
autofs 这个服务是在客户端的上面,它会持续的检测某个指定的目录,并预先设置当使用到该目录的某 个子目录时,将会取得来自服务器端的 NFS文件系统资源,并进行自动挂载的操作。
# 客户端配置 autofs
[root@client ~] # yum install autofs -y
[root@client ~] # grep suibian /etc/auto.master
/client /etc/auto.suibian
# 本地端目录 具体挂载配置文件
[root@client ~] # cat /etc/auto.suibian
upload 192 .168.168.128:/nfs/upload
# 本地端子目录 挂载参数 服务器 : 服务器对应目录
[root@client ~] # systemctl restart autofs
# 触发自动挂载
[root@client ~] # cd /client
[root@client ~] # cd upload
;