NFS共享服务

news2024/11/18 13:24:49

文章目录

  • 1.NFS
    • 1.1 NFS简介
    • 1.2 RPC简介
    • 1.3 NFS网络文件系统
    • 1.4 NFS应用场景
    • 1.5 NFS通讯原理
  • 2.NFS配置

1.NFS

1.1 NFS简介

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

  • 它的主要功能是通过网络让不同的机器系统之间可以彼此共享文件和目录NFS服务器可以允许NFS客户端将远端NFS服务器端的共享目录挂载到本地的NFS客户端中在本地的NFS客户端的机器看来,NFS服务器端共享的目录就好像自己的磁盘分区和目录一样。一般客户端挂载到本地目录的名字可以随便,但为方便管理,我们要和服务器端一样比较好。其就相当于windows里面共享文件,然后其他主机把这个共享文件映射成了本地盘使用一样。

  • NFS一般用来存储共享视频,图片等静态数据。

1.2 RPC简介

  • 因为NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据。,因此,NFS的功能所对应的端口无法固定,它会随机取用一些未被使用的端口来作为传输,其中CentOS 5.x的随机端口都小于1024,而CentOS 6.x的随机端口都比较大。

  • 因为端口不固定,就会造成NFS客户端与NFS服务端的通信障碍。因为NFS客户端必须要知道NFS服务端的数据传输端口才能进行通信,才能交互数据

  • 要解决上面的困扰,就需要通过远程过程调用RPC服务来帮忙,NFS的RPC服务最主要的功能就是记录每个NFS功能所对应的端口号,并且在NFS客户端请求时将该端口和功能对应的信息传递给请求数据的NFS客户端,从而确保客户端可以连接到正确的NFS端口上去,达到实现数据传输交互数据目的。这个RPC服务类似NFS服务端和NFS客户端之间的一个中介。

知识拓展部分:RPC服务使用固定的111端口来监听NFS客户端;

就拿房屋中介打个比喻:
假设我们要找房子,这里的我们就相当于NFS客户端,中介介绍房子,中介就相当于RPC服务,房子所有者房东就相当于NFS服务,租房的人找房子,就要找中介,中介要预先存有房子主人房东的信息,才能将房源信息告诉租房的人

那么RPC服务又是如何知道每个NFS的端口呢?

这是因为,当NFS服务端启动服务时会随机取用若干端口,并主动向RPC服务注册取用的相关端口及功能信息。如此一来,RPC服务就知道NFS每个端口对应的NFS功能了,然后RPC服务使用固定的111端口来监听NFS客户端提交的请求,并将正确的NFS端口信息回复给请求的NFS客户端,这样一来,NFS客户端就可以与NFS服务端进行数据传输了。

在启动NFS服务之前,首先要启动RPC服务(CentOS 5.x下为portmap服务,CentOS=6.x下为rpcbind服务,下同),否则NFS服务就无法向RPC服务注册使用的端口及对应的功能信息。另外,如果RPC服务重新启动,原来已经注册好的NFS端口数据就会丢失,因此,此时RPC服务管理的NFS程序也需要重新启动以重新向RPC注册。要特别注意的是,一般修改NFS配置文件后,是不需要重启NFS的,直接在命令行执行/etc/init.d/nfs reload或exportfs -arv即可使修改的/etc/exports生效

1.3 NFS网络文件系统

