HP SAS 扩展器将所有驱动器映射到插槽 ID 0

HP SAS 扩展器将所有驱动器映射到插槽 ID 0

我最近买了一个二手的 6Gbps 24 端口 HP SAS 扩展器 (468406-B21/487738-001),因为它很便宜,而且兼容性应该也不错。不幸的是,我无法让它与多个磁盘一起工作,因为它似乎将所有磁盘都映射到插槽 0,这让 RAID 控制器和 HBA 都感到困惑。

该卡附带固件 2.08,升级到最新版本(2.10)没有任何变化。

当我将其连接到 PERC H700、H310 或 LSI 9260 时,所有磁盘都映射到插槽 0,这使得无法区分它们。它还会使 RAID 控制器感到困惑 - 如果我移除一个磁盘,它可能会丢失两个磁盘,依此类推,甚至可能无法启动。

例如,连接两个 SATA 磁盘:

-------------------------------------------------------------------------
EID:Slt DID State DG      Size Intf Med SED PI SeSz Model             Sp 
-------------------------------------------------------------------------
2:0       3 UGood -  111.25 GB SATA HDD N   N  512B ST9120822AS       U  
2:0       5 UGood -  185.75 GB SATA HDD N   N  512B TOSHIBA MK2035GSS U  
-------------------------------------------------------------------------

这里,两个磁盘都映射到机柜 2、插槽 0,在后续命令中无法区分。我在将扩展器连接到“哑”HBA(例如基于 LSI-9211 的控制器)时遇到了类似的问题。

有大量报告称人们使用与我完全相同固件版本的扩展器而没有任何问题,并且所有控制器都可以与我尝试过的其他背板(基于 Supermicro LSI 的背板)正常工作,所以我想知道我是否做错了什么或者卡是否坏了。

一个例子显示术语日志连接两个磁盘时 H700 的输出如下所示:

02/04/18  3:09:34: iopiEvent: EVENT_SAS_DISCOVERY
02/04/18  3:09:34: DM_HandleDiscEvent: Discovery started on Port 0

02/04/18  3:09:34: iopiEvent: MPI2_EVENT_SAS_TOPOLOGY_CHANGE_LIST 
02/04/18  3:09:34: DM_HandleTopologyChgEvnt: PhysicalPort=0 NumberOfPhys=x25 NumEntries=x0c StartPhy=xc 
02/04/18  3:09:34: ExpStatus=x03 PhysicalPort=0 EnclosureHandle=x0002 Expander devHandle=x0009 - Exp RESPONDING
02/04/18  3:09:34: Phy changed - phy 0c devHandle 0000 linkRate 00 curLinkRate 0
02/04/18  3:09:34: Phy changed - phy 0f devHandle 0000 linkRate 00 curLinkRate 0
02/04/18  3:09:34: Device ADDED - phy x14 devHandle x000c parentDevHdl x0009 phyNum x14 slot x37 deviceInfo=x00000081 sasAddr=5001438022c783d4
02/04/18  3:09:34: Device ADDED - phy x17 devHandle x000d parentDevHdl x0009 phyNum x17 slot x34 deviceInfo=x00000081 sasAddr=5001438022c783d7
02/04/18  3:09:34: DM_DevMgrIsChipInit 0 State 400 
02/04/18  3:09:35: iopiDiscoveryComplete SubSystem 2 Count 9 InitState 1

02/04/18  3:09:35: iopiEvent: EVENT_SAS_DISCOVERY
02/04/18  3:09:35: DM_HandleDiscEvent: Discovery Completed on Port 0

