在CentOS 7上配置NFSv3和NFSv4

时间:2020-02-23 14:30:17  来源:igfitidea点击:

在本教程中,我将在CentOS 7上使用NFSv3和NFSv4服务器的安装。
这是唯一的准备工作,即我们应该已安装CentOS 7服务器和数据目录以通过NFS导出到其他服务器。

在CentOS 7上安装和配置NFSv3和NFSv4

以下是在CentOS 7服务器上安装和配置NFSv3和NFSv4的完整步骤。

第1步:安装NFS服务器

使用以下命令将NFS-Utils包安装在CentOS 7上:

# yum -y install nfs-utils

第2步:配置用于NFS的域(可选)

# vim /etc/idmapd.conf
Domain = theitroad.com

第3步:配置NFS导出

NFS导出配置在文件/etc/exports下。
/etc /导出文件控件哪些文件系统将导出到远程主机并指定选项。
它遵循以下语法规则:注释以哈希标记(#)开头。
默认情况下忽略空行.Affica.each选项必须直接在主机标识符后直接放置在括号中,没有任何空间分隔主机和第一个括号。
处所导出的文件系统应在其自己的单线上.A授权主机列表需要用空格字符分隔.Long行可以用反斜杠()软件包。

导出文件系统的条目具有以下结构:

export host(options)

使用的变量是:

导出 - >导出的目录主机 - >导出正在共享选项的主机或者网络 - >用于主机的选项

对于具有不同选项的多个主机,语法是:

export host1(options1) host2(options2) host3(options3)

NFS导出默认选项是:

RO:导出的文件系统是只读的,远程主机无法对文件系统共享的文件进行任何更改。
要允许主机进行读写,请指定RW选项。

同步:允许此选项,在先前请求的更改写入磁盘之前,NFS服务器不会回复请求。
要启用异步写入,请指定选项异步。

root_squash:这可以防止远程连接的根用户从具有root权限。
相反,NFS服务器将分配用户ID NFSNobody。
这有效地将远程root用户的电源"挤压"到最低本地用户,防止远程服务器上可能的未授权写入。
要禁用根压缩,请指定no_root_squash。

要挤出每个远程用户(包括root),请使用ALL_SQUASH。
要指定NFS Server应分配给来自特定主机的远程用户的用户和组ID,请使用Anonuid和AnongID选项,如下所示:

export host(anonuid=uid,anongid=gid)

UID和GID分别是用户ID号和组ID号。

WDELAY:如果它怀疑另一个写请求即将来临,则这将通过延迟写入磁盘,减少磁盘写入开销。
当默认同步打开时,可以使用no_wdelay禁用这一点。

subtree_check:此选项可启用子树检查。
它可以使用no_subtree_check禁用。

配置行的示例如下:

/mnt/data 192.168.1.0/24(rw,no_root_squash)

其中/mnt/data是导出的目录,192.168.1.0/24是允许使用读/写权限和无根挤压访问它的网络。
指定的网络可以用单个IP地址或者使用*替换为全局访问。

请注意,我们必须显式覆盖每个导出的文件系统的每个默认值。
例如,如果未指定RW选项,则导出的文件系统被共享为只读。

有关导出选项的详细信息,请参阅Man ExportFS。

第4步:为NFS配置防火墙

下一步是打开防火墙上的NFS服务所需的端口。

对于nfsv4,请使用命令:

# firewall-cmd --add-service=nfs --permanent
# firewall-cmd --reload

对于NFSv3,我们需要通过定义XML文件添加额外端口。
这需要将其放在/etc/firewalld/services /目录下。

cat  /etc/firewalld/services/nfs.xml
<?xml version="1.0" encoding="utf-8"?>

  NFS
  NFS service

然后在防火墙上添加服务。

# firewall-cmd --add-service=nfs --permanent
# firewall-cmd --reload

第5步:启动并启用NFS服务

现在一切都配置了,我们应该准备好开始服务。

# for i in rpcbind nfs-server; do
systemctl start $i
systemctl enable $i
done

当我们启动NFS服务时,/usr/sbin/exportfs命令启动并读取此文件,将控制传递给RPC.MountD(如果nfsv3),则为实际安装过程,然后转到RPC.NFSD,其中文件系统可用远程用户。
它将导出的文件系统写入/var/lib/nfs/etab,我们可以查看使用:

# cat /var/lib/nfs/etab

第6步:发现NFS导出

有两种方法可以发现文件系统NFS服务器导出。
首先,在支持NFSv3的任何服务器上,使用showmount命令:

$showmount -e server
E.g
$showmount -e localhost
Export list for localhost:
/mnt/test *
/mnt/data 192.168.1.0/24

对于仅支持NFSv4的服务器,请安装/并检查内容。

# mount  serverip://mnt/
# cd /mnt/
# ls

第7步:将导出的文件系统安装在客户端上

客户端可以是支持NFSv3或者NFSv4的任何操作系统。
对于Debian/Ubuntu,请安装以下打包:

$sudo apt-get install rpcbind nfs-common

对于CentOS 7,请安装NFS-Utils:

$sudo yum -y install nfs-utils
$sudo systemctl start rpcbind 
$sudo systemctl enable rpcbind

要执行不持久的安装,可以使用Mount命令。

mount -t 192.168.1.10:/mnt/data /data

要指定NFS版本,请使用-o选项

# mount -t nfs -o vers=4 192.168.1.10:/mnt/data /data
or
# mount -t nfs -o vers=3 192.168.1.10:/mnt/data /data

要使此持久性,我们需要修改/etc/fstab文件。
用于NFSv3的安装如下:下面的/etc/fstab

192.168.1.10:/mnt/data  /data nfs defaults,vers=3 0 0

我们可以看到Vers = 3选项用于指定要安装NFSv3的选项。
我们也可以指定如下所支持的其他支持选项:

192.168.1.10:/mnt/data /data nfs vers=3,proto=tcp,hard,intr,rsize=32768,wsize=32768,noatime 0 0

创建挂载点并安装它。

# mkdir /data
# mount -a
# df -hT | grep /data
192.168.1.10:/data nfs 200G 175G 26G 88% /data