一:服务端安装准备

NFS直接理解就是文件分享,分享肯定涉及到服务端与客户端,但是强调一台物理主机既可以做服务端,也可以做客户端。构建NFS文件分享需要安装nfs服务与rpcbind

// 检查服务是否安装
rpm -qa | grep nfs
rpm -qa | grep rpcbind

// 如果本机有相关安装想要重新卸载安装执行如下命令
yum remove -y 上面命令查询到的结果
yum install -y nfs-utils rpcbind
二:服务端分享文件

NFS分享肯定需要创建相关目录,当然这里会重点强调访问权限的问题。因为发布分享时会设置客户端用户模拟服务端用户操作,当然这里不清楚可以看完后续文章回头再理解

2.1 分享文件
// 创建分享目录
mkdir /home/nfs_data

// 编辑/etc/exports文件
vim /etc/exports
// 文件内容
/home/nfs_data *(rw,root_squash,sync)

相关参数如下表所示:

序号

参数

含义

1

*

可访问IP地址、主机名,*表示所有

2

rw

读写,ro表示客户端只能读。客户端是否能读写操作还是看分享文件权限设置

3

root_squash

客户端root用户登录操作在NFS文件系统中将被压缩为nfsnobody,no_root_squash则相反

4

sync

同步写入磁盘持久化,async暂存内存,后续异步持久化

// 上面提到的nfsnobody用户可以使用如下命令修改
chown -R nfsnobody:nfsnobody /home/nfs_data
2.2 发布分享

实现NFS分享最后肯定需要启动nfs与rpcbind两个服务,执行命令如下:

// 启动nfs /  rpcbind服务
systemctl start nfs 
systemctl start rpcbind

若想将其服务设置为开机自启动,则可以执行如下命令:

// 服务开机自启动
chkconfig nfs on
chkconfig rpcbind on
2.3 分享检查

执行完毕上述步骤后查看具体的NFS挂载情况使用如下命令:

  1. e 后面跟需要查看的服务端IP地址
  2. a 查询当前主机与所有客户端NFS分享情况
// 查看某个主机NFS挂载情况
showmount -e localhost

// 查看当前主机与所有客户端NFS分享情况
showmount -a
2.4 刷新配置

后续若在NFS运行过程中需要新增加挂载目录文件,这时修改完/etc/exports文件后并不会生效,如果重启NFS服务客户端必定会遭到影响。所以,这时候需要借助于exportfs命令

// 立即重新生效挂载NFS文件
exportfs -r

序号

参数

含义

1

a

全部重新挂载或卸载NFS文件

2

r

重新挂载NFS文件

3

u

卸载某个挂载目录

4

v

显示NFS挂载信息

三:客户端安装准备

一般作为客户端来讲是不需要NFS服务的,只需要rpcbind进行绑定即可。但是第一节就讲到一台物理主机既可以做服务端也可以做客户端。所以建议还是重复服务端安装准备

四:客户端挂载目录
4.1 查看服务端分享

客户端挂载前一般都会查看下服务端的挂载分享情况,命令如下,当然这个命令已经在前面叙述过

// 查看服务端分享情况
showmount -e 服务端主机IP地址

centos7挂载nfs硬盘 centos7 nfs挂载_centos7挂载nfs硬盘

4.2 挂载服务端目录

挂载前肯定需要在本地创建一个目录用于对应服务端的挂载目录,名称位置随意。这和Docker的数据持久化Bind Mount方式差不多

// 创建客户端挂载目录
mkdir /home/21_nfs_data

// 挂载服务端目录
mount -t nfs 服务端IP地址:服务端挂载目录 客户端挂载目录
4.3 fstab挂载

服务器重启必将导致上述NFS挂载方式失效,怎么让NFS挂载不丢失?那就可以通过编辑文件/etc/fstab实现:

// 编辑文件
vim /etc/fstab
// 文件内容
NFS服务端IP地址:NFS挂载目录 客户端挂载目录 文件格式系统  功能选项  转储频率  开机自检

序号

参数

含义

1

服务端IP地址

这个不难理解,就是当前客户端要挂载NFS目录的服务端所在IP地址

2

NFS挂载目录

一个服务端可能发布多个NFS挂载目录,这里就是进行声明

3

客户端挂载目录

客户端肯定需要指定NFS本机所在挂载目录

4

文件格式系统

有什么swap交换分区,光盘。但是都别管,NFS肯定这里选项就是nfs

5

功能选项

具体参数可以自行了解,一般使用defaults即可

6

转储频率

0 不做备份 1 每天做备份转储 2 隔天做备份转储

7

开机自检

0 开机不自检,后面数值越大开机自检顺序越靠后。开机自检不能通过意味着物理机不能启动

配置好上述内容后保存退出,使用如下命令即可完成NFS客户端挂载:

mount -a
4.4 取消挂载

取消挂载就比较简单了,只需要执行如下命令即可:

umount 客户端挂载目录
五:固定NFS端口

NFS服务启动每次都会随机分配端口,很多时候会因为防火墙的开启导致客户端不能正常挂载。可以通过编辑文件/etc/sysconfig/nfs固定端口解决

// 祛除注释符号
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
STATD_OUTGOING_PORT=2020
STATD_PORT=662

// 重启rpcbind服务
systemctl restart rpcbind

// 查看端口占用
rpcinfo -p IP地址

centos7挂载nfs硬盘 centos7 nfs挂载_客户端_02