当前位置: 首页 > ds >正文

NFS文件存储

目录

一、概述

二、NFS服务安装与启停

1.NFS服务安装

2.NFS服务启停

三、NFS服务配置文件

四、NFS文件共享配置文件

五、命令解析

六、客户端访问

七、客户端挂载

八、实战项目


一、概述

NFS概述

NFS的功能是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。默认监听2049端口号。

NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;NFS一般用来存储共享视频,图片等静态数据。

NFS分为服务端和客户端(C/S架构)。服务端提供共享目录或文件,客户端对服务端共享的目录或文件挂载后,就可以读取到服务端提供的文件或目录,在客户端看来就像访问本地一样。

RPC,远程过程调用协议。可以通过网络从远程主机程序上请求服务,而不需要了解底层网络技术。最重要的功能是远程连接、端口注册。使用UDP的111端口监听客户请求。

NFS工作原理

NFS服务端和客户端之间通过随机选择端口来传输数据,NFS服务端利用RPC协议与客户端进行沟通决定使用的随机端口,然后利用这个端口来传输数据,使用的随机端口通常小于1024。RPC协议用来统一管理NFS的随机端口,其使用的端口默认为111。

RPC与NFS通讯过程

1.首先服务器端启动RPC服务,并开启111端口

2.服务器端启动NFS服务,并向RPC注册端口信息

3.客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口

4.服务端的RPC(portmap)服务反馈NFS端口信息给客户端。

5.客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输。

二、NFS服务安装与启停

1.NFS服务安装
[root@nginx1 ~]# yum install -y nfs-utils
2.NFS服务启停
[root@localhost ~]# systemctl start nfs-server.service

[root@localhost ~]# systemctl stop nfs
[root@localhost ~]# systemctl enable --now nfs

三、NFS服务配置文件

  • 文件不用修改

[root@localhost ~]# cat /etc/nfs.conf
# 这是一个NFS服务器的配置文件
# This is a general configuration for the NFS daemons and tools
​
#[general]
# pipefs-directory=/var/lib/nfs/rpc_pipefs  # 设置RPC管道文件系统的目录
​
#[exportfs]
# debug=0  # 设置导出时的调试级别为0
​
#[gssd]
# verbosity=0  # 设置GSSAPI的日志级别为0
# rpc-verbosity=0  # 设置RPC日志级别为0
# use-memcache=0  # 是否使用内存缓存,这里设置为0,不使用
# use-machine-creds=1  # 是否使用机器凭证,这里设置为1,使用
# avoid-dns=1  # 是否避免DNS查找,这里设置为1,避免
# limit-to-legacy-enctypes=0  # 是否限制使用旧的对等体类型,这里设置为0,不限制
# context-timeout=0  # 设置上下文超时时间为0,即无超时时间
# rpc-timeout=5  # 设置RPC超时时间为5秒
# keytab-file=/etc/krb5.keytab  # 指定Kerberos的keytab文件路径
# cred-cache-directory=  # 凭证缓存目录为空,可能这个配置项被注释掉了或者不存在
# preferred-realm=  # 首选领域为空,可能是默认的领域值
​
#[lockd]
# port=0  # 锁管理器监听的端口为0,可能未配置或默认值
# udp-port=0  # UDP端口为0,可能未配置或默认值
​
#[mountd]
# debug=0  # 挂载时的调试级别为0
# manage-gids=n  # 是否管理组ID,这里设置为n,不管理
# descriptors=0  # 描述符数量为0,可能未配置或默认值
​
#[nfsdcltrack]
# debug=0  # NFS数据流跟踪的调试级别为0
# storagedir=/var/lib/nfs/nfsdcltrack  # 数据存储目录为空,可能这个配置项被注释掉了或者不存在
​
#[nfsd]
# debug=0  # NFS服务的调试级别为0
# threads=8  # 并发线程数为8,可以提供更高的性能
# host=  # 主机的IP地址或域名,这里为空,可能是默认值或未配置
​
​
#[statd]
# debug=0  # 设置statd服务的调试级别为0,即不进行调试
# port=0  # 设置statd服务的监听端口为0,可能表示默认值或未配置
# outgoing-port=0  # 设置statd服务发送数据的端口为0,可能表示默认值或未配置
# name=  # 设置statd服务的名称为空,可能表示默认值或未配置
# state-directory-path=/var/lib/nfs/statd  # 设置statd服务的状态目录路径为/var/lib/nfs/statd
# ha-callout=  # 设置高可用调用为空,可能表示未配置
# no-notify=0  # 设置是否禁用通知为0,即不禁用通知
​
#[sm-notify]
# debug=0  # 设置sm-notify服务的调试级别为0,即不进行调试
# force=0  # 设置是否强制发送通知为0,即不强制发送
# retry-time=900  # 设置发送通知请求的延迟时间为900秒
# outgoing-port=  # 设置发送数据的端口为空,可能表示默认值或未配置
# outgoing-addr=  # 设置发送数据的地址为空,可能表示默认值或未配置
# lift-grace=y  # 设置是否解除宽限期为y,即解除宽限期

