NFS详解

2023-05-16


一、简介:

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


二、工作流程:

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

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

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

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


三、centos7配置NFS共享

前提

防火墙和selinux已经关闭。

配置好YUM源,服务端需要共享的磁盘是挂载/data目录下的。


3.1、服务端配置:IP 192.168.1.101

安装软件

# yum install nfs-utils rpcbind


修改NFS的exports文件

# vi /etc/exports

/data *(rw,sync,no_root_squash)


重新加载NFS的export配置文件

# exportfs -ra


启动服务及配置服务开机启动

# service rpcbind start

# service nfs start


按照顺序启动服务,不然会报错


配置服务开机启动

# systemctl enable nfs-server.service

# systemctl enable rpcbind 


3.2、客户端配置:192.168.1.102

安装软件

# yum install nfs-utils rpcbind


创建挂载的目录/data

# mkdir /data


挂载

# mount 192.168.1.101:/data /data


把挂载信息写入fstab配置文件

# vi /etc/fstab

添加

192.168.1.101:/data             /data        nfs4           defaults    0 0


四、exports详解及常用命令

4.1、配置文件/etc/exports

/etc/exports文件内容格式:<输出目录> 客户端(选项:访问权限,用户映射,其他)


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

客户端是定义网络中可以访问这个NFS共享目录IP地址或网段或域名等;

客户端常用的指定方式:

  指定ip地址的主机:192.168.1.102

  指定一个子网:192.168..102/24 也可以写成:192.168.1.102/255.255.255.0

  指定域名的主机:image.test.cn

  指定域中的所有主机:*.test.cn

  所有主机:*

选项用来设置输出目录的访问权限、用户映射等;

  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服务器也不检查其父目录的权限,这样可以提高效率;


重新加载nfs配置文件命令exportfs:

-r:表示重新刷新共享;
-a:表示将配置文件/etc/exports中的所有定义共享发布出去;
-v:显示确认共享设置;
-u:表示不发布共享;


4.2、常用命令

# exportfs -au 卸载所有共享目录
# exportfs -rv 重新共享所有目录并输出详细信息


nfsstat
查看NFS的运行状态,对于调整NFS的运行有很大帮助。


rpcinfo
查看rpc执行信息,可以用于检测rpc运行情况的工具,利用rpcinfo -p 可以查看出RPC开启的端口所提供的程序有哪些。


showmount
  -a 显示已经于客户端连接上的目录信息
  -e IP或者hostname 显示此IP地址分享出来的目录


netstat
可以查看出nfs服务开启的端口,其中nfs 开启的是2049。


参考;

https://blog.51cto.com/mrxiong2017/2087001

