P-SAN 实战:CentOS7 搭建 iSCSI Target 共享块存储

iSCSI 服务器

iSCSI 服务介绍

SCSI(Small Computer System Interface,小型计算机系统接口),一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)连接标准。

iSCSI(Internet Small Computer System Interface,Internet小型计算机系统接口),又称为 IP-SAN,是 IBM 公司研究开发的 IP SAN 技术,该技术是将现有 SCSI 接口与以太网络(Ethernet)技术结合,基于 TCP/IP 的协议连接 iSCSI 服务端(Target)和客户端(Initiator),使得封装后的 SCSI 数据包可以在互联网传输,最终实现 iSCSI 服务端提供存储给客户端。

通常,iSCSI 使用专用的 10Gb 以太网或更好的网络,以最大程度地提高性能。

从物理服务器到存储的电缆通常封闭在数据中心内,并且理想情况下不直接连接到 LAN 网络,所以 SAN 流量通常不加密,以最大程度地提高性能。为了实现 WAN 安全,iSCSI 管理员可以使用 IPsec 加密流量。

iSCSI 架构

iSCSI 服务是 C/S 架构。访问的 iSCSI 目标在客户端系统上显示为本地且未格式化的 SCSI 块设备,等同于通过 SCSI 布线、FC 直连或 FC 交换光线连接的设备。

  • Initiator:iSCSI 客户端,通常以软件方式部署,也可以使用 iSCSI Host Bus Adapters(HBAs)硬件。Initiator 必须具有唯一的名称(请参见 IQN)。
  • Target:iSCSI 服务器上的 iSCSI 存储资源。Target 必须具有唯一的名称(请参见 IQN)。每个目标都提供一个或多个块设备或逻辑单元(LUN)。在大多数情况下,Target 只提供一个设备,但一台服务器可以提供多个目标。
  • IQN(iSCSI Qualified Name) :全球唯一的名称,用于标识发起者和目标。IQN 具有以下格式:
    iqn.YYYY-MM.com.reversed.domain:name_string
    • YYYY-MM:年和月。示例,2020 年 6 月为 2020-06。该日期有助于确保 IQN 唯一性。
    • com.reversed.domain:反向域名。例如,storage.1aogao.cloud 的反向域名为 cloud.1aogao.storage(注意:实际替换为 liulele 时,例如 cloud.liulele.storage)。
    • name_string:用于标识您管理的特定目标。如果服务器只具有一个目标,则有时会省略此名称。
  • Portal :指定服务器监听的地址和端口,例如 172.25.250.50:3260
  • LUN(Logical Unit Number):代表 Target 提供的块设备。每个目标可以提供一个或多个 LUN。
  • ACL(Access Control List):使用 Initiator 的 IQN 限制客户端访问 Target。
  • TPG(Target Portal Group):是目标的完整配置,包括 Portal、LUN 和 ACL。几乎所有目标都使用一个 TPG,但是高级配置有时可能会定义多个 TPG。
  • discovery:查询服务器上有 Target 列表。
  • login:向 Target 验证,验证通过后即可以使用 Target 服务器提供的块设备。

配置 iSCSI Targets

节点规划

节点名称 节点 IP 作用
iscsi-server(增加 2 块 20G SCSI 磁盘) 10.1.8.10/24 iSCSI Target
iscsi-client 10.1.8.11/24 iSCSI Initiator

使用 centos7 模板克隆出 iscsi-serveriscsi-client

iscsi-server 配置
bash 复制代码
[root@centos7 ~]# hostnamectl set-hostname iscsi-server
[root@centos7 ~]# 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
[root@centos7 ~]# nmcli connection up ens33 
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
[root@centos7 ~]# systemctl disable firewalld --now
[root@centos7 ~]# setenforce 0
iscsi-client 配置
bash 复制代码
[root@centos7 ~]# hostnamectl set-hostname iscsi-client
[root@centos7 ~]# 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
[root@centos7 ~]# nmcli connection up ens33 
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
[root@centos7 ~]# systemctl disable firewalld --now
[root@centos7 ~]# setenforce 0
 

iscsi-server: 右击虚拟机设置,添加硬盘

点击添加

同样的步骤再加一块,共2块20G磁盘

重启下iscsi-server

配置流程

配置 iscsi-server

配置 iSCSI Targets 需要安装以下软件:

  • targetd:服务端软件。
  • targetcli:targetd 服务配置工具。
bash 复制代码
# 安装软件
[root@iscsi-server ~]# yum install -y targetd targetcli

