NVME BDF 与物理位置映射

NVMe 设备 PCI BDF (Bus:Device.Function) 与物理插槽位置 之间的对应关系。


一、逻辑映射:NVMe 设备名 → PCI BDF

方法:

  • 使用以下命令查看 NVMe 设备(如 /dev/nvme0n1)对应的 PCI 地址:

    1
    readlink -f /sys/class/nvme/nvme*

    该操作会显示类似如下路径:.../0000:01:00.0/...,可直接获取 BDF 信息。

  • 也可以通过 /sys/block 举例查询更细致:

    1
    ls -l /sys/block/nvme0n1

    它会指向包含 BDF 的路径:../devices/pci0000:00/.../0000:00:1f.2/...


二、硬件层面:BDF → 物理插槽位置 映射方式

方法一:使用 dmidecode 查看物理槽位信息

  • 执行:

    1
    dmidecode -t slot

    可以获取系统中所有 PCI 插槽的描述(如 Slot 名称、状态、Bus Address 等),其中的 Bus Address 即为 PCI BDF。

  • 示例输出片段:

    1
    2
    3
    Handle 0x001D, DMI type 9, ...
    Designation: J6B1
    Bus Address: 0000:00:1c.3

方法二:参考厂商文档

  • 在服务器上,通过收集 sosreport 报告,可查看 NVMe 设备的 BDF 与物理插槽号的对应关系:

    • 报告中的 dmesg 日志记录了 NVMe 控制器与 Bus 的对应;
    • 将十六进制 Bus 编号转换为十进制后,可对应到具体槽位编号(如 Bus 0x3d = 61 → 槽位 22)。

三、综合对照表模板(可根据实际情况填写)

步骤 操作说明 获取方式
逻辑映射 设备名 ↔ PCI BDF readlink/sys/block/...
槽位信息 PCI 槽位 ↔ BDF dmidecode -t slot
厂商映射 BDF ↔ 物理槽位号 sosreport 或厂商文档
灯光验证 人眼观察 ↔ 确认槽位 厂商文档工具等

四、总结

1. 系统设备与 PCI BDF 对应

  • /dev/nvme0n1 —> PCI BDF: 0000:01:00.0 (通过 readlink 获取)
  • /dev/nvme1n1 —> PCI BDF: 0000:02:00.0

2. PCI 槽位信息

  • Slot J6B1 —> Bus Address: 0000:01:00.0
  • Slot J6B2 —> Bus Address: 0000:02:00.0

3. 物理插槽位置对应表

PCI BDF 物理槽位编号 备注
0000:01:00.0 插槽 1 与 nvme0n1 对应
0000:02:00.0 插槽 2 与 nvme1n1 对应

4. 验证方式

  • 使用 dmidecode 确认槽位 → BDF 的对应关系;
  • 可通过 sosreport 辅助确认;
  • 在某些系统中,可使用厂商文档工具触发 LED 并手工确认。