有没有接口可以获取主机的网卡工作模式

// 此模板仅供参考,如果不适用可以修改

问题描述

对于工作模式区分"MultiHost" / "SingleHost"的网卡,有没有可用接口或者方法获取其当前的模式。

期望结果

可以通过redfish配置来实现获取该属性

答案内容由AI生成,仅供参考:

:white_check_mark: 总结

项目 支持情况
获取 MultiHost 支持能力 :white_check_mark: 支持,通过 Redfish 的 MultihostSupported 属性
获取当前 MultiHost 运行模式 :warning: 无直接字段(当前 Redfish 不公开运行时模式)
配置 MultiHost 模式 :cross_mark: 标准 Redfish 不支持,需依赖厂商扩展或 BIOS 设置
替代判断方式 :white_check_mark: 使用 MultihostSupported + NetMode + 系统日志综合判断
点击此处查看详细分析解答

获取主机网卡工作模式的接口方案

根据您提出的问题,关于如何获取支持“MultiHost”与“SingleHost”模式的网卡当前工作模式,以下是基于 Redfish 接口和系统管理能力的解决方案。


:magnifying_glass_tilted_left: 问题解析

您希望:

  • 查询网卡当前是否运行在 MultiHostSingleHost 模式;
  • 通过 Redfish 接口实现该属性的获取;
  • 适用于支持多主机功能(Multihost)的网卡设备。

:white_check_mark: 可行方案:使用 Redfish 接口 + MultihostSupported 属性

1. Redfish 接口支持情况

Redfish 是当前标准的 BMC 管理接口,广泛用于查询和配置服务器硬件资源。对于网卡工作模式(尤其是 MultiHost/SingleHost 区分),可以通过以下方式获取相关信息:

:pushpin: 相关 Redfish 资源路径:

/redfish/v1/Chassis/1/NetworkAdapters

该接口用于获取系统中网络适配器的信息。

进一步获取具体网卡详情:

/redfish/v1/Chassis/1/NetworkAdapters/{adapter_id}

示例:Fish/v1/Chassis/1/NetworkAdapters 是标准 Redfish 端点,可访问 NetworkAdapters 资源。


2. 关键属性:MultihostSupported

在知识图谱中,存在一个关键属性:

  • 实体名称MultihostSupported
  • 类型property
  • 描述:一个只读布尔值,表示系统是否支持 Multihost 功能。
    • true:支持 MultiHost 模式;
    • false:仅支持 SingleHost 模式。

此属性可通过 Redfish 接口暴露,供上层管理系统读取。

:white_check_mark: 说明:

虽然 MultihostSupported 是只读属性,不直接表示“当前运行模式”,但它能明确指示:

  • 该网卡/系统 是否具备 MultiHost 能力
  • 若系统支持,则很可能当前配置为 MultiHost 模式(需结合 BIOS/BMC 配置)。

3. 获取 MultiHost 模式的具体方法

方法一:通过 Redfish 接口查询 NetworkAdapters 资源

GET /redfish/v1/Chassis/1/NetworkAdapters

返回示例(简化):

{
  "Name": "Network Adapter",
  "Id": "1",
  "MultihostSupported": true,
  "Status": {
    "State": "Enabled"
  }
}

若返回中包含 "MultihostSupported": true,表示该网卡支持 MultiHost 模式。

方法二:通过命令行工具验证(辅助手段)

使用 Ipmitool 或系统内部命令也可验证相关状态:

ipmitool raw 0x30 0x97 0x02

此命令尝试执行 Get Multi-host Parameter (NetFn 30h, Cmd 97h, Subcmd 02h),但根据文档说明,该命令已被禁用,表明出于安全考虑,不建议通过 IPMI 直接读取。

:warning: 注意:Get Multi-host Parameter 被标记为 Disabled Command,因此不可用。


4. 替代属性:NetMode 表示网络行为模式

另一个相关属性是:

  • 实体名称NetMode
  • 类型property
  • 描述:定义网络接口的操作模式,如 "Fixed"(固定端口)或 "Adaptive"(自适应模式)。
  • 关联对象:EthernetInterfaces 对象中的字段。

示例路径(D-Bus):

/bmc/kepler/Managers/1/EthernetInterfaces

该属性可通过 Redfish 接口管理:

GET /redfish/v1/Managers/1/EthernetInterfaces/1

虽然 NetMode 主要控制物理端口行为,但在某些实现中可能间接反映 MultiHost 切换策略(如在固定模式下绑定特定主机)。


:puzzle_piece: 是否可通过 Redfish 配置 MultiHost 模式?

目前 Redfish 标准接口尚未直接定义用于切换 MultiHost / SingleHost 模式的可写属性。

但根据 openUBMC 25.12 LTS 版本发布说明

:white_check_mark: 支持 OCP 网卡 Multihost 场景

这意味着:

  • openUBMC 平台已集成对 MultiHost 场景的支持;
  • 可通过 Redfish 接口扩展厂商自定义 schema 实现模式配置;
  • 建议查看 Redfish 的 Oem 扩展字段或咨询厂商是否提供私有接口。

:hammer_and_wrench: 推荐操作步骤

步骤 操作 目的
1 调用 Redfish 接口:
GET /redfish/v1/Chassis/1/NetworkAdapters
获取所有网卡信息
2 查找字段 MultihostSupported 判断是否支持 MultiHost 模式
3 (可选)调用:
GET /redfish/v1/Managers/1/EthernetInterfaces/1
查询 NetMode 等行为参数
4 结合 BMC 日志或系统配置确认当前运行模式 辅助判断实际运行状态

:white_check_mark: 总结

项目 支持情况
获取 MultiHost 支持能力 :white_check_mark: 支持,通过 Redfish 的 MultihostSupported 属性
获取当前 MultiHost 运行模式 :warning: 无直接字段(当前 Redfish 不公开运行时模式)
配置 MultiHost 模式 :cross_mark: 标准 Redfish 不支持,需依赖厂商扩展或 BIOS 设置
替代判断方式 :white_check_mark: 使用 MultihostSupported + NetMode + 系统日志综合判断

:books: 建议

如果您需要完整支持 获取并配置 MultiHost 模式,建议:

  1. 向硬件厂商申请 Redfish Oem 扩展文档
  2. 在 openUBMC 社区中提出需求,推动在 NetworkAdapters 资源中增加:
    "Oem": {
      "OpenUBMC": {
        "CurrentHostMode": "MultiHost" | "SingleHost"
      }
    }
    
  3. 使用 IPMI 带内命令(受限于安全策略)或 BIOS 设置进行模式切换。

如需进一步调试,可通过 mdbctl traceprop 跟踪 NetworkAdapter 对象的属性变化,详见设备管理工具文档。

相关链接:

  1. 【network_adapter】team创建后web不显示工作模式
  2. 【iTestSmart】Redfish接口检查网卡信息:无Mctp Support。
  3. https://discuss.openubmc.cn/t/topic/2623
  4. 【iTestSmart 1.0.36】设置SSH服务状态使能成功记录操作日志测试
  5. openUBMC 182x大板管理特性设计说明书 | 文档中心 | openUBMC

网卡目前没有属性代表这个工作模式吧