重生之我要当云原生大师(二十)访问网络附加存储:

目录

一、什么是网络文件系统?

二、直接映射和间接映射和主映射?


一、什么是网络文件系统?

网络文件系统(Network File System,NFS) 是一种分布式文件系统协议,允许客户端通过网络访问远程服务器上的文件和目录,就像访问本地文件系统一样。NFS 最初由 Sun Microsystems 开发,现已成为 UNIX 和 Linux 系统中广泛使用的文件共享解决方案。


1. NFS 的核心概念

  • 服务器(Server)
    • 存储实际文件和目录的计算机,负责共享文件系统。
  • 客户端(Client)
    • 通过网络访问服务器上共享文件系统的计算机。
  • 挂载(Mount)
    • 客户端将服务器上的共享目录挂载到本地文件系统中,使其像本地目录一样使用。

2. NFS 的工作原理

  1. 服务器端
    • 服务器配置需要共享的目录,并指定哪些客户端可以访问。
    • 服务器运行 NFS 服务,监听客户端的请求。
  2. 客户端
    • 客户端通过 NFS 协议连接到服务器,并挂载共享目录。
    • 客户端可以像操作本地文件一样操作远程文件。

3. NFS 的版本

  • NFSv2
    • 最早的版本,功能有限,性能较低。
  • NFSv3
    • 支持异步写入和更大的文件,性能有所提升。
  • NFSv4
    • 引入了状态化协议、安全性增强(如 Kerberos 认证)和更好的性能。
  • NFSv4.1 和 NFSv4.2
    • 进一步增强了并行访问、会话管理和数据一致性。

4. NFS 的优缺点

优点

  • 透明访问
    • 客户端可以像访问本地文件一样访问远程文件。
  • 集中管理
    • 文件集中存储在服务器上,便于管理和备份。
  • 跨平台支持
    • 支持多种操作系统(如 Linux、UNIX、Windows)。
  • 高性能
    • 在高带宽、低延迟的网络环境中性能优异。

缺点

  • 安全性
    • NFSv3 及以下版本的安全性较低,依赖网络安全性。
    • NFSv4 引入了更强的安全性,但仍需谨慎配置。
  • 网络依赖
    • 网络故障或延迟会影响文件访问性能。
  • 复杂性
    • 配置和管理 NFS 需要一定的技术知识。

5. NFS 的配置与使用

以下是在 Linux 系统中配置和使用 NFS 的基本步骤。

服务器端配置

  1. 安装 NFS 服务器软件

sudo dnf install nfs-utils

  1. 创建共享目录

sudo mkdir /shared

sudo chmod 777 /shared

  1. 编辑导出文件 /etc/exports
    • 添加共享目录和客户端访问权限:

/shared 192.168.1.0/24(rw,sync,no_root_squash)

      • rw:允许读写。
      • sync:同步写入。
      • no_root_squash:允许客户端 root 用户保留权限。
  1. 启动 NFS 服务

sudo systemctl enable --now nfs-server

  1. 验证共享目录

sudo exportfs -v

客户端配置

  1. 安装 NFS 客户端软件

sudo dnf install nfs-utils

  1. 创建挂载点

sudo mkdir /mnt/nfs

  1. 挂载共享目录

sudo mount -t nfs 192.168.1.100:/shared /mnt/nfs

    • 192.168.1.100 是 NFS 服务器的 IP 地址。
  1. 验证挂载

df -h

  1. 持久化挂载
    • 编辑 /etc/fstab,添加以下行:

192.168.1.100:/shared /mnt/nfs nfs defaults 0 0


6. NFS 的安全配置

  • 使用防火墙
    • 限制 NFS 端口的访问:

sudo firewall-cmd --add-service=nfs --permanent

sudo firewall-cmd --reload

  • 使用 Kerberos 认证
    • 在 NFSv4 中启用 Kerberos 认证以提高安全性。

7. NFS 的常见问题排查

  • 挂载失败
    • 检查服务器和客户端的网络连接。
    • 确保 NFS 服务已启动。
    • 检查 /etc/exports 配置是否正确。
  • 权限问题
    • 确保共享目录的权限设置正确。

检查客户端和服务器上的用户和组 ID 是否一致。

二、直接映射和间接映射和主映射?

在网络文件系统(NFS)中,映射(Mounting)是指客户端如何访问服务器上的共享目录。根据映射方式的不同,可以分为直接映射间接映射自动映射(Automounting)。以下是它们的详细说明:


1. 直接映射(Direct Mount)

定义

  • 直接映射是指客户端通过手动或配置文件(如 /etc/fstab)将服务器上的共享目录挂载到本地文件系统的特定路径。

特点

  • 手动操作
    • 需要管理员手动执行挂载命令或配置 /etc/fstab。
  • 持久性
    • 如果通过 /etc/fstab 配置,挂载会在系统启动时自动完成。
  • 固定路径
    • 共享目录挂载到本地文件系统的固定路径。

