NFS 是 Network File System 的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类 Unix 系统间实现磁盘文件共享的一种方法。
NFS 在文件传送或信息传送过程中依赖于 RPC 协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。
NFS 应用场景,常用于高可用文件共享,多台服务器共享同样的数据,可扩展性比较差,本身高可用方案不完善,取而代之的数据量比较大的可以采用 MFS、TFS、HDFS 等等分布式文件系统。
NFS 安装配置:
Yum install nfs* portmap -y 如下图,安装成功即可。
NFS 安装完毕,需要创建共享目录,共享目录在/etc/exports 文件里面配置,可配置参数如
/data/ 192.168.10.142(rw,sync,no_hide,no_all_squash)
每个客户端后面必须跟一个小括号,里面定义了此客户访问特性,如访问权限等
在配置文件中添加如上一行,然后重启 Portmap,NFS 服务即可,/etc/init.d/portmap restart ;/etc/init.d/nfs restart
但如果此时正在运行传送文件重启就会造成影响,可以使用exportfs -rav
exportfs 命令:
-a:跟-r或-u选项同时使用,表示重新挂载所有文件系统或取消导出所有文件系统
-r:重新导出
-u:取消导出
-v:显示详细信息
第一列/data/表示需要共享的目录。
IP 表示允许哪个客户端访问。
IP 后括号里的设置表示对该共享文件的权限。
ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
hide 在 NFS 共享目录中不共享其子目录
no_hide 共享 NFS 目录的子目录
all_squash 共享文件的 UID 和 GID 映射匿名用户 anonymous,适合公用目录。
no_all_squash 保留共享文件的 UID 和 GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)所以在客户端下ROOT 用户是没有wx属性的
no_root_squas root用户具有根目录的完全管理访问权限
用showmount -e NFS_SERVER:查看NFS服务器“导出”的个文件系统
用showmount -a NFS_SERVER:查看NFS服务器所有被挂载的文件系统
用showmount -d NFS_SERVER:查看NFS服务器所有导出的文件系统中被客户端挂载了文件系统列表
Linux 客户端,如何想使用这个 NFS 文件系统,需要在客户端挂载,挂载命令为:Mount –t nfs 192.168.149.128:/data/ /mnt 即可。如果有报错根据错误信息排查。常见问题有 rpc 服务没有启动、防火墙没关闭、selinux 未关闭等问题。
nfs配置文件/etc/sysconfig/nfs