别再手动挂载了!CentOS 7下用targetcli配置iSCSI存储的保姆级教程(含CHAP认证)
2026/6/4 0:20:28 网站建设 项目流程

告别手动挂载:CentOS 7下targetcli全自动iSCSI存储配置实战

每次服务器重启后手动挂载iSCSI存储的痛苦,运维工程师都深有体会。凌晨三点被报警叫醒,只为执行几条挂载命令的日子该结束了。本文将带你用targetcli工具构建一套带CHAP认证的自动化iSCSI存储方案,从服务端配置到客户端自动挂载,实现真正的"一次配置,永久生效"。

1. 为什么需要自动化iSCSI解决方案

传统手动挂载方式存在三大致命缺陷:

  1. 服务中断风险:网络波动或服务重启后,依赖人工干预重新挂载
  2. 操作一致性差:不同人员执行的挂载参数可能存在差异
  3. 安全管控薄弱:缺乏标准化的认证机制和访问控制

通过targetcli工具链,我们可以实现:

  • 配置标准化:所有参数通过配置文件固化
  • 连接自动化:启动时自动建立iSCSI会话
  • 认证强制化:CHAP双向认证保障传输安全
  • 挂载智能化_netdev参数确保网络就绪后再挂载

生产环境中的存储配置必须满足:任何单点操作都不应影响服务的持续性

2. 服务端配置:用targetcli构建安全存储

2.1 基础环境准备

首先确保系统为CentOS 7/RHEL 7并更新到最新:

# 更新系统基础包 yum update -y && reboot # 安装必要工具 yum install -y targetcli targetd

2.2 存储后端配置

进入targetcli交互式界面创建存储后端:

targetcli /> /backstores/block create iscsi_disk1 /dev/sdb Created block storage object iscsi_disk1 using /dev/sdb.

验证创建结果:

存储对象类型 | 名称 | 关联设备 | 状态 ------------|------------|----------|--------- block | iscsi_disk1| /dev/sdb | active

2.3 创建iSCSI Target

按企业命名规范创建Target:

/> /iscsi create iqn.2023-08.com.example:storage.sys1 Created target iqn.2023-08.com.example:storage.sys1.

关键参数说明:

  • iqn:iSCSI限定名,标准格式为iqn.YYYY-MM.domain:identifier
  • TPG:Target门户组,默认自动创建TPG1
  • Portal:默认监听所有IP的3260端口

2.4 配置CHAP认证

启用强认证机制:

/iscsi/iqn...sys1/tpg1> set attribute authentication=1 Parameter authentication is now '1'. /iscsi/iqn...sys1/tpg1> set attribute generate_node_acls=0 Parameter generate_node_acls is now '0'.

创建客户端ACL并设置凭证:

/iscsi/iqn...sys1/tpg1/acls> create iqn.2023-08.com.example:client.node1 Created Node ACL for iqn.2023-08.com.example:client.node1 /iscsi/iqn...sys1/tpg1/acls/iqn...node1> set auth userid=storage_user Parameter userid is now 'storage_user'. /iscsi/iqn...sys1/tpg1/acls/iqn...node1> set auth password=J9q2$kLm5!pX Parameter password is now 'J9q2$kLm5!pX'.

密码策略建议:至少12位,包含大小写字母、数字和特殊字符

3. 客户端自动化配置

3.1 基础软件安装

yum install -y iscsi-initiator-utils xfsprogs

3.2 配置initiator名称

编辑/etc/iscsi/initiatorname.iscsi

InitiatorName=iqn.2023-08.com.example:client.node1

3.3 CHAP认证设置

配置/etc/iscsi/iscsid.conf关键参数:

node.session.auth.authmethod = CHAP node.session.auth.username = storage_user node.session.auth.password = J9q2$kLm5!pX node.startup = automatic

重启服务生效:

systemctl enable --now iscsid

3.4 自动发现与登录

发现目标存储:

iscsiadm -m discovery -t st -p 192.168.100.201

配置自动登录:

iscsiadm -m node \ -T iqn.2023-08.com.example:storage.sys1 \ -p 192.168.100.201:3260 \ --op update -n node.startup -v automatic

验证会话状态:

iscsiadm -m session -P 3

4. 实现永久挂载的最佳实践

4.1 文件系统准备

推荐使用XFS文件系统:

mkfs.xfs -f -L "iscsi_vol1" /dev/sdb

4.2 挂载参数优化

创建挂载点并测试挂载:

mkdir /mnt/iscsi_vol1 mount -t xfs -o noatime,nodiratime /dev/sdb /mnt/iscsi_vol1

4.3 配置fstab实现自动挂载

/etc/fstab关键配置:

/dev/sdb /mnt/iscsi_vol1 xfs defaults,_netdev,noatime,nodiratime 0 0

参数解析:

  • _netdev:等待网络就绪后再挂载
  • noatime:减少磁盘写操作
  • nodiratime:目录不更新访问时间

4.4 验证自动恢复能力

模拟故障场景测试:

# 断开会话 iscsiadm -m node --logoutall=all # 重启服务 systemctl restart iscsi # 验证自动恢复 df -hT | grep iscsi_vol1

5. 高级调优与排错指南

5.1 性能优化参数

/etc/iscsi/iscsid.conf中添加:

node.conn[0].timeo.noop_out_interval = 15 node.conn[0].timeo.noop_out_timeout = 15 node.session.initial_login_retry_max = 12

5.2 常见故障排查

问题1:启动时挂载失败

  • 检查/var/log/messages中的iscsi相关日志
  • 确认网络服务先于iscsi服务启动

问题2:CHAP认证失败

# 查看详细认证过程 iscsiadm -m node -T iqn... -p 192.168.100.201 -l debug

问题3:存储性能下降

# 监控iSCSI会话状态 iscsiadm -m session -P 3 # 检查网络延迟 ping -c 5 192.168.100.201

5.3 多路径IO配置(可选)

对于高可用环境:

yum install -y device-mapper-multipath # 配置/etc/multipath.conf devices { device { vendor "LIO-ORG" product "*" path_grouping_policy "failover" } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询