NFS服务和挂载操作手册

环境
类型操作系统ip地址共享目录挂载目录
NFS服务器CentOS 7.6192.168.160.129/data/share-
NFS客户端CentOS 7.6192.168.160.128-/data/share

根据红帽官网说明 Chapter 8. Network File System (NFS) - Red Hat Customer Portal,RHEL 7.4 以后,支持 NFS v4.2 不需要 rpcbind 了,但是如果客户端只支持 NFS v3 则需要 rpcbind 这个服务。

服务器端配置
  • 安装nfs

# yum install -y nfs-utils

注意
只安装 nfs-utils 即可,rpcbind 属于它的依赖,也会安装上。

  • 修改nfs配置文件

# vim /etc/exports

/data/share 192.168.160.128(rw, no_root_squash ,sync) 1

  • 创建共享目录,并修改权限
    若共享目录已存在,可无需创建,但依然要修改权限

# mkdir /data/share

# chmod 777 /data/share

  • 启动服务2
    请按顺序执行以下命令,否则nfs会启动异常

# systemctl enable rpcbind && systemctl start rpcbind

# systemctl enable nfs && systemctl start nfs

  • 查看服务器共享的文件系统

# exportfs

/data/share 192.168.160.128

客户端配置
  • 安装nfs

# yum install -y nfs-utils

  • 启动服务
    客户端无需启动nfs

# systemctl enable rpcbind && systemctl start rpcbind

  • 查询nfs服务器信息3

# showmount -e 192.168.160.129

  • 创建挂载点

# mkdir /data/share

  • 挂载

# mount 192.168.160.129:/data/share /data/share

  • 验证

# mount | grep 192.168.160.129
192.168.160.129:/data/share on /data/share type nfs4 (rw,relatime,vers=4.1,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.160.128,local_lock=none,addr=192.168.160.129)

  • 开机自动挂载
    /etc/fstab 文件新增行记录

# vim /etc/fstab

192.168.160.129:/data/share /data/share nfs4 defaults 0 0

注脚
1. 扩展知识

nfs配置文件格式:
<输出目录> 客户端(选项:访问权限,用户映射,其他)

  • 输出目录
    是指NFS系统中所定义的共享给客户端使用的文件系统

  • 客户端
    是定义网络中可以访问这个NFS共享目录的IP地址或网段或域名等
    客户端常用的指定方式

    • 指定ip地址的主机:192.168.160.128
    • 指定一个子网:192.168.160.0/24 也可以写成:10.13.26.0/255.255.255.0
    • 指定域名的主机:main.test.com
    • 指定域中的所有主机:.test.com
    • 所有主机:*
  • 选项
    用来设置输出目录的访问权限、用户映射等。
    NFS主要有3类选项:

    • 目录的访问权限
      设置输出目录只读:ro
      设置输出目录读写:rw

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

    • 其它选项
      secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置)
      insecure:允许客户端从大于1024的tcp/ip端口连接服务器
      sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
      async:将数据先保存在内存缓冲区中,必要时才写入磁盘
      wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置)
      no_wdelay:若有写操作则立即执行,应与sync配合使用
      subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置)
      no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率

2. 问题分享
场景一
  • 问题描述
    rhel 7.6 机器重启存在rpcbind、nfs服务状态异常情况,导致nfs服务挂掉情况,且无法手动start服务,报监听错误(Failed to listen on RPCbind Server Activation Socket.状态异常
  • 原因
    rhel 7.6 上的rpcbind版本有更新(rpcbind-0.2.0-47.el7.x86_64),socket文件新增监听ipv6端口,但又因为我们搭建的机器(生产和非生产)默认都是关闭了ipv6
    rpcbind socket文件关闭ipv6
  • 解决办法
    关闭rpcbind对ipv6端口的监听,重启服务即可(或者启用ipv6(不推荐))
1、用“#”注释掉与ipv6有关的配置
# vim /usr/lib/systemd/system/rpcbind.socket
 2、重启服务
# systemctl daemon-reload
# systemctl start rocbind
# systemctl start nfs

rpcbind关闭ipv6
重启服务

场景二

该问题存在于rhel老版本以下(rhel 5、6)版本部分机器

  • 问题描述
    rpcbind服务已启动,并做开机启动配置,且在/etc/fstab配置挂载信息后,开机依然无法自动挂载nfs

  • 原因
    由于rhel老版本(rhel 5、6)系统启动自动挂载网络文件需要依赖于netfs服务,且在部分机器上没有启动该服务,导致开机无法正常挂载nfs情况

  • 解决办法
    启动netfs服务,并做开机启动该服务

3. showmount -e 异常

客户端若出现以下情况
showmount异常
请按顺序执行以下操作:

  • 服务器端

rhel 7版本执行

 # systemctl stop nfs
 # systemctl stop rpcbind
 # systemctl start rpcbind
 # systemctl start nfs

rhel 6版本执行

 # /etc/init.d/nfs restart
  • 客户端
# systemctl restart rpcbind

  1. 扩展知识 ↩︎

  2. 问题分享 ↩︎

  3. showmount -e 异常 ↩︎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
登录到要设置成 NFS 服务的那个服务器上 Linux 挂载 NFS 2 设置 NFS 要共享的目录,在命令行输入 vi /etc/exports 后回车 Linux 挂载 NFS 3 进入 vi 的文件编辑窗口,按 i 键切换到编辑模式,输入你想设置的目录位置和权限,如:/var/ftp *(rw,no_root_squash) ;说明:/var/ftp 为共享的目录位置; *(rw,no_root_squash) *为任意IP都可以访问 rw为可进行读写访问 no_root_squash 为拥有这个目录所有者的权限。 Linux 挂载 NFS 4 确认输入正确后,按 Esc 键,回到 vi 的命令模式,依次按 : (冒号) wq 键后回车保存并退出编辑。 Linux 挂载 NFS Linux 挂载 NFS 5 使用 service nfs start 命令启动 NFS 服务(在对 /etc/exports 做了任何修改后都需要重启 NFS 服务,才可以使修改生效,重启命令 service nfs restart) Linux 挂载 NFS 6 至此,服务器上面的设置完成了。 7 开始使用NFS服务的客户端设置,首先还是先使用 PuTTY 登录到要使用 NFS 的电脑上。(为了方便,我都是在一台电脑上操作的) 8 建立 NFS挂载位置的目录(如果目录已经存在忽略此步骤),加入我想挂载到 /var/ftp 这个目录下,那么我先用命令 mkdir /nfs/ftp 创建目录,之后使用 ls /var -l 命令查看 Linux 挂载 NFS 9 挂载 NFS 共享,使用 mount -t nfs -o rw 192.168.109.130:/nfs/ftp /var/ftp 命令完成挂载 10 要想每次启动机器的时候自动挂载,可使用命令 vi /etc/fstab 编辑,在最后面加上 192.168.109.130:/var/ftp /nfs/ftp nfs defaults 0 0 ,保存退出。这样在每次启动的时候就会自动挂载 192.168.109.130:/var/ftp 这个NFS 共享了

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值