我需要编写一个脚本来计算每台服务器有多少个 2 或 4 端口 HBA 卡。
我在每台服务器上运行 lspci,但是到目前为止我读过的文档都没有告诉我如何确定每张卡上的卡数和端口数。
这是我得到的一些示例输出。我删除了一些行,因此输出不那么长。
# lspci | grep -i -E "fibre | ethernet"
5e:00.0 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx]
5e:00.1 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx]
5f:00.0 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx]
5f:00.1 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx]
b0:00.0 Fibre Channel: Emulex Corporation LPe31000/LPe32000 Series 16Gb/32Gb Fibre Channel Adapter (rev 01)
b0:00.1 Fibre Channel: Emulex Corporation LPe31000/LPe32000 Series 16Gb/32Gb Fibre Channel Adapter (rev 01)
d8:00.0 Ethernet controller: QLogic Corp. FastLinQ QL41000 Series 10/25/40/50GbE Controller (rev 02)
d8:00.1 Ethernet controller: QLogic Corp. FastLinQ QL41000 Series 10/25/40/50GbE Controller (rev 02)
d8:00.2 Ethernet controller: QLogic Corp. FastLinQ QL41000 Series 10/25/40/50GbE Controller (rev 02)
d8:00.3 Ethernet controller: QLogic Corp. FastLinQ QL41000 Series 10/25/40/50GbE Controller (rev 02)
那么,看看这些输出,我可以假设每个总线号(例如 5e、5f、d8 等)都是一张单独的卡吗?我是否还可以假设每个总线:设备对的每个功能号都是该卡上的一个端口?
例如 5e:00.0、5e:00.1、5e:00.2、5e:00.3
那么 Qlogic 卡是 4 端口卡吗?
例如 5e:00.0、5e:00.1
并且有 2 张 Mellanox 卡,每张都是 2 端口卡?
lspci
有许多选项可能会有所帮助。特别是-vv
输出更多信息,并-vmm
生成机器可读的信息。