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

NFS服务小实验

实验1

  • 建立NFS服务器,使的客户端顺序共享数据

  • 第一步:服务端及客户端的准备工作

# 恢复快照
[root@server ~]# setenforce  0
​
[root@server ~]# systemctl stop  firewalld
​
[root@server ~]# yum  install  nfs-utils  -y  # 服务端及客户端都安装
  • 第二步:服务端建立共享文件目录,并设置权限

[root@server ~]# mkdir  /nfsfile
[root@server ~]# echo  "welcome to www.openlab.com" > /nfsfile/readme
[root@server ~]# chmod  -Rf  777  /nfsfile
  • 第三步:服务端编辑配置文件

[root@server ~]# vim  /etc/exports  # 添加以下内容
/nfsfile        192.168.48.131/24(rw,sync,all_squash)
  • 第四步:服务端先启动rpc服务,在启动nfs服务

[root@server ~]# systemctl start  rpcbind
[root@server ~]# systemctl start  nfs-server
[root@server ~]# systemctl enable  rpcbind
[root@server ~]# systemctl enable  nfs-server
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.
# 注意:若systemctl start  rpcbind后报错,显示启动失败,应先停止服务,在重启服务
[root@server ~]# systemctl stop rpcbind
[root@server ~]# systemctl start  rpcbind
  • 第五步:客户端使用本地挂载方式访问远程共享目录

    • 先查询有哪些远程共享目录可用

    • [root@node1 ~]# showmount  -e  192.168.48.130  # 别忘了安装nfs-utils
      # -e 表示显示服务器共享信息列表
    • 新建本地挂载目录

    • [root@node1 ~]# mkdir  /nfs1  # 新建本地挂载目录
      ​
      # 使用mount远程挂载命令挂载服务器的目录到客户端本地目录,-t nfs 表示使用的文件系统类型
      [root@node1 ~]# mount -t nfs  192.168.48.130:/nfsfile  /nfs1
      [root@node1 ~]# cd  /nfs1   # 通过本地目录访问远程共享数据
      [root@node1 nfs1]# ls
      readme
      [root@node1 nfs1]# cat  readme 
      welcome to www.openlab.com
      [root@node1 nfs1]# cd   ~
  • 第六步:客户端使用开机挂载实现永久挂载

[root@node1 ~]# vim  /etc/fstab   # 编辑开机挂载配置文件,最后一行添加如下内容
192.168.48.130:/nfsfile /nfs1   nfs     defaults        0       0
​
[root@node1 ~]# mount  -a   # 测试
[root@node1 nfs1]# df  -h   # 查看挂载信息
文件系统                    容量  已用  可用 已用% 挂载点
devtmpfs                    4.0M     0  4.0M    0% /dev
tmpfs                       714M     0  714M    0% /dev/shm
tmpfs                       286M  4.2M  282M    2% /run
tmpfs                       4.0M     0  4.0M    0% /sys/fs/cgroup
/dev/mapper/openeuler-root   27G  1.6G   24G    7% /
tmpfs                       714M     0  714M    0% /tmp
/dev/sda1                   974M  151M  756M   17% /boot
192.168.48.130:/nfsfile      27G  1.6G   24G    7% /nfs1
​

NFS账户映射

实验2:
  • 基于上例,将/nfsfile权限修改后,查看客户端是否可以访问成功,是否可以修改数据

# 定位服务端
[root@server ~]# cat  /etc/exports   # 确认是否为rw可读可写的权限
[root@server ~]# cd /nfsfile
[root@server nfsfile]# ll     # 查看原有权限
总用量 4
-rwxrwxrwx 1 root   root   27  6月  1 14:43 readme
-rw-r--r-- 1 nobody nobody  0  6月  1 14:56 test1.txt
[root@server nfsfile]# cd  ~   
[root@server ~]# chmod  -Rf  444  /nfsfile  # 设置新权限,没有wx
[root@server ~]# ll  -d  /nfsfile/
dr--r--r-- 2 root root 37  6月  1 14:56 /nfsfile/
[root@server ~]# ll    /nfsfile/
总用量 4
-r--r--r-- 1 root   root   27  6月  1 14:43 readme
-r--r--r-- 1 nobody nobody  0  6月  1 14:56 test1.txt
​
​
# 定位客户端
[root@node1 ~]# cd  /nfs1   
-bash: cd: /nfs1: 权限不够
​
# 显示无权限,即使服务端exports中有rw权限最后还是以文件系统权限为准
实验3
  • 客户端访问服务端,默认使用服务端的账户映射为nobody,uid与gid均为65534,其值可以修改

