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

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

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

相关文章

openGauss学习笔记-44 openGauss 高级数据管理-存储过程

文章目录 openGauss学习笔记-44 openGauss 高级数据管理-存储过程44.1 语法格式44.2 参数说明44.3 示例 openGauss学习笔记-44 openGauss 高级数据管理-存储过程 存储过程是能够完成特定功能的SQL语句集。用户可以进行反复调用,从而减少SQL语句的重复编写数量&…

QT的布局与间隔器介绍

布局与间隔器 1、概述 QT中使用绝对定位的布局方式,无法适用窗口的变化,但是,也可以通过尺寸策略来进行 调整,使得 可以适用窗口变化。 布局管理器作用最主要用来在qt设计师中进行控件的排列,另外,布局管理…

通讯协议044——全网独有的OPC HDA知识一之聚合(十二)持续坏值时间

本文简单介绍OPC HDA规范的基本概念,更多通信资源请登录网信智汇(wangxinzhihui.com)。 本节旨在详细说明HDA聚合的要求和性能。其目的是使HDA聚合标准化,以便HDA客户端能够可靠地预测聚合计算的结果并理解其含义。如果用户需要聚合中的自定义功能&…

ide internal errors【bug】

ide internal errors【bug】 前言版权ide internal errors错误产生相关资源解决1解决2 设置虚拟内存最后 前言 2023-8-15 12:36:59 以下内容源自《【bug】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是h…

No view found for id 0x7f0901c3 for fragment解决以及线上bug排查技巧

情景再现 开发这么久,不知道你们是否也经历过这样的情况,测试或者用户,反馈app闪退,结果你自己打开开发工具,去调试,一切正常,然后闪退还是存在,只是在开发环境中不能重现。这种情况…

LeetCode——二叉树篇(五)

刷题顺序及思路来源于代码随想录,网站地址:https://programmercarl.com 目录 404. 左叶子之和 513. 找树左下角的值 递归 迭代 112. 路径总和 113. 路径总和 II 404. 左叶子之和 给定二叉树的根节点 root ,返回所有左叶子之和。 /**…

C++初阶语法——new,delete开辟/销毁动态内存空间

前言:在C语言中,有malloc,realloc,calloc开辟动态内存空间,free销毁动态内存空间。而在C中,使用new开辟动态内存空间,delete销毁动态内存空间。不仅简化了操作,更为重要的是&#xf…

首起针对国内金融企业的开源组件投毒攻击事件

简述 2023年8月9日,墨菲监控到用户名为 snugglejack_org (邮件地址:SnuggleBearrxxhotmail.com)的用户发布到 NPM 仓库中的 ws-paso-jssdk 组件包具有发向 https://ql.rustdesk[.]net 的可疑流量,经过确认该组件包携带远控脚本&a…

iPhone上的个人热点丢失了怎么办?如何修复iPhone上不见的个人热点?

个人热点功能可将我们的iPhone手机转变为 Wi-Fi 热点,有了Wi-Fi 热点后就可以与附近的其他设备共享其互联网连接。 一般情况下,个人热点打开就可以使用,但也有部分用户在升级系统或越狱后发现 iPhone 的个人热点消失了。 iPhone上的个人热点…

Go语言基础之基本数据类型

Go语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。Go 语言的基本类型和其他语言大同小异。 基本数据类型 整型 整型分为以下两个大类: 按…

python爬虫7:实战1

python爬虫7:实战1 前言 ​ python实现网络爬虫非常简单,只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点,方便以后复习。 申明 ​ 本系列所涉及的代码仅用于个人研究与讨论,并不会对网站产生不好…

Unity 鼠标实现对物体的移动、缩放、旋转

文章目录 1. 代码2. 测试场景 1. 代码 using UnityEngine;public class ObjectManipulation : MonoBehaviour {// 缩放比例限制public float MinScale 0.2f;public float MaxScale 3.0f;// 缩放速率private float scaleRate 1f;// 新尺寸private float newScale;// 射线pri…

RDMA qp数量和RDMA性能

QP数量上升性能下降 ​​​​​​https://icnp21.cs.ucr.edu/papers/icnp21camera-paper30.pdf 在现代云数据中心中,大规模分布式应用通常构建在许多机器上,需要使用大量并发连接进行频繁的网络通信[4]–[6]。但是,RDMA的性能会随着连接数的…

购买steam余额有风险吗?以及N种被红锁的情况

购买steam余额有风险吗?以及N种被红锁的情况 无论是打游戏的玩家,还是像我们这类靠倒卖装备赚钱的小商贩,都面临充值美金余额的问题,我们现在主要是找的专业充值渠道做代充。 最近我发现群里有极个别学员通过自己的方法找到了一…

菜鸟Vue教程 - 实现带国际化的注册登陆页面

初接触vue的时候觉得vue好难,因为项目中要用到,就硬着头皮上,慢慢的发现也不难,无外乎画个布局,然后通过样式调整界面。在通过属性和方法跟js交互。js就和我们写的java代码差不多了,复杂一点的就是引用这种…

“智能查单轻松实现批量快递查询,高效掌握快递物流信息!“

亲爱的用户,你是否常常为了查询大量快递单号而感到烦恼?不用担心,我们已经为你提供了一种高效、智能的解决方案!现在,只需一键操作,即可实现批量快递查询,迅速了解每个单号的详细物流信息。 首…

代码随想录算法训练营第三十九天 | 62.不同路径,63. 不同路径 II

代码随想录算法训练营第三十九天 | 62.不同路径,63. 不同路径 II 62.不同路径深搜动态规划数论方法:eyes:题目总结:eyes: 63. 不同路径 II:eyes:题目总结:eyes: 62.不同路径 题目链接 视频讲解 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标…

爬虫逆向实战(八)--猿人学第十五题

一、数据接口分析 主页地址:猿人学第十五题 1、抓包 通过抓包可以发现数据接口是api/match/15 2、判断是否有加密参数 请求参数是否加密? 查看“载荷”模块可以发现有一个m加密参数 请求头是否加密? 无响应是否加密? 无cook…

JavaScript(JavaEE初阶系列13)

目录 前言: 1.初识JavaScript 2.JavaScript的书写形式 2.1行内式 2.2内嵌式 2.3外部式 2.4注释 2.5输入输出 3.语法 3.1变量的使用 3.2基本数据类型 3.3运算符 3.4条件语句 3.5循环语句 3.6数组 3.7函数 3.8对象 3.8.1 对象的创建 4.案例演示 4…

05_bitmaphyperloglogGEO

Bitmap&hyperloglog&GEO 面试问 记录对集合中的数据进行统计在移动应用中,需要统计每天的新增用户数和第2天的留存用户数;在电商网站的商品评论中,需要统计评论列表中的最新评论:在签到打卡中,需要统计一个月内…