硬核实战!CentOS7 iSCSI存储搭建+多路径高可用,生产环境直接复用

硬核实战!CentOS7 iSCSI存储搭建+多路径高可用,生产环境直接复用

标签:#iSCSI #IP-SAN #Linux存储运维 #多路径高可用 #企业存储实战 #CentOS7

导读:在企业数据中心架构中,共享存储是集群服务、业务数据持久化的核心基石。传统FC光纤存储成本高昂、部署复杂,而iSCSI IP-SAN依托通用以太网,低成本、易运维、兼容性极强,成为中小企业、私有云环境的首选块存储方案。

本文从零梳理iSCSI核心原理、架构术语,全程手把手实操服务端部署、客户端挂载、持久化配置、多路径冗余、故障切换,所有命令、配置均可直接复制落地,完美适配测试、生产环境,新手也能一次性吃透!

一、iSCSI 核心原理与技术特性

1.1 SCSI 与 iSCSI 核心区别

SCSI(小型计算机系统接口):传统本地硬件总线协议,专门用于服务器与硬盘、阵列卡、光驱等存储设备的本地高速通信,读写性能稳定,但仅支持本地硬件连接,无法跨网络共享。

iSCSI(Internet 小型计算机系统接口):由IBM研发的IP-SAN技术,核心突破是将本地SCSI读写指令封装为TCP数据包,通过以太网传输,彻底打破本地硬件限制。

简单来说:iSCSI 可以让远端服务器的硬盘,被本地服务器识别为原生裸盘,支持分区、格式化、挂载、LVM等所有磁盘操作,体验与本地硬盘完全一致。

1.2 性能与安全设计

  • 性能优化:测试环境可使用千兆网卡,生产环境强制推荐10G及以上专用以太网,降低IO延迟,支撑高并发读写场景。

  • 内网传输机制:数据中心内网封闭传输,默认不加密,最大化磁盘读写性能,满足业务吞吐需求。

  • 外网安全加固:若需跨公网使用iSCSI存储,可搭配IPsec协议加密传输流量,杜绝数据抓包、篡改、泄露风险。

二、iSCSI 架构与核心运维术语

iSCSI 采用标准C/S(客户端/服务端)架构,角色分工清晰,所有权限管控、磁盘映射、高可用配置,均基于以下架构和术语实现,是运维实操的核心基础。
在这里插入图片描述

2.1 两大核心角色

Target(iSCSI 服务端)

存储资源提供者,部署在专用存储服务器上,负责整合本地物理磁盘、分区,对外发布共享存储资源,同时管控客户端接入权限、磁盘映射规则。单台服务端可创建多个Target,实现多组磁盘分组隔离共享。

Initiator(iSCSI 客户端)

存储资源使用者,部署在业务服务器上,分为两种模式:主流软件模式(免费、易部署)、企业高端HBA硬件网卡模式(释放服务器资源)。客户端通过网络发现并认证服务端存储,将远端磁盘映射为本地块设备使用。

2.2 必懂核心术语

IQN(全局唯一设备名称)

iSCSI设备全网唯一身份标识,是服务端识别客户端、配置访问白名单的核心依据,所有服务端Target、客户端Initiator必须配置独立IQN。

标准格式iqn.YYYY-MM.com.reversed.domain:name_string

组成部分格式要求作用说明
前缀固定iqn.iSCSI 限定命名开头,不可修改
第一段时间YYYY-MM4 位年份 - 2 位月份,用来保证全局唯一,填写创建 iSCSI 目标的年月即可
第二段反向域名域名倒序使用自己持有 / 所属域名倒写,防止和互联网其他厂商 IQN 冲突(例如:storage.laofang.cloud 的反向域名为cloud.laofang.storage)
第三段标识:name_string冒号 + 自定义名称,区分同一服务器上多个不同磁盘目标,单目标可省略

实战配置示例

  • 服务端:iqn.2026-08.cloud.laofang.iscsi-server:disk1

  • 客户端:iqn.2026-08.cloud.laofang.iscsi-client

LUN(逻辑单元)

真正对外提供服务的块设备,后端绑定服务端物理磁盘/分区。一个Target可绑定多个LUN,实现多块独立磁盘共享,是客户端最终识别和使用的存储设备。

ACL(访问控制白名单)

iSCSI核心安全机制,默认拒绝所有客户端连接。仅将客户端IQN加入白名单后,客户端才能认证登录、使用存储资源,有效防止未授权设备接入。

Portal(访问门户)

iSCSI服务对外监听入口,由「IP+3260标准端口」组成,客户端通过该地址扫描、发现并连接远端存储资源。

TPG(目标门户组)

