NFS的共享与挂载
一、NFS网络文件服务
1.1简介
NFS(Network File System 网络文件服务) 文件系统(软件)文件的权限 NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。 通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源 NFS 也是 NAS 存储 设备必然支持的一种协议。
NFS 它是文件系统,是操作系统内核来管理的
[root@localhost ~]#ls /lib/modules/3.10.0-693.el7.x86_64/kernel/fs/
binfmt_misc.ko.xz ceph dlm fat gfs2 lockd nfs_common overlayfs udf
btrfs cifs exofs fscache isofs mbcache.ko.xz nfsd pstore xfs
cachefiles cramfs ext4 fuse jbd2 nfs nls squashfs
1.2NFS存储
NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。(远端过程调用:自己没有这种功能,调用别人的功能) NFS 也是 NAS 存储 设备必然支持的一种协议 以完成远 程到本地的映射过程。在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务, 前者用于 NFS 共享发布和访问,后者用于 RPC 支持。 手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。
特点: 采用TCP/IP传输网络文件 安全性低 简单易操作 适合局域网环境
1.3NFS原理
NFS优势:
节省本地存储空间,将常用的数据如:/home 目录,存放在NFS服务器上且可以通过网络访问,将减少本地磁盘的使用率。
1.4NFS软件介绍
软件包:nfs-utils(包括服务器端和客户端)
相关软件包:rpcbind(必须)
nfs端口号不固定 RPC端口号111
NFS服务主要进程:
-
rpc.nfsd 最主要的NFS进程,管理客户端是否可登录
-
rpc.mountd 挂载和卸载NFS文件系统,包括权限管理
-
rpc.lockd 非必要,管理文件锁,避免同时写出错
-
rpc.statd 非必要,检查文件一致性,可修复文件
日志:/var/lib/nfs/
区别:
ftp:装客户端、服务端、设置,比较复制
nfs:简单,高效
NFS的主包:
nfs-utils
rpcbind
主配置文件路径:
/etc/exports
文件格式:
共享目录 可以访问的主机地址 (权限)
/share *
systemctl start nfs
exportfs -v:显示本机服务端的共享目录
exportfs -r:重新加载配置文件
1.5NFS共享配置文件格式
/dir 主机1(opt1,opt2) 主机2(opt1,opt2)...
共享目录 共享给哪个主机
格式说明:
- 以#开始的行为注释
- 主机格式
anonymous:表示使用*通配所有客户端
单个主机:ipv4,ipv6,FQDN
IP networks:两种掩码格式均支持
172.18.0.0/255.255.0.0
172.18.0.0/16
wildcards:主机名通配,例如:*.magedu.com,IP不可以
netgroups:NIS域的主机组,@group_name
每个条目指定目录导出到的哪些主机,及相关的权限和选项
默认选项:(ro,sync,root_squash,no_all_squash)
ro,rw 只读和读写
async 异步,数据变化后不立即写磁盘,先写入到缓冲区中,过一段时间再写入磁盘,性能高,安全性低
sync(1.0.0后为默认)同步,数据在请求时立即写入共享存储磁盘,性能低,安全性高
root_squash (默认)远程root映射为nfsnobody,UID为65534,CentOS8 为nobody,CentOS
7以前的版本为nfsnobody
no_root_squash 远程root映射成NFS服务器的root用户
all_squash 所有远程用户(包括root)都变成nfsnobody,CentOS8 为nobody
no_all_squash (默认)保留共享文件的UID和GID
anonuid和anongid 指明匿名用户映射为特定用户UID和组GID,而非nobody,可配合all_squash使用
/data/nfs1 *(rw,all_squash,anonuid=1002,anongid=1002)
共享规则:
#查看当前共享信息
exportfs -v
[root@localhost ~]#exportfs -r
#重新加载服务配置
exportfs: No options for /share *: suggest *(sync) to avoid warning###客户机上如何查看共享
[root@localhost yum.repos.d]#showmount -e 192.168.91.100
#
Export list for 192.168.91.100:
/share *[root@localhost yum.repos.d]#mount 192.168.91.100:/share /mnt/nfs1/
# 对方地址 共享文件夹 挂载点
[root@localhost yum.repos.d]#df
[root@localhost data]#chmod 777 /data/ -R
[root@localhost data]#chmod 755 /data/ -R
#恢复权限
[root@localhost data]#setfacl -m u:nfsnobody:rwx /data/nfs1
#只给 nfsnobody用户 权限
[root@localhost data]#setfacl -b /data/nfs1
#删除acl 列表
[root@localhost nfs1]#ll
#变成nobody 由root_squash(压缩缩小) 决定
总用量 4
-rw-r--r--. 1 nfsnobody nfsnobody 0 3月 21 01:17 111.txt
-rwxrwxrwx. 1 root root 2259 3月 21 01:12 passwd
#普通用户不压榨 由 no_all_squash决定/share *(rw,no_root_squash)
###用户 uid问题####
统一压榨成指定用户
二、NFS工具
2.1exportfs
用于管理NFS导出的文件系统
常见选项:
-v #查看本机所有NFS共享
-r #重读配置文件,并共享目录
-a #输出本机所有共享
-au #停止本机所有共享
2.2showmount
用于客户端查看服务端的共享目录
常见用法:
showmount -e hostname
[root@centos7 ~]#showmount -e 10.0.0.8
Export list for 10.0.0.8:
/data/wordpress *
2.3mount.nfs
永久挂载:
客户端NFS挂载
NFS相关的挂载选项:man 5 nfs
fg #(默认)前台挂载
bg #后台挂载
hard #(默认)持续请求
soft #非持续请求
intr #和hard配合,请求可中断
rsize #和wsize 一次读和写数据最大字节数,rsize=32768
_netdev #无网络连接不挂载
vers #指定版本,客户端centos8默认4.2 ,centos7默认4.1 centos6默认4.0
例子
mount -o rw,nosuid,fg,hard,intr 172.16.0.1:/testdir /mnt/nfs/
#临时挂载
[root@centos7 ~]#mkdir /mnt/nfs
[root@centos7 ~]#mount 10.0.0.8:/data/wordpress /mnt/nfs
[root@centos7 ~]#ls /mnt/nfs
index.html
[root@centos7 ~]#df -T /mnt/nfs
Filesystem Type 1K-blocks Used Available Use% Mounted on
10.0.0.8:/data/wordpress nfs4 52403200 398336 52004864 1% /mnt/nfs永久挂载
vim /etc/fstab
172.16.0.1:/public /mnt/nfs nfs defaults,_netdev(无网络就不加载) 0 0
三、NFS共享
systemctl stop firewalld
setenforce 0
#关闭防火墙和核心防护
rpm -q nfs-utils
rpm -q rpcbind
#看一下这两个软件有没有安装
systemctl status nfs
systemctl status rpcbind
#看一下有没有开启
mkdir /share
mkdir /data
#建两个文件夹
vim /etc/exports
#进入nfs的配置文件
exportfs -v
#显示本机服务端的共享目录
exportfs -r
#重新加载配置文件
showmount -e 172.16.18.5
#用于客户端查看服务端的共享目录
mount 172.16.18.5:/data /mnt
#挂载
试验一下,使用data是否等于使用mnt
试验一下,在客户端,能否查看,创建服务端的文件
vim /etc/exports
#在服务端,在nfs配置文件里,给他们加上读写权限
exportfs -v
#显示本机服务端的共享目录
exportfs -r
#重新加载配置文件
解决权限变更后,为什么还是创建不了?
创建文件的用户身份怎么不对?
为什么会出现,有的用户身份改变,有的不变呢?
如果不想身份改变
注意:在客户端和服务端,uid一样的用户、名字不同,可能会导致文件打不开
四、启动httpd服务搭建网站,实验NFS挂载
注意:在做之前,先开启NFS共享
1.7-2服务器
systemctl stop firewalld
setenforce 0
#关闭防火墙和核心防护
yum install httpd -y
#安装httpd服务
cd /var/www/html
#切到网页主文件夹下
echo 7-2 > index.html
#在index.html中写入内容:7-2
cat index.html
#查看一下内容
systemctl start httpd
#开启httpd服务
2.7-3服务器
systemctl stop firewalld
setenforce 0
#关闭防火墙和核心防护
yum install httpd -y
#安装httpd服务
systemctl start httpd
#开启httpd服务
cd /var/www/html
#切到网页主文件夹下
vim index.html
#在index.html中写入内容:7-2
systemctl stop firewalld
setenforce 0
#关闭防火墙和核心防护
vim index.html
#在index.html中写入ky35
mount 172.16.18.5:/data /var/www/html
#在7-2服务器上挂载,地址为7-1的
mount 172.16.18.5:/data /var/www/html
#在7-3服务器上挂载
五、工作环境
5.1误将 rpm 软件删除
[root@localhost ~]#type rpm
#是一个外部命令
rpm 是 /usr/bin/rpm[root@localhost ~]#rpm -e rpm
#依赖性会组织
错误:依赖检测失败:
rpm = 4.11.3-25.el7 被 (已安裝) rpm-libs-4.11.3-25.el7.x86_64 需要
rpm 被 (已安裝) color-filesystem-1-13.el7.noarch 需要
rpm = 4.11.3-25.el7 被 (已安裝) rpm-python-4.11.3-25.el7.x86_64 需要
rpm >= 0:4.11.3-22 被 (已安裝) yum-3.4.3-154.el7.centos.noarch 需要
rpm >= 4.1.1 被 (已安裝) createrepo-0.9.9-28.el7.noarch 需要
rpm 被 (已安裝) policycoreutils-2.5-17.1.el7.x86_64 需要
rpm 被 (已安裝) cmake-2.8.12.2-2.el7.x86_64 需要[root@localhost ~]#rpm -e rpm --nodeps
#忽略依赖关系
[root@localhost ~]#yum install rpm -y
#yum 也是 使用rpm 无法安装了
error: Unable to open /usr/lib/rpm/rpmrc for reading: No such file or directory.
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
进入救援模式
1 继续
5.2自行打包后建立元数据
mount /dev/sr0 /mnt/
cp /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
mkdir test
mv tree-1.6.0-10.el7.x86_64.rpm test/
cd test
mkdir packages
mv tree-1.6.0-10.el7.x86_64.rpm packages/
createrepo -v test
cd /etc/yum.repos.d/
mkdir bak
mv *.repo bak/vim tree.repo
[tree]
name=tree
baseurl=file:///data/test
gpgcheck=0yum clean all
yum makecache
yum install tree -y
5.3epel源本地
没有外网 又想使用这个epel源
[root@localhost ~]#yum install epel-release
#安装epel源 生成epel仓库文件
[root@localhost ~]# reposync -r epel -p /root/
#下载同步epel源 根据epel仓库文件去找目录[root@localhost ~]# yum -y install createrepo
#安装建立元数据命令
[root@localhost ~]# createrepo -v /root/epel
#建立元数据 软件目录 依赖关系
[root@localhost ~]# ls
anaconda-ks.cfg epel
[root@localhost ~]# cd epel/
[root@localhost epel]# ls
#查看元数据
ftp
http
mkisofs -r -o /root/xxx.iso /data/centos7/epel
制作成镜像
5.4离线安装软件
root@localhost yum.repos.d]#yum install nginx
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 nginx.x86_64.1.1.20.1-9.el7 将被 安装
--> 正在处理依赖关系 nginx-filesystem = 1:1.20.1-9.el7,它被软件包 1:nginx-1.20.1-9.el7.x86_64 需要
--> 正在处理依赖关系 nginx-filesystem,它被软件包 1:nginx-1.20.1-9.el7.x86_64 需要
--> 正在处理依赖关系 libssl.so.1.1(OPENSSL_1_1_1)(64bit),它被软件包 1:nginx-1.20.1-9.el7.x86_64 需要
--> 正在处理依赖关系 libssl.so.1.1(OPENSSL_1_1_0)(64bit),它被软件包 1:nginx-1.20.1-9.el7.x86_64 需要
--> 正在处理依赖关系 libcrypto.so.1.1(OPENSSL_1_1_0)(64bit),它被软件包 1:nginx-1.20.1-9.el7.x86_64 需要
--> 正在处理依赖关系 libssl.so.1.1()(64bit),它被软件包 1:nginx-1.20.1-9.el7.x86_64 需要
--> 正在处理依赖关系 libcrypto.so.1.1()(64bit),它被软件包 1:nginx-1.20.1-9.el7.x86_64 需要
--> 正在检查事务
---> 软件包 nginx-filesystem.noarch.1.1.20.1-9.el7 将被 安装
---> 软件包 openssl11-libs.x86_64.1.1.1.1k-2.el7 将被 安装
--> 解决依赖关系完成依赖关系解决
==========================================================================================================
Package 架构 版本 源 大小
==========================================================================================================
正在安装:
nginx x86_64 1:1.20.1-9.el7 epel 587 k
为依赖而安装:
nginx-filesystem noarch 1:1.20.1-9.el7 epel 24 k
openssl11-libs x86_64 1:1.1.1k-2.el7 epel 1.5 M事务概要
==========================================================================================================
安装 1 软件包 (+2 依赖软件包)总下载量:2.1 M
安装大小:5.2 M
Is this ok [y/d/N]:
[root@localhost yum.repos.d]# yum install nginx --downloadonly --downloaddir=/data/
[root@localhost http]#yum install nginx --downloadonly --downloaddir=/nginx/
--downloadonly #只下载相关包默认至某一目录
--downloaddir=绝对目录路径 #下载到某一目录真实 内网外网不可能互通
rpm
包依赖?
rpm
相关文章:

