NSF服务器

1.简介

1.1 NFS背景介绍

        NFS是一种古老的用于在UNIX/Linux主机之间进行文件共享的协议。它古老到你必须穿着白大补才能接近一台计算机的年代。在那个年代,所有的联网计算机都被认为是可信的,而不像现今这样,任何人都有多种多样方法能连接到你的计算机。因此,NFS在开发的时候专注于快速及易用的文件共享,而忽视了其安全性设计
        NFS(Network File System,网络文件系统)是FreeBSD支持的文件系统中的一种,它允许网络中的计算机(不同的计算机、不同的操作系统)之间通过TCP/IP网络共享资源,主要在unix系列操作系统上使用。
        NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中看来,那个远程主机的目录就好像是自己的一个磁盘分区一样。
        由于NFS支持的功能比较多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此NFS的功能所对应的端口并不固定,而是随机取用一些未被使用的小于1024的端口用于传输。但如此一来就会产生客户端连接服务器的问题,因为客户端需要知道服务器端的相关端口才能够连接。此时就需要RPC
        RPC(Remote Procedure Call,远程过程调用):由于服务器在启动NFS时会随机选取数个端口号,并主动向RPC注册,所以RPC知道每个NFS功能所对应的端口号,RPC将端口号通知给客户端,让客户端可以连接到正确的端口上去。RPC采用固定端口号port 111来监听客户端的需求并向客户端响应正确的端口号。

        注:在启动NFS之前,要先启动RPC,否则NFS会无法向RPC注册。另外,RPC若重新启动,原来注册的数据会消失不见,因此RPC重启后,它管理的所有服务都需要重新启动以重新向RPC注

1.2 生产应用场景

        NFS网络文件系统很像windows系统的网络共享、安全功能、网络驱动器映射,这也和linux系统里的Samba服务器类似。只不过一般情况下,windows网络共享服务或Samba服务用于办公局域网共享,而互联网中小型网站集群架构后端常用NFS进行数据共享,如果是大型网站,那可能会用到更复杂的分布式文件系统
        在企业集群架构的工作场景中,NFS作为所有前端web服务的共享存储,存储的内容一般包括网站用户上传的图片、附件、头像等,注意,网站的程序代码就不要放在NFS共享里了,因为网站程序是开发运维人员统一发布,不存在发布延迟问题,直接批量发布到web节点提供访问比共享到NFS里访问效率会更高些。
        NFS是当前互联网系统架构中常用的数据存储服务之一,中小型网站 (2000万pv(页面浏览量)以下)公示应用频率居高,大公司或门户除了使用NFS外,还可能会使用更为复杂的分布式文件系统

2.NFS工作原理

2.1 实例图

2.2 流程

首先服务器端启动RPC服务,并开启111端口

服务器端启动NFS服务,并向RPC注册端口信息

客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口

服务端的RPC(portmap)服务反馈NFS端口信息给客户端。 (服务器搭建成功后可以使用下列命令查看,一般都是2049)

3.NFS的使用

3.1.安装

[root@server ~]# cat /etc/services |grep -w nfs      # 查看当前NFS使用的端口
nfs             2049/tcp        nfsd shilp      # Network File System
nfs             2049/udp        nfsd shilp      # Network File System
nfs             2049/sctp       nfsd shilp      # Network File System
[root@server ~]# yum install nfs-utils -y                # 安装NFS

[root@server ~]# yum install rpcbind -y                 # 安装RPC(一般是默认已经安装)

3.2.配置文件

        主配置文件: /etc/exports,文件不一定存在
        /usr/sbin/exportfs:该文件是维护NFS共享目录资源的命令文件,可以使用命令重新共享/etc/exports的目录资源、卸载共享目录
        日志目录: /var/lib/nfs
        权限设置文件:
/var/lib/nfs/etab

3.3.主配置文件分析

         etc/exports文件默认为空文件,需要输入nfs共享命令

格式:          共享目录的路径        允许访问的NFS客户端 (共享权限参数)    

      共享权限参数  :(一般要写三大部分【权限     映射账户    传输模式:syns、async】) 

分析:                                                                        
        允许访问的NFS客户端: 可以写完整的IP地址或IP网段,如:
                192.168.48.130/24
                192.168.48.130/255.255.255.0
                192.168.48.0/24
                "*":允许所有主机都可以访问
权限参数:必须卸载园括号中,且括号是紧挨着主机名的,全选的相关参数如下,多个参数之间使用逗号隔开:

权限参数作用
ro只读
rw读写(最终还要看文件系统rwx权限)
root squash当NFS客户端以root账户访问时,映射为NFS服务器端的匿名账户(nobody)
no_root_squash当NFS客户端以root账户访问时,映射为root账户 (不推荐、不安全)
all_squash无论NFS客户端使用什么账户访问,均映射为NFS 服务器的匿名账户(nobody),推荐
no_all_squash客户端普通账户访问服务器的数据时,实际的信息原样显示
anonuid=将文件的用户和工作组映射为指定UID和GID,若不指定则默认为
anongid=65534 (nobody)
sync        同步,同时将数据写入内存与硬盘中,保证数据不会丢失,推荐
async异步,优先将数据保存到内存,然后在写入硬盘,效率高,但可能会数据丢