Target的完整配置集合,整合Portal监听端口、LUN磁盘映射、ACL访问权限三大核心配置。常规场景单Target搭配单TPG,高可用多路径场景可配置多TPG实现链路冗余。

三、实验环境规划与初始化

3.1 节点资源规划

基于CentOS7模板克隆两台虚拟机,关闭防火墙、SELinux,保证网络互通;服务端新增2块20G SCSI磁盘作为共享存储。

节点名称IP地址角色硬件配置
iscsi-server10.1.8.10/24iSCSI Target 服务端系统盘+2块20G共享磁盘(/dev/sdb、/dev/sdc)
iscsi-client10.1.8.11/24iSCSI Initiator 客户端默认系统盘,无额外磁盘

3.2 全局环境初始化(所有节点执行)

服务端初始化配置

# 修改主机名
hostnamectl set-hostname iscsi-server

# 配置静态IP
nmcli connection modify ens33 ipv4.method manual ipv4.addresses 10.1.8.10/24 ipv4.gateway 10.1.8.2 ipv4.dns 10.1.8.2 autoconnect yes
nmcli connection up ens33

# 关闭防火墙与SELinux(测试环境)
systemctl disable firewalld --now
setenforce 0

客户端初始化配置

# 修改主机名
hostnamectl set-hostname iscsi-client

# 配置静态IP
nmcli connection modify ens33 ipv4.method manual ipv4.addresses 10.1.8.11/24 ipv4.gateway 10.1.8.2 ipv4.dns 10.1.8.2 autoconnect yes
nmcli connection up ens33

# 关闭防火墙与SELinux(测试环境)
systemctl disable firewalld --now
setenforce 0

四、iSCSI Target 服务端完整部署

4.1 安装核心依赖服务

iSCSI服务端依托 targetd 服务运行,通过targetcli 交互式工具完成所有配置。

# 安装服务端核心软件
[root@iscsi-server ~ 23:26:10]# yum -y install targetd targetcli

# 设置开机自启并立即启动服务
[root@iscsi-server ~ 23:32:21]# systemctl enable target --now

# 生产环境放行iSCSI端口防火墙规则
[root@iscsi-server ~ 23:35:33]# firewall-cmd --add-service=iscsi-target --permanent
[root@iscsi-server ~ 23:36:39]# firewall-cmd --reload

4.2 完整配置流程(交互式实操)

标准配置顺序:创建后端存储 → 新建Target IQN → 绑定LUN磁盘 → 配置ACL白名单 → 优化监听端口 → 保存配置

1、进入交互式配置终端

不带任何选项运行targetcli时,该命令将进入交互模式

[root@iscsi-server ~ 23:38:19]# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.53
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

目录结构逐行解析
这是刚进入targetcli交互界面的初始空白目录,无任何 iSCSI 配置,逐层拆解含义

/> ls
o- / .......................................................... [根目录,targetcli总入口]
  o- backstores ............................................... [后端存储仓库,定义要共享的磁盘数据源]
  | o- block ................................... [Storage Objects: 0]  # 块设备:物理硬盘、分区、LVM逻辑卷(生产常用)
  | o- fileio .................................. [Storage Objects: 0]  # 文件镜像:用单个文件模拟磁盘,多用于测试环境
  | o- pscsi ................................... [Storage Objects: 0]  # 直通SCSI设备:直接透传外接硬件磁盘
  | o- ramdisk ................................. [Storage Objects: 0]  # 内存盘:内存虚拟高速磁盘,断电数据丢失
  o- iscsi ............................................. [Targets: 0]  # iSCSI目标目录,创建IQN共享目标
  o- loopback .......................................... [Targets: 0]  # 本地回环挂载,本机程序调用本机共享磁盘,极少使用

补充标注说明

  • Storage Objects: 0:当前该分类下还没有创建任何后端存储;
  • Targets: 0:暂无 iSCSI 共享目标;
  • 日常搭建远程共享磁盘,仅使用 block + iscsi 两个目录,其余三类仅特殊场景使用。

通用基础指令(全目录通用)

命令功能
ls查看当前目录所有内容
cd 路径切换目录
create xxx创建对象(后端、target、lun、acl)
delete xxx删除指定对象
clearconfig confirm=true清空全部配置
saveconfig保存配置,开机自动加载
help查看当前目录可用命令

2、创建块设备后端存储

将服务端新增的两块磁盘注册为后端存储,用于对外共享

# 进入块设备配置目录
cd /backstores/block

# 绑定第一块20G磁盘 /dev/sdb
create myblock1 /dev/sdb

3、创建Target唯一IQN

# 进入iSCSI核心配置目录
cd /iscsi

