Linux下NFS共享目录配置详解

NFS共享目录

1、NFS基本介绍

(1)NFS简介

​ NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是让客户端通过网络访问不同主机上磁盘里的数据,主要用在类Unix系统上实现文件共享的一种方法。NFS在文件传送或信息传送过程中依赖于RPC协议。

在这里插入图片描述

(2)NFS服务需要安装的软件

nfs-utils-* :包括基本的NFS命令与监控程序

rpcbind-* :支持安全NFS RPC服务的连接

注:通常情况下,是作为系统的默认包安装的

CentOS6.*之前rpcbind叫portmap。

(3)NFS系统守护进程

nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器

mountd:它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过nfsd登录NFS服务器后,在使用NFS服务所提供的文件前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。

rpcbind:主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,rpcbind会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。

2.CENTOS6安装检查软件是否存在

NFS 服务端需要至少安装两个软件:nfs-utils 和 rpcbind,
客户端只需要安装rpcbind

1.检查服务端是否已经默认安装了nfs和rpcbind

# rpm -aq | grep nfs
nfs-utils-lib-1.1.5-13.el6.x86_64
nfs-utils-1.2.3-75.el6_9.x86_64
 
# rpm -aq | grep rpcbind 
rpcbind-0.2.0-13.el6_9.1.x86_64
 
 如果不存在使用
 yum install -y nfs-utils
 yum install -y rpc-bind

exports文件介绍

此文件需要在nfs服务端操作,先创建需要共享的目录,然后配置nfs的配置文件

文件路径:vim /etc/exports

<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]
/home/ldsx/test_code *(rw)
访问权限选项:
设置输出目录只读:ro
设置输出目录读写:rw

*代表任意ip,也可以选择指定ip,指定网段下机器192.168.83.0/24,指定域名等均可

用户映射选项:
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
no_all_squash:与all_squash取反(默认设置);
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
no_root_squash:与rootsquash取反;
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

exportfs命令

nfs服务端执行的操作,对exports文件操作

格式:exportfs [-aruv]

-a 全部挂载或卸载 /etc/exports中的内容

-r 重新读取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab

-u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录)

-v 在export的时候,将详细的信息输出到屏幕上。

 
具体例子:
exportfs -au 卸载所有共享目录

exportfs -rv 重新共享所有目录并输出详细信息

3.配置NFS服务端

nfs这个错误信息表明你正在使用的NFS服务目前处于非活动状态。具体来说,服务已经尝试启动,但是已经退出,并且已经存在了大约8秒。

使用的看nfs状态有问题,但是本机挂本机成功了也同步了,后续碰见需要确认下原因

在这里插入图片描述

systemctl stop firewalld    关闭防火墙
systemctl status firewalld   查看防火墙状态

#启动服务必须先启动rpcbind,再启动nfs,才能让NFS在rpcbind上注册成功
systemctl enable nfs
systemctl start nfs
systemctl enable rpcbind
systemctl start rpcbind

#设置共享目录(设置的目录如果存在下级目录,客户端可以直接挂载到下级目录)
vim /etc/exports
/home/ldsx/test_code *(rw)

#动态加载配置,不加载则失败
exportfs -rv

#查询本机nfs共享目录情况 检查谁就用谁ip检查自己的就不用ip
showmount -e ip
#会返回刚才在exportfs配置的信息

在这里插入图片描述

4.配置客户端+手动挂载

客户端只需要安装rpcbind服务即可,无需安装nfs或开启nfs服务

#安装rpcbind
yum -y install rpcbind

#创建目录用于挂载服务端的共享目录
mkdir /home/ldsx/test_nfs

#执行挂载命令手动挂载(可以自己挂载自己),共享目录如果存在下级目录,客户端可以挂载到下级目录
mount -t nfs  192.168.25.49:/home/ldsx/test_code ./test_nfs

#挂载后查看
df -h

在这里插入图片描述

1.设置的目录如果存在下级目录,客户端可以直接挂载到下级目录,如上图/home/ldsx/test_code,如果实际上test_code存在下级目录xxx_ldsx,那么客户端可以选择挂载到/home/ldsx/test_code/xxx_ldsx上也可以

2.如果挂载的NFS服务器上共享目录不存在,会提示失败

5.设置开机自动挂载

vim /etc/fstab

#添加以下命令
192.168.25.49:/home/ldsx/test_code /home/ldsx/test_nfs nfs defaults 0 0


192.168.25.49: 为你的NFS服务器地址或主机名。

/home/ldsx/test_code: 为NFS服务器上共享的目录路径。

/home/ldsx/test_nfs: 为本地挂载点的路径。

nfs: 指定文件系统类型为NFS。

defaults: 使用默认挂载选项。

0 0: 指定不自动检查和修复文件系统,通常设置为0。

#检查命令
写入后执行下mount -a 要确认没报错了,避免以后重启不了了

6.NFS共享目录取消(客户端取消挂载,或者服务端停止共享)

1.客户端取消挂载,正常来说如果只有客户端的权限那么只需取消挂载就可以单方面认为ok,注意-l 后面配置本机路径
unmount -l /home/ldsx/test_nfs #取消指定安全 也可以不加-l
unmount -a #取消所有慎用

2.服务器端口停止共享,重新载入(作为服务端管理者,可以选择卸载)
exportfs -au (慎用会取消所有)

3.可以直接注释掉 /etc/exports中的配置达到效果 然后执行exportfs -rv重载配置

7.当挂载服务器出现问题导致df -h卡死

当nfs服务器出现问题时候,使用此服务器的客户端输入df -h 会出现卡顿情况 不输出
当执行 showmount -e 服务端ip
clnt_create: RPC: Program not registered

解决方案 在服务端执行
systemctl restart nfs-server.service
systemctl restart rpcbind

解决后在客户端使用showmount -e 服务端ip ,df -h 无问题
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值