exportx文件内容实例:

/home/public *(rw,sync) :对所有机共享/home/public目录,可读可写,同步传输

/home/public 192.168.48.131/24(ro,all_squash,sync): 只对131主机开发共享/home/public ,只读权限,客户端映射为nobody账户,同步传输        

/home/public 192.168.48.0/24(rw , sync,all_squash, anonuid=2000, anongid=2000):对192.168.48.0网段中所有主机开放/home/public 目录,可读可写,同步传输,客户端映射为nobody,uid为2000,gid为2000       

3.4 实验

建立NFS服务器,使用客户端访问

服务端: 

第一步: 服务server端操作,完成准备工作

        root@server ~]# setenforce 0

        [root@server ~]# systemctl stop firewalld

        [root@server ~]# yum instal1 nfs-utils -y

第二步:客户端node1操作,完成准备工作

        root@server ~]# setenforce 0

        [root@server ~]# systemctl stop firewalld

        [root@server ~]# yum instal1 nfs-utils -y

第三步:服务端server操作,新建共享目录,并设置权限
[root@server ~]# echo  "www.openlab.com"  > /nfsfile/redme
[root@server ~]# cat /nfsfile/redme 

[root@server ~]# chmod -Rf 777 /nfsfile/

第四步:服务端server操作,修改nfs配置文件

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

                /nfsfile192.168.48.131/24(rw,a11_squash,sync)

第五步:服务端server操作,先启动rpc服务,后启动nfs服务

[root@server ~]# systemctl start rpcbind                # 先启动RPC
[root@server ~]# systemctl start nfs-server            # 启动NFS

[root@server ~]# systemctl enable rpcbind         # 设置开机启动
[root@server ~]# systemctl enable nfs-server

# 注意:启动rpcbind服务时,若启动失败,可以先停止服务。在重新启动

        systemct1 stop rpcbind

        systemct start rpcbind

客户端:

第六步:客户端node1操作,通过命令查询共享数据并远程挂载使用

# 查询远程共享信息:showmount        -参数         服务器IP地址

# 参数:
        # -e: 显示NFS服务器的共享列表

        # -a: 显示本地挂载的文件资源列表

        # -V: 显示版本号

[root@node1 ~]# showmount -e 192.168.17.128          # 查询128的共享信息
        Export list for 192.168.17.128:
        /nfsfile 192.168.17.129/24

[root@node1 ~]# mkdir /nfs1
[root@node1 ~]# mount -t nfs 192.168.17.128:/nfsfile  /nfs1/       

       # 将192.168.17.128这台主机的/nfsfile账户目录,以nfs文件格式远程挂载到本地的/nfs1下

[root@node1 ~]# cat /nfs1/redme 

第七步:客户端node1操作,配置开机挂载,实现永久性挂载

[root@node1 ~]# vim /etc/fstab 

挂载目录                                挂载设备         文件系统         defaults         0        0

192.168.17.128:/nfsfile         /nfs1                   nfs                defaults          0        0

[root@node1 ~]# mount -a
[root@node1 ~]# reoot

检测:
        

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

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

相关文章

【解决】conda-script.py: error: argument COMMAND: invalid choice: ‘activate‘

运行conda activate base报错: 试了网上找到的解决方法都不行: 最后切换了一下terminal: 从powershell改回cmd(不知道为什么一开始手贱换成powershell) 就可以了

(一)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB

一、七种算法(DBO、LO、SWO、COA、LSO、KOA、GRO)简介 1、蜣螂优化算法DBO 蜣螂优化算法(Dung beetle optimizer,DBO)由Jiankai Xue和Bo Shen于2022年提出,该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁…

Python - 利用 OCR 技术提取视频台词、字幕

目录 一.引言 二.视频处理 1.视频样式 2.视频截取 ◆ 裁切降帧 ◆ 处理效果 3.视频分段 三.OCR 处理 1.视频帧处理 2.文本识别结果 3.后续工作与优化 ◆ 识别去重 ◆ 多线程提效 ◆ 片头片尾优化 四.总结 一.引言 视频经常会配套对应的台词或者字幕&#xff0c…

4.HTML网页开发的工具

