什么是NFS?NFS挂载

news2024/11/17 10:47:41

文章目录

  • 1、NFS服务
  • 2、RPC服务与NFS
  • 3、NFS的优缺点
  • 4、NFS服务端的搭建与配置
  • 5、小结

1、NFS服务

NFS,全称Network File System,即网络文件系统。最大的功能是通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。

😉
更直白的说就是:

让PC将网络中的NFS服务器共享的目录挂载到本地的文件系统中,这样在本地端访问挂载点就等于访问共享目录,NFS服务器共享的目录就像是自己的一个磁盘分区一样。

在这里插入图片描述
如图,在NFS服务器设置了一个共享目录/home/public,有权访问的客户端A就可以将这个共享目录挂载到自己文件系统的某个点,如/home/data/mypublic,如此,就可以在本地访问远程共享目录。

# 挂载后,可以看客户端磁盘的具体信息:

df -h /home/data/mypublic

# 这里指定了挂载点是/home/data/mypublic

NFS是通过网络来进行服务器端和客户端之间的数据传输,那么两者之间要传输数据就要有相对应的网络端口。NFS服务器的端口开在2049,此外,由于文件系统非常复杂。因此NFS还有其他的程序去启动额外的端口,这些额外的用来传输数据的端口是随机选择的,是小于1024的端口。既然是随机选择,那客户端如何知道NFS服务器使用的是哪个端口呢?

答案是通过远程过程调用协议,即RPC服务(Remote Procedure Call)

2、RPC服务与NFS

RPC( Remote Procedure Call )协议的主要目的是做到:不同服务间调用方法像同一服务间调用本地方法一样。

当NFS启动后,会随机使用一些端口,然后NFS会向RPC去注册登记这些端口。RPC记录下这些端口,并开启自身111端口,等待客户端请求。当客户端请求时,RPC就将NFS记录的端口信息告诉客户端,客户端获取到了NFS服务器的端口信息,从而建立连接进行数据传输。


具体流程:

在这里插入图片描述
1)首先服务器端启动RPC服务,并开启111端口

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

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

4)服务端的RPC服务反馈NFS端口信息给客户端

5)客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输

3、NFS的优缺点

优点:

  • 节省本地存储空间,将一些常用的数据存放在一台服务器通过网络访问
  • 对于大多数负载均衡群集来说,使用NFS协议来共享数据存储是比较常见的方法

缺点:

  • 局限性:
    容易发生单点故障,即server服务器宕机所有的客户端都不能访问
  • 性能瓶颈:
    网站高并发的情况下,NFS性能有限
  • 安全性:
    客户端的数据都是通过明文传送,客户端没有用户认证机制,安全性一般,建议在局域网内使用
  • 数据完整性:
    NFS服务器传输数据都是采用明文的方式进行传输,对数据没有什么验证机制,对数据完整性较高的业务不建议使用
  • 维护繁琐:
    NFS服务器都是多台客户端挂载在一台server端,对于共享服务器的连接管理维护都是一项比较繁琐的事情

4、NFS服务端的搭建与配置

第一步:NFS服务端包安装(服务端)

//查询是否安装nfs-utils和rpcbind,未装则安装

rpm -q nfs-utils|| yum -y install nfs-utils
rpm -q rpcbind || yum -y install rpcbind

注意:

有的文章中提到了portmap,centos 6.4中portmap已经被rpcbind取代,而它又已经在安装nfs-utils包的时候安装了,不放心可以装完nfs后service rpcbind status验证

第二步:NFS配置文件修改(服务端)

# 创建服务端用于测试的共享目录
mkdir -p /root/test

# 编辑配置文件,我直接>>追加了
# 以下:*即客户机随意,ro表示客户端是只读权限
echo "/root/test *(ro)" >> /etc/exports

关于NFS配置权限设置,即/etc/exports文件配置格式中小括号()里的参数集:
在这里插入图片描述

第三步:关闭防火墙(服务端)并启动服务

# 关闭防火墙
systemctl stop firewalld

# 查看是否关闭成功
systemctl status firewalld
# 先启动rpcbind!!!并设置开机自启动
systemctl start rpcbind
systemctl enable rpcbind

# 再启动nfs并设置开机自启动
systemctl start nfs
systemctl enable nfs
# 发布共享目录
exportfs -rv

# 查看共享目录
showmount -e

第四步:客户端安装NFS并挂载

//查询是否安装nfs-utils和rpcbind,未装则安装

rpm -q nfs-utils|| yum -y install nfs-utils
rpm -q rpcbind || yum -y install rpcbind
//启动rpcbind和nfs

systemctl start rpcbind
systemctl start nfs
//查看NFS服务端共享的目录情况,假设服务端IP为1.1.1.1
showmount -e 1.1.1.1

