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

Linux/centos上如何配置管理NFS服务器?

Linux/centos上如何配置管理NFS服务器?

  • 1 NFS基础了解
    • 1.1 NFS概述
    • 1.2 NFS工作流程
  • 2 安装和启动NFS服务
    • 2.1 安装NFS服务器
    • 2.2 启动NFS服务
  • 3 配置NFS服务器和客户端
    • 3.1 配置NFS服务器
    • 3.2 配置NFS客户端
  • 4 实际示例
    • 4.1 基本要求
    • 4.2 案例实现

1 NFS基础了解

  • NFS(Network File System)即文件操作系统;
  • NFS允许网络中不同计算机相互之间共享资源。

1.1 NFS概述

  • 1980年由SUN发展出来的在UNIX&Linux系统间实现文件共享的一种方法;
  • 是一种文件系统协议,支持应用程序在客户端通过网络存取位于服务器磁盘中的数据;
  • NFS只提供网络文件共享,不提供数据传输功能;
  • NFS客户端和服务端需借助RPC(Remote Procedure Calls)实现数据传输;
  • NFS服务器目录被访问称为导出(export),客户机访问导出目录过程称为挂载(mount)或导入(import)。

1.2 NFS工作流程

第一步:访问NFS共享资源,NFS客户端发出询问请求,即客户端RPC服务通过网络向服务端RPC服务的111端口发出询问请求。

第二步: NFS服务端RPC找到对应已注册的NFSdaemon端口,通知客户端RPC;

第三步:NFS客户端获取端口,直接与NFSNFSdaemon联机存储数据。

第四步:NFS客户端吧数据存储成功后,告诉用户结果。

2 安装和启动NFS服务

2.1 安装NFS服务器

  • 一般情况,系统均已安装NFS;
  • 先检查下是否安装NFS,以下两个是相关的依赖包:
rpm -qa | grep nfs-utils
rpm -qa | grep rpcbind
  • 经检查是已经安装了的:
    在这里插入图片描述
  • 如果系统没有安装NFS依赖包,则需要安装:
yum clean all
yum -y install nfs-utils rpcbind

2.2 启动NFS服务

  • NFS状态查看:
systemctl status rpcbind.service
systemctl status nfs.service 

在这里插入图片描述

  • 启动NFS服务:
systemctl start rpcbind.service
systemctl start nfs.service 
  • 再次查看状态,都是启动的:
    在这里插入图片描述
  • 停止NFS服务:
systemctl stop nfs.service
  • 重启NFS服务:
systemctl restart nfs.service
  • 设置开机自启动NFS服务:
systemctl enable rpcbind.service 
systemctl enable nfs.service

3 配置NFS服务器和客户端

3.1 配置NFS服务器

  • 配置文件在/etc/exports
  • 格式为:
共享目录 [客户端1(参数)] [客户端2(参数)] 

共享目录:NFS服务器需要共享的实际路径(绝对路径);
客户端:可以访问共享目录的计算机。

  • 客户端常用形式:
客户端说明
192.168.1.111指定IP地址的主机
192.168.1.0/24指定子网的所有主机
192.168.1.*指定子网的所有主机
www.xxx.com指定域名的主机
*.xxx.com指定域中的所有主机
*所有主机

访问权限参数:访问权限设置。

  • 常用访问权限:
访问权限说明
ro只读
rw读写

用户映射参数

  • 用户映射参数表:
