运维实施31-NFS服务

NFS概述

NFS(Network File System)网络文件系统,主要用于Linux系统上实现文件共享的一种协议,其客户端主要是Linux。

没有用户认证机制,且数据在网络上传送的时候是明文传送,一般只能在局域网中使用支持多节点同时挂载及并发写入

企业应用:为集群中的webserver提供后端存储(做静态资源服务器)

环境准备

编号IP地址作用
1192.168.66.143Web服务器
2192.168.66.138NFS服务器

NFS组成

rpcbind:负责NFS的数据传输,远程过程调用tcp/udp协议端口 ==111==

nfs-utils:控制共享哪些文件,权限管理

RPC(Remote Procedure Call Protocol)是一种远程过程调用协议。
​
它允许一个程序通过网络从另一台计算机上的程序请求服务,而无需了解底层的网络技术细节。简单来说,RPC使得不同计算机之间的程序可以像在同一台计算机上一样互相调用和通信。

安装NFS软件

yum install rpcbind nfs-utils -yrpm -q rpcbind

NFS的配置文件

NFS 的配置文件为/etc/exports(服务端进行配置)

格式为: 共享的目录位置 客户机地址(权限选项)

/test888 192.168.78.0/24(rw,sync,no_root_squash)

将/text888目录共享给192.168.78.0网段的所有用户

# vim /etc/exports共享目录    共享选项
/share     *(ro,sync)共享主机:
*                                       代表所有主机
192.168.0.0/24                          代表共享给某个网段
192.168.0.0/24(rw) 192.168.1.0/24(ro)   代表共享给不同网段
192.168.0.254                           共享给某个IP
*.zking.com                             代表共享给某个域下的所有主机共享选项:
ro: 只读
rw: 读写
sync: 实时同步,直接写入磁盘
async: 异步,先缓存在内存再同步磁盘
anonuid: 设置访问nfs服务的用户的uid,uid需要在/etc/passwd中存在
anongid: 设置访问nfs服务的用户的gid
root_squash: 默认选项 root用户创建的文件的属主和属组都变成nobody,其他人nfs-server端是它自己, client端是nobody。
no_root_squash: root用户创建的文件属主和属组还是root, 其他人server端是它自己uid, client端是nobody。
all_squash: 不管是root还是其他普通用户创建的文件的属主和属组都是nobody

 anonuid和anongid参数和all_squash一起使用。 all_squash表示不管是root还是其他普通用户从客户端所创建的文件在服务器端的拥有者和所属组都是nfsnobody;服务端为了对文件做相应管理,可以设置anonuid和anongid进而指定文件的拥有者和所属组。

NFS任务解决方案

创建一个共享目录,如/share

# mkdir /share

编写NFS主配置文件

# vim /etc/exports共享目录    共享选项
/share      192.168.66.1/24(rw,sync)

启动相关的NFS服务

手动加载NFS共享服务时,应该先启动rpcbind,再启动nfs

systemctl start rpcbind
systemctl start nfssystemctl enable rpcbind
systemctl enable nfs# ss -naltp | grep 111    # 111端口

 查看本机发布的 NFS 共享目录

exportfs -rvexporting 192.168.66.1/24:/share
showmount -eExport list for localhost.localdomain:
/share 192.168.66.1/24
在客户机中访问 NFS 共享资源
安装 nfs-utils、rpcbind 软件包
rpm -q rpcbind nfs-utils
yum -y install nfs-utils rpcbindsystemctl start rpcbind
systemctl enable rpcbind
查看 NFS 服务器端共享了哪些目录
showmount -e 192.168.66.138Export list for 192.168.66.138:
/share 192.168.66.1/24
mkdir /nfsdata
mount 192.168.66.138:/share /nfsdata
df -Th文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G   13M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  4.8G   13G   28% /
/dev/sda1               xfs      1014M  187M  828M   19% /boot
tmpfs                   tmpfs     378M   60K  378M    1% /run/user/0
/dev/sr0                iso9660   9.6G  9.6G     0  100% /run/media/root/CentOS 7 x86_64
192.168.66.138:/share   nfs4       17G  4.8G   13G   28% /nfsdata