# 启用并启动服务
[root@iscsi-server ~]# systemctl enable target --now

# 配置防火墙
[root@iscsi-server ~]# firewall-cmd --permanent --add-service=iscsi-target
[root@iscsi-server ~]# firewall-cmd --reload

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

使用 ls 命令显示当前布局:

bash 复制代码
[root@iscsi-server ~]# 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'.

/> ls
o- / .......................................................... [...]
  o- backstores ................................................... [...]
  | o- block .......................................... [Storage Objects: 0]
  | o- fileio ......................................... [Storage Objects: 0]
  | o- pscsi ......................................... [Storage Objects: 0]
  | o- ramdisk ....................................... [Storage Objects: 0]
  o- iscsi .................................................. [Targets: 0]
  o- loopback ............................................... [Targets: 0]

配置 backstore 对象

backstore 类型:

  • block:服务器中的块设备,例如磁盘驱动器、磁盘分区或逻辑卷。
  • fileio:本地文件系统中的常规文件,targetcli 将该文件用作磁盘映像。
  • pscsi:物理 SCSI 设备,允许客户端通过网络访问服务器上的物理 SCSI 设备。
  • ramdisk:内存中的磁盘设备,数据不持久存储。

使用 targetcli 创建后备存储,使用 create 命令。

示例(先进目录再 create)

bash 复制代码
/> cd /backstores/block
/backstores/block> create myblock1 /dev/sdb
Created block storage object myblock1 using /dev/sdb.

等同于完整路径写法

bash 复制代码
/backstores/block create myblock1 /dev/sdb
Created block storage object myblock1 using /dev/sdb.

配置 Target IQN

iscsi 伪目录中,创建 IQN,将您选择的 IQN 名称作为第一个参数。

bash 复制代码
/backstores/block> cd /iscsi
/iscsi> create iqn.2026-04.cloud.liulele.iscsi-server:disk1
Created target iqn.2026-04.cloud.liulele.iscsi-server:disk1.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.

/iscsi> ls
o- iscsi ......................................................... [Targets: 1]
  o- iqn.2026-04.cloud.liulele.iscsi-server:disk1 ............... [TPGs: 1]
    o- tpg1 ......................................... [no-gen-acls, no-auth]
      o- acls ..................................................... [ACLs: 0]
      o- luns ..................................................... [LUNs: 0]
      o- portals ............................................... [Portals: 1]
        o- 0.0.0.0:3260 ................................................. [OK]

当前状态总结

  • iscsi 根目录 Targets:1

    当前一共创建了 1 个 iSCSI 目标(Target)

  • iqn.2026-04.cloud.liulele.iscsi-server:disk1

    iSCSI Target 唯一标识(IQN 名称)

    客户端存储发现、连接时,需要填写这一串名称。

  • tpg1:一个 Target 可以有多个 TPG 组,这里只有 tpg1。

    标记 [no-gen-acls, no-auth]

    • no-gen-acls不会自动生成 ACL 访问策略,必须手动添加客户端白名单。
    • no-auth未开启 CHAP 账号密码认证
  • acls ACLs:0

    ACL = 客户端 IQN 白名单(访问控制列表)

    ACLs:0 → 还没有添加允许接入的客户端

    规则:默认拒绝所有客户端,不添加白名单就算客户端能连通 3260 端口也登录失败。

  • luns LUNs:0 :重点

    LUN 作用:将后端磁盘 backstores 映射给这个 Target 对外共享

    LUNs:0 → 没有把硬盘 / 分区挂载进来

    哪怕客户端成功登录 target,看不到任何共享磁盘

    对应流程:创建 Target 之后,绑定 LUN 这一步尚未执行

  • portals Portals:1

    Portal = 监听地址 + 端口(对外访问入口)

    0.0.0.0:3260 0.0.0.0:服务器本机所有网卡监听

    3260:iSCSI 标准端口

    OK:监听正常,端口已就绪

    ✅ 当前状态总结

    ✅ Target(iqn 名称)已创建

    ✅ Portal 监听 0.0.0.0:3260 正常

  • 缺少两大核心配置

    ① 未绑定 LUN;

    ② 未配置 ACL。

配置 LUN

bash 复制代码
# 把后端存储 `myblock1`(即 `/dev/sdb`)绑定成 LUN
/iscsi> cd /iscsi/iqn.2026-04.cloud.liulele.iscsi-server:disk1/tpg1/luns
/iscsi/iqn.20...sk1/tpg1/luns> create /backstores/block/myblock1
Created LUN 0.