# 定位服务端
[root@server ~]# chmod  -Rf  777  /nfsfile   # 先将上例的权限修改回原样
[root@server ~]# ll  -d  /nfsfile/
drwxrwxrwx 2 root root 37  6月  1 14:56 /nfsfile/
​
[root@server ~]# vim  /etc/exports   # 修改映射方式为
/nfsfile        192.168.48.131/24(rw,sync,root_squash)
​
[root@server ~]# systemctl restart  rpcbind  
[root@server ~]# systemctl restart  nfs-server
​
exporting 192.168.48.131/24:/nfsfile
​
# 定位客户端
[root@node1 ~]# cd  /nfs1
[root@node1 nfs1]# touch  test2.txt
[root@node1 nfs1]# ll
总用量 4
-rwxrwxrwx 1 root   root   27  6月  1 14:43 readme
-rwxrwxrwx 1 nobody nobody  0  6月  1 14:56 test1.txt
-rw-r--r-- 1 nobody nobody  0  6月  1 15:15 test2.txt  # root映射为nobody
[root@node1 nfs1]# su  fox
[fox@node1 nfs1]$ touch  test3.txt
[fox@node1 nfs1]$ ll
总用量 4
-rwxrwxrwx 1 root   root   27  6月  1 14:43 readme
-rwxrwxrwx 1 nobody nobody  0  6月  1 14:56 test1.txt
-rw-r--r-- 1 nobody nobody  0  6月  1 15:15 test2.txt
-rw-rw-r-- 1 fox    fox     0  6月  1 15:16 test3.txt  # fox映射为fox
[fox@node1 nfs1]$ su  root
密码: 
​
# 定位服务端
[root@server ~]# vim  /etc/exports
/nfsfile    192.168.48.131/24(rw,sync,all_squash,anonuid=2000,anongid=2000)
​
[root@server ~]# systemctl restart  rpcbind  
[root@server ~]# systemctl restart  nfs-server
​
# 定位客户端
[root@node1 nfs1]# touch  test4.txt
[root@node1 nfs1]# ll
总用量 4
-rwxrwxrwx 1 root   root   27  6月  1 14:43 readme
-rwxrwxrwx 1 nobody nobody  0  6月  1 14:56 test1.txt
-rw-r--r-- 1 nobody nobody  0  6月  1 15:15 test2.txt
-rw-rw-r-- 1 fox    fox     0  6月  1 15:16 test3.txt
-rw-r--r-- 1   2000   2000  0  6月  1 15:19 test4.txt  # 自定义udi及gid
[root@node1 nfs1]# cd  ~

autofs自动挂载服务

产生原因

  • 在一般NFS文件系统的使用过程中,如果客户端要使用服务端所提供的文件系统,可以在 /etc/fstab中设置开机时自动挂载,也可以在登录系统后手动利用mount来挂载。

  • 由于网络的问题,NFS服务器与客户端的连接不会一直存在,当我们挂载了NFS服务器之后,任何一方脱机都可能造成另外一方等待超时,如果在资源挂载后长期不使用,也会造成服务器硬件资源的浪费。

  • 为了解决这样的问题,就出现了下面的想法:

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

    • 当NFS文件系统使用完毕后(autofs默认自动卸载时间为300s即5分钟),让NFS自动卸载。

  • autofs 自动挂载服务可以帮我们解决这一问题,该服务是运行在客户端的一种 Linux 系统守护进程,在用户需要使用该文件系统时才去动态挂载,从而节约了网络资源和服务器的硬件资源。

安装

[root@node1 ~]# yum install autofs -y   # 客户端安装