NFS的共享与挂载
一、NFS网络文件服务 1.1简介 NFS(Network File System 网络文件服务) 文件系统(软件)文件的权限 NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。 通过使用 NFS 协议,客户机可以像访…...

函数式编程的Java编码实践:利用惰性写出高性能且抽象的代码
转载链接 本文会以惰性加载为例一步步介绍函数式编程中各种概念,所以读者不需要任何函数式编程的基础,只需要对 Java 8 有些许了解即可。 一 抽象一定会导致代码性能降低? 程序员的梦想就是能写出 “高内聚,低耦合”的代码&…...

2024年甘肃省职业院校技能大赛信息安全管理与评估 样题二 模块二
竞赛需要完成三个阶段的任务,分别完成三个模块,总分共计 1000分。三个模块内容和分值分别是: 1.第一阶段:模块一 网络平台搭建与设备安全防护(180 分钟,300 分)。 2.第二阶段:模块二…...
mysql 一对多 合并多个通过 逗号拼接展示
mysql 一对多 合并多个通过 逗号拼接展示 以上内容由chatgpt中文网 动态生成 SELECTuser_id,project_id,GROUP_CONCAT(project_specs_id) AS merged_specs_ids FROMzt_medication_specs_total WHEREspecs_num_total < 5 GROUP BYuser_id, project_id;laravel model 对应写…...

