nfs配置

1.NFS介绍

NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操 作系统可以共享彼此的文件。 NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文 件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用 上相当便利;

NFS挂载原理:

当我们在NFS服务器设置好一个共享目录/home/public后,其他的有权访问NFS服务器的NFS客户 端就可以将这个目录挂载到自己文件系统的某个挂载点,这个挂载点可以自己定义,如上图客户端A与 客户端B挂载的目录就不相同。并且挂载好后我们在本地能够看到服务端/home/public的所有数据。如 果服务器端配置的客户端只读,那么客户端就只能够只读。如果配置读写,客户端就能够进行读写。挂 载后,NFS客户端查看磁盘信息命令:#df –h。 既然NFS是通过网络来进行服务器端和客户端之间的数据传输,那么两者之间要传输数据就要有想 对应的网络端口,NFS服务器到底使用哪个端口来进行数据传输呢?基本上NFS这个服务器的端口开在

2049,但由于文件系统非常复杂。因此NFS还有其他的程序去启动额外的端口,这些额外的用来传输数据 的端口是随机选择的,是小于1024的端口;既然是随机的那么客户端又是如何知道NFS服务器端到底使 用的是哪个端口呢?这时就需要通过远程过程调用(Remote Procedure Call,RPC)协议来实现了!

RPC与NFS通讯原理:

因为NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用 一些端口来传输数据,因此NFS的功能对应的端口并不固定,客户端要知道NFS服务器端的相关端口才 能建立连接进行数据传输,而RPC就是用来统一管理NFS端口的服务,并且统一对外的端口是111,RPC

会记录NFS端口的信息,如此我们就能够通过RPC实现服务端和客户端沟通端口信息。PRC最主要的功能 就是指定每个NFS功能所对应的port number,并且通知客户端,记客户端可以连接到正常端口上去。 那么RPC又是如何知道每个NFS功能的端口呢? 首先当NFS启动后,就会随机的使用一些端口,然后NFS就会向RPC去注册这些端口,RPC就会记录 下这些端口,并且RPC会开启111端口,等待客户端RPC的请求,如果客户端有请求,那么服务器端的

RPC就会将之前记录的NFS端口信息告知客户端。如此客户端就会获取NFS服务器端的端口信息,就会以 实际端口进行数据的传输了。 注意:在启动NFS SERVER之前,首先要启动RPC服务否则NFS SERVER就无法向RPC服务区注册, 另外,如果RPC服务重新启动,原来已经注册好的NFS端口数据就会全部丢失。因此此时RPC服务管理的

NFS程序也要重新启动以重新向RPC注册。特别注意:一般修改NFS配置文档后,是不需要重启NFS的, 直接在命令执行systemctl reload nfs或exportfs –rv即可使修改的/etc/exports生效

NFS客户端和NFS服务器通讯过程:

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

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

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

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

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

2. NFS软件包

NFS服务需要nfs-utils和rpcbind两个软件包,V10服务器默认已经安装

3. 配置NFS

NFS主配置文件:/etc/exports

NFS配置参数

4. NFS挂载参数:

4.1 NFS通用设置

soft/hard

软挂载方式挂载系统,若NFS请求超时,则客户端向调用程序返回错误;如,果使用硬连接方式则客户端一直重 新请求直至成功。默认为hard。

bg/fg

设置挂载失败后的行为方式。默认的fg方式将立刻退出返回错误状态,bg方式是退出前将产生一个子进程在后 台继续尝试挂载。

timeo=n

timeo=n 客户端重传请求前等待时间。对于基于TCP的NFS服务,默认等待重传时间为60s。使用TCP协议 时,NFS Client不执行任何超时backoff。对于UDP协议,client使用一个合适的算法,为常用的请求类型estimate合适的超时时间。但对不常用的请求类型使用timeo设置。如果timeo没有设置,不常用的请求类 型1.1秒以后重试。在每次重发后,NFS Client会将timeout时间加倍,直到最大的60秒。

retrans=n

客户端返回错误前的重传次数。默认为重传3次。retrans与soft参数一起使用时才有效。

retry=n

设定当网络传输出现故障的时候,尝试重新连接多少时间后不再尝试。默认的数值是10000minutes

resize=n/wsize=n

每个read/write命令字向服务器读取文件的最大字节数。实际数据小于或等于此值。resize/wsize必须是1024倍数的正整数,小于1024时自动设为4096,大于1048576时自动设为1048576。默认时,服务器和客户 端进行协商后设置。

async/sync

同步、异步挂载,客户端默认异步(async)。对于异步挂载,客户端下发的写数据会先缓存在内存中,达到 一定大小或者其他条件(与客户端设置,状态有关),再一起发往服务端。而同步挂载,每次下发的写数据马 上发到服务端。

acregmin/acregmax

设置NFS客户端缓存普通文件属性的最短时间和最长时间,单位为秒。超过此时间后对其进行更新。默认最短 时间是3s,最长时间是60s

acdirmin/acdirmax