配置 ACL

创建 ACL 以允许客户端启动程序访问目标。客户端的 IQN 存储在 ==/etc/iscsi/initiatorname.iscsi==文件中。

bash 复制代码
/iscsi/iqn.20...sk1/tpg1/luns> cd /iscsi/iqn.2026-04.cloud.liulele.iscsi-server:disk1/tpg1/acls
/iscsi/iqn.20...sk1/tpg1/acls> create iqn.2026-04.cloud.liulele.iscsi-client
Created Node ACL for iqn.2026-04.cloud.liulele.iscsi-client
Created mapped LUN 0.

配置 Portal

删除默认的 0.0.0.0:3260 (随便本机哪个IP都能连接)

新建指定 IP 10.1.8.10:3260(只允许通过本机10.1.8.10这个网卡连接iscsi共享)

bash 复制代码
/iscsi/iqn.20...sk1/tpg1/acls> cd /iscsi/iqn.2026-04.cloud.liulele.iscsi-server:disk1/tpg1/portals
/iscsi/iqn.20.../tpg1/portals> delete 0.0.0.0 3260
Deleted network portal 0.0.0.0:3260
/iscsi/iqn.20.../tpg1/portals> create 10.1.8.10 3260
using default IP port 3260
Created network portal 10.1.8.10:3260.

保存配置

退出 targetcli shell 时,配置自动保存到 /etc/target/saveconfig.json

bash 复制代码
/iscsi/iqn.20.../tpg1/portals> exit
Global pref auto_save_on_exit=true
Configuration saved to /etc/target/saveconfig.json

最终结果如下:

非交互式管理 Targets(继续)

bash 复制代码
# 创建block后端存储myblock2,底层使用磁盘/dev/sdc
[root@iscsi-server ~]# targetcli /backstores/block create myblock2 /dev/sdc
Created block storage object myblock2 using /dev/sdc.

# 创建新的iSCSI target,IQN名称:iqn.2026-04.cloud.liulele.iscsi-server:disk2
# 自动生成tpg1门户组;提示:不会自动创建默认portal,多个target不能共用同一IP:3260
[root@iscsi-server ~]# targetcli /iscsi create iqn.2026-04.cloud.liulele.iscsi-server:disk2
Created target iqn.2026-04.cloud.liulele.iscsi-server:disk2.
Created TPG 1.
Default portal not created, TPGs within a target cannot share ip:port.

# 将后端存储myblock2映射为此target的LUN0
[root@iscsi-server ~]# targetcli /iscsi/iqn.2026-04.cloud.liulele.iscsi-server:disk2/tpg1/luns create /backstores/block/myblock2
Created LUN 0.

# 创建ACL访问控制,允许IQN为iqn.2026-04.cloud.liulele.iscsi-client的客户端接入,自动生成mapped_lun0
[root@iscsi-server ~]# targetcli /iscsi/iqn.2026-04.cloud.liulele.iscsi-server:disk2/tpg1/acls create iqn.2026-04.cloud.liulele.iscsi-client
Created Node ACL for iqn.2026-04.cloud.liulele.iscsi-client
Created mapped LUN 0.

# 删除默认0.0.0.0:3260门户,报错:本target下不存在该portal
# 提示:本target没有自动生成0.0.0.0:3260,所以删除命令报错,属于正常现象
[root@iscsi-server ~]# targetcli /iscsi/iqn.2026-04.cloud.liulele.iscsi-server:disk2/tpg1/portals delete 0.0.0.0 3260
[root@iscsi-server ~]# targetcli /iscsi/iqn.2026-04.cloud.liulele.iscsi-server:disk2/tpg1/portals delete 0.0.0.0 3260
No such NetworkPortal in configfs: /sys/kernel/config/target/iscsi/iqn.2026-04.cloud.liulele.iscsi-server:disk2/tpg1/np/0.0.0.0:3260

# 手动创建portal门户,绑定本机业务IP 10.1.8.10,端口3260,对外提供iSCSI服务
[root@iscsi-server ~]# targetcli /iscsi/iqn.2026-04.cloud.liulele.iscsi-server:disk2/tpg1/portals create 10.1.8.10 3260
using default IP port 3260
Created network portal 10.1.8.10:3260.