Java零基础教学文档第五篇:jQuery
今日新篇章 【jQuery】 【主要内容】 jQuery简介 jQuery安装 jQuery语法 jQuery选择器 jQuery事件处理 jQueryDOM操作 jQuery元素遍历 jQuery过滤 jQuery其它方法 【学习目标】 1.jQuery简介 1.1 jQuery简介 jQuery 库可以通过一行简单的标记被添加到网页中。 1.…...
samba
samba 文章目录 samba1. samba简介2. samba访问3. 示例 1. samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。 在此之前我们已经了解了NFS,NFS与samba一样,也是在网络中实现文件共享的一种实现&a…...

「云渲染科普」3dmax vray动画渲染参数如何设置
动画渲染一直都是占用时间最多的地方,动画帧数通常 1 秒在 25 帧或者以上,电脑通常需要对每一帧的画面分批渲染,通常本地电脑由于配置上的限制,往往无法在短时间内快速的完成渲染任务。这时“云渲染”则成为了动画渲染的主要方案&…...

【GCC】6 接收端实现:周期构造RTCP反馈包
基于m98代码。GCC涉及的代码,可能位于:webrtc/modules/remote_bitrate_estimator webrtc/modules/congestion_controller webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.cc webrtc 之 RemoteEstimatorProxy 对 remote_bitrate_estimator 的 RemoteEstimato…...