四、NFS文件共享配置文件

[root@localhost ~]# cat /etc/exports   #默认是空文件

exportfs -arv                                              ##加载配置文件

配置参数

参数作用
ro只读
rw读写
root_squash当以root身份访问时,映射为NFS服务端的匿名用户
no_root_squash当以root身份访问时,映射为NFS服务端的root用户
all_squash无论使用什么账户访问,均映射为NFS服务端的匿名用户
sync同时将数据写入内存和硬盘中,保证不丢失数据
async先将数据写入内存,然后写入硬盘中,可能会造成数据丢失

五、命令解析

命令字选项作用
exportfs-d开启调试模式。有效的调试类型包括:all, auth, call, general 和 parse。在/etc/nfs.conf的[exportfs]部分中设置debug=也可以开启调试模式。
-a导出或取消导出所有目录。
-o指定一个与exports(5)文件中的导出选项列表相同的选项列表。
-i忽略/etc/exports文件和/etc/exports.d目录下的文件,仅使用命令行中给出的默认选项和选项。
-r重导出所有目录,将/var/lib/nfs/etab与/etc/exports和/etc/exports.d下的文件同步。该选项会删除来自/var/lib/nfs/etab中已从/etc/exports或/etc/exports.d下的文件的删除条目,并删除内核导出表中已不再有效的条目。
-u取消导出一个或多个目录。
-f如果/proc/fs/nfsd或/proc/fs/nfs被挂载,则将内核的导出表中的所有内容清除。活跃客户端的新的内核导出表条目是由rpc.mountd在它们下次发出NFS挂载请求时添加的。
-v显示详细信息。在导出或取消导出时,显示正在进行的事情。在显示当前导出列表时,还会显示导出选项列表。
-s显示适合/etc/exports的当前导出列表
shoumountshowmount [ -adehv ] [ --all ] [ --directories ] [ --exports ] [ --help ] [ --version ] [ host ]
-a列出客户端主机名或IP地址以及以主机目录格式表示的挂载目录。
-d仅列出由客户端挂载的目录。
-e显示NFS服务器的导出列表。(常用)
-h提供简短的帮助摘要。
-v报告程序的当前版本号。

六、客户端访问

[root@localhost ~]# showmount -e 192.168.115.128

七、客户端挂载

[root@localhost ~]# mount 192.168.115.128:/nfsdir /mnt            #手动挂载
[root@localhost ~]# vim /etc/fstab                                #自动挂载
192.168.115.128:/nfsdir /mnt    nfs4    defaults    0 0
[root@localhost ~]# df -Th                                         #查看挂载

http://www.xdnf.cn/news/15141.html

相关文章:

  • 【Linux | 网络】socket编程 - 使用UDP实现服务端向客户端提供简单的服务
  • Vue响应式原理一:认识响应式逻辑
  • 【51单片机累计的时间为1分30秒时蜂鸣器叫】2022-7-29
  • VR重现红军过雪山:一场穿越时空的精神洗礼​
  • uniapp AndroidiOS 定位权限检查
  • 图像处理中的凸包检测:原理与实现
  • Protable 问题记录
  • 神经网络简介
  • [IMX][UBoot] 13.Linux 内核源码目录分析
  • 【Linux】权限的概念及理解
  • 【RK3568+PG2L50H开发板实验例程】FPGA部分 | 以太网传输实验例程
  • RabbitMQ 4.1.1-Local random exchange体验
  • 【linux】ssh使用-X参数后报错:X11 forwarding request failed on channel 0
  • 深度学习 最简单的神经网络 线性回归网络
  • Python-文件操作-StringIO和BytesIO-路径操作-shutil模块-csv,ini序列化和反序列化-argparse使用-学习笔记
  • 蛋白质序列-kappa参数计算算法解读
  • 苍穹外卖项目日记(day04)
  • qt-C++笔记之布局管理`space` 和 `margin`的区别
  • 基于pytorch.nn模块实现线性模型
  • c语言中的数组II
  • OpenCV图片操作100例:从入门到精通指南(4)
  • (C++)任务管理系统(正式版)(迭代器)(list列表基础教程)(STL基础知识)
  • Android-重学kotlin(协程源码第一阶段)新学习总结
  • STM32-看门狗
  • (5)机器学习小白入门 YOLOv:数据需求与图像不足应对策略
  • qml加载html以及交互
  • Qt去噪面板搭建
  • Flutter基础(前端教程⑦-Http和卡片)
  • 【EGSR2025】材质+扩散模型+神经网络相关论文整理随笔(二)
  • 图片的拍摄创建日期怎么改?保护好图片信息安全的好方法