示例

  1. 手动挂载

sudo mount -t nfs 192.168.1.100:/shared /mnt/nfs

  1. 通过 /etc/fstab 挂载
    • 编辑 /etc/fstab,添加以下行:

192.168.1.100:/shared /mnt/nfs nfs defaults 0 0

    • 挂载:

sudo mount /mnt/nfs


2. 间接映射(Indirect Mount)

定义

  • 间接映射是自动映射(Automounting)的一种形式,通过 Autofs 服务实现。共享目录不会一直挂载,只有在客户端访问时才会自动挂载。

特点

  • 按需挂载
    • 共享目录在客户端访问时自动挂载,闲置一段时间后自动卸载。
  • 灵活性
    • 不需要手动挂载,适合动态环境。
  • 路径结构
    • 共享目录挂载到 Autofs 的基目录下(如 /mnt/autofs)。

示例

  1. 安装 Autofs

sudo dnf install autofs

  1. 配置 Autofs
    • 编辑 /etc/auto.master,添加以下行:

/mnt/autofs /etc/auto.nfs

    • 创建 /etc/auto.nfs 文件,添加以下内容:

shared -rw,sync 192.168.1.100:/shared

  1. 启动 Autofs 服务

sudo systemctl enable --now autofs

  1. 访问共享目录
    • 访问 /mnt/autofs/shared 时,Autofs 会自动挂载共享目录。

3. 自动映射(Automounting)

定义

  • 自动映射是一种更高级的映射方式,通过 Autofs 服务实现。它结合了直接映射和间接映射的特点,支持更复杂的挂载配置。

特点

  • 动态挂载
    • 共享目录在客户端访问时自动挂载,闲置时自动卸载。
  • 多层路径
    • 支持多层目录结构,适合复杂的共享环境。
  • 灵活性
    • 可以根据需要配置多个共享目录。

示例

  1. 安装 Autofs

sudo dnf install autofs

  1. 配置 Autofs
    • 编辑 /etc/auto.master,添加以下行:

/mnt/autofs /etc/auto.nfs

    • 创建 /etc/auto.nfs 文件,添加以下内容:

shared -rw,sync 192.168.1.100:/shared

data -rw,sync 192.168.1.100:/data

  1. 启动 Autofs 服务

sudo systemctl enable --now autofs

  1. 访问共享目录
    • 访问 /mnt/autofs/shared 或 /mnt/autofs/data 时,Autofs 会自动挂载相应的共享目录。

4. 主映射(Master Map)

定义

  • 主映射是 Autofs 的核心配置文件(/etc/auto.master),用于定义 Autofs 的基目录和对应的映射文件。

特点

  • 基目录
    • 定义 Autofs 的挂载点基目录(如 /mnt/autofs)。
  • 映射文件
    • 指定每个基目录对应的映射文件(如 /etc/auto.nfs)。

示例

  • /etc/auto.master 文件内容:

/mnt/autofs /etc/auto.nfs

/home/autofs /etc/auto.home


5. 对比直接映射、间接映射和自动映射

特性 直接映射 间接映射 自动映射
挂载方式 手动或通过 /etc/fstab 按需挂载(Autofs) 按需挂载(Autofs)
持久性 持久挂载 动态挂载 动态挂载
路径结构 固定路径 基目录下的子目录 基目录下的子目录
适用场景 固定共享目录 动态共享目录 复杂共享环境

总结

  • 直接映射:适合固定共享目录,需要手动或通过 /etc/fstab 配置。
  • 间接映射:适合动态共享目录,通过 Autofs 实现按需挂载。
  • 自动映射:适合复杂共享环境,支持多层路径和多个共享目录。
相关推荐
隔壁小查1 小时前
【计算机网络】网络原理
网络·计算机网络
黑金IT3 小时前
WebSocket与PHP端高效交互处理语音数据方案
websocket·网络协议·php
Elec_z4 小时前
网络深处的守门人
开发语言·网络
有梦想的攻城狮5 小时前
【一起来学kubernetes】29、NFS使用详解
云原生·容器·kubernetes·nfs·网络文件系统
这个懒人5 小时前
Kubernetes深度解析:云原生时代的容器编排引擎
云原生·容器·kubernetes
车载测试工程师5 小时前
车载以太网网络测试-25【SOME/IP-报文格式-1】
网络·网络协议·tcp/ip
小安运维日记9 小时前
CKS认证 | Day3 K8s容器运行环境安全加固
运维·网络·安全·云原生·kubernetes·云计算
IEVEl9 小时前
Centos7 开放端口号
linux·网络·centos
今夜有雨.9 小时前
HTTP---基础知识
服务器·网络·后端·网络协议·学习·tcp/ip·http
Synfuture阳途9 小时前
关于终端安全管理系统的超全解析
网络·安全·web安全