【RTOS】快速体验FreeRTOS所有常用API(6)事件组
目录 六、事件组6.1 基本概念6.2 创建6.3 设置事件6.4 等待事件6.5 实例 六、事件组 该部分在上份代码基础上修改得来,代码下载链接: https://wwzr.lanzout.com/iihn01la39je 密码:dtr0 该代码尽量做到最简,不添加多余的、不规范的代码。 内容…...
Springboot开发的大学生寝室考勤系统刷脸进出宿舍系统论文
摘要 近年来随着社会科学技术的全面进步及高等教育的普及,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期,学生作为预备的高新技术人才数量也在急剧上升,随之而来的就是高校管理上的一系列问题,首当其冲的便是高校应对…...

2024年美赛数学建模思路 - 复盘:校园消费行为分析
文章目录 0 赛题思路1 赛题背景2 分析目标3 数据说明4 数据预处理5 数据分析5.1 食堂就餐行为分析5.2 学生消费行为分析 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 赛题背景 校园一卡通是集…...

测试覆盖率 之 Cobertura的使用
什么是代码覆盖率? 代码覆盖率是对整个测试过程中被执行的代码的衡量,它能测量源代码中的哪些语句在测试中被执行,哪些语句尚未被执行。 为什么要测量代码覆盖率? 众所周知,测试可以提高软件版本的质量和可预测性。…...
vue表格插件vxe-table导出 excel
vxe-table 默认支持导出 CSV、HTML、XML、TXT格式的文件,不支持 xlsx 文件 要想导出 xlsx 文件,需要使用 vxe-table-plugin-export-xlsx 依赖 参考:https://cnpmjs.org/package/vxe-table-plugin-export-xlsx/v/2.1.0-beta 1.安装 npm inst…...

