文章目录
- NFS 服务器
-
- 一、NFS 服务基础概念
-
- 工作逻辑
- 二、NFS 与 RPC 的关联
-
- 1. NFS 的端口特性
- 2. RPC 的作用
- 三、NFS 服务部署(基于 RHEL8)
-
- 1. 软件包基础
- 2. 部署步骤(命令行)
- 四、NFS 导出配置(服务端共享规则)
-
- 1. 配置文件说明
- 2. 客户端指定方式(常用)
- 3. 核心导出选项
- 4. 配置生效命令
- 五、NFS 导出监视(服务端)
- 六、NFS 客户端配置
-
- 1. 客户端操作步骤(命令行)
- 2. 持久化挂载(重启后仍生效)
- iSCSI 服务器
-
- 一、iSCSI 服务基础
-
- 1. 概念定义
- 2. 关键特性
- 二、iSCSI 核心组件
- 三、iSCSI Target 配置(服务端)
-
- 1. 前期准备:部署软件与基础配置
- 2. targetcli 工具特性
- 3. 核心配置步骤(交互式示例)
-
- (1)配置 backstore 对象
- (2)配置 Target IQN
- (3)配置 LUN
- (4)配置 ACL(允许客户端访问)
- (5)配置 Portal(指定监听 IP)
- 4. 非交互式配置(命令行模式)
- 四、iSCSI 客户端配置(访问存储)
-
- 1. 前期准备:安装与配置启动器
- 2. 连接 iSCSI 目标
-
- (1)发现目标
- (2)登录目标
- (3)验证设备
- 3. 格式化与持久化挂载
-
- (1)格式化设备
- (2)持久化挂载
- 4. 断开目标连接
- 五、故障处理
-
- 1. 登录失败(发现成功但登录失败)
- 六、多路径访问(提升可用性与性能)
-
- 1. 概念与作用
- 2. 服务端准备(配置双 Portal)
- 3. 客户端配置多路径
-
- (1)安装与启用
- (2)多路径设备位置
- 4. 多路径监控与策略
-
- (1)监控命令
- (2)路径组策略
- (3)故障切换逻辑
- 5. 多路径配置文件(/etc/multipath.conf)
-
- (1)配置结构与优先级
- (2)关键配置项
- 6. 多路径设备管理
-
- (1)增加分区
- (2)删除多路径
NFS 服务器
一、NFS 服务基础概念
工作逻辑
- 客户端视角:NFS 客户端(多为应用服务器,如 web 服务器)通过 “挂载(mount)” 操作,将 NFS 服务端的共享目录挂载到本地挂载点,从本地看,该共享目录如同自身磁盘分区 / 目录,实际存储在远端服务端。
- 企业应用场景:在企业集群架构中,主要用于存储视频、图片、附件等静态资源,例如中小网站的 BBS 图片、用户头像、上传附件等,统一存放在 NFS 共享目录中。
二、NFS 与 RPC 的关联
1. NFS 的端口特性
NFS 支持功能多,每个功能需启动对应程序并占用端口,但端口不固定,随机使用未被占用的小于 1024 的端口,导致客户端无法直接获取服务端端口。
2. RPC 的作用
- 全称:远程过程调用(Remote Procedure Call)。
- 核心功能:注册 NFS 各功能对应的端口,并向客户端汇报,使客户端能连接到正确端口;同时定义进程间网络交互通信机制,让客户端无需了解服务器底层通信协议即可请求服务。
- 关键组件:依赖portmap服务实现端口注册与映射。
三、NFS 服务部署(基于 RHEL8)
1. 软件包基础
NFS 服务由nfs-utils软件包提供,RHEL8 默认已安装,若需手动安装可执行对应命令。
2. 部署步骤(命令行)
| 1 | 安装nfs-utils软件包 | [root@server~]# dnf install -y nfs-utils | |
| 2 | 准备共享目录所属用户(指定 UID=1000,避免权限问题) | 1. 创建用户:[root@server~]# useradd -u 1000 laoma2. 设置密码:`[root@server~]# echo redhat | passwd –stdin laoma` |
| 3 | 创建共享目录并设置权限 | 1. 创建目录:[root@server~]# mkdir /shares/nfs2. 更改所有者:[root@server~]# chown laoma /shares/nfs | |
| 4 | 启用并启动 NFS 服务 | [root@server~]# systemctl enable nfs-server –now | |
| 5 | 配置防火墙(开放 NFS 相关服务端口) | 1. 永久开放服务:[root@server~]# firewall-cmd –permanent –add-service=nfs –add-service=rpc-bind –add-service=mountd2. 重载防火墙:[root@server~]# firewall-cmd –reload |
四、NFS 导出配置(服务端共享规则)
1. 配置文件说明
- 主配置文件:/etc/exports。
- 辅助配置目录:/etc/exports.d/,该目录下以.exports结尾的文件均生效,相比直接编辑主文件,更易管理且能降低配置破坏风险。
- 语法规则:每一行对应一个 “导出点”,格式为[共享目录路径] [客户端1] [选项1] [客户端2] [选项2]…,且禁止将 SMB 共享目录作为 NFS 共享目录,否则可能导致文件损坏或一致性问题。
2. 客户端指定方式(常用)
| 可解析 DNS 主机名 | /shares/nfs client.redhat.fun | 仅client.redhat.fun主机可挂载该目录 |
| DNS 通配符 | /shares/nfs *.redhat.fun | redhat.fun域下所有主机可访问 |
| IPv4 地址 | /shares/nfs 10.1.8.11 | 仅10.1.8.11这一 IP 可访问 |
| IPv4 网络 | /shares/nfs 10.1.8.0/24 或 /shares/nfs 10.1.8.0/255.255.255.0 | 10.1.8.0/24网段所有主机可访问 |
| IPv6 地址 | /shares/nfs fde2:6494:1e09:2::20 | 仅该 IPv6 地址主机可访问 |
| IPv6 网络 | /shares/nfs fde2:6494:1e09:2::/64 | 该 IPv6 网段所有主机可访问 |
| 多客户端 | /shares/nfs 10.1.8.0/24 client.redhat.fun *.example.net | 多个客户端用空格分隔,均能访问 |
3. 核心导出选项
| rw | 允许客户端读 / 写访问(默认是ro只读) | /shares/nfs client.redhat.fun(rw)(该主机有读写权限) |
| no_root_squash | 禁用 “root 用户映射”:默认客户端 root 用户访问时,服务端将其视为nobody用户;启用此选项后,客户端 root 可拥有服务端实际 root 权限(RHEL7 映射nfsnobody,RHEL8 映射nobody) | /shares/nfs client.redhat.fun(rw,no_root_squash) |
4. 配置生效命令
修改导出配置后,需执行以下命令使更改生效:
- 方式 1:[root@server~]# exportfs -r(重新读取配置)
- 方式 2:[root@server~]# systemctl reload nfs-server(重载 NFS 服务)
- 方式 3:[root@server~]# exportfs -av(显示详细信息并生效)
五、NFS 导出监视(服务端)
通过exportfs命令查看当前导出状态:
- 查看导出的目录与客户端:[root@server~]# exportfs,示例输出:/shares/nfs 10.1.8.0/24
- 查看导出目录及选项(含默认选项):[root@server~]# exportfs -v,示例输出:/shares/nfs 10.1.8.0/24(sync,rw,secure,no_root_squash,…)
六、NFS 客户端配置
1. 客户端操作步骤(命令行)
| 1 | 安装nfs-utils软件包 | [root@client~]# dnf install -y nfs-utils |
| 2 | 创建与服务端一致 UID 的用户(避免权限问题) | [root@client~]# useradd -u 1000 laoma |
| 3 |