配置文件分析

  • 配置文件路径:/etc/auto.master

  • 作用:处于生产环境中的 Linux 服务器,一般会同时管理许多设备的挂载操作。如果把这些设备挂载信息都写入到 autofs 服务的主配置文件中,无疑会让主配置文件臃肿不堪,不利于服务执行效率,也不利于日后修改里面的配置内容,则需要将挂载的设备独立配置形成子文件,主配置文件只存储配置挂载设置的文件名

  • /etc/auto.master文件内容格式:挂载父目录 子配置文件

    • 挂载目录:不需要事先存在,因为autofs会主动建立该目录

    • 子配置文件:文件名可自定义

    • 例:/nfs /etc/auto.nfs

  • 子配置文件由自己创建,内容格式:

    • 本地挂载子目录 [-挂载参数] 服务器地址:目录

    • 例:testmnt 192.168.48.130:/data

    • 挂载参数:

相关文章:

NFS服务小实验

实验1 建立NFS服务器,使的客户端顺序共享数据 第一步:服务端及客户端的准备工作 # 恢复快照 [rootserver ~]# setenforce 0 ​ [rootserver ~]# systemctl stop firewalld ​ [rootserver ~]# yum install nfs-utils -y # 服务端及客户端都安装 …...

vue 中的v-once

&#x1f530; 基础理解 ✅ 语法&#xff1a; <span v-once>{{ msg }}</span>✅ 效果&#xff1a; • 只渲染一次&#xff0c;之后无论数据如何变化&#xff0c;该内容都不会更新。 • 非常适用于静态内容或首次加载后不需要变化的数据。&#x1f9ea; 示例&…...

鸿蒙ArkTS-发请求第三方接口显示实时新闻列表页面

发请求展示新闻列表 鸿蒙ArkTS-发请求第三方接口显示实时新闻列表页面 1. 效果图 新闻首页&#xff1a; 点击某一新闻的详情页面&#xff08;需要使用模拟器才能查看详情页面&#xff09;&#xff1a; 2. 代码 1. key准备 首先需求到聚合网申请一个key&#xff0c;网址如下…...

2025年开源大模型技术全景图

迈向2025年&#xff0c;开源大型语言模型&#xff08;LLM&#xff09;生态系统已不再仅仅是闭源模型的补充&#xff0c;而是成为推动AI创新与民主化的核心引擎。其技术全景展现了一个高度模块化、协作共生且快速演进的复杂网络。以下是对提供的蓝图进行更细致的解读&#xff0c…...

【创造型模式】工厂方法模式

文章目录 工厂方法模式工厂方法模式当中的角色和职责工厂方法模式的实现工厂方法模式的优缺点 工厂方法模式 今天我们继续学习一例创造型设计模式——工厂方法模式。参考的主要资料是刘丹冰老师的《Easy 搞定 Golang 设计模式》。 工厂方法模式当中的角色和职责 简单来说&…...

【MySQL】使用文件进行交互

目录 准备工作 1.从文本文件中读取数据&#xff08;导入&#xff09; 1.1.CSV 文件 1.2.设置导入导出的路径 1.3.导入文件 1.4.将数据写入文本文件&#xff08;导出&#xff09; 2.从文件中读取并执行SQL命令 2.1.通过mysql监视器执行编写在文件里面的SQL语句 2.2.通过…...

# 大模型的本地部署与应用:从入门到实战

大模型的本地部署与应用&#xff1a;从入门到实战 在当今人工智能飞速发展的时代&#xff0c;大模型&#xff08;尤其是大型语言模型&#xff0c;LLMs&#xff09;已经成为自然语言处理&#xff08;NLP&#xff09;领域的核心力量。从文本生成、机器翻译到问答系统&#xff0c…...

布丁扫描高级会员版 v3.5.2.2| 安卓智能扫描 APP OCR文字识别小助手

布丁扫描高级会员版 v3.5.2.2| 安卓智能扫描 APP OCR文字识别小助手 布丁扫描APP是一款集成了先进图像处理与OCR文字识别技术的智能扫描软件。它旨在将纸质文档、照片、名片、书籍等各类实体资料快速…...

可视化大屏全屏后重载echarts图表

问题&#xff1a;可视化大屏点击全屏之后&#xff0c;但echarts图表还是之前的大小&#xff0c;并没有撑满该容器&#xff0c;所以这时候我们需要全屏之后重新加载echarts图表内容 代码如下&#xff1a; // 全屏或非全屏状态下重新加载图表window.onresize () > {//lineCh…...

20200201工作笔记常用命令要整理

