Storage LUN connected on Emulex / Qlogica HBA not detecting during boot time.

博客围绕Red Hat Enterprise Linux 7系统中LUN启动时未检测问题展开。该系统使用Emulex和QLogic的HBA,启动时无法检测到连接的Storage LUNs,几分钟后设备自动检测到。解决方案是在SAN端明确设置端口速度以匹配HBA速度,并可使用相关方法检查HBA速度。

https://access.redhat.com/solutions/2754191

 SOLUTION UNVERIFIED - 已更新 2017年六月15日14:59 - 

English 

环境

  • Red Hat Enterprise Linux 7
    • Emulex LPe12000 PCIe Fibre Channel Adapter
  • QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA

问题

  • Storage LUNs connected on Emulex or Qlogic HBA not detecting during boot time.
  • Device detect automatically after few minutes after server bootup.

决议

  • Explicitly set the port speed at SAN end to match with HBA speed.

诊断步骤

  • Check HBA speed using systool.

Raw

Class Device = "host2"
  Class Device path = "/sys/devices/pci0000:00/0000:00:03.0/0000:05:00.1/host2/fc_host/host2"
    active_fc4s         = "0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 "
    dev_loss_tmo        = "30"
    fabric_name         = "0x10000027f885b773"
    issue_lip           = <store method only>
    max_npiv_vports     = "255"
    maxframe_size       = "2048 bytes"
    node_name           = "0x20000090fa52b83f"
    npiv_vports_inuse   = "0"
    port_id             = "0x824100"
    port_name           = "0x10000090fa52b83f"
    port_state          = "Online"
    port_type           = "NPort (fabric via point-to-point)"
    speed               = "4 Gbit"
    supported_classes   = "Class 3"
    supported_fc4s      = "0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 "
    supported_speeds    = "2 Gbit, 4 Gbit, 8 Gbit"
    symbolic_name       = "Emulex HP-LPe1205A FV2.03X6 DV10.2.8021.1"
    tgtid_bind_type     = "wwpn (World Wide Port Name)"
    uevent              =
    vport_create        = <store method only>
    vport_delete        = <store method only>

    Device = "host2"
    Device path = "/sys/devices/pci0000:00/0000:00:03.0/0000:05:00.1/host2"
      uevent              = "DEVTYPE=scsi_host"
### iSCSI Target ACL Configuration 在iSCSI环境中,访问控制列表(ACL)用于管理客户端对特定逻辑单元号(LUN)的访问权限。当创建一个新的iSCSI目标时,所有已存在的LUN都会自动映射到此目标的ACL中[^1]。 #### TPG CHAP 和 LUN ACL 的关系 TPG CHAP 是一种针对单个目标(Target Portal Group)的全局只读认证机制。如果启用了TPG级别的CHAP认证,则不允许再配置LUN级别的ACL,因为LUN级别的ACL具有更高的优先级,并会覆盖TPG级别的用户名和密码设置[^2]。这意味着,在启用TPG CHAP的情况下,虽然可以通过认证发现并连接到目标设备,但由于缺乏写入权限,用户可能仅能执行读操作。 #### LUN ACL CHAP 配置 为了实现更精细的权限控制,可以使用LUN ACL CHAP。在这种模式下,用户必须提供与指定ACL关联的世界唯一名称(WWN),以及相应的用户名和密码来进行CHAP认证[^2]。如果没有正确匹配这些参数,即使能够成功登录iSCSI服务端,也可能无法获得对该LUN设备的完全访问权,尤其是写权限。 以下是Linux环境下配置iSCSI服务器的一个基本示例: ```bash # 创建symlink以启动iscsi-target服务 ln -sf /usr/lib/systemd/system/target.service \ /etc/systemd/system/multi-user.target.wants/target.service # 修改IQN (Initiator Qualified Name),具体命令取决于使用的软件包版本 tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2023-08.com.example:storage.disk1 # 添加ACL规则允许特定initiator访问 tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL # 或者绑定具体的IQN而非ALL来增强安全性 tgtadm --lld iscsi --op bind --mode target --tid 1 -I iqn.initiator.name ``` 以上脚本展示了如何通过`tgtadm`工具定义新的iSCSI targets,并为其设定初始的ACL策略[^3]。 #### 关于iSCSI的工作原理 iSCSI全称Internet Small Computer System Interface,它是在标准TCP/IP网络上传输SCSI指令的一种方式。这项技术使得企业可以在现有的IP基础设施之上构建高效的存储区域网络(SAN)[^4]。利用iSCSI协议,不仅可以简化远程数据复制过程中的复杂度,还能有效降低总体拥有成本(TCO)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值