搭建Web服务器

# yum install httpd -y
# systemctl start httpd

当Apache软件启动完毕后,会自动占用计算机的80端口。

80端口指向web服务器的目录 => /var/www/html

所以项目源代码都可以直接存放于 /var/www/html 目录

记得关闭防火墙与SELinux

在Web服务器中挂载NFS

# mkdir /var/www/html/mediamount 192.168.66.138:/share /var/www/html/media
或
mount -t nfs 192.168.66.138:/share /var/www/html/media
或
mount.nfs 192.168.66.138:/share /var/www/html/media

上传到NFS服务器的/share

第一步:使用MX上传素材到/share目录(NFS服务器)

第二步:在Web服务器中,ll /var/www/html/media目录

第三步:通过浏览器访问该文件

设置自动挂载
vim /etc/fstab192.168.66.138:/share /var/www/html/media nfs defaults,_netdev 0 0

强制卸载 NFS

如果服务器端NFS服务突然间停掉了,而客户端正在挂载使用时,在客户端就会出现执行 df -h 命令卡死的现象。

这个时候直接使用 umount 命令是无法直接卸载的,需要加上 -lf 选项才能卸载。

umount -lf /var/www/html/media

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

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

相关文章

蓝牙协议架构与调试工具详解(含 BLE、HCI 命令、调试命令)

本文介绍蓝牙协议从物理层到应用层的完整通信流程,并详解了 Linux 下主流蓝牙调试工具的使用方法,适用于嵌入式蓝牙驱动开发、BLE调试、通信协议分析等场景。 🔧 1. 蓝牙架构概览 ✅ 芯片架构 单模芯片:仅支持 BLE 或 Classic 蓝…

激光雷达定位算法在FPGA中的实现——section3 Matlab实现和校验

1、校验section2的计算方法是否正确 以section1里面的图示 举个例子: 1.1 手动计算 可以计算出4*4方阵C相关参数: 可以计算出余子式矩阵C_1相关参数:

数据结构(2)线性表-顺序表

知道一个算法的好坏怎么去判断以后,就该正式的去学习一些常见的数据结构,当然,这里的数据结构仅仅是初阶,不会挨个一个一个学完,后期慢慢来。 一、数据结构总论 一般按照逻辑结构和存储结构来分类,在初阶…

性能测试详解

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、什么是性能测试 先看下百度百科对它的定义 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试 我们可以认为…

每日Prompt:三只动物与地标自拍磨砂玻璃后的虚实对比剪影

提示词 一张黑白照片,展示了一个[主体]在磨砂或半透明表面后的模糊剪影。其[部分]轮廓清晰,紧贴表面,与其余朦胧、模糊的身影形成鲜明对比。背景是柔和的灰色渐变色调,增强了神秘和艺术的氛围。

Android多媒体——媒体解码器初始化(十五)

通过上一篇文章我们了解了媒体解码器的创建过程,并且可以看到,在媒体解码器创建成功后,分别调用了 configure()、setCallback() 和 start() 函数来对解码器进行配置、回调和启动。这里我们就来详细看一下这几个过程。 一、配置解码器 首先看一下解码器的配置,在 NuPlayerD…

每周资讯 | 腾讯Q1财报:国内游戏业务收入同比增长24%;Tripledot 8亿美元收购AppLovin游戏业务

内容速览: 广州“服务贸易和数字贸易22条”助推游戏产业发展Tripledot Studios 8亿美元收购AppLovin游戏业务苹果紧急申请暂停执行AppStore新规4月中国手游出海收入下载榜,点点互动《Kingshot》收入激增 腾讯Q1财报:国内游戏业务收入同比增长…

本地跑通vue-element-admin项目

GitHub - PanJiaChen/vue-element-admin: :tada: A magical vue admin https://panjiachen.github.io/vue-element-admin 通过加速clone到本地 git clone https://gitclone.com/github.com/PanJiaChen/vue-element-admin.git # 进入项目目录 cd vue-element-admin # 安装依赖…