# 创建第一个存储目标(对应sdb磁盘)
create iqn.2026-08.cloud.fangbing.iscsi-server:disk1

4、绑定LUN磁盘映射

将后端存储磁盘与Target关联,实现磁盘对外共享,无此配置客户端无法识别磁盘

# 为disk1绑定LUN
cd /iscsi/iqn.2026-08.cloud.fangbing.iscsi-server:disk1/tpg1/luns
create /backstores/block/myblock1

5、配置ACL客户端白名单

仅放行指定客户端IQN,拒绝所有未授权连接,保障存储安全

# 配置disk1白名单
cd /iscsi/iqn.2026-08.cloud.fangbing.iscsi-server:disk1/tpg1/acls
create iqn.2026-08.cloud.fangbing.iscsi-client

6、优化监听端口(生产必备)

默认监听0.0.0.0全网段,存在安全风险,修改为固定业务IP监听

# 优化disk1监听端口
cd /iscsi/iqn.2026-08.cloud.fangbing.iscsi-server:disk1/tpg1/portals/
delete 0.0.0.0 3260
create 10.1.8.10 3260

7、保存配置并退出

# 退出终端(自动保存配置)
exit

# 查看配置后的结果
[root@iscsi-server ~ 23:59:36]# targetcli ls
o- / .......................................................... [targetcli根目录]
  o- backstores ............................................... [后端存储总目录,存放共享磁盘数据源]
  | o- block ................................... [Storage Objects: 1]  # 块设备目录,当前已有1个后端磁盘
  | | o- myblock1 ......... [/dev/sdb (20.0GiB) write-thru activated]  # 后端磁盘名myblock1,绑定/dev/sdb,20G直写模式,已启用
  | |   o- alua .................................... [ALUA Groups: 1]  # 多路径高可用分组
  | |     o- default_tg_pt_gp ........ [ALUA state: Active/optimized]  # 路径状态:正常活跃可用
  | o- fileio .................................. [Storage Objects: 0]  # 文件镜像存储,暂无创建
  | o- pscsi ................................... [Storage Objects: 0]  # 硬件SCSI直通,暂无创建
  | o- ramdisk ................................. [Storage Objects: 0]  # 内存虚拟磁盘,暂无创建
  o- iscsi ............................................. [Targets: 1]  # iSCSI目标总目录,已创建1个共享目标
  | o- iqn.2026-08.cloud.fangbing.iscsi-server:disk1 ....... [TPGs: 1]  # 目标IQN名称,包含1个目标门户组tpg1
  |   o- tpg1 ................................ [no-gen-acls, no-auth]  # 门户组1:未自动生成ACL、无密码认证
  |     o- acls ........................................... [ACLs: 1]  # 客户端权限白名单,已添加1个客户端
  |     | o- iqn.2026-08.cloud.fangbing.iscsi-client  [Mapped LUNs: 1]  # 放行客户端IQN,已分配1个LUN磁盘
  |     |   o- mapped_lun0 ............... [lun0 block/myblock1 (rw)]  # 映射LUN0,读写权限,对应后端myblock1
  |     o- luns ........................................... [LUNs: 1]  # LUN磁盘列表,绑定1个磁盘
  |     | o- lun0 .... [block/myblock1 (/dev/sdb) (default_tg_pt_gp)]  # LUN0关联后端磁盘myblock1
  |     o- portals ..................................... [Portals: 1]  # 监听端口列表,1个监听地址
  |       o- 10.1.8.10:3260 .................................... [OK]  # 服务端监听IP与端口,状态正常就绪
  o- loopback .......................................... [Targets: 0]  # 本地回环共享,无配置

配置完成后,自动永久到该路径下:/etc/target/saveconfig.json

  • 作用:targetcli 所有配置(后端盘、Target、LUN、ACL、监听端口)都会以 JSON 格式记录在此文件;
  • 生效机制:target.service 开机启动时,自动加载该文件,还原整套 iSCSI 共享配置,保证重启不丢失配置。

4.3 非交互式批量配置(快捷方案)

除交互式配置外,可直接通过命令行批量配置,适合批量部署、脚本自动化运维

# 创建第二块磁盘后端存储
[root@iscsi-server ~ 00:08:26]# targetcli /backstores/block create myblock2 /dev/sdc

# 创建第二个Target
[root@iscsi-server ~ 00:09:46]# targetcli /iscsi create iqn.2026-08.cloud.fangbing.iscsi-server:disk2

# 绑定LUN
[root@iscsi-server ~ 00:11:01]# targetcli /iscsi/iqn.2026-08.cloud.fangbing.iscsi-server:disk2/tpg1/luns create /backstores/block/myblock2

