热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

保障训练20200927

14.1NFS介绍14.2NFS服务端安装配置14.3NFS配置选项14.4exportfs命令14.5NFS客户端问题一、NFS介绍1.NFS简介NFS࿰

14.1 NFS介绍

14.2 NFS服务端安装配置

14.3 NFS配置选项

14.4 exportfs命令

14.5 NFS客户端问题

一、NFS介绍

1.NFS简介

NFS,Network File System。网络文件系统,即通过网络,对在不同主机上的文件进行共享

NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本,更新比较慢其实4.1是从2010年就开始使用了

NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写

NFS应用场景是:A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致

2.NFS应用场合

在生产环境,我们很少使用单机部署应用,因为单机存在单点故障,一旦宕机,将无法为前端业务提供服务,这是客户无法容忍的。 现在提倡的高可用及7*24服务,是我们追求的目标。 对于一些小的应用,双机成为了主流

我们来看一种简单集群场景, 应用分别部署在A及B上, 前端通过F5或着web服务器访问应用。NFS提供了一种机制,可以让A、B访问C中的一个共享目录,就像是操作本地文件一样。

如下图:

3.NFS原理:

首先:NFS包括两部分,服务端及客户端

由于NFS服务功能很多,会有很多端口,这些端口还有可能不固定,那么客户端就无法与服务器进行通信,因为程序间通信必须通过端口(tcp/udp都是端到端通信),那么就需要一个中间的桥接机制,RPC进程即充当这样一个角色,RPC的端口是一定的(111),当NFS启动时,会向RPC进行注册, 那么客户端PRC就能与服务器RPC进行通信, 从而进行文件的传输

当客户端用户打开一个文件或目录时,内核会判断,该文件是本地文件还是远程共享目录文件,如果是远程文件则通过RPC进程访问远程NFS服务端的共享目录,如果是本地文件,则直接打开

为了更好的并发,RPC进程及NFS进程都有多个

二、NFS服务端安装配置

用两台机器做实验,一台作为服务端(ying01 192.168.112.136),一台作为客户端(ying02 192.168.112.138)

在ying01上安装:nfs-utils包

同时也在ying02上安装:nfs-utils包

在ying01上,新建配置文件;写入以下语句

语句释义:

/home/nfstestdir :共享的目录

rw: 读写

ro: 只读

sync: 同步模式,内存数据实时写入磁盘

async :非同步模式

no_root_squash: 客户端挂载NFS共享目录后,root用户不受约束,权限很大

root_squash: 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户

all_squash:客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户

anonuid/anongid: 和上面几个选项搭配使用,定义被限定用户的uid和gid

192.168.112.0/24:为客户端的网段

创建nfstestdir目录,并给予777权限

开启nfs服务,并监听端口,端口111为其默认端口

设置开机启动:systemctl enable nfs

在客户端ying02上设置:

查看服务端共享目录:showmount -e 192.168.112.136

注意:假如没有出现共享目录,有下面可能,注意排查:

1、两者通信问题

2、把两者的防火墙关闭

挂载NFS

在增加的/mnt分区,就是NFS共享的目录,在该目录下创建测试文件

在服务端ying01机器上,查看其详细信息

测试结果:**可以看到创建的新文件ying.111,uid为1000

三、exportfs命令

看下图:假如A的NFS服务停掉了,但是B和C还在挂载着A分享的分区,这就无法正常工作了,由于B和C上面的进程是d状态(不可中断进程,在ps一节中学习到的),一旦A停止了,B和C一定会出问题,无法服务,既不可以重启,也不可以关闭,就会把系统整挂掉。所以NFS一定不可以随便重启。 如果必须重启怎么办?先把B和C上面的目录卸载下来

那么就开始卸载 B和C的目录,一个一个卸载下来

出现这种情况,不利于生产以及智能化。因此需要利用exportps命令

exportps命令常用选项:

在服务端ying01上:

这样就可以让服务器直接生效,不需要再次重启nfs服务,也不会对客户端造成之前所说的错误!

编辑配置文件,增加一个共享的目录

用命令:exportfs -arv 直接生效,不用重启NFS服务

使用客户端测试

查看服务端共享目录:showmount -e 192.168.112.136

在mnt下创建一个测试文本

新检测试文本1212.txt,查看其gid和uid都为root

在服务端ying01下

查看/tmp目录下的1212.txt测试文本,其uid和gid都为root

四、NFS客户端问题

注意:NFS 4版本会有该问题

我们在分享一个目录且权限设置为no_root_squash,客户端看到的文件属主、组不是root,却是nobody。 这个不是设置错误,是软件本身自带的BUG。

解决方案:

方案1: 在客户端挂载的时候加上 -o nfsvers=3,其目的是制定nfs使用3版本

方案2:在服务端和客户端配置:vim /etc/idmapd.conf

然后再重启rpcidmapd服务


推荐阅读
  • 在JavaWeb项目架构中,NFS(网络文件系统)的实现与优化是关键环节。NFS允许不同主机系统通过局域网共享文件和目录,提高资源利用率和数据访问效率。本文详细探讨了NFS在JavaWeb项目中的应用,包括配置、性能优化及常见问题的解决方案,旨在为开发者提供实用的技术参考。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • 本文深入解析了Django框架中的MVT(Model-View-Template)设计模式,详细阐述了其工作原理和应用流程。通过分析URL模式、视图、模型和模板等关键组件,读者将全面理解Django应用程序的架构体系,掌握如何高效地构建和管理Web应用。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • 本文详细介绍了如何在Java Web服务器上部署音视频服务,并提供了完整的验证流程。以AnyChat为例,这是一款跨平台的音视频解决方案,广泛应用于需要实时音视频交互的项目中。通过具体的部署步骤和测试方法,确保了音视频服务的稳定性和可靠性。 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • 基于域名、端口和IP的虚拟主机构建方案
    本文探讨了在单台物理服务器上构建多个Web站点的虚拟主机方案,详细介绍了三种主要的虚拟主机类型:基于域名、基于IP地址和基于端口的虚拟主机。每种类型的实现方式及其优缺点均进行了深入分析,为实际应用提供了全面的技术指导。 ... [详细]
  • 深入解析Spring Boot启动过程中Netty异步架构的工作原理与应用
    深入解析Spring Boot启动过程中Netty异步架构的工作原理与应用 ... [详细]
  • 利用Apache构建高效稳定的Web服务器环境
    本文详细介绍了如何利用Apache构建高效稳定的Web服务器环境。首先,概述了Apache服务器的基本概念及其安装步骤,并深入探讨了相关配置文件的设置方法。接着,通过具体的实验环境示例,展示了服务端(域名:zhangpp63.cn,IP地址:192.168.1.63)和客户端的配置过程,确保读者能够全面理解并实际应用这些技术。此外,还提供了一些优化建议,以提高服务器的性能和稳定性。 ... [详细]
  • 本文首先对信息漏洞的基础知识进行了概述,重点介绍了几种常见的信息泄露途径。具体包括目录遍历、PHPINFO信息泄露以及备份文件的不当下载。其中,备份文件下载涉及网站源代码、`.bak`文件、Vim缓存文件和`DS_Store`文件等。目录遍历漏洞的详细分析为后续深入研究奠定了基础。 ... [详细]
author-avatar
拍友2602911553
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有