stable diffusion使用相关
IP Adapter,我愿称之它为SD垫图 IP Adapter是腾讯lab发布的一个新的Stable Diffusion适配器,它的作用是将你输入的图像作为图像提示词,本质上就像MJ的垫图。 IP Adapter比reference的效果要好,而且会快很多,适配于各种…...
Center项目创建——数据初始化(Linux/Windows版本)
本博客主要讲述Center的模块安装配置和数据初始化 1、定义安装Install函数,IP地址由makefile自动传入,也就是用户自动传入 bool Install(std::string ip); 2、编写Install函数 #define CENTER_CONF "ip bool XCenter::Install(std::string ip)…...

保送阿里云的云原生学习路线
近期好多人都有咨询学习云原生有什么资料。与其说提供资料不如先说一说应该如何学习云原生。 Linux基础知识:云原生技术通常在Linux环境中运行,因此建议首先掌握Linux的基础知识,包括命令行操作、文件系统、权限管理等。 容器化技术&#x…...

【昕宝爸爸小模块】深入浅出之JDK21 中的虚拟线程到底是怎么回事(二)
➡️博客首页 https://blog.csdn.net/Java_Yangxiaoyuan 欢迎优秀的你👍点赞、🗂️收藏、加❤️关注哦。 本文章CSDN首发,欢迎转载,要注明出处哦! 先感谢优秀的你能认真的看完本文&…...

两周掌握Vue3(三):全局组件、局部组件、Props
文章目录 一、全局组件1.创建全局组件2.在main.js中注册全局组件3.使用全局组件 二、局部组件1.创建局部组件2.在另一个组件中注册、使用局部组件 三、Props1.定义一个子组件2.定义一个父组件3.效果 代码仓库:跳转 本博客对应分支:03 一、全局组件 Vue…...
Web前端篇——element-plus组件设置全局中文
背景:在使用el-date-picker组件时,发现组件中的文字默认都是英文。 设置全局中文的方法如下:(本文只介绍CDN方式) <script src"//unpkg.com/element-plus/dist/locale/zh-cn"></script> <s…...

【iOS】数据存储方式总结(持久化)沙盒结构
在iOS开发中,我们经常性地需要存储一些状态和数据,比如用户对于App的相关设置、需要在本地缓存的数据等等,本篇文章将介绍六个主要的数据存储方式 iOS中数据存储方式(数据持久化) 根据要存储的数据大小、存储数据以及…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...