# 配置白名单
[root@iscsi-server ~ 00:12:39]# targetcli /iscsi/iqn.2026-08.cloud.fangbing.iscsi-server:disk2/tpg1/acls create iqn.2026-08.cloud.laofang.iscsi-client

# 绑定固定监听IP
[root@iscsi-server ~ 00:13:35]# targetcli /iscsi/iqn.2026-08.cloud.fangbing.iscsi-server:disk2/tpg1/portals create 10.1.8.10 3260

# 强制保存所有配置
[root@iscsi-server ~ 00:14:34]# targetcli saveconfig

五、iSCSI 客户端连接与持久化挂载

5.1 两种启动器(接入磁盘的两种方式)

  1. 软件启动器(日常学习、服务器首选),靠 CPU 和普通网卡,软件模拟连接远程硬盘
  • 原理:普通网线走硬盘数据,CPU 打包、解析 iSCSI 网络协议;
  • 优点:不用额外花钱,系统装个软件就能用,简单省事;
  • 缺点:读写压力很大时,会稍微占用 CPU 性能。
  1. 硬件 HBA 启动器(大企业高端设备用)
  • 原理:硬件芯片单独处理网络协议,不再占用 CPU;
  • 优点:高速读写、高并发下服务器更稳定;
  • 缺点:硬件很贵,普通机房、学习环境完全没必要。

5.2 安装客户端工具

Linux 电脑想要连上远程iSCSI硬盘,必须装这个工具包(iscsi-initiator-utils)。包里一共 3 样核心东西:

  • iscsid(后台管家)一直挂在后台运行,维持电脑和远程硬盘的连接,断线自动重连、实时传输数据,连接全靠它维持。
  • iscsiadm(操作遥控器)我们手动敲命令全靠它,用来查找远程硬盘、登录连接、断开硬盘。
文件作用
/etc/iscsi/initiatorname.iscsi本机 “身份证号(客户端 IQN)”,服务端只认名单里的身份证,不在名单就不让连硬盘
/etc/iscsi/iscsid.conf连接规则手册:断线多久重试、密码登录、传输速度限制等细节设置
# 安装软件包
[root@iscsi-client ~ 23:26:12]# yum install -y iscsi-initiator-utils

# 设置开机自启,同时启动软件
[root@iscsi-client ~ 17:40:37]# systemctl enable iscsid --now

# 查看状态
[root@iscsi-client ~ 17:50:05]# systemctl status iscsid

iscsiadm 命令与选项完整汇总表

分类命令 / 参数释义说明实操示例
核心模式-m discovery扫描模式,探测服务端共享磁盘iscsiadm -m discovery -t st -p 10.1.8.10
-m node节点模式,管理本地持久化磁盘记录(登录、删除、查看)iscsiadm -m node
-m session会话模式,查看当前正在连接的链路详情iscsiadm -m session -P3
扫描相关-t st扫描类型 sendtargets,iSCSI 标准默认方式,端口 3260iscsiadm -m discovery -t st -p 10.1.8.10
-p IP[:端口]指定 iSCSI 服务端 IP,端口省略默认 3260iscsiadm -m discovery -t st -p 10.1.8.10:3260
登录操作-l(login)登录磁盘批量登录:iscsiadm -m node -l单独登录:iscsiadm -m node -T iqn.xxx -p 10.1.8.10 -l
登出操作-u(logout)断开磁盘连接,保留本地节点记录全部登出:iscsiadm -m node -u单个登出:iscsiadm -m node -T iqn.xxx -p 10.1.8.10 -u
删除节点-o delete删除本地 node 持久化记录,重启不会自动重连删除单条:iscsiadm -m node -T iqn.xxx -p 10.1.8.10 -o delete清空整台服务器记录:iscsiadm -m node -p 10.1.8.10 -o delete
查看配置-o show查看单个 target 详细配置(超时、认证、重连参数)iscsiadm -m node -T iqn.2026-08.local:disk1 -o show
详情等级-P 0极简输出,仅核心信息iscsiadm -m session -P0
-P 1简略信息,日常查看链路状态iscsiadm -m session -P1
-P 3完整详细信息,故障排查首选,可查看 /dev/sd 盘符iscsiadm -m session -P3
指定对象-T IQN名称锁定单个目标磁盘iscsiadm -m node -T iqn.2026-08.local:disk1 -l
查看记录iscsiadm -m discovery查看所有历史扫描过的服务器iscsiadm -m discovery
iscsiadm -m node列出本机所有保存的 target 节点清单iscsiadm -m node
临时直登无 discovery,手动指定登录不写入本地 node,重启失效,仅临时测试iscsiadm -m node -T iqn.2026-08.local:disk1 -p 10.1.8.10 -l

