十分钟学习nfs服务器

news/2024/4/19 12:07:10/文章来源:https://blog.csdn.net/weixin_54111663/article/details/129262264

NFS服务器简介

NFS的使用

权限参数

简易实验配置一:

要求:客户端借用nfs服务器可以同步服务端的文件

步骤:服务端配置(/var/lib/nfs日志存放目录)

创建文件:(主配置文件有可能存在,也有可能不存在,不存在需要创建文件)

 检验的文件

 开启服务(注意先后顺序)

 查看本传动机的挂载(检查)

 客户端配置

安装nfs软件与开启服务( systemctl restart nfs-utils.service )

 创建挂载文件夹

挂载

检验客户端是否可以查看服务端共享的文件(成功)

户端使用autofs自动挂载

简易实验配置二

步骤

结果 对比

启动autofs产生的信息

检查是否可以触发自动挂载

 自动解挂载方法

退出这个目录,等待10秒

 查看检验

 实验完成


NFS服务器简介

NFS是Network File System的缩写,中文称为网络文件系统,它的主要功能是通过网络(一个局域网)让不同的主机系统之间可以共享文件或目录,NFS的客户端(一般为应用服务器,例如web)可以通过挂载(mount)的方式将NFS服务器共享的数据目录挂载到NFS客户端本地系统中(就是某一个关在点下),从客户端本地看,NFS服务器端共享目录就好像是客户端自己的磁盘分区或者目录一样,而实际上却是远端的NFS服务器的目录。

NFS企业在企业中的应用场景,在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频、图片、附件等静态资源文件,通常网站用户上传的文件都会放到NFS共享中,例如BBS产品的图片、附件、头像(网站BBS的程序不要放在NFS共享中),然后前端所有节点在访问这些静态资源时都会读取NFS存储上的资源。

NFS是当前互联网系统架构中最常用的数据存储服务之一,特别是中小型网站应用频率更高。

NFS(Network File System,网络文件系统)是FreeBSD支持的文件系统中的一种,它允许网络中的计算机(不同的计算机、不同的操作系统)之间通过TCP/IP网络共享资源,主要在unix系列操作系统上使用。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

 NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中看来,那个远程主机的目录就好像是自己的一个磁盘分区一样。

 由于NFS支持的功能比较多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此NFS的功能所对应的端口并不固定,而是随机取用一些未被使用的小于1024的端口用于传输。但如此一来就会产生客户端连接服务器的问题,因为客户端需要知道服务器端的相关端口才能够连接。

 此时就需要RPC(Remote Procedure Call,远程过程调用)的服务。由于当服务器在启动NFS时会随机选取数个端口号,并主动向RPC注册,所以RPC知道每个NFS功能所对应的端口号,RPC将端口号通知给客户端,让客户端可以连接到正确的端口上去。RPC采用固定端口号port 111来监听客户端的需求并向客户端响应正确的端口号。

 注:在启动NFS之前,要先启动RPC,否则NFS会无法向RPC注册。另外,RPC若重新启动,原来注册的数据会消失不见,因此RPC重启后,它管理的所有服务都需要重新启动以重新向RPC注册。

exportfs的选项
-a全部挂载或卸载/etc/exports中的内容
-r重新读取/etc/exports中的信息,并同步更新/etc/exports,/var/lib/nfs/xtab
-u卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录)
-v在export的时候,将详细的信息输出到屏幕上

NFS的使用

RPC主程序:rpcbind

NFS主程序:nfs-utils

[root@localhost ~]# yum install rpcbind

[root@localhost ~]# yum install nfs-utils

/etc/exports主配置文件(文件不一定存在)

/usr/sbin/exportfs 维护NFS共享资源的命令,可以使用该命令重新共享/etc/exports更新的目录资源、将NFS server共享的目录卸载或重新共享等