工作笔记常用命令&#xff1a; 1.repo常用命令&#xff1a; repo sync -c -j10 2. 常用adb命令 错误: error: device unauthorized. This adbds $ADB_VENDOR_KEYS is not set; try adb kill-server if that seems wrong. Otherwise check for a confirmation dialog on your d…...

Java对象内存模型、如何判定对象已死亡?

一、Java对象内存模型 Java对象在内存中由三部分组成&#xff1a; 含类元数据指针&#xff08;指向方法区的Class对象&#xff09;和Mark Word&#xff08;存储对象哈希码、锁状态、GC分代年龄等信息&#xff09;。 若为数组对象&#xff0c;还包含数组长度数据。 1&#xff0c…...

spark任务的提交流程

目录 spark任务的提交流程1. 资源申请与初始化2. 任务划分与调度3. 任务执行4. 资源释放与结果处理附:关键组件协作示意图扩展说明SparkContext介绍 spark任务的提交流程 用户创建一个 Spark Context;Spark Context 去找 Cluster Manager 申请资源同时说明需要多少 CPU 和内…...

ELK简介和docker版安装

使用场景 主要还是给开发人员“打捞日志”用的。 ELK 是由三个开源工具组成的套件&#xff08;Elasticsearch、Logstash 和 Kibana&#xff09;&#xff0c;主要用于日志的收集、分析和可视化。以下是 ELK 常见的使用场景&#xff1a; 日志集中化管理 收集来自多个服务器或服…...

利用条件编译实现RTT可控的调试输出

在嵌入式开发中&#xff0c;调试信息的输出通常对定位问题至关重要。然而&#xff0c;为了保证代码在正式发布时的性能和体积&#xff0c;调试信息往往需要在不修改主逻辑代码的前提下禁用。 代码一览 // debug.h #pragma once// #define DEBUG#ifdef DEBUG#include "SEG…...

【软件设计师】计算机网络考点整理

以下是软件设计师考试中 ​​计算机网络​​ 的核心考点总结&#xff0c;帮助您高效备考&#xff1a; ​​一、网络体系结构与协议​​ ​​OSI七层模型 & TCP/IP四层模型​​ 各层功能&#xff08;物理层-数据链路层-网络层-传输层-会话层-表示层-应用层&#xff09;对应协…...

智慧化工园区安全风险管控平台建设方案(Word)

1 项目概况 1.1 园区概况 1.1.1 XX化工园区简况 1.1.2 企业现状 1.1.3 园区发展方向 1.1.4 园区信息化现状 1.2 项目建设背景 1.2.1 政策背景 1.3 项目建设需求分析 1.3.1 政策需求分析 1.3.2 安全生产监管需求分析 1.3.3 应急协同管理需求分析 1.3.4 工业互联网安…...

【uniapp】 iosApp开发xcode原生配置项(iOS平台Capabilities配置)

如果你需要配置诸如&#xff1a;Access Wi-Fi Information 简单地说就是这个地址 ios平台capabilities配置 本来这种配置就是在Xcode的平台中选中即可&#xff0c;他们的信息会存储在XCode工程的.entitlements和Info.plist文件。 按照uniapp文档说的&#xff0c; HBuilderX4.…...

MYSQL优化(1)

MYSQL调优强调的是如何提高MYSQL的整体性能&#xff0c;是一套整体方案。根据木桶原理&#xff0c;MYSQL的最终性能取决于系统中性能表现最差的组件。可以这样理解&#xff0c;即使MYSL拥有充足的内存资源&#xff0c;CPU资源&#xff0c;如果外存IO性能低下&#xff0c;那么系…...

C++可变参数宏定义语法笔记

1. 基础语法 定义格式&#xff1a; #define MACRO_NAME(fixed_args, ...) macro_body#define LOG(fmt, ...) printf(fmt, __VA_ARGS__) LOG("Value: %d, Name: %s", 42, "Alice"); // 展开为 printf("Value: %d, Name: %s", 42, "Alice&q…...

基于BERT预训练模型(bert_base_chinese)训练中文文本分类任务(AI老师协助编程)

新建项目 创建一个新的虚拟环境 创建新的虚拟环境(大多数时候都需要指定python的版本号才能顺利创建)&#xff1a; conda create -n bert_classification python3.9激活虚拟环境&#xff1a; conda activate myenvPS&#xff1a;虚拟环境可以避免权限问题&#xff0c;并隔离…...