# saveconfig:保存targetcli全部配置到磁盘文件,重启服务器iSCSI配置不丢失
# 配置文件路径:/etc/target/saveconfig.json;自动备份存放在/etc/target/backup/
[root@iscsi-server ~]# targetcli saveconfig
Last 10 configs saved in /etc/target/backup/.
Configuration saved to /etc/target/saveconfig.json

提示:与交互式使用 targetcli 不同,命令行模式必须显式运行 saveconfig 子命令以保存配置。

显示的最终结果:

访问 iSCSI 存储

iSCSI 启动器通常以软件方式实现。使用基于软件的 iSCSI 启动器需要连接到具有足够带宽的现有以太网网络,以承载存储流量。您也可以使用硬件启动器(HBA),减轻系统资源负担。

准备系统

配置 iSCSI 客户端启动程序需要安装 iscsi-initiator-utils 软件包,包括 iscsiiscsid 服务以及 /etc/iscsi/iscsid.conf/etc/iscsi/initiatorname.iscsi 配置文件。

bash 复制代码
[root@iscsi-client ~]# yum install -y iscsi-initiator-utils

作为iSCSI启动器,客户端需要其自己的唯一iSCSI合格名称(IQN)。在安装iscsi-initiator-utils的过程 中,该软件包生成唯一的IQN,并存储到/etc/iscsi/initiatorname.iscsi文件中。 管理员通常需要更改该 名称。

