侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

centos7下NFS使用与配置的步骤

linux  /  管理员 发布于 7年前   243

NFS是Network File System的缩写,即网络文件系统。客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下。

nfs为什么需要RPC?

因为NFS支持的功能很多,不同功能会使用不同程序来启动,因此,NFS对应的功能所对应的端口无法固定。

端口不固定造成客户端与服务端之间的通信障碍,所以需要RPC来从中帮忙。

NFS启动时会随机取用若干端口,然后主动向RPC服务注册取用相关端口和功能信息,RPC使用固定端口111来监听来自NFS客户端的请求,

并将正确的NFS服务端口信息返回给客户端,这样客户端与服务端就可以进行数据传输了。

二、NFS的工作流程

1、由程序在NFS客户端发起存取文件的请求,客户端本地的RPC(rpcbind)服务会通过网络向NFS服务端的RPC的111端口发出文件存取功能的请求。

2、NFS服务端的RPC找到对应已注册的NFS端口,通知客户端RPC服务。

3、客户端获取正确的端口,并与NFS daemon联机存取数据。

4、存取数据成功后,返回前端访问程序,完成一次存取操作。

所以无论客户端,服务端,需要使用NFS,必须安装RPC服务。

NFS的RPC服务,在Centos5下名为portmap,Centos6下名称为rpcbind。

三、NFS服务安装配置

nfs-utils、rpcbind

查看是否安装NFS

> rpm -qa nfs-utils rpcbind> yum install nfs-utils rpcbind 

四、启动rpcbind服务

查看服务状态

> systemctl status rpcbind.service 

如果不知道rpcbind命令在哪

> which rpcbind 

启动rpc服务

> systemctl restart rpcbind.service 

查看rpc

> lsof -i :111> netstat -lntup|grep rpcbind 

如果出现-bash未找到命令可执行下面命令

> yum install net-tools lsof 

查看nfs服务向rpc注册的端口信息

> rpcinfo -p localhost 

检查rpcbind是否开机启动

> chkconfig --list rpcbind 

五、启动NFS服务

> systemctl start nfs.service 

查看状态

> systemctl status nfs.service 

再次查看rpc注册的端口信息

> rpcinfo -p localhost 

六、NFS常见进程详解

> ps -ef|egrep "rpc|nfs" 
rpc   101101   1 0 17:11 ?    00:00:00 /sbin/rpcbind -wrpcuser 101188   1 0 17:22 ?    00:00:00 /usr/sbin/rpc.statd --no-notifyroot   101190   2 0 17:22 ?    00:00:00 [rpciod]root   101200   1 0 17:22 ?    00:00:00 /usr/sbin/rpc.idmapdroot   101201   1 0 17:22 ?    00:00:00 /usr/sbin/rpc.mountdroot   101206   2 0 17:22 ?    00:00:00 [nfsd4]root   101207   2 0 17:22 ?    00:00:00 [nfsd4_callbacks]root   101213   2 0 17:22 ?    00:00:00 [nfsd]root   101214   2 0 17:22 ?    00:00:00 [nfsd]root   101215   2 0 17:22 ?    00:00:00 [nfsd]root   101216   2 0 17:22 ?    00:00:00 [nfsd]root   101217   2 0 17:22 ?    00:00:00 [nfsd]root   101218   2 0 17:22 ?    00:00:00 [nfsd]root   101219   2 0 17:22 ?    00:00:00 [nfsd]root   101220   2 0 17:22 ?    00:00:00 [nfsd]root   101243 100830 0 17:28 pts/0  00:00:00 grep -E --color=auto rpc|nfs 

nfsd(rpc.nfsd)主进程,主要是管理客户端能否登入服务端,登入者ID判别。
mountd(rpc.mountd)管理NFS文件系统,登入者的权限管理
rpc.lockd(非必要)用来锁定文件,用于客户端同时写入
rpc.statd(非必要)检查文件一致性
rpc.idmapd 名字映射后台进程

七、配置NFS开机自启动

> chkconfig rpcbind on> chkconfig nfs on> chkconfig --list rpcbind> chkconfig --list nfs 

八、NFS服务端配置

> vi /etc/exports 

exports文件配置格式:

NFS共享的目录 NFS客户端地址1(参数1,参数2,...) 客户端地址2(参数1,参数2,...)

说明:

NFS共享目录:

要用绝对路径,可被nfsnobody读写。

NFS客户端地址:

指定IP: 192.168.0.1指定子网所有主机: 192.168.0.0/24指定域名的主机: test.com指定域名所有主机: *.test.com所有主机: * 

参数:

  • ro:目录只读
  • rw:目录读写
  • sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
  • async:将数据先保存在内存缓冲区中,必要时才写入磁盘
  • all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody)
  • no_all_squash:与all_squash取反(默认设置)
  • root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置)
  • no_root_squash:与rootsquash取反
  • anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx)
  • anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户

例如:

/data/tmp 192.168.1.0/24(rw,sync,all_squash) 

创建需要共享的目录

> mkdir -p /data/tmp> chown nfsnobody.nfsnobody /data/tmp 

重新加载nfs配置

> exportfs -rv 

查看nfs服务器挂载情况

> showmount -e localhost 

九、挂载测试

> mkdir -p /data/tmp2> mount -t nfs 192.168.1.233:/data/tmp /data/tmp2 

查看挂载

> df -h 

在tmp下创建文件

> touch /data/tmp/1.txt 

查看tmp2下是否有文件

> ls /data/tmp2 

卸载挂载

> umount /data/tmp2 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


  • 上一条:
    linux实现自动删除最旧的几个文件详解
    下一条:
    虚拟机里Centos7的IP地址查看方法
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在Linux系统中使用Iptables实现流量转发功能流程步骤(0个评论)
    • vim学习笔记-入门级需要了解的一些快捷键(0个评论)
    • 在centos7系统中实现分区并格式化挂载一块硬盘到/data目录流程步骤(0个评论)
    • 在Linux系统种查看某一个进程所占用的内存命令(0个评论)
    • Linux中grep命令中的10种高级用法浅析(0个评论)
    • 近期文章
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-11
    • 2017-07
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-03
    • 2022-04
    • 2022-08
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-06
    • 2023-07
    • 2023-10
    • 2023-12
    • 2024-01
    • 2024-04
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客