文章目录

  • NFS简介
  • NFS协议模型
    • RPC协议
  • NFS相关包和工具
  • NFS服务概览
  • NFS服务端配置
  • NFS客户端
  • NFS实验部署

NFS简介

  • 网络文件系统,采用CS架构的
  • 分布式计算系统中的一部分组成,可以在不同网络上共享和装配远程文件系统
  • 提供一种Unix操作系统上共享文件的方法
  • 结合远程网络启动实现
    • 无盘工作站:PXE启动系统,所有数据均在服务器磁盘阵列上
    • 瘦客户工作站:本地启动系统,本地磁盘存储了常用的系统工作,而所有的/home目录的用户数据都被会存放在NFS服务器上并在网络中处处可用

NFS协议模型

  • NFS客户端和服务端
  • RPC远程调用
  • 基于TCP/IP网络进行传输

RPC协议

  • NFS协议本身不具备网络传输功能 ,而是基于RCP协议实现的
  • 提供一个面向过程的远程服务的接口
  • 可以通过网络从远程主机程序上请求服务,而不需要了解底层网络技术协议 - 工作在OIS模型的会话层,可以遵循RPC应用层协议提供服务端口注册等功能
  • RPC使用网络端口111监听客户端请求


NFS相关包和工具

  • nfs-utils: NFS的主要组件,包含有:rpc.nfsd已经rpc.mountd这两个核心守护进程组件
  • rpcbind:提供RPC的端口映射的守护进程及相关文件、执行文件等
  • exportfs: 在NFS服务端,维护NFS共享资源的命令
  • showmount:在NFS客户端,查看服务器共享的资源
  • nfsstat:显示NFS的状态统计信息
  • rpcinfo:显示由RPC维护的端口映射,显示已经注册的RPC服务列表

NFS服务概览

  • 安装:
yum install nfs-utils rpcbind
- 软件包:nfs-utils -> 依赖rpcbind软件包
- 服务类型:由systemd启动的守护进程
- 配置单元: /usr/lib/systemd/system/nfs.service
- 守护进程: rpc.nfsd / rpc.mountd等
- 端口: 111 2049 20048
- 配置文件:/etc/exportfs
  • 启动相关服务:
 [root@test ~]# systemctl start rpcbind [root@test ~]# systemctl start nfs-serverss -tanl | grep -E "111|2049|20048"

尽量先启动rpcbind,如果顺序颠倒可能之前启动的服务端口没有注册上去。

NFS服务端配置

  • 主配置文件:/etc/exportfs

  • 格式:
    共享文件 [主机表1[参数项…]] [主机表2[参数项…]]

    参数项:控制共享目录的访问权限,用户映射等等
    ro:只读
    rw:读写
    root_squash: nfs客户端以root用户访问时被映射为匿名用户
    no_root_squash
    all_squash:所有用户
    sync: 同时将数据写入到内存和磁盘中,保证不丢失数据
    async:优先将数据写入到内存中,然后再写入到硬盘中,提高效率,但是可能会丢失书数据

  • exportfs命令:用户维护NFS共享目录列表

  • 当配置了/etc/exportfs文件后,可以使用exportfs命令直接使其生效

  • 参数选项:
    -a: 全部挂载或卸载/etc/exportfs文件中的设置
    -r: 重新挂载
    -u: 卸载共享目录
    -v: 显示输出列表的同时,显示设定参数

NFS客户端

  • showmount命令:
    常用参数:
    -e: 显示NFS服务端上共享的文件列表
    -a: 显示本地挂载的文件资源的情况
    -v:version
    -d: 查看哪些共享目录已经被客户端挂载

关于NFS文件系统的和卸载:
mount -t nfs [-o 参数] NFS服务端地址:/共享目录 /本地挂载点
umount /本地挂载点

开机启动时自动挂载:/etc/fstab文件
NFS服务端地址:/共享目录 /本地挂载点 nfs default 0 0

NFS实验部署

[root@node1 ~]# yum install nfs‐utils rpcbind ‐y
[root@node1 ~]# mkdir /nfsfile
[root@node1 ~]# chmod ‐Rf 777 /nfsfile/
[root@node1 ~]# cat /etc/exports
/nfsfile    192.168.10.0/24(rw,sync,no_root_squash)
[root@node1 ~]# systemctl restart rpcbind
[root@node1 ~]# systemctl restart nfs‐server
Export list for node1:  /nfsfile 192.168.10.0/24
[root@node1 ~]# mount ‐t nfs 192.168.10.10:/nfsfile /mnt/nfsfile[root@node1 data]# mount
192.168.10.130:/nfsfile on /data type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.10.10,local_lock=none,addr=192.168.10.130)