5.3配置客户端唯一IQN

客户端IQN必须与服务端白名单完全一致,否则无法登录

# 编辑IQN配置文件
vim /etc/iscsi/initiatorname.iscsi

写入如下配置:

# iSCSI 客户端唯一身份标识(启动器名称),用来让服务端识别当前客户端,做权限 ACL 黑白名单绑定
InitiatorName=iqn.2026-08.cloud.fangbing.iscsi-client

# 重启服务
[root@iscsi-client ~ 18:24:34]# systemctl restart iscsid

5.4 发现并登录远端存储

1、扫描服务端共享资源

# 扫描模式,探测服务端共享磁盘,服务端 Target 信息自动写入本机 /var/lib/iscsi/nodes/,生成 node 节点记录
[root@iscsi-client ~ 17:56:56]# iscsiadm -m discovery -t st -p 10.1.8.10
10.1.8.10:3260,1 iqn.2026-08.cloud.fangbing.iscsi-server:disk1
10.1.8.10:3260,1 iqn.2026-08.cloud.fangbing.iscsi-server:disk2

注意:只有先扫描发现后,服务端 Target 信息会自动写入本机 /var/lib/iscsi/nodes/,生成 node 节点记录;本机才能登录

2、登录指定存储目标

# 登录所有扫描的设备
[root@iscsi-client ~ 18:25:03]# iscsiadm -m node -l

5.5 查看映射磁盘设备

# 查看本地磁盘列表,可识别远端sdb和sdc磁盘
[root@iscsi-client ~ 18:27:49]# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0   200G  0 disk 
├─sda1            8:1    0     1G  0 part /boot
└─sda2            8:2    0   199G  0 part 
  ├─centos-root 253:0    0    50G  0 lvm  /
  ├─centos-swap 253:1    0   3.9G  0 lvm  [SWAP]
  └─centos-home 253:2    0 145.1G  0 lvm  /home
sdb               8:16   0    20G  0 disk 
sdc               8:32   0    20G  0 disk 
sr0              11:0    1   4.4G  0 rom  /run/media/root/CentOS 7 x86_64

# 查看完整iSCSI会话详情
[root@iscsi-client ~ 18:28:26]# iscsiadm -m session -P 3

5.6 磁盘格式化与读写测试

# 格式化xfs文件系统
[root@iscsi-client ~ 21:24:38]# mkfs.xfs /dev/sdb

# 创建挂载目录并临时挂载
[root@iscsi-client ~ 21:24:48]# mkdir /sdb
[root@iscsi-client ~ 21:25:19]# mount /dev/sdb /sdb

# 读写测试验证可用性
[root@iscsi-client ~ 21:25:40]# echo "iscsi storage test" > /sdb/test
[root@iscsi-client ~ 21:26:36]# cat /sdb/test
iscsi storage test

5.7 生产级持久化挂载(重点)

核心避坑:禁止使用/dev/sd*设备名挂载,服务器重启后设备名可能漂移,导致挂载失败!必须使用UUID+_netdev参数

# 查询磁盘UUID
[root@iscsi-client ~ 21:26:48]# blkid /dev/sdb
/dev/sdb: UUID="a6616dc3-fcff-4ceb-97bb-a25564d90449" TYPE="xfs"

# 编辑开机挂载文件
[root@iscsi-client ~ 21:28:00]# vim /etc/fstab

写入配置(替换为自己的磁盘UUID):

UUID="a6616dc3-fcff-4ceb-97bb-a25564d90449" /sdb xfs defaults,_netdev 0 0

_netdev 参数作用:等待网络、iSCSI服务启动完成后再挂载磁盘,彻底杜绝开机挂载失败问题。

核查配置是否正常

# 卸载/dev/sdb设备
[root@iscsi-client ~ 21:31:25]# umount /dev/sdb

# 读取 /etc/fstab 配置文件,自动挂载文件中所有标记为开机自动挂载
[root@iscsi-client ~ 21:31:31]# mount -a

# 查看挂载结果
[root@iscsi-client ~ 21:31:52]# df -hT /dev/sdb
文件系统       类型  容量  已用  可用 已用% 挂载点
/dev/sdb       xfs    20G   33M   20G    1% /sdb

5.8 客户端断开与清理配置

要停止使用iSCSI目标,请执行以下步骤:

  • 确保没有使用目标提供的任何设备。 例如,卸载文件系统。
  • 从/etc/fstab等位置删除对目标的所有持久引用。
  • 从iSCSI目标注销。