设置NFS客户端缓存目录属性的最短时间和最长时间,单位为秒。超过此时间后对其进行更新。默认最短时间 是3s,最长时间是60s。

ac/noac

设置是否缓存文件属性。为了提高性能,NFS客户端缓存文件属性(默认ac),然后每隔一段时间去检查文件 属性后更新。在缓存有效期内,客户端不检测服务器上文件属性是否改变。默认为ac。

actimeo

将acregmin/acregmax/acdirmin/acdirmax四个参数设置为相同时间,单位为秒。

sharecache/nosharecache

设置客户端并发挂载同一文件系统时数据缓存和属性缓存的共享方式。设置为sharecache时,多个挂载共享 共享同一缓存。设为nosharecache时,每个挂载各有一个缓存。默认为sharecache。

resvport/noresvport

设置连接服务器是否使用保密源端口。默认的resvport设置保密端口,noresvport设置为非保密端口。内 核2.6.28及以后版本支持。

lookupcache=mode

设置内核管理给定挂载点的目录项缓存方式。其中包括all/none/pos几种方式。客户端缓存LOOKUP命令字 请求结果。如果请求的目录项在服务器上,则返回结果为正,否则为负。all的管理方式是在父目录缓存的属 性失效前客户端缓存这两种目录项;pos是在父目录缓存的属性失效前客户端缓存结果为正的查询结果,总是 重新验证结果为负的查询结果。none总是重新验证目录缓存项。默认为all管理方式,内核2.6.28及以后版 本支持。

intr/nointr

设置是否允许信号中断挂载点的文件操作。如果指定intr,当NFS操作被信号中断时系统返回EINTR。指定nointr,信号不会中断NFS文件操作。默认为nointr。指定intr时,通常同时使用soft选项,防止数据损 坏。内核2.6.25及以后不再支持。

cto/nocto

设置是否使用“关闭打开”缓存一致的特性。通常客户端打开文件时检查是否存在以及是否有权限,当关闭文件 时刷新更改。当设置为nocto时,客户端使用非标准的试探来检查服务器上文件是否改变,对于只读和文件更 改较少时情形有助于提高性能。

4.2 对NFS(NFS2/NFS3)有效的选项

proto=transport

客户端向服务器发起传输请求使用的协议,可以为UDP或者TCP。未指定时,mount命令选择服务器支持的协 议

4.3 对NFS4有效的选项:

proto=transpro

客户端向服务器发起传输请求使用的协议,可以为UDP或者TCP。未指定时,选用TCP。

port=n

指定服务器NFS服务端口。如果NFS服务端口不在port上,则mount请求失败。未指定时,客户端使用NFS标 准的2049号端口。指定为0时,客户端选用服务器rpcbind服务支持的端口。

5. 范例

5.1 共享/nfs目录给192.168.1.0网段(完整范例)

服务器:

客户端:

5.2 客户端挂载192.168.1.164服务器的nfs目录,当网络质量不好时,客户端不会 因此卡顿(客户端挂载参数)

客户端

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/189544.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【STM32】TIM2的PWM:脉冲宽度调制--标准库

注意点: TIM_Period---->指要进行比较的值Compare TIM_Prescaler----> 指要进行分频的值【分频值/原始时钟值】 PWM是一种周期固定,脉宽可调整的输出波形。 https://www.cnblogs.com/brianblog/p/7117896.html 0.通用寄存器输出 1.捕获/比较通道…

Docker从零开始学习,及常用命令大全(附带代码讲解)

Docker从零开始,及常用命令大全(附带代码讲解) docker是一种开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。…

Qt QtCreator调试Qt源码配置

目录 前言1、编译debug版Qt2、QtCreator配置3、调试测试4、总结 前言 本篇主要介绍了在麒麟V10系统下,如何编译debug版qt,并通过配置QtCreator实现调试Qt源码的目的。通过调试源码,我们可以对Qt框架的运行机制进一步深入了解,同时…

使用Redis实现热搜功能

Redis热搜 原理数据类型redis操作简单实现 实操封装方法执行方法最后使用springboot的定时任务对热搜榜单进行维护 原理 使用redis实现热搜的原理就是维护一个zset集合,然后使用score作为当前搜索词的搜索量,score越高的搜索词就说明该搜索词热度越高。…

设计模式之十一:代理模式

代理可以控制和管理访问。 RMI提供了客户辅助对象和服务辅助对象,为客户辅助对象创建和服务对象相同的方法。RMI的好处在于你不必亲自写任何网络或I/O代码。客户程序调用远程方法就和运行在客户自己本地JVM对对象进行正常方法调用一样。 步骤一:制作远程…

机器学习——朴素贝叶斯

目录 一、贝叶斯方法 背景知识 贝叶斯公式 二、朴素贝叶斯原理 判别模型和生成模型 1.朴素贝叶斯法是典型的生成学习方法 2.朴素贝叶斯法的基本假设是条件独立性 3.朴素贝叶斯法利用贝叶斯定理与学到的联合概率模型进行分类预测 用于文…

Redis为什么要使用SDS作为基本数据结构