依赖RPC(Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程

需要安装nfs-utils、rpcbind软件包来提供NFS共享服务。

系统服务:nfs(端口号2049)、rpcbind(端口号111),前者用于NFS共享发布和访问,后者用于RPC支持。

共享配置文件:/etc/exports(文件为空,要自己添加需要发布共享以及客户端需要连接和访问的网段)

在这里插入图片描述

1.4 NFS应用场景

  • 多台web服务器的图片和视频数据都保存在NFS服务器上

  • 多台服务器的备份数据都保存在NFS服务器上

1.5 NFS通讯原理

1.服务端启动后将自己的端口信息注册到rpcbind
2.NFS客户端通过TCP/IP的方式连接NFS服务端的rpcbind并获得真实的端口信息
3.NFS客户端获得真实的端口后,将自己需要的操作函数通过⽹络发送给NFS服务端对应的端口
4.NFS服务端接收到请求后,由rpc.nfsd进程判断NFS客户端是否拥有连接权限
5.NFS服务端的rpc.mount进程判断客户端是否有对应的操作权限
6.最后NFS服务端会将对应请求的函数转换为本地能识别的命令,传递至内核,由内核驱动硬件

注意: rpc 是⼀个远程过程调用,那么使用 nfs 必须有 rpc 服务

在这里插入图片描述

2.NFS配置

(1)安装软件,启动服务

服务端安装并启动nfs-utils、rpcbind软件包;

yum -y install nfs-utils rpcbind
###优先启动rpcbind,否则客户端NFS服务可能会找不到服务端的NFS
systemctl start rpcbind
systemctl start nfs
###开机自动启动该服务
systemctl enable rpcbind
systemctl enable nfs
###关闭防火墙和selinux
systemctl stop firewalld
setenforce 0

[root@clr ~]#yum -y install nfs-utils rpcbind
[root@clr ~]#systemctl  start rpcbind  #切记一定要先启动rpcbind服务,再启动nfs服务
[root@clr ~]#systemctl  start nfs
[root@clr ~]#systemctl enable rpcbind #将rpcbind服务和nfs服务设为开机启动
[root@clr ~]#systemctl enable nfs  

(2)准备共享目录

修设配置文件,设置共享目录;

先准备硬盘/LVM/RAID,格式化后挂载到需要共享的目录(比如/share),并设置相应的权限
###如果无需客户端写入文件则省略
chmod 777 /share 

vim /etc/exports
共享目录 客户端地址/网段(共享参数选项,...)
.....
###共享参数选项用“,”相隔,可有多条共享目录

/data       172.16.1.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
共享目录    允许客户端访问的IP(共享参数)
解释:NFS共享目录路径 允许NFS客户端访问的IP地址(参数)
注意:访问地址和参数之间没有空格

[root@clr ~]#mkdir -p /opt/www/root
[root@clr ~]#vim /etc/export
/opt/www/root 192.168.154.0/24(rw,sync,no_root_squahs)

在这里插入图片描述

配置文件参数解释如下:

执行 man exports 命令,然后切换到文件结尾,可以快速查看如下样例格式:
rw #读写权限
ro #只读权限
root_squash #当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户(不常用)
no_root_squash #当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员(不常用)
all_squash #无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户(常用)
no_all_squash #无论NFS客户端使用什么账户访问,都不进行降权处理,维持客户端原有身份信息进行连接与访问
sync #同时将数据写入到内存与硬盘中,保证不丢失数据
async #优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
anonuid #配置all_squash使用,指定NFS的用户UID,必须存在系统
anongid #配置all_squash使用,指定NFS的用户GID,必须存在系统

在这里插入图片描述

NFS服务的默认配置文件路径为:/etc/exports,并且默认是空的;

[root@clr ~]# vim /etc/exports 

#####    编辑如下    #####
/opt/mygirl 192.168.80.0/24(rw,sync)
#表示/opt/mygirl目录可以被192.168.80这个网段所有人去连接,rw是表示有读写权限,sync表示要立即进行同步

在这里插入图片描述

在这里插入图片描述

showmount -e查看nfs服务端是否已经成功将指定目录共享出来,不写ip地址默认是在nfs服务端本地进行查看,添加ip地址,代表是在客户端查看nfs服务端的共享目录;

[root@clr ~]# showmount -e 192.168.80.20
Export list for 192.168.80.20:
/opt/mygirl 192.168.80.0/24

在这里插入图片描述

在客户端创建指定挂载目录,并将192.168.80.20:/opt/mygirl挂载到客户端的/opt/mydata目录下;

[root@clr ~]# mkdir /opt/mydata
[root@clr ~]# mount 192.168.80.20:/opt/mygirl  /opt/mydata  #将192.168.80.20:/opt/mygirl
###共享目录挂载到客户端的/opt/mydata目录下

在这里插入图片描述

在这里插入图片描述

(3)发布共享目录

###对NFS配置文件做了修改后,可用以下两条命令重新刷新配置
systemctl restart nfs
###如果客户端正在挂载nfs共享存储目录,重启nfs服务可能会不生效,有延迟,甚至卡死,可用下面的命令发布新的nfs配置(共享目录)
exportfs -avr

在这里插入图片描述

(4)客户端挂载使用

###在服务端和客户端查看有哪些共享目录发布
showmount -e 服务端IP
###客户端临时挂载nfs共享目录
mount [-t nfs] 服务端IP:共享目录 本地挂载点
###客户端永久挂载nfs共享目录
vim /etc/fstab
{服务端IP:共享目录 本地挂载点 nfs defaults,_netdev 0 0}
###如果客户端正在挂载中,服务端突然发生事故,nfs服务宕机了,客户端挂载目录会出现卡死现象,可使用命令强制解除挂载
umount -lf

在这里插入图片描述

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

在这里插入图片描述

每次更改/etc/exports配置文件中的参数时,都需要客户端先解挂,再重启服务端的nfs服务,最后客户端在进行挂载nfs服务端的共享文件,进行验证测试。

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

产品的技术加油站

作为产品经理的你,每次被喷不懂技术的时候,是否也曾想过暗暗发力,恶补一波技术,然后惊艳所有人?但冷静之后,又觉得无从下手? 是不是还想过要不要学习一下编程?然后被人推荐了什么py…

【致敬未来的攻城狮计划】— 连续打卡第十天:FSP固件库开发及FSP配置详解。

系列文章目录 1.连续打卡第一天:提前对CPK_RA2E1是瑞萨RA系列开发板的初体验,了解一下 2.开发环境的选择和调试(从零开始,加油) 3.欲速则不达,今天是对RA2E1 基础知识的补充学习。 4.e2 studio 使用教程 5.…

Gnuplot绘图入门2——根据多列文本数据绘制图形

Gnuplot绘图入门2——根据多列文本数据绘制图形 Gnuplot绘图入门1以绘制sin(x)的函数图形为例,对Gnuplot进行了简要介绍。这个教程将介绍如何使用Gnuplot对保存在文本文件(.txt、.dat文件)中的数据进行可视化。 将下面的数据复制下了&#…

Python高光谱遥感数据处理与机器学习实践技术

目录 第一章 高光谱基础 第二章 高光谱开发基础(Python) 第三章 高光谱机器学习技术(python) 第四章 典型案例操作实践 总结了高光谱遥感技术领域的基础原理与核心概念,采用编程语言复现经典数据处理和应用方法&am…

OpenHarmony应用开发-ArkUI方舟开发框架简析

方舟开发框架(简称ArkUI)为OpenHarmony应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能(组件、布局、动画以及交互事件),以及实时界面预览工具等,可以支持开发者进行可视化界…

ChatGPT会被人工智能干掉吗?

01 ChatGPT火爆全球 ChatGPT是美国“开放人工智能研究中心”2022年11月30日发布的聊天机器人程序,它是人工智能技术驱动的自然语言处理工具,能通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样…

pcl中MomentOfInertiaEstimation计算有向包围盒

pcl::MomentOfInertiaEstimation 是 Point Cloud Library (PCL) 中的一个类,用于计算点云中物体的矩。它可以提供点云物体的三个主轴及其长度,以及物体的惯性矩阵等信息。通过使用 pcl::MomentOfInertiaEstimation 类,可以实现物体形状分析、…

C++类和对象-3

承接上一篇博客中内容,讲述完类和对象中构造函数内容之后,这篇博客我们来讲述类和对象中,析构函数的内容。 目录 1.析构函数 2.拷贝构造函数 3.浅拷贝与深拷贝 1.析构函数 在类和对象的构建当中,类中的对象会通过构造函数来…

Jenkins配置邮箱发送报告

本文以qq邮箱为例 1.下载Email Extension Plugin插件 2.在Manage Jenkins--System,Jenkins Location下配置理员邮件 Extended E-mail Notification 下配置Jenkins SMTP server(邮箱服务)、SMTP Port(邮箱端口)、Cred…

c++学习(day4)

文章目录 一. 友元(friend)1 友元函数1.1 全局函数作为友元函数1.2 类的成员函数作为友元函数(了解) 2. 友元类3. 使用友元的注意事项 二. 常成员函数和常对象(const)1. 常成员函数2. 常对象3. mutable关键…

【微服务笔记17】微服务组件之Gateway实现动态路由、配置路由规则、路由过滤器

这篇文章,主要介绍微服务组件之Gateway实现动态路由、配置路由映射规则、路由过滤器。 目录 一、动态路由配置 1.1、动态URI路由配置 (1)引入eureka客户端依赖 (2)添加路由配置 1.2、服务名称转发配置 二、断言配…

基于 Windows 安装 ESP32 Arduino 软件开发环境

ESP32 Arduino 源码库:arduino-esp32ESP32 Arduino 环境搭建说明:About Arduino ESP32 其他软件环境需求: Git 环境 1、安装 Arduino 软件 可在 Arduino 官网 获取 Windows 端 Arduino 安装包,如下: 使用如下 .exe 一…

JVM类加载过程

文章目录 1、加载2、链接2.1 验证2.2 准备2.3 解析 3、初始化3.1 类初始化练习3.2 懒汉式单例练习 4、类加载器4.1 启动类加载器4.2 扩展类加载器4.3 双亲委派模式4.4 线程上下文类加载器4.4 自定义类加载器 5、运行时优化5.1 即时编译逃逸分析方法内联(Inlining&am…

StressAppTest的简介

StressAppTest的全称是Stressful Application Test (stressapptest) 的简称http://code.google.com/p/stressapptest/ 这里我们可以将其简化为SAT。 SAT试图让来自处理器和I/O到内存的数据尽量随机化,以创造出模拟现实的环境来测试现在的硬件设备是否稳定。 SAT的大概作用如…

【Mysql 学习笔记】

Mysql 笔记记录 MySQL学习笔记一、 DDL1. DDL 查询和创建数据库2. DDL 修改、删除、使用数据库3. DDL 查询数据表4. DDL 创建数据表5. DDL 修改数据表6. DDL 删除数据表 二、DML MySQL学习笔记 一、 DDL 1. DDL 查询和创建数据库 #查询所有数据库 SHOW DATABASES; #查询某个数…

PMP项管2023年5月的备考准备攻略!现在看还来得及!

2023年共有4次PMP考试,分别是3月、5月、8月、11月,由于3月份考试不开放新报名,所以第一次备考PMP的同学可以选择参加5月份考试。那么,现在备考5月份PMP考试还来得及吗? 现在开始备考5月PMP考试,时间是非常…

蓝牙技术|消息称三星正研发智能戒指Galaxy Ring

根据韩媒 MT 报道,三星内部正在开发继 Galaxy Watch、Galaxy Fit 之后的另一款健康追踪设备 Galaxy Ring。 报道称这款智能戒指配备 PPG(光电容积脉搏波)传感器和 ECG(心电图)传感器,可以准确追踪佩戴者的…

云智慧助力MLOps加速落地

背景 随着数字化和计算能力的发展,机器学习(Machine Learning)技术在提高企业生产力方面所涌现的潜力越来越被大家所重视,然而很多机器学习的模型及应用在实际的生产环境并未达到预期,大量的ML项目被证明是失败的。从…

云计算中的网络安全技术及其应用

云计算已经成为当今企业信息化的主要选择之一。它提供了可靠的数据存储和处理能力,同时降低了企业的IT成本。然而,云计算的安全问题也随之而来。网络安全技术的应用对于保护云计算的安全至关重要。本文将探讨云计算中的网络安全技术及其应用,…

Golang每日一练(leetDay0041) 股票买卖4题

目录 121. 买卖股票的最佳时机 🌟 122. 买卖股票的最佳时机 II 🌟🌟 123. 买卖股票的最佳时机 III 🌟🌟🌟 188. 买卖股票的最佳时机 IV 🌟🌟🌟 🌟 每…