Linux —— nfs文件系统
简介
NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。
NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。
参考:https://www.cnblogs.com/mchina/archive/2013/01/03/2840040.html
网站数据的一致性--》NFS服务器
压力测试--》ab
监控 --》zabbix
为什么需要nfs服务器?
保障网站数据的一致性--》不管负载均衡器将请求分配到那台后端的服务器,客户机看到的内容是一样。
nfs服务器是否是最佳的解决方法?
答案: 不是的
nfs是比较廉价的解决方法,一般的公司不会采用,性能不是特别棒,建议使用专用的存储服务器。
存储服务器
SAN
优点:读写性能好,有灾备
SAN:区域存储网络
存储区域网络(Storage Area Network,简称SAN)采用网状通道(Fibre Channel ,简称FC,区别与Fiber Channel光纤通道)技术,通过FC交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。
缺点: 需要一笔费用
NAS
NAS(Network Attached Storage)网络存储基于标准网络协议实现数据传输,为网络中的Windows / Linux / Mac OS 等各种不同操作系统的计算机提供文件共享和数据备份。
比较便宜使用tcp/ip网络协议,在日常的生活和工作里使用,例如:可以将所有手机,电脑里的图片集中存储。
小型带系统的存储设备
nfs是什么?
网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。
nfs解决了什么问题?
数据同源: 到同一个地方去拿数据,保障数据的一致性
nfs的优点和缺点
优点: 随便一台linux服务器都可以搭建,成本非常低,构建非常容易
缺点: 读取速度有限,跟网络质量,磁盘IO,cpu,内存等因素有关,在传统的tcp/ip网络上传输的
原理

