个人用云计算学习笔记 --18(NFS 服务器、iSCSI 服务器)
文章目录
- 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 |