//挂载
//其中,1.1.1.1是NFS服务器IP,/root/test是第二步中共享出来的目录
//目录/home/mnt是客户端的挂载点

mount 1.1.1.1:/root/test /home/mnt

//查看挂载是否成功
df -h /home/mnt

在这里插入图片描述
mount的时候报错no route to host,八成是防火墙忘关了,systemctl stop firewalld

5、小结

NFS是一种基于TCP/IP传输的网络文件系统协议,可以实现客户机访问远程服务器中的共享资源,NFS服务配置文件是/etc/exports,其缺点是安全性差。

配置NFS共享存储的步骤:

服务器端

第一步:安装nfs-utils和rpcbind软件,并关闭防火墙和增强安全功能

第二步:设置共享目录并把共享目录的权限设为777

第三步:修改NFS的配置文件(格式为:共享的目录名称 客户机地址(权限))

第四步:启动NFS服务(先启动rpcbind,再启动nfs),并设置开机自启动

第五步:发布NFS共享目录,并查看


客户端

第一步:安装nfs-utils和rpcbind软件,并关闭防火墙和增强安全功能

第二步:查看服务器端的共享目录,并将其挂载到新建目录上(可手动或自动挂载)

参考文章:
篇一:NFS详解
篇二:NFS实验

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

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

相关文章

Go语言开发k8s-05-ConfigMap操作

文章目录1. 结构体1.1 ConfigMapList1.2 ConfigMap1.3 TypeMeta1.4 ObjectMeta1.7 对照yml文件示例1.5 Immutable1.6 Data1.7 BinaryData2. Create configMap语法完整示例3. Get ConfigMapList语法完整示例4. Get ConfigMap语法完整示例5. Update ConfigMap语法完整示例6. Dele…

【网络篇】第二篇——IP协议与MAC地址详解

IP协议 理解源IP地址和目的IP地址 网段划分 IP地址的数量限制 私有IP地址和公网IP地址 路由 NAT(网络地址转换) ​编辑NAT IP转换过程 NAPT MAC地址 理解源MAC地址和目的MAC地址 对比理解MAC地址和IP地址 只有一个MAC地址,可以传输数据嘛? 为什么有了…

网络原理——网络层与数据链路层

JavaEE传送门JavaEE 网络原理——No.3 传输层_TCP的滑动窗口, 流量控制与拥塞控制 网络原理——No.4 传输层_TCP协议中的延迟应答, 捎带应答, 面向字节流与TCP的异常处理 目录网络层IP 协议IP 地址路由选择数据链路层以太网网络层 网络层做的工作, 就是两点之间, 规划出一个合…

python基于PHP+MySQL的健身房管理系统

随着时代的发展人们人们对身体不健康越来越重视。身体是革命的本钱,所以只有有一个好的身体才能够积极地参加到工作和学习中去。当前社会生活节奏较快人们往往没有时间进行锻炼于是造成了很多富贵病以及办公室职业病的发生。这是一种极其不健康的生活方式,我为了能够让这些亚健…

坚持记账的5大好处,你知道吗?

记账可以理清生活开支,有效节流通过记账,每时每刻都能知道自己的财务状况,花钱的时候会更有目的与计划,不像以前手忙脚乱一团糟,也不再寅吃卯粮,随意透支。对于很多不知道钱花到哪里去的人来说,…

SpringBoot(自定义注解)

目录 1.注解的概念 1.1 什么是注解 1.2 java注解分类 1.3 JDK基本注解 1.4 JDK元注解 2.自定义注解 2.1 自定义注解的组成 2.2 如何自定义注解 2.3 案例 2.3.1 简单了解基本属性 2.3.2 获取类与方法上的注解值 2.3.3 获取类属性上的注解属性值 2.3.4 获取参数修饰注解对应的属…

MQTT X v1.8.3 正式发布

近日,MQTT X 发布了最新的 1.8.3 版本,主要对功能使用进行了优化,并修复了使用过程中所出现的各类问题。例如,优化了 MQTT 5.0 Clean Start 的使用方式,为会话过期间隔添加默认值;优化 MQTT X CLI 的默认输…

数据结构与算法分析之并查集

1. 并查集 并查集是一种树型的数据结构,并查集可以高效的进行如下操作: 查询元素p和元素q是否属于同一组合并元素p和元素q所在的组 1.1 并查集结构 并查集是一种树型结构,但这棵树和我们之前学的二叉树、红黑树、B树等都不一样&#xff…

WindowsServer2016配置故障转移群集图文教程

