CentOS如何发现、连接并挂载iSCSI存储卷?

在现代化的数据中心和个人服务器管理中,网络存储扮演着至关重要的角色,iSCSI(Internet Small Computer System Interface)作为一种基于 TCP/IP 协议的存储网络标准,允许客户端(发起端,Initiator)通过 IP 网络访问远程的存储设备(目标端,Target),对于运行 CentOS 系统的服务器而言,连接 iSCSI 存储是一种经济高效且灵活的扩展存储容量的方式,本文将详细介绍在 CentOS 系统上连接、配置和管理 iSCSI 存储的完整流程。

CentOS如何发现、连接并挂载iSCSI存储卷?

准备工作

在开始配置之前,请确保您已具备以下条件:

  • 一台运行 CentOS 7 或更高版本的系统。
  • 具有管理员权限(可以使用 sudo)。
  • 网络连通性,确保 CentOS 服务器可以访问 iSCSI 目标端的 IP 地址。
  • iSCSI 目标端的 IP 地址、端口号(默认为 3260)以及可能的认证信息(CHAP 用户名和密码)。

第一步:安装 iSCSI 发起端软件

CentOS 系统默认可能没有安装 iSCSI 发起端所需的软件包,您可以通过 yumdnf 包管理器轻松安装,打开终端,执行以下命令:

sudo yum install iscsi-initiator-utils

对于 CentOS 8/9 等使用 dnf 的系统,命令为:

sudo dnf install iscsi-initiator-utils

安装完成后,系统会自动创建并启动 iscsid 服务,您可以使用以下命令检查其状态:

sudo systemctl status iscsid

如果服务未运行,请使用 sudo systemctl start iscsid 启动它,并使用 sudo systemctl enable iscsid 设置其开机自启。

第二步:发现 iSCSI 目标

连接存储的第一步是“发现”网络上可用的 iSCSI 目标,这会返回目标提供的所有逻辑单元号(LUN)及其唯一的 IQN(iSCSI Qualified Name)。

使用 iscsiadm 命令进行发现,将 <TARGET_IP> 替换为您 iSCSI 服务器的实际 IP 地址:

sudo iscsiadm -m discovery -t st -p <TARGET_IP>
  • -m discovery:指定模式为发现。
  • -t st:指定发现类型为 sendtargets(最常见的类型)。
  • -p <TARGET_IP>:指定目标端的 IP 地址和端口。

成功执行后,您将看到类似以下的输出,其中包含了目标的 IQN:

168.1.100:3260,1 iqn.2025-08.com.example:storage.target01

第三步:连接到 iSCSI 目标

发现目标后,系统会将目标信息记录下来,您可以使用目标的 IQN 登录并建立连接。

CentOS如何发现、连接并挂载iSCSI存储卷?

sudo iscsiadm -m node -T <TARGET_IQN> -p <TARGET_IP> --login

<TARGET_IQN><TARGET_IP> 替换为上一步中获取的实际值。

sudo iscsiadm -m node -T iqn.2025-08.com.example:storage.target01 -p 192.168.1.100 --login

登录成功后,系统会提示 Login to [iface: default, target: ...] successful,您可以运行 lsblkfdisk -l 命令,您会看到一个新的磁盘设备,/dev/sdb

第四步:配置开机自动连接

默认情况下,服务器重启后 iSCSI 连接不会自动恢复,为了确保存储在系统重启后依然可用,需要将节点启动模式设置为 automatic

sudo iscsiadm -m node -T <TARGET_IQN> -p <TARGET_IP> --op=update -n node.startup -v automatic

此命令会修改配置文件,确保下次系统启动时 iscsid 服务会自动登录到该目标。

第五步:格式化并挂载新磁盘

您有了一个新的块设备,但还不能直接使用,需要对其进行分区、格式化并挂载到文件系统中。

  1. 分区:使用 fdiskparted 对新磁盘(/dev/sdb)进行分区。

    sudo fdisk /dev/sdb

    fdisk 交互界面中,依次输入 n(新建分区)、p(主分区)、1(分区号)、w(保存并退出)。

  2. 格式化:为新创建的分区(/dev/sdb1)创建文件系统,这里以 ext4 为例:

    sudo mkfs.ext4 /dev/sdb1
  3. 挂载:创建一个挂载点并将文件系统挂载上去。

    CentOS如何发现、连接并挂载iSCSI存储卷?

    sudo mkdir /mnt/iscsi_disk
    sudo mount /dev/sdb1 /mnt/iscsi_disk
  4. 实现开机自动挂载:为了使系统重启后该分区能自动挂载,需要将其添加到 /etc/fstab 文件中,推荐使用设备的 UUID 来进行配置,以避免设备名变化导致的问题。

    • 首先获取分区的 UUID:
      sudo blkid /dev/sdb1

      输出类似:/dev/sdb1: UUID="a1b2c3d4-e5f6-7890-1234-567890abcdef" TYPE="ext4"

    • 编辑 /etc/fstab 文件,添加以下一行:
      UUID=a1b2c3d4-e5f6-7890-1234-567890abcdef /mnt/iscsi_disk ext4 defaults,_netdev 0 0

      注意_netdev 选项非常重要,它告诉系统这是一个网络设备,需要等待网络服务启动后再进行挂载。

管理与常用命令

下表小编总结了管理 iSCSI 连接的一些常用 iscsiadm 命令:

操作 命令 描述
查看当前活动会话 sudo iscsiadm -m session 列出所有已登录的 iSCSI 会话。
注销(断开连接) sudo iscsiadm -m node -T <IQN> -p <IP> --logout 从指定的 iSCSI 目标注销。
删除节点记录 sudo iscsiadm -m node -T <IQN> -p <IP> --op delete 完全删除本地关于此目标的记录。
查看所有节点数据库 sudo iscsiadm -m node 显示所有已发现的目标节点信息。

相关问答 FAQs

问题1:我已经成功登录了 iSCSI 目标,但是使用 lsblk 看不到新的磁盘设备,怎么办?

解答:这个问题通常由以下几个原因导致,请确认登录操作确实成功,可以使用 sudo iscsiadm -m session 查看是否有活动的会话,如果有会话但无设备,请检查系统内核日志,使用 dmesg | tail 命令查看是否有关于 SCSI 设备的错误信息,请检查网络连接和防火墙设置,确保 CentOS 服务器与 iSCSI 目标之间的 3260 端口是双向通畅的,确认 iSCSI 目标端是否正确配置并分配了 LUN 给您的发起端。

问题2:如何彻底移除一个 iSCSI 存储的连接和配置?

解答:要彻底移除,需要按顺序执行几个步骤,如果该磁盘正在被使用,请先卸载它,sudo umount /mnt/iscsi_disk,从 /etc/fstab 文件中删除对应的挂载条目,以防系统启动时尝试挂载一个不存在的设备,使用 iscsiadm 命令从目标注销:sudo iscsiadm -m node -T <TARGET_IQN> -p <TARGET_IP> --logout,删除本地的节点记录,这样系统就不会再尝试自动连接它:sudo iscsiadm -m node -T <TARGET_IQN> -p <TARGET_IP> --op delete,完成这些步骤后,该 iSCSI 存储的连接和配置就完全从您的 CentOS 系统中清除了。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-01 15:59
下一篇 2024-07-28 03:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信