用户映射说明
all_squash将远程访问的所有用户映射为匿名用户或用户组(nfsnobody)
no_all_squash与上边相反(默认设置)
root_squash将root用户… (默认设置)
no_root_squash与上边相反
anonuid=xxx将该匿名账号为本地账号(UID=xxx
anongid=xxx将该匿名用户组为本地用户组(GID=xxx)

其它参数:对输出目录进行控制。

  • 常用其它参数:
其它参数说明
secure限制客户端只能从小于1024的TCP/IP端口链接NFS
insecure语序客户端大于1024的TCP/IP端口连接NFS
sync将数据同步写入内存缓冲区与磁盘中
async将数据先保存在缓冲区中,必要时才写入磁盘
wdelay检查是否有相关的写操作
no_wdelay有写操作立即执行,与sync配合使用
subtree_check若输出目录为子目录,则NFS服务器将检查父目录的权限
no_subtree_check若输出目录为子目录,则NFS服务器不检查父目录的权限
  • 比如将/mnt/temp目录,只给IP为172.16.1.33的计算机进行读写权限:
/mnt/temp 172.16.1.33 (rw, sync)
  • 比如将/mnt/temp01目录,只给子网中为172.16.1.0/24的计算机进行读写权限,其他计算机制只读权限:
/mnt/temp0 172.16.1.0/24 (rw, async) * (ro)

3.2 配置NFS客户端

  • 查看NFS服务器信息:
showmount [选项] (参数)

-d:仅显示已被NFS客户端加载的共享目录;
-e:显示NFS服务器上所有的共享目录。

showmount -e 192.168.0.190

在使用showmount时建议关闭防火墙,将SELinux设为为允许。

systemctl stop firewalld.service
setenforce 0
getenforce
  • 挂在NFS服务器的共享目录:

将NFS的共享目录挂在到本地:
mount -t NFS服务器IP:输出目录 本地挂在目录

  • 比如:
mkdir /mnt/mytemp
mount -t nfs 192.168.0.190:/mnt/mytemp /mnt/mytemp
  • 卸载NFS服务器:
umount 挂载点
  • 启动时自动挂在NFS共享目录:
192.168.0.190/mnt/temp /mnt/mytemp nfs defaults 0 0

4 实际示例

4.1 基本要求

  • NFS服务器192.168.0.190;
  • 要求1:共享目录/mnt/temp,允许192.168.0.0/24网段内计算机访问;
  • 要求2:共享目录/mnt/share, 允许用户zhang访问,IP为192.168.0.10;
  • 要求3:共享目录/mnt/upload,允许192.168.0.0/24网段作为上传目录,所属组为nfsupload,UID和GID均为666;
  • 要求4:共享目录/mnt/nfs,除192.168.0.0/24网段用户访问,只读,可向internet提供数据内容;

4.2 案例实现

  • 安装NFS服务:
yum -y install rpcbind
yum -y install nfs-utils
  • 创建目录和测试文件:
# 创建目录:
mkdir -p /mnt/temp
mkdir -p /mnt/share
mkdir -p /mnt/upload
mkdir -p /mnt/nfs# 创建测试文件
touch /mnt/temp/temp1.txt /mnt/temp/temp2.txt 
touch /mnt/share/data1.txt /mnt/share/data2.txt
touch /mnt/upload/upload.txt
touch /mnt/nfs/nfs1.txt /mnt/nfs/nfs2.txt

在这里插入图片描述
在这里插入图片描述

  • 设置共享目录权限属性:
# 要求1:
chmod 1777 /mnt/temp/
ll -d /mnt/temp/

在这里插入图片描述

# 要求2:
useradd zhang
passwd zhang
cat /etc/passwd | grep zhang
chmod 700 /mnt/share/
chown -R zhang:zhang /mnt/share/
ll -d /mnt/share/

在这里插入图片描述

# 要求3:
groupadd -g 666 nfsupload
useradd -g 666 -u 666 -M nfsupload
cat /etc/passwd | grep nfs
chown -R nfsupload:nfsupload /mnt/upload
ll -d /mnt/upload/

在这里插入图片描述

# 要求4:
ll -d /mnt/nfs/

在这里插入图片描述

  • 编辑/etc/exports
/mnt/temp 192.168.0.0/24 (rw,no_root_squash)
/mnt/share 192.168.0.10 (rw)
/mnt/upload 192.168.0.0/24 (rw,all_squash,anonuid = 666,anongid = 666)
/mnt/nfs 192.168.0.0/24 (ro) * (rw,all_squash)
  • 关闭防火墙,设置Selinux为允许,重启NFS服务:
systemctl stop firewalld.service
setenforce 0
getenforce
systemctl restart nfs
  • NFS客户端安装客户端软件:
yum -y install nfs-utils
  • 查看NFS服务器上共享的目录:
showmount -e 192.168.0.190

在这里插入图片描述

  • 在客户机上创建目录,将NFS的目录挂在到该目录:
mkdir /mnt/ClientNFS
mount -t nfs 192.168.0.190:/mnt/nfs/ /mnt/ClientNFS/
  • 同样方法去挂载其他的NFS目录即可;
  • 并在客户机上创建组666:
groupaddd -g 666 nfsupload
useradd -g 666 -u 666 -M nfsupload

相关文章:

Linux/centos上如何配置管理NFS服务器?

Linux/centos上如何配置管理NFS服务器? 1 NFS基础了解1.1 NFS概述1.2 NFS工作流程 2 安装和启动NFS服务2.1 安装NFS服务器2.2 启动NFS服务 3 配置NFS服务器和客户端3.1 配置NFS服务器3.2 配置NFS客户端 4 实际示例4.1 基本要求4.2 案例实现 1 NFS基础了解 NFS&…...

Element组件浅尝辄止5:Empty 空状态组件

Empty空状态组件&#xff1a;空状态时的占位提示。 如第一次进入当前功能模块时&#xff0c;数据状态为空&#xff0c;则展示空状态&#xff0c;可用到Empty组件 1.How? <el-empty description"描述文字"></el-empty> 2.自定义图片 通过设置 image 属…...

【华为Datacom 综合拓扑案例—分享篇】

拓扑图 题目要求 实验要求&#xff1a; 1、PC1\PC2\PC3\PC4采用DHCP自动获取IP地址&#xff0c;SW5作为服务器&#xff0c;SW3和SW4作为中继 创建地址池ip pool huawei1和ip pool huawei2&#xff0c;租期都为2天 2、SW3与SW4做链路聚合&#xff0c;采用LACP模式。SW3作为主…...

springcloud3 使用openfegin实现getpost请求调用

一 项目介绍 1.1 工程介绍 1.consumer9008 2.provider9009 二 get请求 2.1 消费端 1.controller 2.service 2.2 提供者 1.提供者 2.3 测试请求 地址&#xff1a; http://localhost:9008/consumer/payment/nacos/2223 三 post请求 3.1 消费者 3.2 提供者 3.3 测试请求…...

【JVM】类装载的执行过程

文章目录 类装载的执行过程1.加载2.验证3.准备4.解析5.初始化6.使用7.卸载 类装载的执行过程 类装载总共分为7个过程&#xff0c;分别是 加载&#xff0c;验证&#xff0c;准备、解析、初始化、使用、卸载 1.加载 将类的字节码文件加载到内存(元空间&#xff09;中。这一步会…...

FreeRTOS(独立看门狗监测任务执行与低功耗Tickless模式)

资料来源于硬件家园&#xff1a;资料汇总 - FreeRTOS实时操作系统课程(多任务管理) 目录 一、独立看门狗介绍 二、看门狗监测多任务执行思路 1、监测目标 2、监测方案 3、应用注意事项 三、看门狗监测多任务编程 1、STM32cubeMX配置 2、代码编写 四、低功耗Tickless模…...

预训练GNN:GPT-GNN Generative Pre-Training of Graph Neural Networks

一.文章概述 本文提出了一种自监督属性图生成任务来预训练GNN&#xff0c;使得其能捕图的结构和语义属性。作者将图的生成分为两个部分&#xff1a;属性生成和边生成&#xff0c;即给定观测到的边&#xff0c;生成节点属性&#xff1b;给定观测到的边和生成的节点属性&#xf…...

Python实现透明隧道爬虫ip:不影响现有网络结构

作为一名专业爬虫程序员&#xff0c;我们常常需要使用隧道代理来保护个人隐私和访问互联网资源。本文将分享如何使用Python实现透明隧道代理&#xff0c;以便在保护隐私的同时不影响现有网络结构。通过实际操作示例和专业的解析&#xff0c;我们将带您深入了解透明隧道代理的工…...

并发编程系列-CompletableFuture

利用多线程来提升性能&#xff0c;实质上是将顺序执行的操作转化为并行执行。仔细观察后&#xff0c;你还会发现在顺序转并行的过程中&#xff0c;一定会牵扯到异步化。举个例子&#xff0c;现在下面这段示例代码是按顺序执行的&#xff0c;为了优化性能&#xff0c;我们需要将…...

锁粒度的粗细与时空损耗互换

1 空间换时间的cases 1.1 redis的用户分组限流和用户定制的限流器 Redis 用户分组限流和用户定制的限流器&#xff1a;使用 Redis 进行用户分组限流或用户定制的限流意味着你使用 Redis 数据库来维护用户的访问限制。可以通过计数器、滑动窗口或令牌桶等算法来实现限流。用户…...

[Android 11]使用Android Studio调试系统应用之Settings移植(七):演示用AS编译错误问题

文章目录 1. 篇头语2. 系列文章3. AS IDE的配置3.1 AS版本3.2 Gradle JDK 版本4. JDK的下载5. AS演示工程地址6.其他版本JDK导致的错误1. 篇头语 距离2021年开始,系列文章发表已经有近两年了,依旧有网友反馈一些gitee上演示源码编译的一些问题,这里就记录一下。 2. 系列文章…...

MyBatis面试题

MyBatis面试题&#xff1a; 1、MyBatis是什么&#xff1f; Mybatis是一个半ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;它内部封装了JDBC&#xff0c;加载驱动、创建连接、创建statement等繁杂的过程&#xff0c;开发者开发时只需要关注如何编写SQL语句&#xf…...

Lorenz系统最大lyapunov exponent的求解

首先看下Lorenz混沌系统: 赋予初始值,例如: 当然,初始值可以根据需要设定。 看下他的吸引子,很美: 看下他的分叉图:...

c#实现策略模式

下面是一个使用C#实现策略模式的示例代码&#xff1a; using System;// 策略接口 public interface IStrategy {void Execute(); }// 具体策略类A public class ConcreteStrategyA : IStrategy {public void Execute(){Console.WriteLine("具体策略A的执行逻辑");} …...

家纺行业小程序商城搭建指南

家纺行业作为一个不可或缺的消费领域&#xff0c;近年来备受关注。随着互联网的发展&#xff0c;小程序商城成为家纺行业拓展市场的新利器。搭建一个家纺行业小程序商城并不是一件困难的事情&#xff0c;只需要按照以下几个步骤进行操作&#xff0c;就能轻松上手。 首先&#x…...

Python语法基础--条件选择

学习目标 使用比较运算符编写布尔表达式。使用random.randint(a,b)或者random.random()函数来生成随机数。编写布尔表达式(AdditionQuiz)。使用单向if语句实现选择控制。使用单向if语句编程。使用双向if-else语句实现选择控制。使用嵌套if和多向if-elif-else语句实现选择控制。…...

visual studio 2017 运行的程序关闭后不能再运行?(visual studio建立项目之后退出,如何再次完整打开项目?)

在你储存项目的文件夹里面应该是这样的 里面.vcxproj后缀名的就是原来创建的项目&#xff0c;直接打开这个头文件源文件就会一起出来了&#xff01; 真的管用&#xff0c;亲测有效。...

亚马逊feedback和review有什么区别

在亚马逊上&#xff0c;"Feedback"&#xff08;反馈&#xff09;和"Review"&#xff08;评论&#xff09;是两个不同的概念&#xff0c;它们在购物体验中起着不同的作用。 Feedback&#xff08;反馈&#xff09;&#xff1a; 亚马逊的"Feedback"…...

新疆大学841软件工程考研

1&#xff0e;软件生产的发展经历了三个阶段&#xff0c;分别是____、程序系统时代和软件工程时代时代。 2&#xff0e;可行性研究从以下三个方面研究每种解决方法的可行性&#xff1a;经济可行性、社会可行性和_____。 3&#xff0e;HIPO图的H图用于描述软件的层次关系&…...

Vue: el-form 自定义校验规则

Vue 的 el-form 组件可以使用自定义校验规则进行表单验证。自定义校验规则可以通过传递一个函数来实现&#xff0c;该函数接受要校验的字段的值作为参数&#xff0c;并返回一个布尔值或一个 Promise 对象。 下面是一个示例&#xff0c;演示如何在 el-form 中使用自定义校验规则…...

MySQL调优实战:MySQL日志机制深入解析,redo/undo/binlog/slow/error日志底层全通透

一、MySQL五大日志总览&#xff08;全局认知&#xff09;MySQL 日志严格分为两层&#xff1a;Server层日志 InnoDB引擎层日志。这是90%人混淆的根源&#xff1a;1.1 Server层日志&#xff08;所有引擎通用&#xff09;Binlog&#xff08;二进制日志&#xff09;&#xff1a;主…...

树莓派Zero 2W + 0.96寸OLED屏保姆级接线与配置教程(附I2C开启与Python库安装)

树莓派Zero 2W与0.96寸OLED屏从接线到显示的完整实战指南 第一次拿到树莓派Zero 2W和0.96寸OLED屏时&#xff0c;那种既兴奋又忐忑的心情我至今记得——这么小的板子真能驱动屏幕吗&#xff1f;接线会不会烧毁设备&#xff1f;经过多次实践和踩坑&#xff0c;我整理出这份真正适…...

【文档翻译】QNX Neutrino RTOS 7.1用户手册 - 第五章 文件操作

本文翻译自BlackBerry官方提供的QNX Neutrino RTOS User’s Guide&#xff0c;仅供学习参考使用 第五章 文件操作 文章目录第五章 文件操作文件类型文件名和路径名绝对路径和相对路径点和点点目录没有硬盘字母以点开头的路径名扩展名路径空间映射文件名规则所有内容的存储位置…...

FCU1501嵌入式控制单元:工业物联网数据通信网关的硬件选型与开发实践

1. 项目概述&#xff1a;FCU1501&#xff0c;一个“非典型”嵌入式控制单元的诞生最近&#xff0c;嵌入式圈子里关于“数据通信网关”的讨论又热了起来。这玩意儿听起来高大上&#xff0c;但说白了&#xff0c;就是给各种设备、系统之间搭桥的“翻译官”和“交通警察”。传统上…...

2026年哪个开源商城,更适合长期维护?——真正决定商城系统寿命的,从来不是“功能多少”,而是“复杂业务长期是否还能稳定演进”

很多企业第一次选开源商城系统时。 通常都会特别关注&#xff1a; 功能全不全插件多不多页面好不好看上线速度快不快 因为在很多人认知里&#xff1a; 功能越多 → 系统越成熟 于是很多企业前期选型时。 都会优先选择&#xff1a; 功能最多的插件最全的营销玩法最丰富的…...

90%的小程序死于“搜不到”:微信搜索排名优化全拆解

在微信生态里&#xff0c;小程序早已不是“有没有”的问题&#xff0c;而是“能不能被找到”的问题。用户搜索关键词时&#xff0c;你的小程序排在第几位&#xff0c;直接决定了流量的天花板。很多人以为排名靠运气&#xff0c;其实背后有一套可复制的优化逻辑。一、名称是最大…...

初创团队如何利用 Taotoken Token Plan 有效控制 AI 实验成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 初创团队如何利用 Taotoken Token Plan 有效控制 AI 实验成本 对于资源有限的初创团队而言&#xff0c;在产品原型和概念验证阶段&…...

高通量细胞因子/生物因子检测技术介绍

高通量细胞因子/生物因子检测技术介绍—多维免疫分析技术&#xff0c;赋能精准医学与转化研究 导语 伴随精准医学领域持续深耕与转化医学研究的高速推进&#xff0c;细胞因子、趋化因子、生长因子等各类可溶性生物标志物的动态表达变化&#xff0c;成为解析疾病发病机制、研判…...

Vue-Tree-List 实战指南:构建现代化树形结构的终极方案

Vue-Tree-List 实战指南&#xff1a;构建现代化树形结构的终极方案 【免费下载链接】vue-tree-list &#x1f332;A vue component for tree structure 项目地址: https://gitcode.com/gh_mirrors/vu/vue-tree-list 在现代前端开发中&#xff0c;树形结构是处理层级数据…...

扫描电镜(SEM)会产生哪些信号?

当高能电子束与样品相互作用时&#xff0c;会产生多种类型的信号。这些信号提供了有关材料表面形貌、成分和结构的关键信息。1.二次电子&#xff08;SE&#xff09;是入射电子将样品表面附近原子中的低能电子激发出来的。它们携带表面敏感信息&#xff08;深度<10 nm&#x…...