NFS 的安装与使用

网络文件系统(NFS)

NFS(Network File System,网络文件系统)是一种分布式文件系统,允许网络中不同操作系统的计算机间共享文件,其通信协议基于TCP/IP协议层,可以将远程的计算机磁盘挂载到本地,读写文件像本地磁盘一样操作。

NFS简介

NFS在文件传送或信息传送过程中依赖于RPC(Remote Procedure Call)协议。RPC协议可以在不同的系统间使用,此通信协议设计与主机及操作系统无关。使用NFS时用户端只需使用mount命令就可把远程文件系统挂接在自己的文件系统之下,操作远程文件如使用本地计算机上的文件一样。NFS本身可以认为是RPC的一个程序。只要用到NFS的地方都要启动RPC服务,不论是服务端还是客户端,NFS是一个文件系统,而RPC负责信息的传输。

例如,在服务器上,要把远程服务器192.168.1.100上的/NFSshare挂载到本地目录,可以执行如下命令:

mount 192.168.1.100:NFSshare /NFSshare

安装 NFS服务器

NFS的安装需要两个软件包,通常情况下是作为系统的默认包安装的,版本因为系统的不同而不同。
nfs-utils-1.3.0-0.el7.x86_64.rpm包含一些基本的NFS命令与控制脚本。
rpcbind-0.2.0-23.el7.x86_64.rpm是一个管理RPC连接的程序,类似的管理工具为portmap。
确认系统中是否安装了对于的软件
[root@testhost /]# rpm -qa | grep -i nfs
yum 安装nfs、rpcbind 软件包
[root@testhost /]# yum install -y nfs-utils rpcbind

在安装好软件之后,接下来就可以配置NFS服务器了,配置之前先了解一下NFS主要的文件和进程。

(1)nfs有的发行版名字叫作nfsserver,主要用来控制NFS服务的启动和停止,安装完毕后位于/etc/init.d目录下。

(2)rpc.nfsd是基本的NFS守护进程,主要功能是控制客户端是否可以登录服务器,另外可以结合/etc/hosts.allow和/etc/hosts.deny做更精细的权限控制。

(3)rpc.mountd是RPC安装守护进程,主要功能是管理NFS的文件系统。通过配置文件共享指定的目录,同时根据配置文件做一些权限验证。

(4)rpcbind是一个管理RPC连接的程序,rpcbind服务对NFS是必需的,因为是NFS的动态端口分配守护进程,如果rpcbind不启动,NFS服务则无法启动。类似的管理工具为portmap。

(5)exportfs如果修改了/etc/exports文件后不需要重新激活NFS,只要重新扫描一次/etc/exports文件,并且重新将设定加载即可。exportfs参数说明如下:

(6)showmount显示指定NFS服务器连接NFS客户端的信息,常用参数如下:

配置NFS服务器首先需要确认共享的文件目录和权限及访问的主机列表,这些可通过/etc/exports文件配置。一般系统都有一个默认的exports文件,可以直接修改。如果没有,可创建一个,然后通过启动命令启动守护进程。

1.配置文件/etc/exports

要配置NFS服务器,首先就是编辑/etc/exports文件。在该文件中,每一行代表一个共享目录,并且描述了该目录如何被共享。exports文件的格式和使用,如下:

每行一条配置,可指定共享的目录,允许访问的主机及其他选项设置。上面的配置说明在这台服务器上共享了一个目录/NFSshare,参数说明如下:

客户端常用的指定方式:

语法中的选项用来设置输出目录的访问权限、用户映射等。NFS常用的选项如下:

exports文件的使用方法如下:

该行设置表示共享/NFSshare目录,所有主机都可以访问该目录,并且都有读写的权限,客户端上的任何用户在访问时都映射成nobody用户。如果客户端要在该共享目录上保存文件,则服务器上的nobody用户对/NFSshare目录必须要有写的权限。

该行设置表示共享/NFSshare2目录,192.168.19.0/24网段的所有主机都可以访问该目录,对该目录有读写的权限,并且所有的用户在访问时都映射成服务器上的uid为1001、gid为100的用户;192.168.32.0/24网段的所有主机对该目录有只读访问权限,并且在访问时所有的用户都映射成nobody用户。

2.启动服务

配置好服务器之后,要使客户端能够使用NFS,必须要先启动服务。启动过程如下:

3.确认NFS是否已经启动

可以使用rpcinfo命令来确认,如果NFS服务正常运行,应该有下面的输出,如下:

从上述结果可以看出NFS服务已经启动,也可以使用showmount来查看服务器的输出清单:

配置NFS客户端

要在客户端使用NFS,首先需要确定要挂载的文件路径,并确认该路径中没有已经存在的数据文件,然后确定要挂载的服务器端的路径,使用mount挂载到本地磁盘,如下:

查看是否情况

常见出错

最后更新于

这有帮助吗?