转载于:https://blog.51cto.com/xiaoxiaozhou/2133781

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NFS详解 的相关文章

  • mount.nfs报错

    mount nfs requested NFS version or transport protocol is not supported 今天在挂载nfs时遇到mount nfs requested NFS version or tra
  • ROS主机搭建NFS服务器,虚拟机通过挂载访问及修改主机文件

    本文主要介绍在ROS主机中搭建NFS服务器 xff0c 虚拟机 xff08 从机 xff09 通过nfs挂载的方式访问及修改主机中文件的方法 一 ROS主机NFS服务器搭建 xff1a 若机器人配有显示屏 xff0c 此部分可直接在机器人上
  • 2021 => 手把手教你NFS部署(实用)

    NFS服务 原理 xff1a 供文件共享服务 为Web Server 配置集群中的后端存储 支持多节点同时挂载以及并发送与写入 架构解析 这是一张大型网站高并发架构图 xff0c 我们只需注意图中圈红的地方 建立NFS文件系统本质就是用来进
  • ubuntu nfs服务器设置-调试成功

    转载地址 xff1a http www cnblogs com doctorqbw archive 2012 02 03 2337411 html 1 安装nfs服务 xff0c apt get install nfs common nfs
  • NFS配置和autofs按需挂载

    什么是NFS NFS 其目的就是让不同计算机不同操作系统之间可以彼此共享文件 NFS采用服务器 客户端 工作模式 在NFS服务器上将目录设置为输出目录 xff08 即共享目录 xff09 后 xff0c 客户端就可以将这个目录挂载 到自己系
  • NFS与自动挂载

    1 NFS共享文件server端的配置 xff08 server ip xff1a 172 16 8 11 xff09 root 64 localhost getenforce Enforcing root 64 localhost set
  • 如何在 CentOS 8 上安装和配置 NFS 服务器

    网络文件系统 NFS 是一种分布式文件系统协议 允许您通过网络共享远程目录 使用 NFS 您可以在系统上挂载远程目录并像使用本地文件一样使用远程计算机上的文件 NFS 协议默认不加密 并且与 Samba 不同 它不提供用户身份验证 对服务器
  • 【ubuntu】nfs服务搭建

    一 开篇 在嵌入式linux开发过程中 由于目标平台的资源限制 开发环境一般都不会放到目标板卡上 需要放在开发宿主机上 如果需要宿主机与目标板卡之间进行文件传输 该怎么办呢 这时候nfs就派生用场了 nfs Network File Sys
  • K8S部署NFS动态供给+PVC动态挂载示例

    文章目录 1 安装nfs客户端 2 部署nfs client provisioner插件 2 1 配置授权 RBAC 2 2 Deployment 2 3 创建StorageClass 3 使用示例 3 1 Deployment RWO 3
  • 进入到文件系统,使用mount命令挂载到Linux不成功。出现 failed: No such device

    如图 原因 nfs模块未配置加载到内核中 解决办法 加入nfs模块到内核中 重新配置 配置如下 File systems gt Network File Systems gt lt gt NFS client support NFS cli
  • Ubuntu小技巧9--使用Samba服务实现Windows和Linux文件访问

    Ubuntu小技巧8 Ubuntu小技巧9 使用Samba服务实现Windows和Linux文件访问 很多时候做开发的时候需要在Linux上编译运行 但是又想用Windows的优秀工具 不停的将文件拷贝到Windows和Linux是极其浪费
  • ubuntu下nfs服务安装

    操作系统 ubuntu22 04 2 一 服务端安装与配置 1 在服务端安装nfs服务端组件 sudo apt install nfs kernel server 2 创建共享目录share并且授权所有人可以访问 sudo mkdir sh
  • nfs漏洞的处理:目标主机showmount -e信息泄露(CVE-1999-0554)

    文章目录 前言 一 漏洞内容 二 配置现状 1 nfs server节点 etc exports文件的配置 2 client节点执行showmount e 测试 三 nfs server节点增加访问控制的配置 1 etc hosts all
  • 无法写入通过 NFS 连接的 FIFO 文件

    我正在尝试写入位于 NFS 安装上的 FIFO 文件 但它会阻塞 可能是什么问题呢 我的 etc export tmp test 10 0 0 0 24 rw no root squash async NFS 服务器和客户端上的 ls tm
  • Vagrant 与 Rails 服务器共享文件夹

    我正在 vagrant box 中的 nfs 共享文件夹上运行 Rails 当服务器 thin webrick 运行时 我正在主机中编辑文件 但我必须不断停止并重新启动应用程序服务器才能看到 web 应用程序中反映的更改 这是正常行为吗 我
  • 将单个文件从 NFS docker 卷挂载到容器中

    示例 为简洁起见 省略了许多选项 version 3 volumes traefik driver local driver opts type nfs o addr 192 168 1 100 soft rw nfsvers 4 asyn
  • openEuler NFS多路径

    简介 网络文件系统 NFS 是一种分布式文件系统协议 最初由 Sun Microsystems Sun 于 1984 年开发 允许NFS客户端上的用户通过计算机网络访问NFS服务端上文件 随着NFS服务广泛应用于金融 EDA AI 容器等行
  • 通过 NFS 上传文件时出现操作系统错误

    当我尝试通过 django 管理界面上传媒体文件时 出现以下错误 OSError Errno 45 Operation not supported 这是回溯的最后一行 File path to home Envs myenv lib pyt
  • Kubernetes,无法通过 DNS 挂载 NFS 共享

    我正在尝试通过 DNS 查找在我的容器中安装 NFS 共享 k8s 集群外部 我的配置如下 apiVersion v1 kind Pod metadata name service a spec containers name servic
  • 从文件中 read() - 阻塞行为与非阻塞行为

    假设我们使用以下命令打开了一个文件fopen 并从收到的文件指针中 使用以下命令获取文件描述符fileno 然后我们做很多 gt 10 8 随机read 该文件中相对较小的块 大小在 4 字节到 10 KB 之间 这是预期的行为吗read

随机推荐