权限的选项
[root@nfs-server ~]# vim /etc/exports/web 192.168.0.0/24(rw,all_squash,sync)
/web 是我们共享的文件夹的路径--》使用绝对路径
192.168.0.0/24 允许过来访问的客户机的ip地址网段
(rw,all_squash,sync) 表示权限的限制 rw 表示可读可写 read and writero 表示只能读 read-onlyall_squash :任何客户机上的用户过来访问的时候,都把它认为是普通的用户root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器匿名用户no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员sync 同时将数据写入到内存与硬盘中,保证不丢失数据async 优先将数据保存到内存,然后再写入硬盘,效率更高,但可能丢失数据
搭建过程
1.安装nfs的相关软件
[root@nfs-server ~]# yum install nfs-utils -y
2.启动nfs-server服务
[root@nfs-server ~]# service nfs-server stop
Redirecting to /bin/systemctl stop nfs-server.service
[root@nfs-server ~]# service nfs-server start
Redirecting to /bin/systemctl start nfs-server.service
[root@nfs-server ~]# service nfs-server restart
Redirecting to /bin/systemctl restart nfs-server.service
[root@nfs-server ~]#[root@nfs-server ~]# ps aux|grep nfs
root 431 0.0 0.0 0 0 ? I 8月01 0:01 [kworker/u128:4-nfsd4]
root 833 0.0 0.3 50304 2932 ? Ss 8月01 0:00 /usr/sbin/nfsdcld
root 5311 0.0 0.0 0 0 ? S 11:02 0:00 [nfsd]
root 5312 0.0 0.0 0 0 ? S 11:02 0:00 [nfsd]
root 5313 0.0 0.0 0 0 ? S 11:02 0:00 [nfsd]
root 5314 0.0 0.0 0 0 ? S 11:02 0:00 [nfsd]
root 5315 0.0 0.0 0 0 ? S 11:02 0:00 [nfsd]
root 5316 0.0 0.0 0 0 ? S 11:02 0:00 [nfsd]
root 5317 0.0 0.0 0 0 ? S 11:02 0:00 [nfsd]
root 5318 0.0 0.0 0 0 ? S 11:02 0:00 [nfsd]
root 5326 0.0 0.1 12320 992 pts/0 S+ 11:03 0:00 grep --color=auto nfs
[root@nfs-server ~]#3.原理部分:
nfs服务和rpc到底是如何实现的呢?工作原理ssh-->22
nginx -->80
mysql -->3306时我们就得需要远程过程调用 (RPC) 的服务啦!RPC 最主要的功能就是在指定每个 NFS 功能所对应的 port number ,并且回报给客户端,让客户端可以连结到正确的端口上去。 那 RPC 又是如何知道每个 NFS 的端口呢?这是因为当服务器在启动 NFS 时会随机取用数个端口,并主动的向 RPC 注册,因此 RPC 可以知道每个端口对应的 NFS 功能。nfs自己并没有去对外监听某个端口号,而是外包给了rpc服务,rpc帮助nfs去监听端口,然后告诉客户机和本机的那个进程对应的端口连续[root@nfs-server ~]# netstat -anplut|grep nfs
[root@nfs-server ~]# netstat -anplut|grep rpc 查看rpc服务相关的端口
tcp 0 0 0.0.0.0:35503 0.0.0.0:* LISTEN 960/rpc.statd
tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 5304/rpc.mountd
tcp6 0 0 :::20048 :::* LISTEN 5304/rpc.mountd
tcp6 0 0 :::42099 :::* LISTEN 960/rpc.statd
udp 0 0 0.0.0.0:20048 0.0.0.0:* 5304/rpc.mountd
udp 0 0 127.0.0.1:717 0.0.0.0:* 960/rpc.statd
udp 0 0 0.0.0.0:42974 0.0.0.0:* 960/rpc.statd
udp6 0 0 :::20048 :::* 5304/rpc.mountd
udp6 0 0 :::43399 :::* 960/rpc.statd
[root@nfs-server ~]# 4.共享文件,编辑/etc/exports文件,写好具体的共享的目录和权限
/etc/exports
[root@nfs-server ~]# vim /etc/exports/web 192.168.0.0/24(rw,all_squash,sync)
/web 是我们共享的文件夹的路径--》使用绝对路径 --》需要自己新建
192.168.0.0/24 允许过来访问的客户机的ip地址网段
(rw,all_squash,sync) 表示权限的限制 rw 表示可读可写 read and writero 表示只能读 read-onlyall_squash :任何客户机上的用户过来访问的时候,都把它认为是普通的用户root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器匿名用户no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员sync 同时将数据写入到内存与硬盘中,保证不丢失数据async 优先将数据保存到内存,然后再写入硬盘,效率更高,但可能丢失数据
[root@nfs-server ~]# mkdir /web
[root@nfs-server ~]# cd /web
[root@nfs-server web]#vim index.html 创建首页文件
index.html [root@nfs-server web]# cat index.html
sanchuang
fengdeyong xuzizhen zhangrenjie
[root@nfs-server web]#
5.刷新输出文件的列表
[root@nfs-server web]# exportfs -rv
exporting 192.168.0.0/24:/web
[root@nfs-server web]# [root@nfs-server web]# cat /etc/exports
/web 192.168.0.0/24(rw,all_squash,sync)
/download 192.168.0.0/24(rw,all_squash,sync)
/download 192.168.0.190(rw,all_squash,sync)
/download 192.168.0.192(rw,all_squash,sync)
/download 192.168.0.180(rw,all_squash,sync)
[root@nfs-server web]#
[root@nfs-server web]# mkdir /download 新建/download
[root@nfs-server web]# exportfs -rv
exporting 192.168.0.190:/download
exporting 192.168.0.192:/download
exporting 192.168.0.180:/download
exporting 192.168.0.0/24:/download
exporting 192.168.0.0/24:/web
[root@nfs-server web]#
复制一点点数据到/download目录下
[root@nfs-server download]# cp /etc/hosts .
[root@nfs-server download]# tar czf boot.tar.gz /boot
tar: 从成员名中删除开头的“/”[root@nfs-server download]#
[root@nfs-server download]# ls
boot.tar.gz hosts
[root@nfs-server download]#5.建议关闭防火墙和selinux[root@nfs-server download]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service
[root@nfs-server download]# systemctl disable firewalld
[root@nfs-server download]# getenforce
Disabled
[root@nfs-server download]# 在客户机上挂载nfs服务器上共享的/web和/download目录
[root@web-server2 ~]# yum install nfs-utils -y 安装nfs-utils软件,方便客户机上进行挂载,具有了相关命令了,例如:showmount
[root@web-server2 ~]# showmount -e 192.168.0.139 查看nfs服务器上共享输出了哪些文件夹
Export list for 192.168.0.139:
/web 192.168.0.0/24
/download 192.168.0.0/24
[root@web-server2 ~]# 挂载nfs服务器上的目录到本机上
[root@web-server2 ~]# mkdir /web 在客户机的本地新建一个目录/web
[root@web-server2 ~]# mount 192.168.0.139:/web /web 将nfs服务器上的/web目录挂载到本地的/web目录,今后访问本地的/web目录,就是访问到nfs服务器上的/web目录
mount 是挂载的命令,可以理解为一种映射语法: mount nfs服务器的目录 本地的目录[root@web-server2 ~]# cd /web
[root@web-server2 web]# ls
index.html
[root@web-server2 web]# ls
index.html sc.txt
[root@web-server2 web]#[root@web-server2 web]# mkdir /download
[root@web-server2 web]# mount 192.168.0.139:/download /download
[root@web-server2 web]# cd /download/
[root@web-server2 download]# ls
boot.tar.gz hosts
[root@web-server2 download]# 客户机上能否有写的权限要看2种权限:1.共享权限 --》/etc/exports文件里的权限,例如ro,rw2.文件系统里的权限 --》/web 在linux里的权限[root@nfs-server web]# ll -d /web
drwxrwxrwx. 3 root root 56 8月 2 11:55 /web
[root@nfs-server web]# ll -d /download
drwxr-xr-x 2 root root 38 8月 2 11:44 /download ---》nfs客户机挂载后,没有写的权限,因为其他人没有w权限
[root@nfs-server web]# 在nfs服务器上授权
[root@nfs-server web]# chmod a+w /download/
[root@nfs-server web]# ll -d /download
drwxrwxrwx 2 root root 38 8月 2 11:44 /download
[root@nfs-server web]# 在客户机上验证
[root@web-server2 web]# cd /download/
[root@web-server2 download]# mkdir fengdeyong
[root@web-server2 download]# ls
boot.tar.gz fengdeyong hosts
[root@web-server2 download]# 后端的real-server到底要把nfs服务器共享的目录挂载到哪里?用户才能看到一样的数据nginx安装目录下的html --》编译安装的[root@web-server2 sczhengbo99]# mount 192.168.0.139:/web /usr/local/sczhengbo99/html/
[root@web-server2 sczhengbo99]# cd /usr/local/sczhengbo99/html/
[root@web-server2 html]# ls
fengdeyong index.html sc.txt
[root@web-server2 html]#
相关命令和文件
mount 挂载
exportfs -rv 相当于重启nfs服务,让修改的/etc/exports文件生效
/etc/exports 共享目录的配置文件
umount 卸载
开机自动挂载nfs文件系统
1. /etc/rc.local
mount 192.168.0.139:/web /usr/local/sczhengbo/html
chmod +x /etc/rc.d/rc.local
2.修改/etc/fstab文件,也可以自动挂载