4. 网页开发的工具 4.1 快捷键 4.1.1 快速复制一行 快捷键:shiftalt下箭头(上箭头) 或者ctrlc 然后 ctrlv 4.1.2 选定多个相同的单词 快捷键: ctrld 4.1.3 添加多个光标 快捷键:ctrlalt上箭头(下箭头&…

CS224W6.1——介绍图神经网络GNN

之前我们讨论了一些节点嵌入技术,它们可以通过随机游走的过程学习与任务无关的特征。从这篇开始,我们介绍了令人兴奋的图神经网络技术,该技术基于图结构用多层非线性变换对节点特征进行编码。图神经网络在各种任务中表现出非凡的性能&#xf…

vue3响应式api

响应式api——compositon api setup: 不要再想this问题执行是在beforeCreated之前 beforeCreated:也就是创建了一个实例 created:挂载了数据 通过形参props接收,只读 以后所有代码都写到setup中 判断是否只读:isReadon…

Zabbix SNMPv3

一、Snmpv3简述 SNMPv3是Simple Network Management Protocol version 3(简单网络管理协议第三版)的缩写。它是一种网络管理协议,用于监控和管理网络中的设备、系统和应用程序。 相对于之前的版本,SNMPv3具有更强的安全性和扩展…

spring-cloud-stream

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…

IIS前端服务和代理

前端服务可以用nginx和IIS开启,windows自带IIS方便管理一点。其实用docker的nginx更方便管理。 记录一下IIS的安装和开启服务过程 1、打开控制面板点击程序,再点击启用或关闭windows功能。 2、 点击左侧启用或关闭Windows功能。 3、把框框中全选上之后点…

便捷Benchmark.sh 自动匹配workload(自用)

​ 因为db_bench选项太多,而测试纬度很难做到统一(可能一个memtable大小的配置都会导致测试出来的写性能相关的的数据差异很大),所以官方给出了一个benchmark.sh脚本用来对各个workload进行测试。 该脚本能够将db_bench测试结果中…

CMOS介绍

1 二极管 2 CMOS 2.1 栅极、源极、漏极 2.2 内部结构 2.2 导电原理 - 原理:1.通过门级和衬底加一个垂直电场Ev,从而在两口井之间形成反形层2.如果加的电场足够强,反形层就可以把source(源极)和drain(漏极…

Doris学习--1、Doris简介、操作Doris、Doris架构(数据模型)

星光下的赶路人star的个人主页 心之所向,剑之所往 文章目录 1、Doris简介1.1 快速开始1.2 安装配置1.2.1 应知前提1.2.2 配置Doris1.2.2.0 配置前提1.2.2.1 配置FE(Frontend)1.2.2.2 启动FE1.2.2.3 连接FE1.2.2.4 停止FE1.2.2.5 配置BE&#…

物联网水表电子阀工作原理是怎样的?

随着科技的不断发展,物联网技术逐渐深入到我们的生活之中。作为智能家居的重要组成部分,物联网水表电子阀凭借其智能化、节能环保等优势,受到了越来越多用户的青睐。接下来,合众小编将来为大家介绍下物联网水表电子阀工作原理。 一…

Git 进阶使用

一. Git图形化操作 1.1.什么是图形化管理工具 图形化管理工具是一种通过可视化界面来操作计算机系统或应用程序的软件工具。在软件开发中,它通常用于管理和操作版本控制系统(如Git、SVN等)以及代码开发环境(如IDE)。与…

SSM图书管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 图书管理系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和 数据库,系统主要…

(二)正点原子I.MX6ULL u-boot移植

一、概述 这里使用的是NXP官方2022.04发布的uboot,移植到正点原子阿尔法开发板(v2.1) u-boot下载:gitgithub.com:nxp-imx/uboot-imx.git 移植是基于NXP的mx6ull_14x14_evk 二、编译NXP官方uboot 进入NXP的u-boot目录 先在Makefile…

Word 插入的 Visio 图片显示为{EMBED Visio.Drawing.11} 解决方案

World中,如果我们插入了Visio图还用了Endnote, 就可能出现:{EMBED Visio.Drawing.11}问题 解决方案: 1.在相应的文字上右击,在出现的快捷菜单中单击“切换域代码”,一个一个的修复。 2.在菜单工具–>…

亚马逊云AI应用科技创新下的Amazon SageMaker使用教程

目录 Amazon SageMaker简介 Amazon SageMaker在控制台的使用 模型的各项参数 pytorch训练绘图部分代码 Amazon SageMaker简介 亚马逊SageMaker是一种完全托管的机器学习服务。借助 SageMaker,数据科学家和开发人员可以快速、轻松地构建和训练机器学习模型&#…

Apache APISIX Dashboard 未经认证访问导致 RCE(CVE-2021-45232)漏洞复现

漏洞描述 Apache APISIX 是一个动态、实时、高性能的 API 网关,而 Apache APISIX Dashboard 是一个简单易用的前端界面,用于管理 Apache APISIX。 在 2.10.1 之前的 Apache APISIX Dashboard 中,Manager API 使用了两个框架,并在…

《视觉SLAM十四讲》-- 相机与图像

04 相机与图像 4.1 相机模型 4.1.1 针孔相机模型 针孔模型描述了一束光线通过针孔后,在针孔背面投影成像的关系(类似小孔成像原理)。 根据相似三角关系 Z f − X X ′ − Y Y ′ (3-1) \frac{Z}{f}-\frac{X}{X^{\prime}}-\frac{Y}{Y^{\p…