# 卸载挂载目录,同时删除/etc/fstab中的挂载配置
[root@iscsi-client ~ 21:30:58]# umount /dev/sdb

# 注销iSCSI连接
[root@iscsi-client ~ 21:40:37]# iscsiadm -m node -T iqn.2026-08.cloud.fangbing.iscsi-server:disk1 -p 10.1.8.10:3260 -u

# 删除本地缓存的存储节点信息
[root@iscsi-client ~ 21:42:50]# iscsiadm -m node -T iqn.2026-08.cloud.fangbing.iscsi-server:disk1 -p 10.1.8.10:3260 -o delete

# 查看本地连接的所有node节点
[root@iscsi-client ~ 21:44:20]# iscsiadm -m node

六、Multipath 多路径高可用部署(生产必备)

单链路iSCSI存储存在严重单点故障,网卡、网线、端口故障都会导致存储离线、业务中断。通过多路径技术聚合双链路,实现故障自动切换,保障业务7*24小时高可用。多路径就是把多条物理线路合并成 1 个虚拟硬盘:一根线路断了,流量自动换到别的线路,硬盘照常使用,不会掉线损坏。

实现原理:

  • 内核底层:Device Mapper相当于系统自带的 “虚拟硬盘加工厂”,多路径靠它造出合并后的虚拟硬盘。
  • 后台管家:multipathd 进程24 小时后台盯着所有线路好坏,哪根线路故障,立刻自动切换线路,全程不用人工干预。
  • 手动遥控器:multipath 命令管理员手动查询硬盘状态、刷新配置、排查故障用的命令工具。
  • 安装包:device-mapper-multipath想要用多路径,必须装这个软件包,管家进程、遥控器命令、内核驱动全都在这个包里。

6.1 多路径架构原理

服务端、客户端各配置双网卡双网段,搭建两条独立存储传输链路。系统将两条物理链路聚合为一个虚拟设备,默认主备模式,主链路故障时,业务无感知自动切换至备用链路。

6.2 服务端双链路配置

服务端新增网卡配置网段:10.1.1.10/24,新增监听端口

# 新增第二条链路监听端口
[root@iscsi-server ~ 22:00:25]# targetcli /iscsi/iqn.2026-08.cloud.fangbing.iscsi-server:disk1/tpg2/portals create 10.1.1.10 3260
[root@iscsi-server ~ 22:00:33]# targetcli /iscsi/iqn.2026-08.cloud.fangbing.iscsi-server:disk2/tpg1/portals create 10.1.1.10 3260

# 保存高可用配置
[root@iscsi-server ~ 22:02:57]# targetcli saveconfig

6.3 客户端多路径部署

客户端新增网卡配置网段:10.1.1.11/24,同时安装多路径软件包

# 安装多路径核心工具
[root@iscsi-client ~ 22:04:07]# yum -y install device-mapper-multipath

# 生成默认配置文件并启用服务
# 整行命令作用
# 一键三件事:
# 1.启用多路径、生成配置文件;
# 2.马上运行多路径守护进程;
# 3.设置开机自启,重启服务器多路径依旧生效。
[root@iscsi-client ~ 22:13:59]# mpathconf --enable --with_multipathd y --with_chkconfig y
usage: /usr/sbin/mpathconf <command>

Commands:
Enable: --enable 
Disable: --disable
Only allow certain wwids (instead of enable): --allow <WWID>
Set user_friendly_names (Default y): --user_friendly_names <y|n>
Set find_multipaths (Default y): --find_multipaths <y|n>
Load the dm-multipath modules on enable (Default y): --with_module <y|n>
start/stop/reload multipathd (Default n): --with_multipathd <y|n>
select output file (Default /etc/multipath.conf): --outfile <FILE>

# 启动服务
[root@iscsi-client ~ 22:22:26]# systemctl start multipathd

dm-multipath 命令汇总精简版