/etc/fstab 是linux系统开机会自动根据这个文件里的内容挂载磁盘分区
fstab -->file system table
192.168.0.139:/web /usr/local/sczhengbo99/html nfs defaults 0 0
192.168.0.139:/web 挂载的分区--》nfs的文件系统
/usr/local/sczhengbo/html 在本地的挂载点
nfs 文件系统的类型
defaults 挂载的选项,使用默认
0 是否支持dump命令进行备份
0 是否开机的时候进行分区的文件系统的检查,分区的文件系统是否有问题
相关文章:
Linux —— nfs文件系统
简介 NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位…...
数据降维 | MATLAB实现T-SNE降维特征可视化
数据降维 | MATLAB实现T-SNE降维特征可视化 目录 数据降维 | MATLAB实现T-SNE降维特征可视化降维效果基本描述程序设计参考资料 降维效果 基本描述 T-SNE降维特征可视化,MATLAB程序。 T-分布随机邻域嵌入,主要用途是对高维数据进行降维并进行可视化&…...
蓝桥杯上岸每日N题 (交换瓶子)
大家好 我是寸铁 希望这篇题解对你有用,麻烦动动手指点个赞或关注,感谢您的关注 题目描述 有 N 个瓶子,编号 1∼N,放在架子上。 比如有 5 个瓶子: 2 1 3 5 4 要求每次拿起 2 个瓶子,交换它们的位置。 …...
GMS基本模块TIN、Solids、Modflow2000/2005、MT3DMS、MODPATH。及其在地下水流动、溶质运移、粒子追踪方面的应用
解决地下水数值模拟技术实施过程中遇到的困难,从而提出切实可行的环境保护措施,达到有效保护环境、防治地下水污染,推动经济社会可持续发展的目的。 (1)水文地质学,地下水数值模拟基础理论;&am…...
MySQL数据库中间件Mycat介绍及下载安装(教程)
一,介绍 MyCat是开源的、活跃的、基于Java语言编写的MySQL数据库中间件。可以像使用MySQL一样来使用MyCat,对于开发人员来说根本感觉不到MyCat的存在。 开发人员只需要连接MyCat即可,而具体底层用到几台数据库,每一台数据库服务器…...
【VMware】CentOS 设置静态IP(Windows 宿主机)
文章目录 1. 更改网络适配器设置2. 配置虚拟网络编辑器3. 修改 CentOS 网络配置文件4. ping 测试结果 宿主机:Win11 22H2 虚拟机:CentOS-Stream-9-20230612.0 (Minimal) 1. 更改网络适配器设置 Win R:control 打开控制面板 依次点击&#x…...
机器学习十大算法之七——随机森林
0 引言 集成学习(ensemble learning)是时下非常流行的机器学习算法,它本身不是一个单独的机器学习算法,而是通过在数据上构建多个横型,集成所有模型的建模结果,基本上所有的机器学习领域都可以看到集成学习…...
spring boot 3使用 elasticsearch 提供搜索建议
业务场景 用户输入内容,快速返回建议,示例效果如下 技术选型 spring boot 3elasticsearch server 7.17.4spring data elasticsearch 5.0.1elasticsearch-java-api 8.5.3 pom.xml <dependency><groupId>org.springframework.boot</gr…...
住宅IP:解锁更快速、稳定的互联网,你准备好了吗?
随着互联网的广泛普及,我们对网络的需求也越来越高。无论是工作、学习还是娱乐,我们都希望能够享受到更快速、稳定的互联网连接。而在实现这一目标的过程中,住宅IP正逐渐崭露头角,成为了一种备受关注的解决方案。那么,…...
支持dolby vision的盒子接支持dolby vision的电视,在adaptive hdr时,播放非dv的hdr视频,输出sdr
支持dolby vision的盒子接支持dolby vision的电视,setting选择adaptive hdr,按照这个配置在播放非dv的hdr视频时,会输出sdr。 看起来是很不合理的,高级的产品播放高级的片源,却输出低级的画质。 想要搞清楚这个问题&am…...
使用ffmpeg将WebM文件转换为MP4文件的简单应用程序
tiktok网上下载的short视频是webm格式的,有些程序无法处理该程序,比如roop程序,本文介绍了如何使用wxPython库创建一个简单的GUI应用程序,用于将WebM文件转换为MP4文件。这个应用程序使用Python编写,通过调用FFmpeg命令…...
Prompt-“设计提示模板:用更少数据实现预训练模型的卓越表现,助力Few-Shot和Zero-Shot任务”
Prompt任务(Prompt Tasks) 通过设计提示(prompt)模板,实现使用更少量的数据在预训练模型(Pretrained Model)上得到更好的效果,多用于:Few-Shot,Zero-Shot 等…...
玩转Mysql系列 - 第6篇:select查询基础篇
这是Mysql系列第6篇。 环境:mysql5.7.25,cmd命令中进行演示。 DQL(Data QueryLanguage):数据查询语言,通俗点讲就是从数据库获取数据的,按照DQL的语法给数据库发送一条指令,数据库将按需求返回数据。 DQ…...
【SpringCloud技术专题】「Gateway网关系列」(1)微服务网关服务的Gateway组件的原理介绍分析
为什么要有服务网关? 我们都知道在微服务架构中,系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢?难道要一个个的去调用吗?很显然这是不太实际的,我们需要有一个统一的接口与这些微服务打交道…...
【面试刷题】————STL中的vector是如何实现的?
STL(Standard Template Library)是C标准库中的一部分,它提供了许多常用的数据结构和算法,其中包括了动态数组 vector。 vector std::vector 是一个动态数组,它能够自动调整自己的大小,以适应存储元素的需…...
使用钉钉的扫码会出现多个回调(DTFrameLogin)
官方:地址 标题 出现的问题解决后效果正常使用(按照官网的流程进行使用)自己的理解(路人可忽略该内容!) 出现的问题 1692861955468 解决后效果 1692861665687 正常使用(按照官网的流程进行使用) fn.js 该文件就是钉钉官网的js文件,我下载到了…...
Android | 关于 OOM 的那些事儿
作者:345丶 前言 Android 系统对每个app都会有一个最大的内存限制,如果超出这个限制,就会抛出 OOM,也就是Out Of Memory 。本质上是抛出的一个异常,一般是在内存超出限制之后抛出的。最为常见的 OOM 就是内存泄露(大量…...
珠玑妙算游戏
珠玑妙算游戏,OJ练习 一、描述二、方法一三、方法二 一、描述 珠玑妙算游戏(the game of master mind)的玩法如下: 计算机有4个槽,每个槽放一个球,颜色可能是红色(R)、黄色…...
【rust语言】rust多态实现方式
文章目录 前言一、多态二、rust实现多态trait的静态方式还有一种方式可以通过动态分发,还以上面那段代码,比如dyn关键字 泛型方式枚举方式优点:缺点: 总结 前言 学习rust当中遇到了这个问题,记录一下,不对…...
两年半机场,告诉我如何飞翔
为说明如何坐飞机离港,故此记录一篇。何为离港,顾名思义,离开港湾,那何为港湾,便是机场。 机场,一个你可能经常去,亦或不曾去之地。我想,管你去没去过,先说下怎么去&…...
Windows持久化核心战术:系统服务植入实战教程
前言技术背景:在网络攻击的生命周期(Cyber Kill Chain)中,持久化(Persistence) 是攻击者在失陷主机上维持长期访问权限的关键阶段。在众多持久化技术中,将恶意程序注册为系统服务(Sy…...
内存检测从入门到精通:Memtest86+实战指南
内存检测从入门到精通:Memtest86实战指南 【免费下载链接】memtest86plus memtest86plus: 一个独立的内存测试工具,用于x86和x86-64架构的计算机,提供比BIOS内存测试更全面的检查。 项目地址: https://gitcode.com/gh_mirrors/me/memtest86…...
Fish Speech 1.5在医疗健康领域的语音辅助应用
Fish Speech 1.5在医疗健康领域的语音辅助应用 1. 引言 在医疗健康领域,清晰准确的语音交流至关重要。医生需要向患者解释病情,护士要按时提醒用药,患者可能因为视力问题无法阅读病历资料。传统的文字信息在这些场景中往往显得不够直观和便…...
AviatorScript函数扩展避坑指南:固定参数vs可变参数的选择与实现差异
AviatorScript函数扩展避坑指南:固定参数vs可变参数的选择与实现差异 在AviatorScript的深度开发中,函数扩展是提升脚本灵活性的核心手段。但许多开发者在面对固定参数(AbstractFunction)和可变参数(AbstractVariadicF…...
Linux下安装SimSun字体的完整指南(附常见问题排查)
Linux下安装SimSun字体的完整指南(附常见问题排查) 在Linux系统中处理中文字体一直是个让开发者头疼的问题。不同于Windows系统预装了丰富的中文字体,大多数Linux发行版默认只包含基础的字体库。当我们需要处理中文文档、开发中文界面或运行某…...
保障AI安全:YOLOv12模型鲁棒性测试与对抗样本防御
保障AI安全:YOLOv12模型鲁棒性测试与对抗样本防御 在智能安防、自动驾驶这些关键领域,AI模型,尤其是像YOLOv12这样的目标检测模型,已经成为了核心的“眼睛”。我们依赖它来识别行人、车辆,做出至关重要的判断。但你想…...
Python实战:M3FD红外数据集高效转YOLO格式的完整指南
1. 为什么需要转换M3FD数据集格式 红外目标检测在夜间安防、自动驾驶等领域越来越重要,而M3FD作为优质的红外数据集却采用了VOC格式标注。这就像你买了台进口电器,却发现插头不匹配国内插座——虽然东西是好东西,但直接使用会遇到麻烦。 YO…...
QQ空间数据备份工具:GetQzonehistory本地化数据留存方案
QQ空间数据备份工具:GetQzonehistory本地化数据留存方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字化时代,个人社交数据的长期保存与管理成为重要需求…...
工业质检项目从零开始:如何用‘主动学习’策略,把标注成本降低70%以上?
工业质检降本实战:用主动学习策略实现70%标注成本压缩 当某汽车零部件制造商首次将5000张未标注的焊接缺陷图片交到我们团队时,质检主管提出了两个灵魂拷问:"这批数据标注预算只有行业平均水平的30%,能不能做?&q…...
从模型到应用:深入解析Source-Free Domain Adaptation(SFDA)的核心挑战与实战策略
1. 什么是Source-Free Domain Adaptation(SFDA)? 想象一下你是一个厨师,花了三年时间在四川学会了做正宗川菜。现在突然被派到广东工作,发现当地人对辣味的接受度完全不同。更麻烦的是,你不能带任何四川的食…...
