搭建NFS共享存储服务

NFS共享存储服务概述

  • NFS是一种基于TCP/IP传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。
  • 对于大多数负载均衡群集来说,使用NFS协议来共享数据存储是比较常见的做法,NFS也是NAS存储设备必然支持的一种协议。但是由于NFS没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只能在局域网中使用。
  • NFS 服务的实现依赖于 RPC(Remote Process Call 远端过程调用)机制,以完成远程到本地的映射过程。所以需要安装 nfs-utils、rpcbind 软件包来提供 NFS共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持
  • NFS 的配置文件为/etc/exports 格式为:共享的目录位置 客户机地址(权限选项)

NFS服务器配置

服务器的配置

# 安装nfs-utils rpcbind软件包

yum install nfs-utils rpcbind -y                                 # 下载服务
systemctl enable nfs-server && systemctl enable rpcbind          # 将两个服务设置为开机自启动

# 设置共享目录
# NFS的配置文件为 /etc/exports 文件默认为空
# 格式为:共享的目录位置 客户机地址(权限选项)
# 例如:要将文件夹/mnt/nfstest文件共享给192.168.100.0/24网段使用,允许读写,操作如下
mkdir /mnt/nfstest -p   # 创建共享目录
[root@pakho ~]# vim /etc/exports        # 进入主配置文件
/mnt/nfstest  192.168.100.0/24(rw,sync,no_root_squash)
  • rw:允许读写
  • ro:只读
  • sync:表示同步写入
  • no_root_squash:表示当客户机以root身份访问时赋予本地root权限(默认是root_squash,将作为nfsnobody用户降权对待)ps:因为nfs系统用户权限很低加上后不作降权处理
# 例如:需要将同一个目录共享给不同的客户机,且分配不同的权限时,只要以空格分隔指定多个“客户机(权限选项)”即可
# 例如:将以下操作将 /var/ftp/public 目录共享给两个客户机,并分别给予只读 读写权限
[root@pakho ~]# vim /etc/exports         # 进入主配置文件
/var/ftp/pub 192.168.100.20(ro) 192.168.100.30(rw)

# 启动NFS服务程序
systemctl start rpcbind
systemctl start nfs-server               # 切记必须按顺序启动 两个服务必须 按上述顺序启动 否则会发生报错!

# 查看本机发布的NFS共享目录
showmount -e                             # 本机查看不需要加路径
Export list for pakho:
/mnt/nfstest 192.168.100.0/24

注:如果发生报错,提示 RPC:程序未注册
参照第三步先关闭两个服务在按上述顺序启动(可能是虚拟机的bug)
在这里插入图片描述

客户端的配置

# 安装nfs-utils rpcbind软件包

yum -y install nfs-utils rpcbind                                 # 下载服务
systemctl enable nfs-server && systemctl enable rpcbind          # 将两个服务设置为开机自启动

# 查看NFS服务器端共享了哪些目录
# 查询格式为showmount -e 服务器地址
[root@client ~]# showmount -e 192.168.100.20        
Export list for 192.168.100.20:
/mnt/nfstest 192.168.100.0/24

# 手动挂载NFS共享目录
# 手动挂载NFS共享目录
mkdir /mnt/nfsclient                                              # 首先创建一个挂载点
mount 192.168.100.20:/mnt/nfstest /mnt/nfsclient  
# 将NFS服务器共享的/mnt/nfstest目录挂载到本地目录/mnt/nfsclient 

确认挂载结果
在确认挂载结果

# fstab永久挂载设置
vim /etc/fstab



192.168.100.20:/mnt/nfstest /mnt/nfsclient nfs defaults,_netdev 0 0  

强制卸载NFS

  • NFS客户端与服务器端的耦合度是非常高,如果客户端正在挂载使用,服务器端NFS服务突然间停掉了,那么在客户端就会出现执行df -h命令卡死的现象。
  • 这个时候使用umount命令是无法直接卸载的,需要加上 -lf才能卸载
  • -l表示解除正在繁忙的文件系统,-f表示强制

NFS常见故障解决思路

  • 当NFS共享无法挂载使用时,首先检查配置文件的正确性,查看是否允许该网段的访问。然后将服务端的NFS服务和 rpcbind 服务都要开启,同时客户端也要开启 rpcbind 服务,这是能够成功挂载使用NFS共享存储的大前提。
  • 在两边服务都开启的情况下,如果客户端挂载共享存储出现长时间挂载等待的情况,此时要ping服务器的地址,检查客户端到服务器端的网络是否正常。
  • 如果客户端到服务器端的网络是没有问题的,但是还是无法 mount 挂载使用,可以使用telnet命令加服务端的地址和端口号,远程连接服务器。当出现 “ connected to… ” 的字样时,表示已经连接上了。这就表示客户端与服务器端是通的。
  • 客户端无法正常访问服务器端,也有可能是iptables导致的,使用telnet命令连接服务器时会显示 “ no route to host ” 的字样,这就表示是防火墙的问题。在服务器端本地telnet自己,如果正常就表示服务器端是没有问题的。
  • 当然也可以使用 showmount -e 命令检查,或者是在服务端 mount 挂载自己本地共享的目录看能否挂载成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

611#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值