私は、QLogic Infiniband カード IBA7322 を搭載した HP Blades Gen7 を数台所有しており、これを CentOS 8 で使用したいと考えています。問題は、適切なドライバーが見つからないことです。見つかった情報はすべて古いか、リンクが機能しません (例: marvell のダウンロード リンク)。
lspci でカードは確認できますが、それ以外では電源をオンにすることができませんでした (いわば)。
この問題に関して、何らかの方向性を教えていただける方はいらっしゃいますか?
乾杯。
編集:
から得られる結果lspci -vv
:
01:00.0 InfiniBand: QLogic Corp. IBA7322 QDR InfiniBand HCA (rev 02)
Subsystem: Hewlett-Packard Company Device 178a
Physical Slot: 0
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 10
Region 0: Memory at fd400000 (64-bit, non-prefetchable) [size=4M]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [70] Express (v2) Endpoint, MSI 00
DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 0.000W
DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 4096 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
LnkCap: Port #0, Speed 5GT/s, Width x8, ASPM L0s, Exit Latency L0s <4us
ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 5GT/s, Width x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Not Supported, TimeoutDis+, LTR-, OBFF Not Supported
AtomicOpsCap: 32bit- 64bit- 128bitCAS-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
AtomicOpsCtl: ReqEn-
LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
Capabilities: [b0] MSI-X: Enable- Count=32 Masked-
Vector table: BAR=0 offset=00008000
PBA: BAR=0 offset=00009000
Capabilities: [100 v1] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
UESvrt: DLP- SDES+ TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
HeaderLog: 00000000 00000000 00000000 00000000
答え1
まず最初に、問題のハードウェアのPCIベンダーIDとデバイスIDを取得します。カードは1077:7322のようです。クイックルックLinux ドライバー データベースによると、このカードは ib_qib ドライバーを使用しているようです。
RHELのドキュメントを見てみたところ、RHEL 8で削除されたドライバー、このドライバーは見つかりませんでした。ただし、RHEL 8 VM を起動したところ、ドライバーは存在せず、対応するカーネル構成で有効化されていません。ただし、RHEL 7 には存在します。
このような状況で人々が通常行うことは、古いハードウェアを使用するために、エルレポリポジトリには、RHEL 8 用の不足している ib_qib ドライバー (および Red Hat が削除した他のいくつかのドライバー) が含まれています。例:
dnf install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
dnf install kmod-ib_qib
答え2
何度も何度も試した後、友人は思い切って Rocky 8.5 で 4.19 カーネルを再コンパイルし、qib
ドライバーを有効にしました。ドライバーは最初から存在していたのですが、デフォルトのカーネルではコンパイルされていなかったのです。
これで、古い QLogic カードが再び動作するようになりました。このカードは、サブネット マネージャーを実行している (なんと!) Mellanox Infiniband スイッチに接続されています。
ノードは相互に 40 Gbps で通信でき、さらに新しい 100 Gbps Mellanox ConnectX5 カードとも通信できます。
Infiniband の世界では、すべてが順調です!
これが誰かの役に立つことを願っています。質問があれば、できる限りお答えします。ただし、私はこれらのことに関して専門家ではないことを覚えておいてください。ただ、何かを見つけて古い機器を再び使えるようにしなければならなかっただけの人間です。