bash 复制代码
[root@iscsi-client ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2026-04.cloud.laogao.iscsi-client

**/etc/iscsi/iscsid.conf**文件包含您连接的目标的默认设置,包括超时、重试以及身份验证参数。修改配置文件后,需重启 iscsid 服务。

软件包安装会自动配置iscsid服务,以便启动器在系统启动时自动重新连接到任何已发现的目标。 每当 您修改启动程序的配置文件时,请重新启动iscsid服务

连接 iSCSI 目标

在使用远程设备之前,首先需要发现目标。发现过程使用 /etc/iscsi/iscsi.conf 中的配置将目标信息和设置存储在 /var/lib/iscsi/nodes/ 目录中。

使用以下命令执行远程目标的发现:

bash 复制代码
# iscsiadm -m discovery -t st -p portal_ip[:port]

参数说明:

  • portal_ip:目标门户的 IP 地址。
  • 如果未指定 port,默认使用端口 3260。
bash 复制代码
# -m :操作模式 node,代表操作已经发现保存下来的 target 节点
#-t st: type sendtargets,iSCSI 标准发现类型
#-p:protal
[root@iscsi-client ~]# iscsiadm -m discovery -t st -p 10.1.8.10
10.1.8.10:3260,1 iqn.2026-04.cloud.liulele.iscsi-server:disk1
10.1.8.10:3260,1 iqn.2026-04.cloud.liulele.iscsi-server:disk2

要使用列出的目标之一,请使用以下命令登录到该目标:

bash 复制代码
# iscsiadm -m node -T Target -p portal_ip[:port] -l
bash 复制代码
# -m :操作模式 node,代表操作已经发现保存下来的 target 节点
#-T :指定 target 的 IQN 名称(服务端的 iqn)
#-l:login登录 iSCSI 存储
[root@iscsi-client ~]# iscsiadm -m discovery -t st -p 10.1.8.10
10.1.8.10:3260,1 iqn.2026-04.cloud.liulele.iscsi-server:disk1
10.1.8.10:3260,1 iqn.2026-04.cloud.liulele.iscsi-server:disk2

此时,系统将检测到新的 SCSI 块设备,就好像它是本地连接的硬盘驱动器一样。您可以使用 lsblk 查看新设备:

bash 复制代码
[root@iscsi-client ~]# 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  7.9G  0 lvm  [SWAP]
│ └─centos-home 253:2    0 141.1G  0 lvm  /home
sdb               8:16   0   20G  0 disk

查看当前 iSCSI 登录会话信息(打印级别 3):

bash 复制代码
#-m:操作模式 session,查看已经建立好的 iSCSI 会话(已经登录成功的连接)
# -P 3:print,打印详细级别,3 代表最高详细输出
[root@iscsi-client ~]# iscsiadm -m session -P 3
iSCSI Transport Class version 2.0-870
version 6.2.0.874-22
Target: iqn.2026-04.cloud.liulele.iscsi-server:disk1 (non-flash)
Current Portal: 10.1.8.10:3260,1
Persistent Portal: 10.1.8.10:3260,1
Interface:
Iface Name: default
Iface Transport: tcp
Iface Initiatorname: iqn.2026-04.cloud.liulele.iscsi-client
Iface IPaddress: 10.1.8.11
Iface HWaddress: <empty>
Iface Netdev: <empty>
SID: 1
iSCSI Connection State: LOGGED IN
iSCSI Session State: LOGGED_IN
Internal iscsid Session State: NO CHANGE
Timeouts:
  Recovery Timeout: 120
  Target Reset Timeout: 30
  LUN Reset Timeout: 30
  Abort Timeout: 15
CHAP:
  username: <empty>
  password: <empty>
  username_in: <empty>
  password_in: <empty>
Negotiated iSCSI params:
  HeaderDigest: None
  DataDigest: None
  MaxRecvDataSegmentLength: 262144
  MaxXmitDataSegmentLength: 262144
  FirstBurstLength: 65536
  MaxBurstLength: 262144
  ImmediateData: Yes
  InitialR2T: Yes
  MaxOutstandingR2T: 1
Attached SCSI devices:
  Host Number: 3 State: running
  scsi3 Channel 00 Id 0 Lun: 0
    Attached scsi disk sdb      State: running

或者,您可以查看 dmesgtail /var/log/messagesls -l /dev/disk/by-path/*iscsi* 的输出。登录过程在重新启动后将保持不变,块设备将自动可用。

格式化iscsi设备

如果发现的块设备已经具有分区,文件系统或LVM卷,则可以使用常规命令(如mount)访问该数据。 您可以使用lsblk --fs命令检查设备。

bash 复制代码
[root@iscsi-client ~]# blkid
/dev/sda1: UUID="5fc475dd-3212-46e8-b923-cbbc61cac3ee" TYPE="xfs"
/dev/sda2: UUID="erxTvj-r4BZ-5vxe-61w1-k1gv-wgGm-qYTZYc" TYPE="LVM2_member"
/dev/sr0: UUID="2020-11-04-11-36-43-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/centos-root: UUID="21306770-85c2-4c92-8692-0a2ca78922a8" TYPE="xfs"
/dev/mapper/centos-swap: UUID="ff509751-eabd-4b34-ac22-9d65cea06ef1" TYPE="swap"
/dev/mapper/centos-home: UUID="0a51daf5-8540-49f8-ad82-c732d9cbbd45" TYPE="xfs"

多个启动程序同时从同一目标安装同一文件系统,会导致文件系统损坏或尝试读取数据时出现不一致。

本地文件系统(例如ext4或XFS)不支持从多个系统并发安装。如果需要允许从多个系统同时访问基于 iSCSI的块设备,请使用群集文件系统(例如GFS2)

如果磁盘为空,则可以对其进行格式化,创建分区或将其用作LVM物理卷。

bash 复制代码
# 假设客户端发现的设备名称是/dev/sdb
[root@iscsi-client ~]# mkfs.xfs /dev/sdb
meta-data=/dev/sdb               isize=512    agcount=4, agsize=1310720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242880, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

[root@iscsi-client ~]# blkid /dev/sdb
/dev/sdb: UUID="0461e240-7743-47fe-876b-6df8b8e7ebf8" TYPE="xfs"
/dev/sda2: UUID="eRXTvj-r4BZ-5Vxe-61w1-Klgv-WgGm-qYTZYc" TYPE="LVM2_member" 
/dev/sr0: UUID="2020-11-04-11-36-43-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" 
PTTYPE="dos" 
/dev/mapper/centos-root: UUID="21306770-85c2-4c92-8692-0a2ca78922a8" TYPE="xfs" 
/dev/mapper/centos-swap: UUID="ff509751-eabd-4b34-ac22-9d65cea06ef1" TYPE="swap" 
/dev/mapper/centos-home: UUID="0a51daf5-8540-49f8-ad82-c732d9cbbd45" TYPE="xfs" 
/dev/sdb: UUID="0461e240-7743-47fe-876b-6df8b8e7ebf8" TYPE="xfs"


# 挂载测试
[root@iscsi-client ~]# mkdir /sdb
[root@iscsi-client ~]# mount /dev/sdb /sdb
[root@iscsi-client ~]# echo xixihaha > /sdb/test
[root@iscsi-client ~]# cat /sdb/test
xixihaha

[root@iscsi-client ~]# 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  7.9G  0 lvm  [SWAP]
│ └─centos-home 253:2    0 141.1G  0 lvm  /home
sdb               8:16   0   20G  0 disk /sdb
sr0              11:0    1  4.4G  0 rom  /run/media/root/CentOS 7 x86_64

持久化挂载

/etc/fstab 中持久挂载 iSCSI 目标时,请遵循以下建议:

  • 使用文件系统 UUID 挂载,不要使用设备名称(/dev/sd*),因为设备名称可能变化。
  • 使用 _netdev 挂载选项,确保网络和启动器启动后才会尝试挂载。

示例

bash 复制代码
[root@iscsi-client ~]# vim /etc/fstab
UUID="0461e240-7743-47fe-876b-6df8b8e7ebf8" /sdb xfs defaults,_netdev 0 0

确保 iscsi 服务开机自动启动(默认已启用):

bash 复制代码
[root@iscsi-client ~]# systemctl enable iscsi

重启观察现象

bash 复制代码
[root@iscsi-client ~]# reboot
[root@iscsi-client ~]# 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  7.9G  0 lvm  [SWAP]
│ └─centos-home 253:2    0 141.1G  0 lvm  /home
sdb               8:16   0   20G  0 disk /sdb
sdc               8:32   0   20G  0 disk

断开目标连接

停止使用 iSCSI 目标:

  1. 确保没有使用目标提供的任何设备(例如卸载文件系统)。
  2. /etc/fstab 等位置删除对目标的所有持久引用。
  3. 从 iSCSI 目标注销。
bash 复制代码
[root@iscsi-client ~]# umount /sdb

[root@iscsi-client ~]# iscsiadm -m node -T iqn.2026-04.cloud.liulele.iscsi-server:disk1 -p 10.1.8.10:3260 -u
Logging out of session [sid: 1, target: iqn.2026-04.cloud.liulele.iscsi-server:disk1, portal: 10.1.8.10,3260]
Logout of [sid: 1, target: iqn.2026-04.cloud.liulele.iscsi-server:disk1, portal: 10.1.8.10,3260] successful.

[root@iscsi-client ~]# iscsiadm -m session
tcp: [2] 10.1.8.10:3260,1 iqn.2026-04.cloud.liulele.iscsi-server:disk2 (non-flash)

[root@iscsi-client ~]# iscsiadm -m node
10.1.8.10:3260,1 iqn.2026-04.cloud.liulele.iscsi-server:disk1
10.1.8.10:3260,1 iqn.2026-04.cloud.liulele.iscsi-server:disk2

故障处理

如果发现成功但登录失败,问题很可能与访问控制或身份验证有关。客户端上的 IQN 与服务器上的 IQN 不匹配会导致目标登录失败。

修复客户端的 /etc/iscsi/initiatorname.iscsi 文件中的 IQN,然后重启 iscsid 服务:

bash 复制代码
[root@iscsi-client ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2026-04.cloud.liulele.iscsi-client

[root@iscsi-client ~]# systemctl restart iscsid

# 重新发现
[root@iscsi-client ~]# iscsiadm -m discovery -t st -p 10.1.8.10
10.1.8.10:3260,1 iqn.2026-04.cloud.liulele.iscsi-server:disk1
10.1.8.10:3260,1 iqn.2026-04.cloud.liulele.iscsi-server:disk2

# 重新登录
[root@iscsi-client ~]# iscsiadm -m node -T iqn.2026-04.cloud.liulele.iscsi-server:disk1 -l
Logging in to [iface: default, target: iqn.2026-04.cloud.liulele.iscsi-server:disk1, portal: 10.1.8.10,3260] (multiple)
Login to [iface: default, target: iqn.2026-04.cloud.liulele.iscsi-server:disk1, portal: 10.1.8.10,3260] successful.
相关推荐
Kina_C1 小时前
Keepalived 单播模式实战:跨网络高可用的关键配置
linux·服务器·网络·keepalived
IKUN家族1 小时前
常见的依懒
java·服务器·数据库
胖大和尚1 小时前
网页访问服务器,只有粘贴板可用
运维·服务器
wWYy.1 小时前
阻塞和非阻塞
服务器·网络
zhang133830890751 小时前
CG-85D 水工大坝渗压监测振弦式传感器
运维·服务器·网络·人工智能·自动化
m0_743697591 小时前
磁盘管理的相关知识
linux
esabby2 小时前
253个原生IP + 40M独享回国带宽:香港站群服务器的硬核拆解
服务器·网络协议·tcp/ip
先知后行。2 小时前
内核中的侵入式链表,slub对象池,CAS
linux
zcmodeltech2 小时前
智慧城市沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的园区-城市-数字孪生联动方案
服务器·数据库·人工智能·stm32·嵌入式硬件·信息可视化·智慧城市