/var/lib/nfs/*tab

在NFS服务器中,日志文件都放置到/var/lib/nfs目录中,在该目录下有两个比较重要的日志文件,一个是etab,主要记录了NFS所共享出来的目录的完整权限设置值;另一个是xtab,记录了曾经链接到此NFS服务器的相关客户端数据。

/usr/sbin/showmount 该命令主要用在client端。这个命令可以查看NFS共享出来的目录资源

/etc/exports配置文件的语法与参数

| 共享目录 | 主机名(权限) |
| -------- | -------------- |

该文件内,每一行最前面表示要共享的目录。

主机名的设置方式:

 可以使用完整的IP或者是网络号,例如172.24.8.128或172.24.8.0/24或者172.24.8.128/255.255.255.0

 可以使用主机名,但是主机名必须要在/etc/hosts内,或者可以使用DNS域名解析解析出对应的IP地址。可以用“*”代表所有主机。

权限参数

 权限需要写在括号内,且括号是紧接着主机名的。权限相关参数可以写多个,多个参数之间用逗号隔开,具体相关参数说明如下:

参数值

说明

rw/ro

该目录共享的权限是可读写还是只读,但最终能否读写,还是与文件系统的rwx有关

sync/async

sync代表数据会同步写入到内存与硬盘中,async则代表数据会先暂存于内存当中,而非直接写入硬盘

no_root_squash/root_squash

若客户端在共享目录里创建的文件的所属者和所属组是root用户和root组,那么显示文件的属主和属组时有以下两种情况:norootsquash表示,文件的所属者和所属组是root用户和root组;root_squash表示将root用户和组映射为匿名用户和组(默认设置)。

all_squash/no_all_squash

allsquash:客户端所有用户创建文件时,客户端会将文件的用户和组映射为匿名用户和组noall_squash:客户端普通用户创建的文件的UID和GID是多少,服务端就显示为多少(默认设置)

anonuid=anongid=

将文件的用户和组映射为指定的UID和GID,若不指定默认为65534(nfsnobody)

简易实验配置一:

要求:客户端借用nfs服务器可以同步服务端的文件

步骤:服务端配置(/var/lib/nfs日志存放目录)

创建文件:(主配置文件有可能存在,也有可能不存在,不存在需要创建文件)

vim /etc/exports //编写主配置文件 
mkdir /nfsdata //创建目录   
/nfsdata  192.168.5.0/24(rw,no_root_squash)//主文件配置内容

 检验的文件

 

 

 开启服务(注意先后顺序)

systemctl restart rpcbind //开启rpc服务
systemctl restart nfs-server.service //开启nfc服务

 查看本传动机的挂载(检查)

showmount -e 192.168.5.128

 客户端配置

安装nfs软件与开启服务( systemctl restart nfs-utils.service )

 创建挂载文件夹

mkdir /mountdata

挂载

mount 192.168.5.128:/nfsdata  /mountdata/

检验客户端是否可以查看服务端共享的文件(成功)

 mount命令查看挂载信息

户端使用autofs自动挂载

在一般NFS文件系统的使用过程中,如果客户端要使用服务端所提供的文件系统,可以在/etc/rc.d/rc.local中设置开机时自动挂载(/etc/rc.d/rc.local文件中写入的命令,在每次启动系统用户登录之前都会执行一次);也可以在登录系统后手动利用mount来挂载。

由于网络的问题,NFS服务器与客户端的连接不会一直存在,当我们挂载了NFS服务器之后,任何一方脱机都可能造成另外一方等待超时。为了解决这样的问题,就出现了下面的想法:

 1、当客户端在有使用NFS文件系统的需求时才让系统自动挂载。

 2、当NFS文件系统使用完毕后,让NFS自动卸载。

于是就产生了autofs这个服务。

 autofs这个服务是在客户端的上面,它会持续的检测某个指定的目录,并预先设置当使用到该目录的某个子目录时,将会取得来自服务器端的NFS文件系统资源,并进行自动挂载的操作。

简易实验配置二

让客户端实现自动挂载操作

步骤

vim /etc/auto.master(修改主配置文件)挂载的父目录(autofs会帮你自动创建)      挂载信息存储路径/nfsclient                                  /etc/auto.nfs
vim  /etc/auto.nfs

 重启服务

systemctl restart autofs

结果 对比

 

 

启动autofs产生的信息

 

 

检查是否可以触发自动挂载

 

 自动解挂载方法

退出这个目录,等待10秒

 

 查看检验

 实验完成

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

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

相关文章

机器学习的特征归一化Normalization

为什么需要做归一化? 为了消除数据特征之间的量纲影响,就需要对特征进行归一化处理,使得不同指标之间具有可比性。对特征归一化可以将所有特征都统一到一个大致相同的数值区间内。 为了后⾯数据处理的⽅便,归⼀化可以避免⼀些不…

spring boot 配合element ui vue实现表格的批量删除(前后端详细教学,简单易懂,有手就行)

目录 一.前言: 二. 前端代码: 2.1.element ui组件代码 2.2删除按钮 2.3.data 2.4.methods 三.后端代码: 一.前言: 研究了其他人的博客,找到了一篇有含金量的,进行了部分改写实现前后端分离&#xff0…

频率信号转电压或电流信号隔离变送器0-1KHz /0-5KHz /0-10KHz转0-2.5V/0-5V/0-20mA

主要特性:>> 精度等级&#xff1a;0.2级>> 全量程内极高的线性度&#xff08;非线性度<0.1%&#xff09; >> 辅助电源/信号输入/信号输出&#xff1a; 2500VDC 三隔离>> 辅助电源&#xff1a;5VDC&#xff0c;12VDC&#xff0c;24VDC等单电源供电&g…

SpringBoot项目启动成功后打印Banner

SpringBoot项目启动成功后打印Banner 背景 可能有些同学看到就觉得&#xff0c;这个都要发文章&#xff1f;这不是整个banner.txt再配置一下spring.banner.locationclasspath:banner.txt就行了吗&#xff1f;还真不是&#xff0c;这个是在项目启动时&#xff0c;先打印的bann…

Big_Data

Linux 计算机硬件软件体系 冯 诺依曼体系结构 计算机处理的数据和指令一律用二进制数表示 顺序执行程序 计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成计算机硬件组成 输入设备输入设备用来将人们熟悉的信息形式转换为机器能够识别的信息形式常见的…

人工智能写的十段代码,九个通过测试了

“抢走你工作的不会是 AI &#xff0c;而是先掌握 AI 能力的人” 编程测试 1. 我想用golang实现二叉树前序&#xff0c;请你帮我写一下代码。 // 定义二叉树节点 type TreeNode struct {Val intLeft *TreeNodeRight *TreeNode }// 前序遍历 func PreOrderTraversal(root *Tre…

Nvidia jetson nano硬件架构

资料来源 官方文档中心 https://developer.nvidia.com/embedded/downloads -> 选jetson -> Jetson Nano Product Design Guide //产品设计指导(入口) //-> 1.1 References 列出了相关的文档 -> Jetson Nano Developer Kit Carrier Board Specification //板子标注…

torchserve安装、模型的部署与测试(基于docker)

问题描述 pytorch 一直很受大家的欢迎&#xff0c;但是作为一个深度模型&#xff0c;与外界复杂的业务需求交互其实是一件比较麻烦的事情&#xff0c;这里 torchserve 提供一个基于 TCP 的交互方法&#xff0c;算法模型部署后&#xff0c;用户可以通过提交 post 请求&#xff…

Linux服务器磁盘分区、挂载、卸载及报错处理

整体操作是&#xff1a;先对磁盘进行格式化&#xff0c;格式化后挂载到需要的挂载点&#xff0c;最后添加分区启动表&#xff0c;以便下次系统启动时自动挂载。一、linux分区1、Linux来说wulun有几个分区&#xff0c;分给哪一目录使用&#xff0c;他归根结底只有一个根目录&…

549、RocketMQ详细入门教程系列 -【消息队列之 RocketMQ(三)】 2023.02.28

目录一、Spring 整合 RocketMQ1.1 消息生产者1.2 消息消费者1.3 Spring 配置文件1.4 运行实例程序二、参考链接一、Spring 整合 RocketMQ 不同于 RabbitMQ、ActiveMQ、Kafka 等消息中间件&#xff0c;Spring 社区已经通过多种方式提供了对这些中间件产品集成&#xff0c;例如通…

Linux | 2. 用户管理

如有错误&#xff0c;恳请指出。 1. 设置文件权限 权限设置如下&#xff1a; root表示文件所有者&#xff0c;stud1表示文件所属组。其他用户无法访问。更改指令是chown。 更改目录文件所属组&#xff1a;chown .lab lossfound/更改目录文件所有者&#xff1a;chown lab loss…

html实现浪漫的爱情日记(附源码)

文章目录1.设计来源1.1 主界面1.2 遇见1.3 相熟1.4 相知1.5 相念2.效果和源码2.1 动态效果2.2 源代码2.3 代码结构源码下载更多爱情表白源码作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/129264757 html实现浪漫的爱情…

Javaweb复习之HTTPTomcatServelet

1.Web概述 1.1 Web和JavaWeb的概念 Web是全球广域网&#xff0c;也称为万维网(www)&#xff0c;能够通过浏览器访问的网站。 JavaWeb就是用Java技术来解决相关web互联网领域的技术栈 1.2 JavaWeb技术栈 B/S 架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器 架构模…

Linux: malloc()的指向指针发生指向偏移后,释放前需要将指针指向复原。

Linux: malloc()的指向指针发生指向偏移后&#xff0c;释放前需要将指针指向复原。 #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <string.h> #include <time…

MIT:只需一层RF传感器,就能为AR头显赋予“X光”穿透视力

近年来&#xff0c;AR在仓库、工厂等场景得到应用&#xff0c;比如GlobalFoundries、亚马逊、菜鸟裹裹就使用摄像头扫描定位货品&#xff0c;并使用AR来导航和标记。目前&#xff0c;这种方案主要基于视觉算法&#xff0c;因此仅能定位视线范围内的目标。然而&#xff0c;在一些…

C++ string类(二)及深浅拷贝

一、string类方法使用举例1.迭代器迭代器本质&#xff1a;指针&#xff08;理解&#xff09;迭代器&#xff1a;正向迭代器&#xff1a; begin() | end() 反向迭代器&#xff1a; rbegin() | rend()2.find使用//找到s中某个字符 void TestString3() {string s("AAADEFNUIE…

携程面经1

面经 HDFS读写流程 1.读流程 客户端向NameNode发起读请求&#xff08;如果存在&#xff09;NameNode返回一批block地址客户端与第一个block的拓扑距离最近的节点建立连接以packet&#xff08;64kb&#xff09;的单位读取数据块。一个block读取完成后客户端会断开与该DataNod…

5个开源的Java项目快速开发脚手架

概览 &#xff1a; GunspigRuoYiJeecg-bootiBase4J 一、Guns 推荐指数 &#xff1a;⭐⭐⭐⭐⭐ 简介 采用主流框架 &#xff1a; 基于 Spring Boot2.0版本开发&#xff0c;并且支持 Spring Cloud Alibaba 微服务。功能齐全 &#xff1a;包含系统管理&#xff0c;代码生成&a…

这么强才给我28k,我头都不回,转身拿下40k~

时间真的过得很快&#xff0c;眨眼就从校园刚出来的帅气小伙变成了油腻大叔&#xff0c;给各位刚入道的测试朋友一点小建议&#xff0c;希望你们直通罗马吧&#xff01; 如何选择自己合适的方向 关于选择测试管理&#xff1a; 第一&#xff0c;你一定不会是一个喜欢技术&…

Vue的组件(注册、局部、组件复用、props、emit、生命周期)全解

文章目录前言知识点组件注册局部组件组件复用组件间通信props 类型检测子父组件通信之 emit动态组件生命周期函数前言 Vue 支持模块化和组件化开发&#xff0c;可以将整个页面进行模块化分割&#xff0c;低耦合高内聚&#xff0c;使得代码可以在各个地方使用。 知识点 组件注册…