分类命令通俗作用实战示例
multipath 主命令查看、刷新、管理多路径设备multipath -ll最常用,详细查看链路、状态、WWID、mpath 设备拓扑multipath -ll
multipath -l简略查看链路信息,输出精简multipath -l
multipath -r重新扫描磁盘,刷新聚合路径multipath -r
multipath -f 设备路径删除单个多路径映射设备multipath -f /dev/mapper/mpath0
multipath -F清空全部多路径设备multipath -F
multipath -t查看当前已加载生效的配置multipath -t
multipath -w查看所有磁盘 WWID 编号multipath -w
multipath -v 数字日志级别:0 静默、1 默认、2 详细、3 调试multipath -v3 -r
multipath -q静默执行,屏蔽多余输出multipath -q -r
multipathd 交互命令进程内部查询、热重载、扩容刷新multipathd show paths查看所有物理链路在线状态multipathd show paths
multipathd show maps查看所有聚合后的 mpath 虚拟盘multipathd show maps
multipathd show config查看进程实时运行配置multipathd show config
multipathd reload热重载配置,不重启进程multipathd reload
multipathd resize map mpath0磁盘扩容后刷新识别容量multipathd resize map mpath0
mpathconf 初始化配置工具mpathconf --enable开启多路径、生成配置文件、加载内核模块mpathconf --enable
mpathconf --disable关闭多路径、停用模块mpathconf --disable
mpathconf --with_multipathd y启用配置后立刻启动守护进程一键初始化:mpathconf --enable --with_multipathd y --with_chkconfig y
mpathconf --with_chkconfig y配置开机自启,兼容 CentOS6/7同上组合命令
mpathconf(无参数)查看多路径全局开关状态mpathconf

6.4 双链路发现与聚合

# 分别扫描两条链路的存储资源
[root@iscsi-client ~ 22:24:12]# iscsiadm -m discovery -t st -p 10.1.8.10
[root@iscsi-client ~ 22:24:32]# iscsiadm -m discovery -t st -p 10.1.1.10

# 批量登录所有存储链路
[root@iscsi-client ~ 22:24:55]# iscsiadm -m node -l

# 查看多路径聚合状态
[root@iscsi-client ~ 22:25:47]# multipath -ll
mpathb (3600140558aea5124ff042cb9250b77ad) dm-4 LIO-ORG ,myblock    # 多路径友好名|WWID唯一编号|内核底层dm设备|存储厂商与LUN名称
size=20G features='0' hwhandler='0' wp=rw                           # 容量20G | 无特殊硬件特性 | 无硬件管理插件 | 读写权限rw
|-+- policy='service-time 0' prio=1 status=active                   # 路径组1:最短耗时调度、优先级1、当前业务主用组
| `- 5:0:0:0 sdc 8:32 active ready running                          # 物理磁盘sdc,主链路,正常就绪、正在运行
`-+- policy='service-time 0' prio=1 status=enabled                  # 路径组2:同调度策略优先级,备用就绪组
  `- 6:0:0:0 sde 8:64 active ready running                          # 物理磁盘sde,备用链路,线路健康可随时切换
mpatha (3600140548cc0e172d004bbea5bf41895) dm-3 LIO-ORG ,myblock2        
size=20G features='0' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=1 status=active
| `- 4:0:0:0 sdb 8:16 active ready running
`-+- policy='service-time 0' prio=1 status=enabled
  `- 3:0:0:0 sdd 8:48 active ready running

正常状态:两条链路一主一备,状态为active/ready,代表链路聚合成功。

6.5 确定设备是同一设备

WWN(World Wide Name):IEEE 标准化的全球唯一硬件名称,固化在存储设备中,永久唯一。

适用设备:硬盘、RAID、存储阵列、光纤交换机等存储硬件。

scsi_id 命令

# 可以确定sdb和sdd是同1个设备
[root@iscsi-client ~ 22:56:26]# /usr/lib/udev/scsi_id -g -u /dev/sdb
3600140548cc0e172d004bbea5bf41895
[root@iscsi-client ~ 22:56:46]# /usr/lib/udev/scsi_id -g -u /dev/sdd
3600140548cc0e172d004bbea5bf41895

# 可以确定sdc和sde是同1个设备
[root@iscsi-client ~ 22:56:32]# /usr/lib/udev/scsi_id -g -u /dev/sdc
3600140558aea5124ff042cb9250b77ad
[root@iscsi-client ~ 22:56:56]# /usr/lib/udev/scsi_id -g -u /dev/sde
3600140558aea5124ff042cb9250b77ad

6.6 自定义多路径设备名称

默认设备名辨识度低,可自定义别名,方便运维管理

# 编辑多路径配置文件
[root@iscsi-client ~ 22:56:59]# vim /etc/multipath.conf

文件末尾添加自定义配置:

