部署 NFS

  1. 服务端

IP:10.10.0.1

  • 安装 NFS 服务

yum install -y nfs-utils rpcbind

nfs-utils包提供了NFS服务器程序和相应的管理工具
rpc则是能够获得nfs服务器端的端口号等信息

检查是否启动了rpcbind服务并监听着 111端口

netstat -tunlp | grep 111
  • 创建共享目录

在服务器端创建 /nfs 目录

mkdir /nfs
  • 编写配置文件

vim /etc/exports
#[任意主机所有权限]
/nfs   *(rw,sync,insecure,no_subtree_check,no_root_squash)
  • 启动 NFS 服务

systemctl start nfs
  • 设置开机启动

systemctl enable rpcbind.service
systemctl enable nfs-server.service
  • 常用命令工具

#在安装 NFS 服务器时,已包含常用的命令行工具,无需额外安装
#显示已经 mount 到本机 NFS 目录的客户端机器
sudo showmount -e localhost
#将配置文件中的目录全部重新 export 一次,无需重启服务
sudo exportfs -rv
#查看 NFS 的运行状态
sudo nfsstat
#查看 rpc 执行信息,可以用于检测 rpc 运行情况
sudo rpcinfo
  1. 客户端

IP: 10.10.0.2

扫描二维码关注公众号,回复: 16232807 查看本文章
  • 在客户端机器安装nfs-utils和rpcbind包

yum install -y nfs-utils rpcbind
  • 设置开机启动

systemctl enable rpcbind.service
  • 创建本地挂载目录

mkdir -p /data-ext/nfs
  • 查看 NFS 服务器上的共享目录

showmount -e 10.10.0.1  #服务端IP

问题:clnt_create: RPC: Port mapper failure - Timed out

  • 挂载共享目录

mount -t nfs 10.10.0.1:/nfs /data-ext/nfs

问题:mount.nfs: Connection timed out

3.解决问题

nfs服务端防火墙策略配置

  • 问题

客户端无法进行showmount及挂载操作

  • 原因分析

nfs服务端未开放相关服务组件访问端口

  • 查看服务端rpc状态信息,其中mountdnlockmgr 服务启动端口不固定

rpcinfo -p

   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  35305  status
    100024    1   tcp  39682  status
    100005    1   udp  20048  mountd
    100005    1   tcp  20048  mountd
    100005    2   udp  20048  mountd
    100005    2   tcp  20048  mountd
    100005    3   udp  20048  mountd
    100005    3   tcp  20048  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
    100021    1   udp  59811  nlockmgr
    100021    3   udp  59811  nlockmgr
    100021    4   udp  59811  nlockmgr
    100021    1   tcp  34641  nlockmgr
    100021    3   tcp  34641  nlockmgr
    100021    4   tcp  34641  nlockmgr
  • 确认nfs相关服务组件及端口占用如下

服务名称

端口名称

协议名称

备注

nfs

2049

tcp/udp

端口固定

portmapper

111

tcp/udp

端口固定

mountd

20048

tcp/udp

端口不固定,需人为修改固定

nlockmgr

34641/59811

tcp/udp

端口不固定,需人为修改固定

  • 更改相关服务为固定端口

更改mountd 服务端口为20048

echo "mountd 20048/tcp" >> /etc/services
echo "mountd 20048/udp" >> /etc/services

更改nlockmgr 服务端口为42315

echo "fs.nfs.nlm_udpport=42315" >> /etc/sysctl.conf
echo "fs.nfs.nlm_tcpport=42315" >> /etc/sysctl.conf
sysctl -p

结论:nlockmgr服务端口更新没有效果,可能与源地址设置有关,有带验证

  • 问题解决

服务端防火墙开放204911120048 、59811、34641 端口

端口

协议

源地址

111

tcp/udp

0.0.0.0/0

2049

tcp/udp

0.0.0.0/0

20048

tcp/udp

0.0.0.0/0

59811

udp

0.0.0.0/0

34641

tcp

0.0.0.0/0

  • 重新挂载

mount -t nfs 10.10.0.1:/nfs /data-ext/nfs
showmount -e 10.10.0.1
  • 查看客户端挂载信息

df -h

10.10.0.1:/nfs   40G  6.1G   32G  17% /data-ext/nfs

猜你喜欢

转载自blog.csdn.net/victory0508/article/details/129026104