保姆级教程:在CentOS 7上用targetcli配置iSCSI Target,并让另一台Linux客户端成功挂载
2026/5/31 8:14:28 网站建设 项目流程

从零构建企业级iSCSI存储网络:CentOS 7实战指南

在虚拟化与云计算环境中,存储网络的灵活配置能力直接决定了基础设施的扩展性和可靠性。iSCSI作为IP SAN的核心技术方案,以其硬件兼容性强、部署成本低的优势,成为中小企业构建共享存储的首选方案。本文将手把手带您完成从服务端配置到客户端挂载的全流程操作,特别针对CentOS 7环境中的常见坑点提供解决方案。

1. 环境准备与基础概念

在开始配置前,我们需要明确实验环境的硬件拓扑。假设您已准备两台CentOS 7虚拟机,分别承担以下角色:

  • 存储服务器(192.168.100.20):配备额外磁盘(如/dev/sdb)作为共享存储源
  • 客户端(192.168.100.19):通过以太网访问远程存储

iSCSI协议的核心组件包括:

  • Target:存储资源的提供方(服务端)
  • Initiator:存储资源的使用方(客户端)
  • IQN(iSCSI Qualified Name):全球唯一标识符,格式为iqn.yyyy-mm.<reversed-domain>:identifier

生产环境中建议使用独立的物理网卡或VLAN隔离iSCSI流量,避免与其他网络服务产生带宽竞争

2. 服务端深度配置

2.1 软件安装与磁盘准备

首先在存储服务器执行基础软件安装:

# 安装iSCSI服务端组件 yum install -y targetcli targetd

创建物理磁盘的存储对象时,需特别注意磁盘选择:

targetcli /backstores/block create disk1 /dev/sdb

disk1为自定义存储对象名称,对应物理磁盘/dev/sdb。通过ls命令可验证创建结果:

o- block .................................................... [Storage Objects: 1] | o- disk1 ........................... [/dev/sdb (40.0GiB) write-thru activated]

2.2 创建iSCSI目标与访问控制

建立iSCSI目标时需要遵循IQN命名规范:

/iscsi/ create iqn.2023-07.example.com:storage.target

关键安全配置步骤:

  1. 创建LUN映射:
    cd /iscsi/iqn.2023-07.example.com:storage.target/tpg1/luns create /backstores/block/disk1
  2. 设置CHAP认证(强制建议生产环境启用):
    cd /iscsi/iqn.2023-07.example.com:storage.target/tpg1/acls create iqn.2023-07.example.com:client.initiator set auth userid=storage_user set auth password=Complex@Pass123

2.3 服务优化与防火墙

调整内核参数提升iSCSI性能:

echo "net.ipv4.tcp_timestamps = 1" >> /etc/sysctl.conf echo "net.ipv4.tcp_sack = 1" >> /etc/sysctl.conf sysctl -p

防火墙规则配置示例:

firewall-cmd --permanent --add-port=3260/tcp firewall-cmd --reload

3. 客户端连接实战

3.1 初始化连接配置

客户端需安装必要软件包:

yum install -y iscsi-initiator-utils

修改配置文件建立认证关联:

vim /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.2023-07.example.com:client.initiator vim /etc/iscsi/iscsid.conf node.session.auth.authmethod = CHAP node.session.auth.username = storage_user node.session.auth.password = Complex@Pass123

3.2 发现与挂载操作

执行存储发现时会显示可用目标:

iscsiadm -m discovery -t sendtargets -p 192.168.100.20

典型输出:

192.168.100.20:3260 via sendtargets iqn.2023-07.example.com:storage.target

建立会话连接:

iscsiadm -m node -T iqn.2023-07.example.com:storage.target -p 192.168.100.20 -l

验证磁盘识别情况:

lsblk | grep -i "sd[b-z]"

4. 高级配置与排错指南

4.1 多路径IO配置(可选)

对于高可用环境,建议配置多路径:

yum install -y device-mapper-multipath mpathconf --enable --with_multipathd y

配置文件示例(/etc/multipath.conf):

devices { device { vendor "LIO-ORG" product "*" path_grouping_policy failover path_checker tur } }

4.2 常见故障排查

连接失败检查清单

  1. 网络连通性测试:ping 192.168.100.20
  2. 端口可用性验证:telnet 192.168.100.20 3260
  3. 服务状态确认:systemctl status targetd
  4. 认证日志分析:journalctl -u iscsid -f

会话管理命令参考

  • 查看活动会话:iscsiadm -m session
  • 临时断开连接:iscsiadm -m node -U all
  • 永久删除节点:iscsiadm -m node -o delete

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 自动化挂载方案

正确的fstab配置示例:

/dev/disk/by-path/ip-192.168.100.20:3260-iscsi-iqn.2023-07.example.com:storage.target-lun-0 /mnt/iscsi xfs _netdev,rw,noatime 0 0

关键注意事项:

  • 必须使用_netdev挂载选项
  • 建议通过磁盘路径标识而非设备名(如/dev/sdb)
  • 可添加nofail选项避免启动阻塞

对于需要更高可靠性的场景,可以考虑使用udev规则自动挂载:

vim /etc/udev/rules.d/99-iscsi.rules ACTION=="add", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="36001405bcd1a892b4a1e8a4a2e1e8f8a", RUN+="/bin/mount /mnt/iscsi"

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

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

立即咨询