Linux 下搭建NFS服务器

一、 说明

NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的。
NFS应用场景,常用于高可用文件共享,多台服务器共享同样的数据,可扩展性比较差,本身高可用方案不完善,取而代之的数据量比较大的可以采用MFS、TFS、HDFS等等分布式文件系统。

二、 安装NFS服务

准备
 机器名称 Ip 版本
 Pipeline-nfs 10.218.106.40 CentOS_7.8_x86_64支持安全NFS RPC服务的连接
 查看rpcbind和nfs-utils安装包是否安装
 执行以下命令
 rpm -qa | grep “rpcbind”没有输出的话代表没有安装
 使用yum安装NFS
 yum -y install rpcbind nfs-utils创建共享目录
 mkdir /share编辑配置文件
 /etc/exports
 /share *(rw,sync,no_root_squash)被允许的客户端IP(* 表示任意IP都可以)
 IP后括号里的设置表示对该共享文件的权限ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas root用户具有根目录的完全管理访问权限
启动NFS服务
 #启动rpcbind
 service rpcbind start
 #启动nfs
 service nfs start
 #查看共享目录
 showmount -e localhost设置开机自启动
 #启动rpcbind
 chkconfig rpcbind on
 #启动nfs
 chkconfig nfs on关闭防火墙
 否则客户端挂载会失败(mount.nfs: No route to host)
 systemctl stop firewalld三、 客户端挂载配置
安装nfs-utils
 yum install -y nfs-utils
 创建一个挂载点
 mkdir /data/jenkins-nfs查看nfs服务器上的共享
挂载(注意:需要集群每个节点都要部署)
 mount -t nfs -o noatime,nodiratime 10.218.106.40:/share /data/jenkins-nfs#优化NFS客户端挂载参数
#-o后面跟挂载参数
#noatime:取消更新文件系统上的inode访问时间,提升I/O性能,优化I/O目的,推荐使用。
#nodiratime:取消更新文件系统上的directory inode访问时间,高并发环境,推荐显式应用该选项,提高系统性能。
#intr:可以中断不成功的挂载。
#rsize/wsize:读取(rsize)/写入(wsize)的区块大小(block size),这个设置值可以影响客户端与服务端传输数据的缓冲存储量。一般来说,如果在局域网内,并且客户端与服务端都具有足够的内存,这个值可以设置大一点,比如说32768(bytes),提升缓冲区块将可提升NFS文件系统的传输能力。但设置的值也不要太大,最好是实现网络能够传输的最大值为限。
查看是否挂载成功
 df –h