Redis为什么要使用SDS作为基本数据结构 Redis SDS与C语言中字符串的对比二进制安全兼容部分C字符串函数 Redis SDS与C语言中字符串的对比 SDS中保存了字符串的长度属性,我们在获取字符串长度是的时间复杂度为O(1),而C中字符串则需要对字符串进行遍历时间…

Lambertian模型(完美漫反射)

这里使用相乘的方式组合光照色和纹理色。根据这个模型,面朝光源的区域光照强度高,纹理色也相应增强。面背光源的区域光照弱,纹理色也被抑制。这样通过光照和纹理的结合,可以合成出具有照明效果的面部颜色,而不仅仅是固定的纹理本身的颜色。相乘方式可以近似实现不同光照方向下面…

【Devchat 插件】创建一个GUI应用程序,使用Python进行加密和解密

VSCode 插件 DevChat——国内开源的 AI 编程! 写在最前面DevChat是什么?什么是以提示为中心的软件开发 (PCSD)?为什么选择DevChat?功能概述情境构建添加到上下文生成提交消息提示扩展 KOL粉丝专属福利介绍D…

【JavaEESpring】Spring Web MVC⼊⻔

Spring Web MVC 1. 什么是 Spring Web MVC1.1 什么是 MVC ?1.2 是什么 Spring MVC? 2. 学习 Spring MVC2.1 建立连接2.2 请求2.3 响应 3. 相关代码链接 1. 什么是 Spring Web MVC 官⽅对于 Spring MVC 的描述是这样的: 1.1 什么是 MVC ? MVC 是 Model View C…

Python---字符串 lstrip()--删除字符串两边的空白字符、rstrip()--删除字符串左边的空白字符、strip()--删除字符串右边的空白字符

strip() 方法主要作用:删除字符串两边的空白字符(如空格) lstrip() 方法 left strip,作用:只删除字符串左边的空白字符 left 英 /left/ 左 rstrip() 方法 right strip,作用:只删除字符…

C# OpenCvSharp 去除文字中的线条

效果 中间过程效果 项目 代码 using OpenCvSharp; using System; using System.Drawing; using System.Windows.Forms; using static System.Net.Mime.MediaTypeNames;namespace OpenCvSharp_Demo {public partial class frmMain : Form{public frmMain(){InitializeComponent…

基于springboot实现驾校管理系统项目【项目源码】

基于springboot实现驾校管理系统演示 JAVA简介 JavaScript是一种网络脚本语言,广泛运用于web应用开发,可以用来添加网页的格式动态效果,该语言不用进行预编译就直接运行,可以直接嵌入HTML语言中,写成js语言&#xff0…

Spring-Security前后端分离权限认证

前后端分离 一般来说,我们用SpringSecurity默认的话是前后端整在一起的,比如thymeleaf或者Freemarker,SpringSecurity还自带login登录页,还让你配置登出页,错误页。 但是现在前后端分离才是正道,前后端分离的话,那就…

【python后端】- 初识Django框架

Django入门 😄生命不息,写作不止 🔥 继续踏上学习之路,学之分享笔记 👊 总有一天我也能像各位大佬一样 🌝分享学习心得,欢迎指正,大家一起学习成长! 文章目录 Django入门…

[工业自动化-16]:西门子S7-15xxx编程 - 软件编程 - 西门子仿真软件PLCSIM

目录 前言: 一、PLCSIM仿真软件 1.1 PLCSIM仿真软件基础版(内嵌) 1.2 PLCSIM仿真软件与PLCSIM仿真软件高级版的区别? 1.3 PLCSIM使用 前言: PLC集成开发环境是运行在Host主机上,Host主机与PLC可以通过…

基于springboot实现桥牌计分管理系统项目【项目源码】计算机毕业设计

基于springboot实现桥牌计分管理系统演示 JAVA简介 JavaScript是一种网络脚本语言,广泛运用于web应用开发,可以用来添加网页的格式动态效果,该语言不用进行预编译就直接运行,可以直接嵌入HTML语言中,写成js语言&#…

[HXPCTF 2021]includer‘s revenge

文章目录 方法一前置知识Nginx 在后端 Fastcgi 响应过大产生临时文件竞争包含绕过include_once限制 解题过程 方法二前置知识Base64 Filter 宽松解析iconv filter 解题过程 方法一 NginxFastCGI临时文件 前置知识 Nginx 在后端 Fastcgi 响应过大产生临时文件 www-data用户在n…

python-jupyter实现OpenAi语音对话聊天

1.安装jupyter 这里使用的是jupyter工具,安装时需要再cmd执行如下命令,由于直接执行pip install jupyter会很慢,咱们直接使用国内源 pip install --user jupyter -i http://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.t…

20231112_DNS详解

DNS是实现域名与IP地址的映射。 1.映射图2.DNS查找顺序图3.DNS分类和地址4.如何清除缓存 1.映射图 图片来源于http://egonlin.com/。林海峰老师课件 2.DNS查找顺序图 3.DNS分类和地址 4.如何清除缓存