文章目录:
一.NFS服务简介
二.NFS服务端配置
三.NFS客户端配置
四.NFS服务排错
一.NFS服务简介
NFS是Network File System的缩写,中文称为网络文件系统,它的主要功能是通过网络(一个局域网)让不同的主机系统之间可以共享文件或目录,NFS的客户端(一般为应用服务器,例如web)可以通过挂载(mount)的方式将NFS服务器共享的数据目录挂载到NFS客户端本地系统中(就是某一个关在点下),从客户端本地看,NFS服务器端共享目录就好像是客户端自己的磁盘分区或者目录一样,而实际上却是远端的NFS服务器的目录。
NFS网络文件系统很像Windows系统的网络共享、安全功能、网络驱动器映射,这也和linux的samba服务类似,只不过一般情况下,Windows网络共享服务或samba服务用户办公局域网共享,而互联网中小型网站集群架构后端常用NFS进行数据共享,若是大型网站,那么有可能还会用到更复杂的分布式文件系统Moosefs(mfs)、GlusterFS。
二.NFS服务端配置
2.1 部署服务前的准备
系统版本 | 服务器角色及主机名 | IP地址 |
CentOS Linux release 7.6.1810 (Core) | NFS服务端--General | 192.168.2.8 |
CentOS Linux release 7.6.1810 (Core) | NFS客户端--Client | 192.168.2.38 |
2.2 检查是否安装NFS程序包(默认已经安装):
nfs-utils:nfs服务的主程序,包括rpc.nfsd、rpc.mountd两个daemons和相关的文档说明及执行命令文件等
rpcbind:centos6下面的rpc主程序(centos5下的是portmap)
如果不存在这两个软件包,请使用yum -y install nfs-utils rpcbind安装该软件包,安装了该软件包后一般会创建nfsnobody用户
检查是否存在nfsnobody用户
2.3 修改nfs配置文件/etc/exports
#该配置文件默认是存在,只不过是空文件而已,值得注意的是下文中的24和(之间没有空格
该配置文件的格式有严格的要求:共享目录 允许访问的IP或IP段(权限)
#权限介绍:rw——读写,ro——只读;sync——同时将数据写入到内存和硬盘,保证数据不丢失;
async——先将数据保存到内存,再写入到硬盘,这样效率更高,但数据可能丢失;
root_squash——当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
no_root_squash——当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
all_aquash——无论NFS客户端以什么用户登录,都映射为NFS服务器的匿名用户
2.4 启动nfs服务,并加入开机自启动,检查服务进程
查看服务进程如下:
2.5查看NFS服务器相关信息--showmount
注:showmount命令可用参数及作用:-e——显示NFS服务器的共享列表;-a——显示本机挂载文件资源的情况;-d——仅显示被客户挂载的目录名;-h——显示帮助信息;-v——显示版本号。
如果修改NFS配置文件/etc/exports, 可使用exportfs命令进行重启扫描/etc/exports文件,而不用重启NFS服务
注:exportfs命令常用选项,-a——表示全部挂载或卸载;-r——重新挂载;-u——卸载某一个目录;-v——显示共享的目录
2.6 新建共享目录/data文件
三.NFS客户端配置
3.1 创建挂载目录并挂载nfs
3.2 查看nfs目录文件,并在客户端新建文件
此时,服务端/data目录中文件如下:
服务端也存在在客户端中新建的文件,说明客户端用户拥有读写权限
四.NFS服务排错
1.首先明确nfs服务端挂载目录名称,很多时候找不到NFS服务端的文件,都是运维人员记错了挂载目录导致的;
2.如果客户端不能挂载上nfs服务,首先检查网络问题,确保NFS客户端到服务端的网络畅通;
3.客户端挂载目录不能读写文件的问题,一般是用户权限不够导致的;