nfs实现共享目录对于集群高可用风险,nfs客户端容易卡死

目录

背景说明

解决办法

执行步骤

数据移动

取消挂载

停nfs服务(客户端)

卸载nfs(客户端)

重启主机(客户端)

卸载nfs(服务端)


背景说明

nfs可以完成集群多个主机之间共享目录,如图所示:

服务器集群中/new目录为共享目录,里面放置有各种安装软件及配置文件。

想要实现服务器集群高可用,要求当集群某一主组件挂掉的时候,需要有另一从组件完成替换,并继续提供服务,并且当集群中其中任何一台主机关机的时候,其他主机依然能够提供服务,对于用户来说没有任何影响。

但是nfs对于高可用来说存在一个隐患:客户端nfs中有一个内核级别的线程,nfsv4.1-svc,该线程会一直和nfs服务端进行通信,且无法被kill掉。(停止客户端Nfs服务,设置开机不自启动,并卸载nfs,重启主机才能让该线程停掉)。

一旦nfs服务端停掉,或者所在主机关机,那么nfs客户端就会找不到nfs服务端,导致nfs客户端所在主机一直处于卡死状态,表现为无法ssh到该主机,不能使用 df -h 等命令,会对客户造成比较严重的影响。

解决办法

如果想要高可用,那么可能就不需要使用Nfs来实现共享目录,而是将/new目录设置为主机本地目录

执行步骤

数据移动

  • 在nfs服务端所在主机上,通过scp,将 /new 目录复制到nfs客户端所在主机上,但是目录名字需要修改一下,执行如下命令(建议后台执行,因为有时候该目录比较大,或者压缩后再发送):
    • scp -r /new root@其他主机名://new_tmp

取消挂载

  • 由于nfs客户端都是挂载在nfs服务端所在主机的 /new 上,需要取消挂载,执行如下命令:
    • umount -v  /new
  • 取消挂载以后, /new 变为了空目录,删除 /new 目录,将 /new_tmp 目录重命名为 /new

停nfs服务(客户端)

  • 停止nfs服务,执行如下命令:
    • systemctl stop nfs
  • 取消nfs服务开启启动,执行如下命令:
    • systemctl disable nfs
  • 观察nfs状态,分别执行如下命令:
    • systemctl status nfs
    • ps -ef | grep nfs
  • 可以观察到nfs线程并没有停干净

卸载nfs(客户端)

  • 搜索nfs的rpm包,执行如下命令:
    • rpm -qa | grep nfs
  • 卸载nfs rpm包,执行如下命令:
    • rpm -e --nodeps libnfsidmap-0.25-19.el7.x86_64
    • rpm -e --nodeps nfs-utils-1.3.0-0.66.el7.x86_64
    • rpm -e --nodeps nfs4-acl-tools-0.3.3-20.el7.x86_64
  • 再次查看nfs是否卸载完全
    • rpm -qa | grep nfs
  • 观察 nfsv4.1-svc 线程是否还存活,执行如下命令:
    • ps -ef | grep nfs
  • 可以观察到此时 nfs该线程还存在,所以当nfs服务端停止的时候,还是会存在当前主机卡死的情况

重启主机(客户端)

  • 依次重启之前nfs客户端所在主机,执行如下命令:
    • reboot
  • 每重启一台主机之后,观察nfs进程是否还存在,执行如下命令:
    • ps -ef | grep nfs

卸载nfs(服务端)

  • 停止nfs服务端,执行如下命令:
    • systemctl stop nfs
  • 禁止nfs服务开启启动,执行如下命令:
    • systemctl disable nfs
  • 查看nfs服务是否停止,执行如下命令:
    • systemctl status nfs
  • 卸载nfs rpm,执行如下命令:
    • rpm -e --nodeps libnfsidmap-0.25-19.el7.x86_64
    • rpm -e --nodeps nfs-utils-1.3.0-0.66.el7.x86_64
    • rpm -e --nodeps nfs4-acl-tools-0.3.3-20.el7.x86_64
  • 查看nfs rpm包是否还存在,执行如下命令:
    • rpm -qa | grep nfs
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值