准备工作 首先准备好两台以上的服务器,并记录好IP和主机名。如下 172.31.210.203 WIN-S8LC9RKL4BB 172.31.215.54 WIN-76A6N72MRTD 之后需要配置到host文件中。 正文 基础配置 首先打开host文件,把所有的IP及主机添加进去。host文件地址如下。 C:\Wi…

10.30-11.3|浙大报考点硕士研究生2023年网上确认系统操作流程

一、登陆《2023年全国硕士研究生招生考试网上确认系统》https://yz.chsi.com.cn/wsqr/stu/index.html。填写考生所在地,点击“确定”。二、点击“开始进行网上确认”。 三、阅读网报公告之后,点击“我已经阅读完毕”。 四、阅读考生诚信考试承诺书&#…

QT5串口编程——编写简单的上位机

下面开始介绍串口类的使用。 首先,QT5是自带QSerialPort这个类的,使用时需要在pro文件里面添加一行: ​然后直接引用头文件就可以了。 ​在QT5中,串口通信是借助一个QSerialPort的对象来实现的,在设置QSerialPort对象…

课堂笔记| 第七章:多态

本节课要点: 继承特性多态虚函数目录 一、多继承 二、继承的前提:正确的分类 三、多态 1. 虚函数 2. 确保覆盖和终止覆盖 3. 虚函数的实现原理 4. 虚析构函数 四、纯虚函数和抽象类 1. 纯虚函数 2. 抽象类 一、多继承 在之前的课程中&a…

SpringCloud Alibaba Sentinel实现熔断与限流

目录 一、简介 1.官网 & 介绍 2.下载地址 3.作用 4.如何使用 ⭐解决服务使用中的各种问题 5.Sentinel与Hystrix的区别 二、安装sentinel控制台 1.sentinel组件由2部分构成 2.安装步骤 ①地址 ②运行命令 ③访问sentinel界面 三、初始化演示工程 1.启动naco…

MyBatis 环境搭建配置全过程【IDEA】

文章目录一、MyBatis 介绍二、MyBatis 环境搭建1.MyBatis 下载2.配置 jdk 版本3.创建 Maven 工程4.IDEA 连接数据库5.项目文件构架6.引入相关依赖7.命令行创建数据库8.数据库配置文件9.核心配置文件三、入门测试程序1.创建表准备数据2.创建 POJO 实体3.创建映射文件4.修改核心配…

如何增加 KVM 虚拟机的磁盘大小

KVM 是一种集成到 Linux 内核中的虚拟化技术。您可以使用virsh、virt-manager和GNOME Boxes等工具创建虚拟机并与 KVM 交互。 磁盘空间不足是最常见的 VM 来宾问题之一。在测试新 VM 时,您可能会故意使用较小的磁盘。随着时间的推移,您会累积文件,直到虚拟磁盘几乎已满。以…

C语言笔记

fabs用来求double类型的绝对值&#xff0c;小数点后保留6位#include<math.h> double fabs(double ) labs用来求长整型long整型的绝对值&#xff0c; long cabs(long n); abs用来求整数的绝对值&#xff0c;labs求long long的绝对值#include<stdlib.h> double ret …

初识C++ (二)

初识C 二 上节课输入输出问题的一些补充一. 缺省参数1.1 半缺省参数1.2 全缺省参数二. 函数重载2.1 重载是什么意思&#xff1f;2.2 如何区分重载函数参数类型不同参数个数不同参数顺序不同附加题1附加题22.3 c支持函数重载的原理预处理编译汇编连接总结要以一种很认真的态度去…

深度优先搜索(dfs)和广度优先搜索(bfs)

目录 一、前言 二、关于dfs和bfs有意思的小故事 三、深搜题例 1、小猫爬山链接 2、基本思路 3、代码 &#xff08;1&#xff09;python代码 四、广搜题例 1、武士风度的牛链接 2、基本思路 3、代码 &#xff08;1&#xff09;C代码 &#xff08;3&#xff09;pyth…

现在的编程语言越来越多,为什么 C 和 C++ 还没有被现在的时代淘汰呢?

C/C会不会被时代淘汰&#xff1f;这个问题跳过了一步&#xff0c;关键是这个问题&#xff1a; C/C有哪些其它语言难以代替的特殊之处&#xff1f; 1、对实现细节的控制粒度 一般我们常说&#xff1a;C/C具有较高的执行效率。其实这句话不是特别准确&#xff0c;有时候它们并…

npm报错整理

npm报错整理一、代理1. 因为使用公司的镜像源导致的403 forbidden总结一、代理 1. 因为使用公司的镜像源导致的403 forbidden 在更新脚手架的时候&#xff0c;遇到了403的报错&#xff1a; 遇到问题不要怕&#xff0c;我们根据错误去解决就好。 &#xff08;1&#xff09;首…