带有较旧 Emulex HBA 的 Solaris 11 机器似乎存在一些问题:
# dmesg | egrep emlxs
Dec 29 15:31:10 san2 emlxs: [ID 349649 kern.info] [ 5.0608]emlxs1: NOTICE: 730: Link reset. (Disabling link...)
Dec 29 15:31:10 san2 emlxs: [ID 349649 kern.info] [ 5.0333]emlxs1: NOTICE: 710: Link down.
Dec 29 15:31:11 san2 emlxs: [ID 349649 kern.info] [ B.1FD3]emlxs1: NOTICE: 930: Packet transport failed. (*Node not found. did=10300)
当我尝试使用 emlxadm 重置受影响的适配器(它是双 HBA PCI-X 卡)时,它会抛出错误并且不会重置:
# /opt/EMLXemlxu/bin/emlxadm
Available Emulex HBA's:
1. FCT:emlxs0 : /devices/pci@0,0/pci8086,25e2@2/pci8086,350c@0,3/pci1014,1a7@1/pci10df,f980@4 (CONNECTED)
2. FCT:emlxs1 : /devices/pci@0,0/pci8086,25e2@2/pci8086,350c@0,3/pci1014,1a7@1/pci10df,f980@5 (NOT CONNECTED)
Enter an HBA number or zero to exit: 2
HBA 2: /devices/pci@0,0/pci8086,25e2@2/pci8086,350c@0,3/pci1014,1a7@1/pci10df,f980@5
emlxadm> get_fw_rev
Firmware revision: LP9802DC 1.92a1
emlxadm> reset_hard
ioctl: FCIO_RESET_HARD: Device busy
fcio: FCIO_RESET_HARD: Operation successful.
> exit
# fcadm force-lip 10000000c93a3e6b
Error: Failed to reinitialize the link of HBA 10000000c93a3e6b
fmdump
没有记录任何错误。重新启动似乎可以解决问题,但这种情况很少出现。HBA 连接到 Brocade Silkworm,并安装有 5.30 版 FabricOS。
更新:固件是最新/最好的,驱动程序版本是 2.60f。
我尝试重置端口,甚至对 Silkworm 进行电源循环,但端口仍处于离线状态,显然是因为 Emulex HBA 关闭了 GBIC PHY:
SW3014BC2_B:admin> portshow 13
portName:
portHealth: No Fabric Watch License
Authentication: None
portDisableReason: None
portCFlags: 0x1
portFlags: 0x4001 PRESENT U_PORT LED
portType: 4.2
portState: 2 Offline
portPhys: 4 No_Light
关于可能的原因或如何在不重启的情况下恢复连接,您有什么想法吗?
答案1
该 HBA 端口已连接到目标端口,只需将其断开一会儿,然后重置,然后重新连接即可。我不知道您执行此操作的最简单方法是什么,因为我不知道您的 SAN 设计,但我认为关闭交换机上的端口可能是最简单/最快的方法。
答案2
我最终更换了 HBA,因为最后我发现这个问题是“硬件问题”。