multipaths {                          # 自定义多路径设备专属配置区块,用于单独指定某一块存储盘参数
    multipath {                       # 单台多路径逻辑磁盘配置起始
        wwid 3600140548cc0e172d004bbea5bf41895    # 磁盘唯一硬件标识,用来精准识别后端存储盘
        alias xiyangyang              # 自定义设备别名,生成/dev/mapper/xiyangyang,简化盘符使用
        path_grouping_policy failover # 路径策略:failover 主链路工作,故障自动切备用链路
    }
}
# 重载服务生效
[root@iscsi-client ~ 23:04:31]# systemctl reload multipathd.service 
[root@iscsi-client ~ 23:04:50]# multipath -ll
Aug 07 23:05:00 | /etc/multipath.conf line 94, invalid keyword: blacklist
mpathb (3600140558aea5124ff042cb9250b77ad) dm-4 LIO-ORG ,myblock1        
size=20G features='0' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=1 status=active
| `- 5:0:0:0 sdc 8:32 active ready running
`-+- policy='service-time 0' prio=1 status=enabled
  `- 6:0:0:0 sde 8:64 active ready running
xiyangyang (3600140548cc0e172d004bbea5bf41895) dm-3 LIO-ORG ,myblock2        
size=20G features='0' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=1 status=active
| `- 3:0:0:0 sdd 8:48 active ready running
`-+- policy='service-time 0' prio=1 status=enabled
  `- 4:0:0:0 sdb 8:16 active ready running


6.6 多路径高可用故障测试

  1. 备用链路故障测试:断开服务端备用网卡,客户端执行multipath -ll,备用链路标记failed,主链路正常承载业务,无中断。

  2. 主链路故障测试:断开服务端主网卡,备用链路自动切换为active状态,业务读写无感知、不中断。

  3. 链路恢复测试:故障网卡恢复后,链路自动回归备用状态,多路径架构自动自愈。

6.7 多路径核心配置文件详解

/etc/multipath.conf 五大核心配置模块,覆盖绝大多数生产场景:

  • defaults:全局默认配置,定义链路选择、故障检测、IO调度规则。

  • blacklist:设备黑名单,禁止本地硬盘、光驱、U盘被多路径错误聚合。

  • blacklist_exceptions:黑名单白名单,单独放行指定存储设备。

  • devices:按存储厂商、型号批量配置设备参数。

  • multipaths:针对指定WWID设备单独配置,优先级最高。

七、常见故障排查方案

7.1 存储登录失败

大概率为IQN不匹配:检查客户端/etc/iscsi/initiatorname.iscsi IQN是否与服务端白名单一致,修改后重启iscsid服务,重新扫描登录。同时检查服务端3260端口防火墙是否放行。

7.2 开机自动挂载失败

排查两点:1、fstab是否添加_netdev网络挂载参数;2、iscsi服务是否设置开机自启。禁止使用设备名挂载,必须使用UUID。

7.3 多路径链路异常

检查两端网卡网络互通性、物理链路状态、multipathd服务运行状态,使用multipath -ll实时扫描链路,定位故障节点。

八、实战总结

  1. iSCSI IP-SAN 低成本、高兼容,是中小企业替代FC光纤存储的最优方案,适配集群共享存储、业务数据持久化场景。

  2. iSCSI核心安全依赖IQN白名单ACL,默认拒绝所有未授权接入,生产环境严禁开放全网访问。

  3. 客户端挂载必须遵循「UUID+_netdev」规范,彻底解决设备名漂移、开机挂载异常问题。

  4. 单链路iSCSI存在单点故障,生产环境必须部署Multipath多路径,实现链路冗余、故障自动切换。

  5. 多路径支持主备切换、链路自愈,是企业存储高可用架构的标配,可有效规避硬件单点故障导致的业务中断。
    白名单,单独放行指定存储设备。

  • devices:按存储厂商、型号批量配置设备参数。

  • multipaths:针对指定WWID设备单独配置,优先级最高。

七、常见故障排查方案

7.1 存储登录失败

大概率为IQN不匹配:检查客户端/etc/iscsi/initiatorname.iscsi IQN是否与服务端白名单一致,修改后重启iscsid服务,重新扫描登录。同时检查服务端3260端口防火墙是否放行。

7.2 开机自动挂载失败

排查两点:1、fstab是否添加_netdev网络挂载参数;2、iscsi服务是否设置开机自启。禁止使用设备名挂载,必须使用UUID。

7.3 多路径链路异常

检查两端网卡网络互通性、物理链路状态、multipathd服务运行状态,使用multipath -ll实时扫描链路,定位故障节点。

八、实战总结

  1. iSCSI IP-SAN 低成本、高兼容,是中小企业替代FC光纤存储的最优方案,适配集群共享存储、业务数据持久化场景。

  2. iSCSI核心安全依赖IQN白名单ACL,默认拒绝所有未授权接入,生产环境严禁开放全网访问。

  3. 客户端挂载必须遵循「UUID+_netdev」规范,彻底解决设备名漂移、开机挂载异常问题。

  4. 单链路iSCSI存在单点故障,生产环境必须部署Multipath多路径,实现链路冗余、故障自动切换。

  5. 多路径支持主备切换、链路自愈,是企业存储高可用架构的标配,可有效规避硬件单点故障导致的业务中断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值