Windows逆向工程提升之IMAGE_EXPORT_DIRECTORY

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 什么是 IMAGE_EXPORT_DIRECTORY&#xff1f; PE 文件与 Export Table 的关系 PE 文件的整体视角 Export Table 在 PE 中的定位 IMAGE_EXPORT_DIRECTORY 结构 数据结构定义 字段详解…...

python与flask框架

一、理论 Flask是一个轻量级的web框架&#xff0c;灵活易用。提供构建web应用所需的核心工具。 Flask依赖python的两个库 Werkzeug&#xff1a;flask的底层库&#xff0c;提供了WSGI接口、HTTP请求和响应处理、路由等核心功能。 Jinja2&#xff1a;模板引擎&#xff0…...

【普及+/提高】洛谷P2613 【模板】有理数取余——快读+快速幂

题目来源 P2613 【模板】有理数取余 - 洛谷 题目描述 给出一个有理数 cba​&#xff0c;求 cmod19260817 的值。 这个值被定义为 bx≡a(mod19260817) 的解。 输入格式 一共两行。 第一行&#xff0c;一个整数 a。 第二行&#xff0c;一个整数 b。 输出格式 一个整数&a…...

从数据到智能:openGauss+openEuler Intelligence的RAG架构实战

随着人工智能和大规模语言模型技术的崛起&#xff0c;传统的搜索引擎由于其只能提供简单的关键字匹配结果&#xff0c;已经越来越无法满足用户对于复杂、多样化和上下文相关的知识检索需求。与此相对&#xff0c;RAG&#xff08;Retrieval-Augmented Generation&#xff09;技术…...

【Linux】初见,基础指令

前言 本文将讲解Linux中最基础的东西-----指令&#xff0c;带大家了解一下Linux中有哪些基础指令&#xff0c;分别有什么作用。 本文中的指令和选项并不全&#xff0c;只介绍较为常用的 pwd指令 语法&#xff1a;pwd 功能&#xff1a;显示当前所在位置&#xff08;路径&#xf…...

什么是实时流数据?核心概念与应用场景解析

在当今数字经济时代&#xff0c;实时流数据正成为企业核心竞争力。金融机构需要实时风控系统在欺诈交易发生的瞬间进行拦截&#xff1b;电商平台需要根据用户实时行为提供个性化推荐&#xff1b;工业物联网需要监控设备状态预防故障。这些场景都要求系统能够“即时感知、即时分…...

工业RTOS生态重构:从PLC到“端 - 边 - 云”协同调度

一、引言 在当今数字化浪潮席卷全球的背景下&#xff0c;工业领域正经历着深刻变革。工业自动化作为制造业发展的基石&#xff0c;其技术架构的演进直接关系到生产效率、产品质量以及企业的市场竞争力。传统的PLC&#xff08;可编程逻辑控制器&#xff09;架构虽然在工业控制领…...

数据结构与算法学习笔记(Acwing 提高课)----动态规划·状态机模型

数据结构与算法学习笔记----动态规划状态机模型 author: 明月清了个风 first publish time: 2025.5.20 ps⭐️背包终于结束了&#xff0c;状态机模型题目不多。状态机其实是一种另类的状态表示方法&#xff0c;将某一个点扩展为一个状态进行保存并在多个状态之间转移&#xf…...

基于开源链动2+1模式AI智能名片S2B2C商城小程序的社群构建与新型消费迎合策略研究

摘要&#xff1a;随着个性化与小众化消费的崛起&#xff0c;消费者消费心理和模式发生巨大变化&#xff0c;社群构建对商家迎合新型消费特点、融入市场经济发展至关重要。开源链动21模式AI智能名片S2B2C商城小程序的出现&#xff0c;为社群构建提供了创新工具。本文探讨该小程序…...

高性能RPC框架--Dubbo(五)

Filter&#xff1a; filter过滤器动态拦截请求&#xff08;request&#xff09;或响应&#xff08;response&#xff09;以转换或使用请求或响应中包含的信息。同时对于filter过滤器不仅适合消费端而且还适合服务提供端。我们可以自定义在什么情况下去使用filter过滤器 Activa…...