系统学习-----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-server
     
     	ss -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

发布了49 篇原创文章 · 获赞 6 · 访问量 3686

猜你喜欢

转载自blog.csdn.net/weixin_46097280/article/details/104960099