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=0

yum 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  

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

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

相关文章

【数据库8.0备份还原】之Percona XtraBackup

目录 Percona XtraBackup备份数据库1、Percona XtraBackup的介绍2、Percona XtraBackup安装3、Percona XtraBackup8.0的使用1.全库备份和还原2.增量备份和还原3.差异备份和还原4.差异备份和增量备份的区别5.压缩备份和还原 Percona XtraBackup备份数据库 yum源安装&#xff1a…

Spring基础属性一览:注释、对象装配、作用域、生命周期

在Spring中想要更简单的存储和读取对象的核心是使用注解,也就是我们接下来要学的Spring中相关注解。 之前我们存储Bean时,需要在自己添加的配置文件中添加一行bean才行: 而现在我们只需要一个注解就可以替代之前要写的一行配置的繁琐了。 …

消息队列的作用与使用场景?

一、消息队列的作用 队列的主要作用是消除高并发访问高峰,加快网站的响应速度。 在不使用消息队列的情况下,用户的请求数据直接写入数据库,在高并发的情况下,会对数据库造成巨大的压力,同时也使得系统响应延迟加剧。 …

HDFS WebHDFS 读写文件分析及HTTP Chunk Transfer Encoding相关问题探究

文章目录 前言需要回答的首要问题DataNode端基于Netty的WebHDFS Service的实现基于重定向的文件写入流程写入一个大文件时WebHDFS和Hadoop Native的块分布差异 基于重定向的数据读取流程尝试读取一个小文件尝试读取一个大文件 读写过程中的Chunk Transfer-Encoding支持写文件使…

postman 简单测试(二)

接着上一节 https://blog.csdn.net/myy2012/article/details/135616719 1.Tests的简单使用(后置处理器) 具体的截图是每一步操作后得来的,记录方便自己以后查阅,也希望能帮助到有缘人。 1.1 把返回值存入到环境变量中&#xff…

protobuf学习日记 | 初识protobuf

目录 前言 一、序列化与反序列化 二、protobuf是什么 三、protobuf的使用特点 四、快速上手 1、proto文件编写 2、编译proto文件 3、序列化与反序列化的使用 前言 这是小编新开的一个栏目,为了记录自己在学习ProtoBuf的历程,也希望能帮助大家&am…

亚马逊店飞飞ERP系统,跟卖+铺货+物流发货模式综合一体的ERP系统

跨境电商亚马逊,目前为止电商行业比较靠前的电商平台!那么有人做电商,就会有人出单,有人出单就会有中转仓需求,代打包,代贴单!那么这一切都是有一套逻辑完善的ERP来完成!前端通过授权…

将.NET应用转换成Window服务

写在前面 本文介绍了将.NET8.0应用程序转换成Windows服务。 需要在NuGet中获取并安装:Microsoft.Extensions.Hosting.WindowsServices 包 代码实现 using System.Runtime.InteropServices; using WorkerService1;public class Program {public static void Main…

Kafka 简介

目录 1、概念介绍 Kafka 由来 ZooKeeper Kafka 特性 Kafka 使用场景 Kafka 复制备份 2、Kafka 架构 Broker Topic Producer Partition Consumers Consumer Group Distribution 1、概念介绍 Kafka 由来 Kafka 是最初由 Linkedin 公司开发,是一个分布…

aigc修复美颜学习笔记

目录 GFPGAN进行图像人脸修复 美颜 修复畸形手势 GFPGAN进行图像人脸修复 原文:本地使用GFPGAN进行图像人脸修复_人相修复处理网页 csdn-CSDN博客 人脸修复 1.下载项目和权重文件 2.部署环境 3.下载权重文件 4.运行代码 5.网页端体验 首先来看一下效果图 1.下…

uni-app的项目创建和环境搭建

uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。 第一步…

clip安装使用教程

1.配置环境 安装依赖 pip install transformers pip install torch 看缺失什么包自己先安装好 2.安装clip 进入https://github.com/openai/CLIP,先将CLIP文件夹下载到本地,随便什么位置。即点击下图中的Download ZIP,下载到本地后进行解压…

HNU-编译原理-实验2-Bison

编译原理实验2Bison 计科210X 甘晴void 202108010XXX 实验要求 详细的实验项目文档为 https://gitee.com/coderwym/cminus_compiler-2023-fall/tree/master/Documentations/lab2 实验步骤 本次实验需要在 Lab1 已完成的 flex 词法分析器的基础上,进一步使用 b…

某侠网js逆向wasm解析

本次目标地址如下,使用base64解密获得 aHR0cHM6Ly93d3cud2FpbWFveGlhLm5ldC9sb2dpbg 打开网址,本次的目标是登录接口,如下图 本文主要讲解wasm的解析,所以对其他参数不做逆向处理,本次由wasm加密的参数只有sign一个&a…

DApp:去中心化的革命与挑战

DApp(去中心化应用)是一种基于区块链技术的应用程序,与传统的中心化应用程序不同,DApp具有去中心化、透明、不可篡改等特性。本文将介绍DApp的前世今生,以及它的优势和未来发展。 DApp的前世可以追溯到区块链技术的出现…

运维工具之tmux命令

tmux终端复用器的使用 1.tmux的概念 ​ tmux,“Terminal MultipleXer”,意思是"终端复用器"。是一个可以让人们通过一个窗口操作多个会话的工具,对于经常操作Linux系统的运维人员来说,绝对是一款提高工作效率的利器。 2.tmux能帮…

Kubernetes API 和流量控制:管理请求数量和排队进程

本文描述了我们最近遇到的一个真实案例:Kubernetes API 因其中一个集群中的大量请求而瘫痪。今天,我们将讨论我们如何处理这个问题,并提供一些关于如何预防它的提示。 高并发搞崩 Kubernetes API 一个非常普通的早晨,我们开始了…

SSC | Blue Prism报告:2024年智能自动化(IA)7大趋势预测

近日,RPA行业领导者SS&C | Blue Prism发布《2024智能自动化(IA)趋势与预测》报告。报告中提到,智能自动化(IA)与流程管理的有效融合,是实现数字化转型成功的核心。采用业务流程管理&#xf…

免费开源OCR 软件Umi-OCR

Umi-OCR 是一款免费、开源、可批量的离线 OCR 软件,基于 PaddleOCR,适用于 Windows10/11 平台 免费:本项目所有代码开源,完全免费。方便:解压即用,离线运行,无需网络。高效:自带高效…