Go语言交替打印问题及多种实现方法

Go语言交替打印问题及多种实现方法 在并发编程中,多个线程(或 goroutine)交替执行任务是一个经典问题。本文将以 Go 语言为例,介绍如何实现多个 goroutine 交替打印数字的功能,并展示几种不同的实现方法。 Go 语言相关…

支持蓝牙5.0和2.4G私有协议芯片-PHY6222

PHY6222QC-W04C 是一款适用于蓝牙低功耗(BLE)5.2 应用的片上系统(SoC)。它搭载 ARM Cortex™-M0 32 位处理器,配备 64KB SRAM、512K Flash、96KB ROM、256 bit efuse ,以及超低功耗、高性能的多模式射频模块…

git相关配置

git相关配置 欢迎使用Markdown编辑器修改Git默认编辑器为vimgit配置默认用户名和密码: 欢迎使用Markdown编辑器 修改Git默认编辑器为vim #方法1:直接执行 git config --global core.editor vim#方法2:修改git的配置文件.git/config文件&am…

C语言实现INI配置文件读取和写入

一.INI文件介绍 INI配置文件是一种简单的文本文件,用于存储配置信息,通常由一个或多个节(section)组成,每个节包含多个键值对(Key-Value)格式。INI文件易于阅读和编辑,广泛应用于多…

Vue 3 打开 el-dialog 时使 el-input 获取焦点

运行代码:https://andi.cn/page/622178.html 效果:

【程序员AI入门:模型】19.开源模型工程化全攻略:从选型部署到高效集成,LangChain与One-API双剑合璧

一、模型选型与验证:精准匹配业务需求 (一)多维度评估体系 通过量化指标权重实现科学选型,示例代码计算模型综合得分: # 评估指标权重与模型得分 requirements {"accuracy": 0.4, "latency": …

卡顿检测与 Choreographer 原理

一、卡顿检测的原理 卡顿的本质是主线程(UI 线程)未能及时完成某帧的渲染任务(超过 16.6ms,以 60Hz 屏幕为例),导致丢帧(Frame Drop)。检测卡顿的核心思路是监控主线程任务的执行时…

物联网僵尸网络防御:从设备认证到流量染色

一、IoT设备的安全困境 典型物联网设备存在硬编码密钥问题: // 固件中的危险代码示例 const char* DEFAULT_KEY "A1B2-C3D4-E5F6"; // 厂商预设密钥 void connect_server() {authenticate(DEFAULT_KEY); // 密钥从未更新 }此类漏洞导致某智能家居平台…

二叉树子树判断:从递归到迭代的全方位解析

一、题目解析 题目描述 给定两棵二叉树root和subRoot,判断root中是否存在一棵子树,其结构和节点值与subRoot完全相同。 示例说明 示例1: root [3,4,5,1,2],subRoot [4,1,2] 返回true,因为root的左子树与subRoot完…

Springboot 异步场景 使用注解 @Async 及 自定义线程池分模块使用

目录 前言一、Springboot项目如何开启异步?二、存在的问题三、自定义线程池四、自定义线程池使用五、阻塞队列和拒绝策略 前言 当开发中遇到不影响主流程任务时,使用异步去处理。 如有以下场景: 1、业务需要生成一个季度的数据进行员工排名&…

【GNN笔记】Signed Graph Convolutional Network(12)【未完】

视频链接:《图神经网络》 Signed Graph Convolutional Network 之前介绍的GNN模型主要集中在无符号的网络(或仅由正链接组成的图)上,符号 图带来的挑战,主要集中在于 否定链接,与正链接相比,它不…

米勒电容补偿的理解

米勒电容补偿是使运放放大器稳定的重要手法,可以使两级运放的两个极点分离,从而可以得到更好的相位裕度。 Miller 电容补偿的本质是增加一条通路流电流,流电流才是miller效应的本质。给定一个相同的输入,Miller 电容吃掉的电流比…