当前位置: 首页 > news >正文

【综合架构】存储服务 NFS

1 概述

2 存储分类

3 NFS 原理

三个组成部分:RPC 服务、NFS 服务端、客户端

流程顺序:

  1. 启动 RPC 服务收集信息。
  2. 启动 NFS 服务主动向 RPC 服务注册。
  3. 客户端向 RPC 服务发出获取 NFS 信息请求(端口)。
  4. RPC 服务响应客户端,返回NFS服务的端口。
  5. 客户端向 NFS 服务发出请求进行挂载(mount),使用 NFS 服务共享目录。

4 环境部署

4.1 配置服务端

使用设备:172.16.1.31

4.1.1 安装服务并启动

步骤1:安装rpc注册中心与nfs工具集

yum install -y rpcbind nfs-utils

步骤2:按顺序启动服务

        # 启动rpc注册中心,设置自启动

systemctl start rpcbind
systemctl enable rpcbind
# 查看rpc注册中心信息
rpcbind -p

        # 启动nfs服务,设置自启动

systemctl start nfs
systemctl enable nfs

4.1.2 配置服务

步骤1:创建配置文件

vim /etc/exports

步骤2:

说明:一行代码就是共享目录,以后需要可以再加。

/data/ 为共享目录地址

172.16.1.0/24(rw) 允许该网段访问,(rw)为权限设置,只读的话是(ro)

/data/ 172.16.1.0/24(rw)

 步骤3:创建共享目录

mkdir -p /data/

 步骤4:设置共享目录权限

chown -R nfsnobody.nfsnobody /data/

步骤5:重新加载 NFS

注意:这里并不推荐使用 restart 命令,在 NFS 服务中使用 restart 命令可能会出现问题。对已经挂载的客户端,可能会出现卡死的状况。

systemctl reload nfs

4.1.3 测试:本地进行挂载测试

# 将 /mnt 目录,挂载到 /data/ 目录下。
mount -t nfs 172.16.1.31:/data/ /mnt/# 在 /mnt/ 目录下创建文件
touch /mnt/cherry-{01..10}.txt# 查看 /mnt 和 /data 文件是否一致
ll -h /mnt
ll -h /data

4.1.4 排错指令

 rpcinfo -p {ip} :检查nfs服务中的rpc信息。有NFS信息即可。

showmount -e {ip}:检查NFS服务端共享信息(查看共享目录)。

4.2 挂载客户端

步骤1:安装服务

yum install -y nfs-utils

步骤2:挂载到服务器

mount -t nfs 172.16.1.31:/data /mnt

 故障案例:

mount: wrong fs type 错误的文件系统类型,客户端无法识别nfs。

解决措施:安装nfs-utils,不用启动。

卸载挂载状态

# 普通卸载
unmount /mnt# 强制卸载
umount -lf /mnt

客户端永久挂载

方式一:挂载命令写入到 /etc/rc.local ,授予文件执行权限。

chmod +x /etc/rc.d/rc.local

方式二:按照 /etc/fstab 格式要求书写

#       设备           挂载点     文件系统类型    挂载参数    是否检查    是否备份    172.16.1.31:/data   /upload/      nfs       defaults      0          0

注意:如果设置了 nfs 永久挂载,需要有限启动 nfs 服务端。

5 NFS相关文件

nfs 服务端和客户端说明
NFS 服务端配置/etc/exports(该文件为手动配置)------> /var/lib/nfs/etab(nfs 服务端生成的完整配置文件)
NFS 客户端配置mount /etc/re.local 或 /etc/fstab -----> /proc/mounts(当前系统的挂载状况)
# dh -h 出错时或者不显示时
grep '/mnt' /proc/mounts

6 NFS 服务端的配置文件

了解:/etc/exports 是 nfs 管理 systemctl 命令的背后在调用 exportfs 命令。

6.1 配置文件格式

/etc/exports
第一部分第二部分
共享目录网段(选项)

6.2 配置文件中的网络配置

地址描述
172.16.1.0/24网段(最常用)
172.16.1.7指定IP地址
baidu.com指定域名

6.3 服务端核心配置

服务端配置选项说明
rw

可读写共享目录

ro只读 read only 共享目录
sync同步,只要用户上传,就把数据写到磁盘上。
async

异步,用户上传的数据,nfs 先临时存放到内存中,过一段时间再写入到磁盘。

并发高,数据可能丢失。

理解:同步与异步

同步:在网站架构中指直接访问网站

异步:在网站架构中利用缓存,使用户优先访问缓存,没有再访问对应的服务。

6.4 服务端用户压缩

  • NFS客户端挂载NFS服务端后,创建的文件默认属于nfsnobody,这种操作叫做用户压缩(映射)。
  • 用户压缩是通过NFS服务端的配置实现。
服务端配置选项-用户压缩系列说明
root_squash如果客户端是root用户访问,则到了 nfs 服务端会被压缩(默认)
no_all_squash如果客户端不是root用户访问,则不进行压缩(保存原始用户,默认)
all_squah所用用户都进行压缩
anouid和anongid

用于指定压缩的匿名用户(默认是nfsnobody用户)

anouid=65534,anongid=65534

用户压缩/用户映射:NFS客户端访问NFS共享目录的时候变成了什么用户

用户客户端用户        nfs服务端用户

root        --- >             nfsnoboby

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Unity 资源分享 之 恐龙Ceratosaurus资源模型携 82 个动画来袭
  • MongoDB基础
  • 自注意力Self-attention
  • 鼠标为什么要放在鼠标垫上才好用?/ 鼠标的工作原理
  • 排序【归并排序和计数排序】
  • 【图像去雾系列】使用暗通道先验去雾算法对图像进行去雾处理
  • 刷题记录第109天-K个一组反转链表
  • 你知道AI模型是如何学习的吗?
  • keepalived安装-集群部署
  • 【面试题】接雨水
  • WPF 数据模板DataTemplate、控件模板ControlTemplate、Style、ItemsPreseter
  • jenkins 安装以及自动构建maven项目并且运行
  • thinkphp漏洞之sql注入漏洞-builder处漏洞
  • wiota窄带通讯技术对于vu传统lora
  • [cvpr 2024 目标检测 前沿研究 热点] cpvr 2024中与目标检测主题有关的论文
  • 分享一款快速APP功能测试工具
  • $translatePartialLoader加载失败及解决方式
  • crontab执行失败的多种原因
  • Fastjson的基本使用方法大全
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • JAVA_NIO系列——Channel和Buffer详解
  • JS+CSS实现数字滚动
  • Js基础——数据类型之Null和Undefined
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Just for fun——迅速写完快速排序
  • react 代码优化(一) ——事件处理
  • Wamp集成环境 添加PHP的新版本
  • 翻译:Hystrix - How To Use
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 浅谈web中前端模板引擎的使用
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 我看到的前端
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 如何正确理解,内页权重高于首页?
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • # .NET Framework中使用命名管道进行进程间通信
  • # 利刃出鞘_Tomcat 核心原理解析(七)
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #define
  • #前后端分离# 头条发布系统
  • $(selector).each()和$.each()的区别
  • (145)光线追踪距离场柔和阴影
  • (4)(4.6) Triducer
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (转)memcache、redis缓存
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET 直连SAP HANA数据库
  • .NET 中的轻量级线程安全
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • /dev/sda2 is mounted; will not make a filesystem here!
  • [012-1].第12节:Mysql的配置文件的使用