1、NFS网络文件系统简介
1)NFS概念描述:
什么是nfs?nfs是Network File system的缩写,它的主要功能是通过网络让不同的主机系统之间可以彼此共享文件或目录。NFS客户端(一般为应用服务器,如web)可以通过挂载(mount)的方式将NFS服务器端共享的数据文件目录挂载到NFS客户端本地系统中(就是某一个挂载点)。从NFS客户端查看本地的挂载目录,就是访问NFS服务器端的共享目录。
NFS网络文件系统的使用很像Windows系统的网络共享、安全功能、网络驱动器映射,这也和Linux的Samba服务类似。
2)NFS在企业中的应用场景:
在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频、图片、附件等静态资源文件(一般把网站用户上传的文件都放在NFS共享里),NFS是当前互联网系统架构中最常用的数据存储服务之一,特别是中小型网站公司应用频率很高。大公司或门户除了使用NFS外,还可能会使用MFS、GFS、FASTFS、TFS等分布式文件系统。
3)网络文件系统类型:
NFS:适用于中小企业;
MFS:用于存放图片文件,分布式文件系统;
GFS:一般用于云计算,做后端存储的大文件。
2、NFS服务器端环境
3、安装NFS服务
1)yum安装nfs服务软件包
① rpcbind:这个软件包是rpc的主程序,客户端和服务端都需要安装;
② nfs-utils:这个软件包是NFS服务的主程序,客户端和服务端都需要安装。
2)安装软件包时报错以及解决方法
① 安装rpcbind报错信息
[root@nfs-client /]# yum -y ×××tall rpcbind
Failed to set locale, defaulting to C
Loaded plug×××: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
***********************省略部分内容***************
error: %pre(rpcbind-0.2.0-44.el7.x86_64) scriptlet failed, exit status 6
Error in PREIN scriptlet in rpm package rpcbind-0.2.0-44.el7.x86_64
Verifying : rpcbind-0.2.0-44.el7.x86_64 1/1
Failed:
rpcbind.x86_64 0:0.2.0-44.el7
Complete!
② 解决方法
错误提示安装软件的时候执行什么脚本出现了错误,经百度之后知道在安装rpm软件包的时候,会先执行rpm包中的预处理脚本,应该是执行这个脚本的时候出现了错误,所以我尝试查看这个脚本都执行了什么内容;
那么如何获取到这个脚本呢?
取对应的rpm包
yum ×××tall xxxxpackage --downloadonly --downloaddir=/root
取得rpm对应的安装预处理脚本
rpm --scripts -qp xxxxpackage > x-scripts.log
发现该脚本中有用到useradd/userdel命令来添加rpc的用户,由此想起之前使用chattr +i /etc/passwd对passwd文件做了加锁处理,所以会造成useradd/userdel命令不能正常执行,这应该就是造成预处理脚本不能正常执行的原因了吧,使用chattr -i /etc/passwd解锁之后软件可以正常安装。
4、启动NFS服务(服务器端)
1)启动rpcbind服务
2)启动nfs服务
3)查看rpc进程
4)查看rpc状态
5)查看rpc有没有注册端口(111是rpc的默认端口)
5、NFS客户端启动(只启动rpc服务即可)
1)nfs客户端环境
2)安装rpcbind
3)启动rpcbind服务
4)查看rpc有没有注册端口
6、配置及测试
1)服务端配置
① 创建一个你要共享的目录
② 配置NFS配置文件(默认配置文件是空的)
③ 重新加载nfs服务(尽量不要重启服务)
④ 检查nfs共享配置是否成功
⑤ 向第一步创建的共享目录里面存放或创建文件数据,等下与客户端对比是否一样
⑥ 把共享目录的属主和属组设置为NFS用户
2)客户端配置及测试
① 检查服务端NFS是否OK
② 客户端上创建一个挂载目录nfs-data,挂载nfs
③ 查看nfs-data目录是否是NFS服务端共享的数据,并创建文件,看nfs的写权限是否成功。
④ 设置开机自动挂载
3)客户端报错案例:
① 检测服务端的NFS服务失败,报错信息
② 解决方法:
#根据上面的报错信息,nfs server服务器端可能被firewalld(防火墙)拦截了,关闭NFS服务端的防火墙或允许通过
#nfs client客户端再次检查是否可以连接到nfs服务端
7、总结
1)NFS服务端
① 检查并安装nfs服务
② 启动rpc和nfs服务以及设置开机自启动并检查
③ 配置共享/data目录
④ 重新加载NFS服务(尽量不要重启)
⑤ 检查nfs服务配置是否成功
⑥ 设置共享目录的权限(把共享目录的属主和属组设置为nfs用户)
2)客户端(客户端只启动rpc服务即可)
① 安装nfs和rpc软件
② 启动rpc服务以及设置开机自启动,并检查
③ 检查服务端NFS是否OK
④ 挂载并测试
⑤ 设置开机自动挂载