02/04/18  3:09:36: DM_DevSSUCallback: DevId x0006 errCount 0 Retry 0 Status 2
02/04/18  3:09:36: DM_DevSSUCallback: SENSE Len 12 ResponseCode 70 senseKey 6 asc 29 ascq 0
02/04/18  3:09:36: DM_DevMgrIsChipInit 0 State 400 
02/04/18  3:09:38: DM_DevSSUCallback: DevId x0007 errCount 0 Retry 0 Status 2
02/04/18  3:09:38: DM_DevSSUCallback: SENSE Len 12 ResponseCode 70 senseKey 6 asc 29 ascq 0
02/04/18  3:09:38: devId 6 isn't directly attached
02/04/18  3:09:38: devId 6 - slot num - 6
02/04/18  3:09:38: devId 7 isn't directly attached
02/04/18  3:09:38: devId 7 - slot num - 7
02/04/18  3:09:38:  DM_DevNotifyRAID: Notify Done. Check for Removal 
02/04/18  3:09:38: gDevInfo=842360a0, size=160
02/04/18  3:09:38: Total Device = 3  
02/04/18  3:09:38: PD   Flags    State Type Size     S N Vendor   Product          Rev  P C ID SAS Addr         Port Phy DevH BFw  BRev
02/04/18  3:09:38: ---  -------- ----- ---- -------- - - -------- ---------------- ---- - - -- ---------------- ---- --- ---- ---- ----
02/04/18  3:09:38: 2    01400005 00020 0d   0 0 0 0 HP       HP SAS EXP Card  2.10 0 0 0a 5001438022c783e5 00   24  0a    NA   NA
02/04/18  3:09:38: 6    f1400005 00020 00   1749f1af 1 1 0 ATA      TOSHIBA MK2035GS 1D   0 0 0c 5001438022c783d4 00   14  0c    NA   NA
02/04/18  3:09:38: 7    f1400005 00020 00   df94baf 1 1 0 ATA      ST9120822AS      D    0 0 0d 5001438022c783d7 00   17  0d    NA   NA
02/04/18  3:09:38: 100  00400005 00020 03   0 0 0 0 LSI      SMP/SGPIO/SEP    4651 0 0 ffff                0 00   ff  00    NA   NA

02/04/18  3:09:38: PhyId 4 Sas 5001438022c783e6 Type 2 IsSata 0, Smp 1:1
02/04/18  3:09:38: PhyId 5 Sas 5001438022c783e6 Type 2 IsSata 0, Smp 1:1
02/04/18  3:09:38: PhyId 6 Sas 5001438022c783e6 Type 2 IsSata 0, Smp 1:1
02/04/18  3:09:38: PhyId 7 Sas 5001438022c783e6 Type 2 IsSata 0, Smp 1:1
02/04/18  3:09:38: PhyId 0 Sas 0 Type 0 IsSata 0, Smp 0:0
02/04/18  3:09:38: PhyId 0 Sas 0 Type 0 IsSata 0, Smp 0:0
02/04/18  3:09:38: PhyId 0 Sas 0 Type 0 IsSata 0, Smp 0:0
02/04/18  3:09:38: PhyId 0 Sas 0 Type 0 IsSata 0, Smp 0:0
02/04/18  3:09:38: Load Balance Statistics Path0PDs 3 Path1PDs 0
02/04/18  3:09:38: EVT#07666-02/04/18  3:09:38:  91=Inserted: PD 06(e0x02/s0)
02/04/18  3:09:38: EVT#07667-02/04/18  3:09:38: 247=Inserted: PD 06(e0x02/s0) Info: enclPd=02, scsiType=0, portMap=00, sasAddr=5001438022c783d4,0000000000000000
02/04/18  3:09:38: EVT#07668-02/04/18  3:09:38:  91=Inserted: PD 07(e0x02/s0)
02/04/18  3:09:38: EVT#07669-02/04/18  3:09:38: 247=Inserted: PD 07(e0x02/s0) Info: enclPd=02, scsiType=0, portMap=00, sasAddr=5001438022c783d7,0000000000000000

更新:

如果我向扩展器询问其附加元件感知页面,它会为所有插槽列出“设备插槽编号:0”——其他扩展器在此处列出的数字越来越多,我怀疑这是我的问题的间接原因。我还在较新的 H740P 控制器上尝试了此扩展器,它将驱动器列为直接连接(不在机箱中),并带有虚构的插槽 ID——这是一个改进,但它存在其他问题,例如列出西部数据机箱(即它将其中一个连接的驱动器列为机箱)。

我还购买了另一个这样的扩展器,其行为完全相同,因此扩展器损坏的可能性不大 - 似乎 H700 需要插槽 ID,而 HP SAS 扩展器根本不支持它们 - 或者有没有办法在 aes 页面中重新分配设备插槽号?

答案1

经过大量研究后,似乎基于 PMC-Sierra 的 SAS 扩展器将所有设备插槽号列为 0,这是 SAS 规范允许的,因为其他诊断页面和 smp 发现协议并不声称该设备具有有效的插槽号。

因此,问题是由 LSI SAS 控制器中相当有缺陷的 SAS 实现引起的,即使插槽号不存在,它也会强制使用插槽号,而不是使用唯一的磁盘 ID 或其他机制(例如 sas 地址)。

我不知道这是否仅仅是工具(例如 storcli)的用户界面缺陷,还是有更深层次的问题。至少 Perc H700 中的发现问题是由于 sas 拓扑发现的实现存在错误,该发现由 SAS 标准指定,并且不使用插槽号。LSI 的 HBA 驱动程序似乎存在类似的问题。

相关内容