开机自动挂载 /etc/fstab配置文件中加入:
192.168.10.10:/nfsfile /mnt/nfsfile nfs defaults 0 0

系统学习-----NFS协议相关推荐

  1. Linux学习 nfs协议

    nfs 1.yum install  nfs-utils systemctl  enable  nfs-server systemctl  start  nfs-server 2.systemctl  ...

  2. 北斗系统学习—JT808协议用C语言解析

    前言: 本人从事于Linux应用开发(音视频应用方向),现在主要是负者AI摄像头的开发,在学音视频的途中,虽然是个小白,但是更愿意把自己所学音视频的一些知识分享给大家,以后每周都会更新哦! 本期介绍的 ...

  3. linux中的nfs权限,Linux中的NFS协议解析

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 实验步骤 步骤1:下载实验文件 请访问http://file.ichunqiu.com/686f863d下载实验文件. ...

  4. NFS协议分析——wireshark实战

    [理论课程FTP协议与NFS协议] 实验目的 1.NFS协议的应用范围 ??文件读写的时候? 2.NFS挂载操作的原理 整个协议,与文件的读写有什么关联?? 3.NFS的安全机制 NFS的安全机制到底 ...

  5. TCP/IP协议学习之六(RPC原理以及NFS协议)

    有时候我们需要Linux系统之间共享文件,常用的方法为NFS(网络文件系统). 那么这个NFS协议是怎么实现的呢? 网络文件系统实现的核心是使用了RPC(Remote Procedure Call P ...

  6. 深入学习TCPIP协议

    下决心深入学习TCPIP协议 认真理解阅读<TCP-IP详解卷1 协议> 加油! 目      录 译者序 前言 第1章   概述 1 1.1   引言 1 1.2   分层 1 1.3 ...

  7. Glusterfs之nfs模块源码分析(下)之NFS协议之RPC的实现和NFS协议内容

    一.网络文件系统概述 Sun Microsystems公司于1984年推出了一个在整个计算机工业中被广泛接受的远程文件存取机制,它被称为Sun的网络文件系统(Network File System), ...

  8. 如何通过抓包实战来学习Web协议?

    我发现大部分技术人,多多少少都会遇到下面的困惑,比如: AJAX 跨域访问时总被浏览器的同源策略阻止,其背后的原理及符合其设计思想的解决方案是什么? 缓存可以提升性能,但什么样的 HTTP 消息才会被 ...

  9. python自学流程-Python系统学习流程图,教你一步步学习python

    对于刚开始接触Python的小伙伴来说,没有思路方法,不知道从何开始学习,把软件环境安装好后就不知所措了!接下来我给大家分享下多位大牛倾力打造的python系统学习流程,一个月才设计完的! Pytho ...

最新文章

  1. mysql数据库热备份
  2. 【Paper】2016_Cooperative UAV-UGV modeled by Petri Net Plans specification
  3. Modbus和RS485是什么关系
  4. 千橡CEO给应聘者的信
  5. tableView的用法具体解释
  6. flask request传参
  7. 让程序暂停几秒_如何构建一个简单的Python提醒应用程序
  8. mysql 每日新增表分区
  9. sap事务代码_SAP成本模块常用事务代码清单
  10. SQL之总结(四)---null问题的处理
  11. MFC中 使用Tab Control 控件在对话框中添加属性页
  12. 统计字符串中含指定字符个数
  13. MAtlab求函数最大值以及对应自变量
  14. PS打不开webp格式图片的解决方法
  15. 台式计算机快捷键大全,台式电脑截图快捷键是哪一个?(电脑快捷键使用大全)...
  16. mysql中rand的用法_MySQL RAND()用法及代码示例
  17. 我的jQuery学习之路_笔记(三)
  18. (18) 基于时空多图卷积网络的网约车需求预测
  19. cocoscreator利用中点位移算法制作闪电
  20. 计算机组成原理【转载】

热门文章

  1. java中的if语句
  2. java左值与右值问题_什么是左值和右值
  3. GOM引擎反外挂插件脱机检测系统讲解
  4. 中国联通再现用户净流失,在运营商市场进一步边缘化
  5. 广州新联通3G“试用商”(还是“试商用”?)启动仪式(图)
  6. mysql连接与嵌套查询_数据库的连接查询和嵌套查询怎么做啊?
  7. 汪国真的诗《热爱生命》
  8. Android实现音乐示波器、均衡器、重低音和音场功能
  9. 一灯大师:一点就是好几年
  10. C语言动态规划法解决0/1背包问题(详细解答)