NFS在Linux下的安装、部署与应用

基于CentOS的NFS服务安装配置

本节以CentOS 7为例介绍一下NFS服务的安装,这里的NFS服务是指Linux内核中的nfsd服务及配套的用户态程序。它是NFS分布式文件系统的服务端。当然,除了nfsd外,还有很多其它的NFS分布式文件系统服务端,比如用户态的Ganesha。但是,这些不在本文的范围内,今天我们主要介绍一下nfsd的安装和使用。

为了简化安装,我们将操作系统的防火墙和SELinux都关闭。关闭这些特性并不会影响NFS的功能,只是用来避免使用过程中出现一些问题。如果在生产环境,为了数据的安全,这些特性通常是需要开启的。下面我们就介绍一下如何安装及配置NFS服务。

步骤 1: 服务端安装

sudo yum install nfs-utils

步骤 2: 服务端配置

我们期望在操作系统启动的时候可以自动启动NFS服务,因此我们这里需要设置一下 NFS 服务开机启动,具体命令如下:

sudo systemctl enable rpcbind
sudo systemctl enable nfs

软件安装后服务可能没有启动,这时需要手动启动一下 NFS 服务。如果已经启动了就不需要执行该步操作了。

$ sudo systemctl start rpcbind

$ sudo systemctl start nfs

步骤 3: 配置共享目录

完成上述操作后,NFS服务已经正常工作了,但是我们在客户端仍然没有办法访问该服务。这是因为此时NFS服务还没有配置导出的资源。接下来我们在服务端配置一个共享目录,也就是要导出的资源。首先要创建一个目录,并且修改该目录的权限:

$ sudo mkdir /data

$ sudo chmod 755 /data

有了基本的资源后,我们就可以配置导出的目录了。NFS的配置非常简单,打开配置文件:

sudo vi /etc/exports

在打开的文件中添加如下内容。

/data/ 192.168.0.0/24(rw,sync,no_root_squash,no_all_squash)

对于上述配置项的含义,我们解释如下:/data: 共享目录位置。192.168.0.0/24: 客户端 IP 范围,本文是限制某个子网,如果是* 代表没有限制。rw: 权限设置,可读可写。sync: 同步共享目录。no_root_squash: 可以使用 root 授权。no_all_squash: 可以使用普通用户授权。

至此,我们已经完成nfsd服务的安装,重启一下nfs服务就可以使用了。为了确认是否安装成功,可以通过如下命令进行确认。

showmount -e localhost

NFS客户端挂载

1、检查 S1,是否具有NFS服务

rpm -qa |grep nfs
yum install nfs-utils

2、在S2创建 /tmp/S1文件夹

mkdir /tmp/S1

3、挂载(S2上执行)

mount -t nfs 192.168.1.1:/tmp/share  /tmp/S1

4、取消挂载

umount /tmp/S1

通过/etc/fstab实现开机自动挂载NFS

1 10.10.33.38:/data       /mnt/data/              nfs     defaults        0 0