首页> 中国专利> 服务器统一通信的方法、基板管理控制器和服务器

服务器统一通信的方法、基板管理控制器和服务器

摘要

本发明实施例提供一种服务器统一通信的方法、基板管理控制器和服务器,所述基板管理控制器BMC接收服务器发送的第一报文,所述第一报文包含第一管理数据或业务数据,将接收到的所述第一报文通过预先配置好的虚拟网卡转发到所述BMC的物理网卡,所述第一报文经由所述物理网卡发送到外部网络,所述虚拟网卡还用于将所述BMC接收到的第二报文发送给所述BMC的控制模块,由所述控制模块对所述第二报文进行处理。现有技术中,所述第一报文通过带内网络发送,需要占用服务器的一个业务网卡,本实施例中,所述第一报文通过带外的所述BMC的物理网卡发送,不需要占用服务器的业务网卡,提高了服务器的业务网卡的利用率。

著录项

  • 公开/公告号CN104202195A

    专利类型发明专利

  • 公开/公告日2014-12-10

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201410457803.X

  • 发明设计人 彭林;

    申请日2014-09-10

  • 分类号H04L12/24(20060101);

  • 代理机构11205 北京同立钧成知识产权代理有限公司;

  • 代理人刘芳

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-17 03:45:10

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-05-04

    授权

    授权

  • 2015-01-07

    实质审查的生效 IPC(主分类):H04L12/24 申请日:20140910

    实质审查的生效

  • 2014-12-10

    公开

    公开

说明书

技术领域

本发明实施例涉及数据通信技术,尤其涉及一种服务器统一通信的方法、 基板管理控制器和服务器。

背景技术

服务器管理有两种途径:通过带外的单板管理控制器(Baseboard  Management Controller,简称BMC)管理,或者通过带内业务网卡管理。 在通过BMC管理服务器的单板时通过带外网络,在监控操作系统 (Operating System,简称OS)状态、快速外设部件互联标准(Peripheral  Component Interconnect express,简称PCIe)卡状态等情况时必须依赖于 带内网络,因此,造成服务器管理既有带内网络,也有带外网络。

业界主流的软件大多数都即支持带内管理也支持带外管理,因此,对 用户的组网有一定的要求,服务器需要提供一个专用的带外管理网卡进行 带外管理,也需要提供一个业务网卡用来进行带内管理数据的传输,同时, 业务网卡也可以用来传输业务数据。因此,现有的管理方法中,一套管理 需要占用至少两个网卡,造成服务器业务网卡资源的浪费。

发明内容

本发明实施例提供一种服务器统一通信的方法、基板管理控制器和服务 器,能够实现带内和带外管理数据通过统一带外网络传输,不占用服务器的 业务网卡,提高了服务器的业务网卡的利用率。

本发明第一方面提供一种服务器统一通信的方法,所述方法包括:

基板管理控制器BMC接收第一报文,所述第一报文包含第一管理数 据或业务数据,且所述第一报文通过第一信道传输,其中,所述第一信道 为所述业务数据通过所述服务器的物理网卡传输到外部网络的通信通道;

所述BMC将接收到的所述第一报文通过预先配置好的虚拟网卡转发 到所述BMC的物理网卡,所述第一报文经由所述物理网卡发送到外部网 络。

结合本发明第一方面,在本发明第一方面的第一种可能的实现方式 中,所述方法还包括:所述BMC接收第二报文,所述第二报文包含第二 管理数据,且所述第二报文通过第二信道传输,其中,所述第二信道为所 述第二管理数据通过所述BMC的物理网卡传输到外部网络的通信通道。

结合本发明第一方面以及本发明第一方面的第一种可能的实现方式, 在本发明第一方面的第二种可能的实现方式中,所述方法还包括:所述 BMC将所述第一报文或所述第二报文通过所述虚拟网卡,转发到所述 BMC的控制模块,所述控制模块用于根据接收到所述第一报文中包含的 所述第一管理数据或所述第二报文中包含的所述第二管理数据,监控所述 服务器的运行状态。

结合本发明第一方面以及本发明第一方面的第一种和第二种可能的 实现方式,在本发明第一方面的第三种可能的实现方式中,所述方法还包 括:所述BMC管理所述虚拟网卡的配置信息,所述配置信息包括:媒体 接入控制MAC地址。

结合本发明第一方面以及本发明第一方面的第一种和第二种可能的 实现方式,在本发明第一方面的第四种可能的实现方式中,所述转发规则 包括:若接收到的报文的目的MAC地址为所述BMC的MAC地址,则将 所述报文转发到所述BMC的控制模块,若所述报文的目的MAC地址不 为所述BMC的MAC地址,则将所述报文转发到所述物理网卡,经由所 述物理网卡发送到外部网络。

结合本发明第一方面的第四种可能的实现方式,在本发明第一方面的 第五种可能的实现方式中,所述虚拟网卡根据所述转发规则转发接收到的 所述第一报文或所述第二报文包括:

通过所述BMC的网桥透传所述第一报文或所述第二报文;

或者,通过在所述物理网卡的驱动层增加侦测点,利用所述物理网卡 的驱动层增加的侦测点识别并转发所述第一报文或所述第二报文。

结合本发明第一方面以及本发明第一方面的第一种和第二种可能的 实现方式,在本发明第一方面的第六种可能的实现方式中,所述方法包括: 所述服务器与所述BMC之间采用标准总线和快速外设部件互联标准PCIe 接口连接,以建立所述服务器与所述BMC的数据交换通道,所述数据交 换通道用于传输所述第一报文和所述第二报文。

本发明第二方面提供一种基板管理控制器BMC,包括:

收发器,所述收发器的第一接收单元用于接收第一报文,所述第一报 文包含第一管理数据或业务数据,且所述第一报文通过第一信道传输,其 中,所述第一信道为所述业务数据通过所述服务器的物理网卡传输到外部 网络的通信通道;

虚拟网卡,用于按照转发规则将所述虚拟收发器接收到的所述第一报 文转发到所述BMC的物理网卡;

所述物理网卡,用于将所述第一报文发送到外部网络。

结合本发明第二方面,在本发明第二方面的第一种可能的实现方式 中,所述收发器还包括:第二接收单元;

所述第二接收单元,用于接收第二报文,所述第二报文包含第二管理 数据,且所述第二报文通过第二信道传输,其中,所述第二信道为所述第 二管理数据通过所述BMC的物理网卡传输到外部网络的通信通道。

结合本发明第二方面的第一种可能的实现方式,在本发明第二方面的 第三种可能的实现方式中,所述第二管理数据包括:所述服务器的主板、 中央处理器CPU以及风扇的温度、电压、电流。

结合本发明第二方面以及本发明第一方面的第一种可能的实现方式, 在本发明第二方面的第二种可能的实现方式中,所述基板管理控制器还包 括:控制模块;

所述虚拟网卡还用于:将所述第一报文或所述第二报文转发到所述控 制模块;

所述控制模块,用于根据接收到所述第一报文中包含的所述第一管理 数据或所述第二报文中包含的所述第二管理数据,监控服务器的运行状 态。

结合本发明第二方面以及本发明第二方面的第一种和第二种可能的 实现方式,在本发明第二方面的第三种可能的实现方式中,所述BMC还 包括:管理模块,用于管理所述虚拟网卡的配置信息,所述配置信息包括: 媒体接入控制MAC地址。

结合本发明第二方面以及本发明第二方面的第一种和第二种可能的 实现方式,在本发明第二方面的第四种可能的实现方式中,所述转发规则 包括:若接收到的报文的目的MAC地址为所述BMC的MAC地址,则将 所述报文转发到所述BMC的控制模块,若所述报文的目的MAC地址不 为所述BMC的MAC地址,则将所述报文转发到所述物理网卡,经由所 述物理网卡发送到外部网络。

结合本发明第二方面的第四种可能的实现方式,在本发明第二方面的 第五种可能的实现方式中,所述BMC还包括:网桥;

所述虚拟网卡具体用于:通过所述网桥透传所述第一报文或所述第二 报文;

或者,通过在所述物理网卡的驱动层增加侦测点,利用所述物理网卡 的驱动层增加的侦测点识别并转发所述第一报文或所述第二报文。

结合本发明第二方面以及本发明第二方面的第一种和第二种可能的实现 方式,在本发明第二方面的第六种可能的实现方式中,所述服务器与所述 BMC之间采用标准总线和快速外设部件互联标准PCIe接口连接,以建立所 述服务器与所述BMC的数据交换通道,所述数据交换通道用于传输所述第 一报文和所述第二报文。

本发明第三方面提供一种服务器,所述服务器包括:处理器、存储器、 基板管理控制器BMC和系统总线,所述存储器和所述BMC通过所述系统总 线与所述处理器连接并完成相互间的通信;

所述存储器,用于存储计算机可执行指令;

所述处理器,用于运行所述计算机可执行指令,以将第一报文发送给所 述BMC;

所述BMC用于接收所述第一报文,所述第一报文包含第一管理数据或 业务数据,且所述第一报文通过第一信道传输,其中,所述第一信道为所述 业务数据通过所述服务器的物理网卡传输到外部网络的通信通道;

所述BMC还用于将接收到的所述第一报文通过预先配置好的虚拟网卡, 按照转发规则,转发到所述BMC的物理网卡,所述第一报文经由所述物理 网卡发送到外部网络。

结合本发明第三方面,在本发明第三方面的第一种可能的实现方式中, 所述处理器还用于执行所述计算机可执行指令,以将第二报文发送给所述 BMC;

相应地,所述BMC还用于接收所述第二报文,所述第二报文包含第 二管理数据,且所述第二报文通过第二信道传输,其中,所述第二信道为 所述第二管理数据通过所述BMC的物理网卡传输到外部网络的通信通 道。

结合本发明第三方面以及本发明第三方面的第一种可能的实现方式,在 本发明第三方面的第二种可能的实现方式中,所述BMC还用于:

将所述第一报文或所述第二报文通过所述虚拟网卡,转发到所述BMC 的控制模块,所述控制模块用于根据接收到所述第一报文中包含的所述第 一管理数据或所述第二报文中包含的所述第二管理数据,监控所述服务器 的运行状态。

结合本发明第三方面以及本发明第三方面的第一种和第二种可能的实现 方式,在本发明第三方面的第三种可能的实现方式中,所述转发规则包括: 若接收到的报文的目的MAC地址为所述BMC的MAC地址,则将所述报文 转发到所述BMC的控制模块,若所述报文的目的MAC地址不为所述BMC 的MAC地址,则将所述报文转发到所述物理网卡,经由所述物理网卡发送 到外部网络。

结合本发明第三方面的第三种可能的实现方式,在本发明第三方面的 第四种可能的实现方式中,所述虚拟网卡根据所述转发规则转发接收到的 所述第一报文或所述第二报文包括:

通过所述BMC的网桥透传所述第一报文或所述第二报文;

或者,通过在所述物理网卡的驱动层增加侦测点,利用所述物理网卡的 驱动层增加的侦测点识别并转发所述第一报文或所述第二报文。

本发明实施例提供的服务器统一通信的方法、基板管理控制器和服务器, BMC通过接收服务器发送的第一报文,所述第一报文包含第一管理数据或业 务数据,将接收到的所述第一报文通过预先配置好的虚拟网卡转发到所述 BMC的物理网卡,所述第一报文经由所述物理网卡发送到外部网络,所述虚 拟网卡还用于将所述BMC接收到的第二报文发送给所述BMC的控制模块, 由所述控制模块对所述第二报文进行处理。现有技术中,所述第一报文通过 带内网络发送,需要占用服务器的一个业务网卡,本实施例中,所述第一报 文通过带外的所述BMC的物理网卡发送,不需要占用服务器的业务网卡, 提高了服务器的业务网卡的利用率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下 面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在 不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的服务器的一种结构示意图;

图2为本发明实施例一提供的服务器统一通信的方法的流程图;

图3为本发明实施例二提供的第一报文的转发流程图;

图4为本发明实施例三提供的第一报文的响应报文的转发流程图;

图5为本发明实施例四提供的一种BMC的结构示意图;

图6为本发明实施例五提供的一种BMC的结构示意图;

图7为本发明实施例六提供的一种服务器的结构示意图;

图8为本发明实施例七提供的一种BMC的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发 明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述, 显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获 得的所有其他实施例,都属于本发明保护的范围。

现有的服务器通信方法中,第一报文可以为带内报文,第二报文可以 为带外报文,所述带内报文包含带内管理数据或业务数据,所述带内报文 为所述业务数据和所述带内管理数据都通过服务器的物理网卡传输到外 部网络的报文。当所述服务器具有多个物理网卡时,所述业务数据和所述 第一管理数据可以通过所述服务器的同一个物理网卡发送,也可以通过所 述服务器的不同物理网卡发送。所述带外报文包含带外管理数据,所述带 外报文为所述业务数据和所述带外管理数据通过不同信道传输的报文,即 所述带外管理数据通过BMC的物理网卡发送到外部网络,所述业务数据 通过服务器的物理网卡传输到外部网络。本发明各实施例中,所述第一报 文包括第一管理数据和业务数据,所述第二管理报文包括第二管理数据, 本发明各实施例中的第一管理数据相当于现有技术中的所述带内管理数 据,所述第二管理数据相当于所述带外管理数据,由此可知,现有技术中, 所述第一报文通过带内网络发送,所述第二报文通过带外网络发送。本发 明各实施例提供的服务器统一通信的方法中,所述第一报文和所述第二报文 都可以通过所述带外网络发送。以下将通过具体的实施例对本发明的服务器 统一通信的方法进行详细说明。

图1为本发明实施例提供的服务器的一种结构示意图,如图1所示, 服务器包括:虚拟网卡11、虚拟网卡驱动12和BMC13,BMC13设置在 服务器的基板上,服务器的基板与所述BMC13之间采用标准的PCIe接口 连接。所述BMC13利用传感器来监控所述服务器的状态信息,利用获取 到的状态信息进行硬件管理和故障排除等,并且所述BMC13通过独立的 连接线路和系统管理员进行通信,所述BMC是智能平台控制接口(IPMI, Intelligent Platform Management Interface)的一部分并且通常被包含在被监 控的设备的主电路板里,本实施例中所述BMC13设置在所述服务器的基 板上。当然,所述BMC13也可以作为一个单独的设备与所述服务器的基 板连接。

本实施例中,所述BMC13包括:虚拟收发器131、虚拟网卡驱动132、 虚拟网卡133、网桥134、物理网卡135、管理模块136和控制模块137。

其中,所述虚拟网卡11,用于接收OS的上层应用发送的第一管理数 据或业务数据,将所述第一管理数据或业务数据封装成第一报文发送给所 述BMC13。所述虚拟网卡11由所述虚拟网卡驱动12通过软件的方式模 拟得到,所述虚拟网卡11具有实际物理网卡的功能,可以被服务器的所 有上层应用软件直接使用,因此,本发明实施例的方法具有更多的管理功 能。而现有技术中,服务器侧的BMC驱动只能支持少量的管理功能,这 些管理功能依赖于特定设备厂商开发的应用软件,BMC驱动只与该特定 设备厂商提供的应用软件之间具有接口,因此,BMC驱动只能获取该特 定设备厂商提供的应用软件的状态信息作为第一管理数据,不支持第三方 应用软件的管理,不具有扩展性。而本发明实施例的方法中,所述虚拟网 卡11具有实际物理网卡的所有功能,其具有通用性,能够支持对第三方 应用软件的管理。

所述虚拟网卡11同真实的物理网卡一样,也配置有MAC地址、网络 互连(Internet Protocol,简称IP)地址、虚拟局域网(Virtual Local Area  Network,简称VLAN)等,所述虚拟网卡11可以由所述BMC13上的所 述管理模块136进行配置和管理。

所述虚拟网卡驱动12,用于模拟出所述虚拟网卡11,实现与所述虚 拟收发器131进行数据交换,在OS侧看提供了一个标准网卡的收发接口, 该收发接口就是所述虚拟网卡11。

本领域技术人员可以理解的是,对于一个物理网卡来说,光有物理网 卡是不能工作的,必须有网卡驱动程序来驱动物理网卡,物理网卡才能正 常工作。本实施例中,可以将所述虚拟网卡11当作一个物理网卡,所述 虚拟网卡11具有物理网卡的所有功能,因此,所述虚拟网卡11也需要驱 动程序,所述虚拟网卡驱动12即是所述虚拟网卡11的驱动程序,图1中 为了更清楚的说明所述虚拟网卡11和虚拟网卡驱动12的关系,所以将两 个模块分开画。在本发明实施例的其他附图中,也可以将所述虚拟网卡11 和虚拟网卡驱动12看作一个功能模块,只画所述虚拟网卡11或所述虚拟 网卡驱动12。

所述虚拟网卡11将所述第一报文发送给所述BMC,以使所述BMC 通过所述虚拟网卡133将第一报文发送到外部网络。第一报文中携带的第 一管理数据由所述服务器的监控软件获取,所述第一管理数据主要包括 OS状态参数、业务软件状态参数或硬件部件状态参数,这里的业务软件 包括所述服务器自带的应用软件,以及第三方应用软件。硬件部件包括: 所述服务器的CPU、内存、硬盘、光驱、网卡、显卡等,其中,CPU的 状态参数具体为CPU的利用率、主频等。

所述虚拟收发器131,一方面实现与所述虚拟网卡11的数据交互,接 收所述虚拟网卡11发送的所述第一报文,另一方面,所述虚拟收发器131 与所述BMC13的所述虚拟网卡133对接,将接收到的所述第一报文发送 给所述虚拟网卡133。

所述虚拟网卡133也需要驱动程序,所述虚拟网卡驱动132即为所述 虚拟网卡133的驱动程序,所述虚拟网卡驱动132提供了一个标准网卡的 收发接口,该收发接口即为所述虚拟网卡133,所述虚拟网卡133用于与 所述虚拟收发器131对接,对所述虚拟收发器131接收到的所述第一报文 进行转发。图1中为了更清楚的说明所述虚拟网卡133和虚拟网卡驱动132 的关系,所以将两个模块分开画。在本发明实施例的其他附图中,也可以 将所述虚拟网卡133和所述虚拟网卡驱动132看作一个功能模块,只画所 述虚拟网卡133或所述虚拟网卡驱动132。

所述虚拟网卡133也配置有MAC地址、IP和VLAN等,所述虚拟 网卡133用于将接收到所述第一报文发送给所述网桥134,或者,将接收 到第二报文发送给所述网桥134。所述第二报文包括第二管理数据,所述 第二管理数据包括:所述服务器的主板、CPU、风扇等设备的温度、电压、 电流等信息,所述第一管理数据一般需要在所述服务器上电运行时才能获 取到,而所述第二管理数据在所述服务器断电的情况下也能够获取。

所述虚拟网卡133还用于将所述第一报文或所述第二报文发送给所述 控制模块137,所述控制模块137用于根据接收到所述第一报文或所述第 二报文中携带的管理数据,监控所述服务器的运行状态。

所述网桥134,用于透传所述虚拟网卡133发送的第一报文或第二报 文,将所述第一报文或所述第二报文发送给所述物理网卡135。或者,所 述网桥134将所述虚拟网卡133发送的所述第一报文或所述第二报文透传 发送给所述控制模块137。

所述物理网卡135,用于将接收到的所述第一报文或所述第二报文发 送到外部网络。

现有技术中,所述第一报文通过带内网络发送,所述第二报文通过带 外网络发送,所述第一报文可以是带内数据,所述第二报文可以是带外数 据,本发明实施例中,所述第一报文和所述第二报文都可以通过所述物理 网卡135发送到外部网络,实现了所有带内数据和带外数据通过统一的带 外网卡发送,不占用所述服务器的业务网卡,提高了所述服务器的业务网 卡的利用率。

所述管理模块136,用于对所述虚拟网卡133和所述虚拟收发器131 进行管理,例如对所述虚拟网卡133和所述虚拟收发器131的MAC地址、 IP地址、VLAN进行配置和管理,由BMC对所述虚拟网卡133和所述虚 拟收发器131进行管理,而不需要通过服务器机进行管理,使得管理更加 方便。所述管理模块136还用于对所述虚拟网卡11进行配置和管理,从 而实现了统一的带外管理,所述管理模块136主要对用于对所述虚拟网卡 11的MAC地址、IP地址、VLAN进行配置和管理,在所述服务器和BMC 之间可以设置专门的PCIe管理通道发送所述虚拟网卡11的管理数据,当 然,也可以使用所述BMC和所述服务器之间的数据交换通道发送所述虚 拟网卡11的管理数据。

图2为本发明实施例一提供的服务器统一通信的方法的流程图,结合 图1和图2对本实施例提供的服务器统一通信的方法进行详细说明,如图 2所示,本实施例的方法可以包括以下步骤:

步骤101、BMC接收第一报文,所述第一报文包含第一管理数据或业 务数据,且所述第一报文通过第一信道传输,其中,所述第一信道为所述 业务数据通过所述服务器的物理网卡传输到外部网络的通信通道。

所述服务器与所述BMC之间采用标准总线和PCIe接口连接,以建立 所述服务器与所述BMC的数据交换通道,所述数据交换通道用于传输所 述第一报文。所述服务器通过所述数据交换通道将所述第一报文发送给所 述BMC,具体由所述服务器的虚拟网卡11发送所述第一报文。所述BMC 接收所述第一报文,所述第一报文包含第一管理数据或业务数据。具体地, 所述第一报文由所述BMC的虚拟收发器131接收,所述虚拟收发器131 可以采用PCIe直接内存存取(Direct Memory Access,简称DMA)方法 接收所述第一报文。

现有技术中,所述第一报文可以是带内报文,通过所述服务器的带内 网络发送到外部网络,具体地,所述第一报文通过第一信道传输,所述第 一信道为所述业务数据通过所述服务器的物理网卡传输到外部网络的通 信通道,当所述服务器具有多个物理网卡时,所述业务数据和所述第一管 理数据可以通过所述服务器的同一个物理网卡发送,也可以通过所述服务 器的不同物理网卡发送。

本实施例中,为了实现带内数据和带外数据通过统一的带外接口发 送,所述服务器需要将所述第一报文发送给所述BMC,通过所述BMC的 物理网卡135发送到外部网络,即所述第一管理数据与所述业务数据都可 以通过相同的所述物理网卡135传输。

步骤102、所述BMC将接收到的所述第一报文通过预先配置好的虚 拟网卡,按照转发规则,转发到所述BMC的物理网卡,所述第一报文经 由所述物理网卡发送到外部网络。

所述虚拟收发器131接收到所述第一报文后,将所述第一报文发送给 所述BMC的虚拟网卡133,所述虚拟网卡133根据转发规则将所述第一 报文发送给所述BMC的物理网卡135,所述第一报文经由所述物理网卡 135发送到外部网络。

所述虚拟网卡133的转发规则包括:若接收到的报文的目的MAC地 址为所述BMC的MAC地址,则将所述报文转发到所述BMC的控制模块 137,所述控制模块137根据接收到所述第一报文中包含的所述第一管理 数据,监控所述服务器的运行状态。若所述报文的目的MAC地址不为所 述BMC的MAC地址,则将所述报文转发到所述物理网卡135,经由所述 物理网卡135发送到外部网络。

所述第一报文中还包括地址信息:源IP地址、源MAC、目的IP、目 的MAC等,所述第一报文的源IP地址为所述虚拟网卡11的IP地址,所 述第一报文的源MAC为所述虚拟网卡11的MAC地址,当所述第一报文 要发送给所述控制模块137处理时,所述第一报文的目的MAC地址为所 述BMC的MAC地址。当所述第一报文要发送到外部网络中的管理设备 时,所述第一报文的目的IP地址为所述管理设备的IP地址,所述第一报 文的目的MAC地址为所述管理设备的MAC地址。

所述虚拟网卡133接收到所述第一报文后,判断所述第一报文目的 MAC地址是否为所述BMC的MAC地址,若所述第一报文目的MAC地 址为所述BMC的MAC地址,则将所述第一报文发送给所述控制模块137, 若所述第一报文目的MAC地址不为所述BMC的MAC地址,则将所述第 一报文发送给所述物理网卡135。

本实施例中,所述虚拟网卡133根据所述转发规则转发接收到的所述 第一报文具体为:通过所述BMC的网桥134透传所述第一报文,所述第 一报文经由所述网桥134发送给所述物理网卡135。或者,通过在所述物 理网卡135的驱动层增加侦测点,利用所述物理网卡135的驱动层增加侦 测点识别并转发所述第一报文。

所述BMC还用于接收第二报文,所述第二报文包含第二管理数据, 且所述第二管理数据与所述业务数据通过不同的逻辑信道传输。所述BMC 采用所述服务器与所述BMC之间建立的数据交换通道接收所述第二报 文。与现有技术相同,所述第二报文还是通过带外网络发送,所述BMC 接收到所述第二报文后,将所述第二报文通过所述虚拟网卡133,转发到 所述物理网卡135,经由所述物理网卡135发送到外部网络。所述虚拟网 卡133仍然采用上述的转发规则转发所述第二报文,这里不再赘述。或者, 所述虚拟网卡133将所述第二报文发送给所述BMC的控制模块137,所 述控制模块137根据接收到所述第二报文中包含的所述第二管理数据,监 控所述服务器的运行状态。

需说明的是,本实施例中,所述服务器要将所述第一报文发送给所述 BMC,并通过所述BMC的虚拟网卡133发送到外部网络,需要预先配置 所述第一报文的路由信息,并存储到所述服务器中,以便所述服务器根据 所述路由信息对所述第一报文进行转发。本实施例中,所述第一报文要通 过所述BMC的物理网卡135发送到外部网络,因此,所述服务器要配置 所述物理网卡135的转发网段,所述第一报文的IP地址属于所述物理网 卡135的转发网段,当服务器接收到上层应用软件发送的所述第一报文时, 根据所述路由信息,确定所述第一报文应该通过所述物理网卡135发送, 则所述服务器将所述第一报文发送给所述BMC,通过所述BMC的虚拟网 卡133将所述第一报文发送给所述物理网卡135。

本实施例中,BMC通过接收服务器发送的第一报文,所述第一报文 包含第一管理数据或业务数据,将接收到的所述第一报文通过预先配置好 的虚拟网卡转发到所述BMC的物理网卡,所述第一报文经由所述物理网 卡发送到外部网络,所述虚拟网卡还用于将接收到的第二报文发送给所述 BMC的控制模块,由所述控制模块对所述第二报文进行处理。现有技术 中,所述第一报文通过带内网络发送,需要占用服务器的一个业务网卡, 本实施例中,所述第一报文和所述第二报文都通过带外的所述BMC的物 理网卡发送,不需要占用服务器的业务网卡,提高了服务器的业务网卡的 利用率。

在上述实施例一中,所述第一管理数据和所述业务数据都通过所述 BMC的物理网卡发送到外部网络,这样做的好处是,所有的数据都通过 统一的带外物理网卡发送。通常情况下,希望将业务数据和管理数据分离, 即业务数据和管理数据通过不同的信道传输,因此,可选地,本发明实施 例的方案中,也可以将所述业务数据通过所述服务器的业务网卡发送,只 将所述第一管理数据通过所述BMC的物理网卡发送,即所有的管理数据 都通过带外网络发送,所有的业务数据都通过带内网络发送,这样可以将 业务数据或管理数据隔离开,保证业务数据传输的可靠性。

在上述实施例一的基础上,本发明实施例二中将对第一报文的转发流 程进行详细说明,本发明实施例二中所述服务器和所述BMC之间采用收 发队列交互数据。图3为本发明实施例二提供的第一报文的转发流程图, 请参照图1和图3,本实施例提供的第一报文的转发流程包括以下步骤:

步骤201、虚拟网卡驱动12启动报文发送。

当所述服务器有第一报文要发送时,所述服务器的OS将要发送的第 一报文压缩到协议栈,所述虚拟网卡驱动12检测到协议栈中有数据要送 时,启动报文发送。

步骤202、所述虚拟网卡驱动12判断自己的发送队列是否有空闲DMA 空间。

服务器与BMC之间通过PCIe DMA方式收发数据,若所述虚拟网卡 驱动12的发送队列有空闲DMA空间,则执行步骤203,若所述虚拟网卡 驱动12的发送队列没有空闲DMA空间,则执行步骤204。

步骤203、所述虚拟网卡驱动12将待发送的第一报文的物理地址放到 自己的发送队列中。

服务器在内存中分配一个SKB(Socket Buffer)缓冲区,将待发送第 一报文存储在SKB缓冲区中,所述第一报文的物理地址收到被放到所述 协议栈中,所述协议栈在将所述第一报文的物理地址被放置到所述虚拟网 卡驱动12发送队列中,这里所述第一报文的物理地址为所述第一报文在 所述服务器的SKB缓冲区中的存储地址。

步骤203执行完之后执行步骤205。

步骤204、所述虚拟网卡驱动12将所述第一报文反压到所述协议栈。

步骤205、所述虚拟网卡驱动12通知所述BMC的虚拟收发器131启 动DMA操作。

步骤206、所述虚拟收发器131确定自己的接收队列是否有空闲DMA 空间。

若所述虚拟收发器131的接收队列有空闲DMA空间,则执行步骤 207,若所述虚拟收发器131的接收队列没有空闲DMA空间,则执行步骤 208。

步骤207、所述虚拟收发器131启动DMA操作,将所述第一报文从 所述服务器的SKB缓冲区读取到所述BMC的SKB缓冲区,并在DMA 操作结束之后通知所述虚拟网卡驱动12数据接收完成。

所述虚拟收发器131收到所述虚拟网卡驱动12的通知后,在所述BMC 的本地内存中分配一个SKB缓冲区,所述SKB缓冲分配成功后触发DMA 操作,根据所述第一报文的物理地址将所述第一报文读取到所述BMC的 SKB缓冲区中。在所述DMA操作结束后,所述虚拟收发器131可以通过 中断方式通知所述虚拟网卡驱动数据12数据接收成功,所述虚拟网卡驱 动12释放所述服务器的内存中的SKB缓冲区,服务器侧报文发送完毕。 步骤207执行完之后执行步骤209。

步骤208、所述虚拟收发器131定时等待。

当所述虚拟收发器131的接收队列没有空闲DMA空间时,所述虚拟 收发器131需要等待,当等待时间到时,返回执行步骤206,继续判断所 述虚拟收发器131的接收队列是否有空闲DMA空间。

步骤209、所述虚拟收发器131调用所述BMC的虚拟网卡133将所 述第一报文的物理地址发送到所述虚拟网卡133的发送队列中。

本步骤以及本实施例的后续步骤中所涉及的所述第一报文的物理地 址,均是指所述第一报文在所述服务器的SKB缓冲区中的地址。

步骤210、所述BMC的网桥134向所述虚拟网卡133发送回调函数 获取所述第一报文的物理地址。

所述网桥134通过向所述虚拟网卡133发送回调函数将所述第一报文 的物理地址添加到自己的发送队列中,所述回调函数具体可以为钩子函 数。

步骤211、所述网桥134根据转发规则判断所述第一报文是否发送给 所述BMC的物理网卡135。

具体地,所述网桥134判断所述第一报文的目标MAC地址是否为所 述BMC的MAC,若所述第一报文的目标MAC地址不是所述BMC的MAC 地址,则执行步骤212,若所述第一报文的目标MAC地址是所述BMC的 MAC地址,则执行步骤213。

步骤212、所述网桥134调用所述物理网卡135的发送接口将所述第 一报文的物理地址发送给所述BMC的物理网卡135。

步骤212执行完之后执行步骤214。

步骤213、所述网桥134将所述第一报文发送给所述BMC的控制模 块137。

步骤214、所述物理网卡135将所述第一报文发送到外部网络。

具体地,所述物理网卡135根据所述第一报文的物理地址,从所述 BMC的SKB缓冲区读取所述第一报文,将所述第一报文发送到所述外部 网络。

在所述BMC将所述第一报文发送给外部网络中的管理设备之后,所 述管理设备会向所述服务器返回所述第一报文的响应报文。本发明实施例 三种具体描述所述第一报文的响应报文的转发流程。图4为本发明实施例 三提供的第一报文的响应报文的转发流程图,请参照图1和图4,本实施 例提供的第一报文的响应报文的转发流程包括以下步骤:

步骤301、物理网卡135接收第一报文的响应报文。

所述物理网卡135接收到的所述第一报文的响应报文会放置到在 BMC的内存中预先分配的SKB缓冲区中。

步骤302、所述物理网卡135将所述第一报文的响应报文的物理地址 放到自己的接收队列中。

所述第一报文的响应报文的物理地址为所述第一报文在所述BMC的 SKB缓冲区中存储地址。

步骤303、所述物理网卡135调用所述BMC的网桥134的回调函数 将所述第一报文的响应报文的物理地址发送到所述网桥134的接收队列 中。

步骤304、所述网桥134判断所述第一报文的响应报文的目的MAC 地址是否为所述BMC的MAC地址。

若所述第一报文的响应报文的目的MAC地址不为所述BMC的MAC 地址,则执行步骤305,若所述第一报文的响应报文的目的MAC地址为 所述BMC的MAC地址,则执行步骤306。

步骤305、所述网桥134调用所述BMC的虚拟网卡133的接收函数 将所述第一报文的响应报文的物理地址发送到所述虚拟网卡133的接收队 列中。

步骤305执行完之后执行步骤307。

步骤306、所述网桥134将所述第一报文的响应报文发送给所述BMC 的控制模块137。

步骤307、所述虚拟网卡133将所述第一报文的响应报文的物理地址 发送到所述BMC的虚拟收发器131的接收队列中。

步骤308、所述虚拟收发器131判断服务器的虚拟网卡驱动12的接收 队列是否有空闲DMA空间。

若所述虚拟网卡驱动12的接收队列有空闲DMA空间,则执行步骤 309,若所述虚拟网卡驱动12的接收队列没有空闲DMA空间,则执行步 骤310。

步骤309、所述虚拟收发器131启动DMA操作,将所述第一报文的 响应报文发送到所述虚拟网卡驱动12的接收队列。

步骤309之后执行步骤311。

步骤310、所述虚拟收发器131丢弃所述第一报文的响应报文。

步骤311、所述虚拟收发器131通知所述虚拟网卡驱动12数据发送成 功。

所述虚拟网卡驱动12收到所述虚拟收发器131的通知后,将所述第 一报文的响应报文传递到协议栈,OS侧接收完毕。

步骤312、所述虚拟收发器131释放所述BMC的SKB缓冲区。

图5为本发明实施例四提供的一种BMC的结构示意图,如图5所示, 本实施例提供的BMC包括:收发器21、虚拟网卡22和物理网卡23。

其中,所述收发器21包括第一接收单元211,所述第一接收单元211 用于接收第一报文,所述第一报文包含第一管理数据或业务数据,且所述 第一报文通过第一信道传输,其中,所述第一信道为所述业务数据通过所 述服务器的物理网卡传输到外部网络的通信通道。;

所述虚拟网卡22,用于按照转发规则将所述虚拟收发器接收到的所述 第一报文转发到所述BMC的物理网卡;

所述物理网卡23,用于将所述第一报文发送到外部网络。

进一步地,所述收发器21还包括第二接收单元212,所述第二接收单 元212用于:接收第二报文,所述第二报文包含第二管理数据,且所述第 二报文通过第二信道传输,所述第二信道为所述第二管理数据通过所述 BMC的物理网卡传输到外部网络的通信通道。

本实施例中,所述第一管理数据包括:所述服务器的操作系统OS的 状态参数、业务软件的状态参数或硬件部件的状态参数,其中,所述业务 软件包括所述服务器自带的应用软件以及第三方应用软件,所述硬件部件 包括所述服务器的中央处理器CPU、内存、硬盘、光驱、网卡以及显卡。 所述第二管理数据包括:所述服务器的主板、中央处理器CPU以及风扇 的温度、电压、电流。

本实施例中,所述服务器与所述BMC之间采用标准总线和快速外设 部件互联标准PCIe接口连接,以建立所述服务器与所述BMC的数据交换 通道,所述数据交换通道用于传输所述第一报文和所述第二报文。

所述转发规则包括:若接收到的报文的目的MAC地址为所述BMC 的MAC地址,则将所述报文转发到所述BMC的控制模块,若所述报文 的目的MAC地址不为所述BMC的MAC地址,则将所述报文转发到所述 物理网卡23,经由所述物理网卡23发送到外部网络。

本实施例的BMC,可用于执行方法实施例一的技术方案,其具体实 现方式和技术效果类似,这里不再赘述。

图6为本发明实施例五提供的一种BMC的结构示意图,本实施例的 BMC在图5所示BMC的基础上,进一步的包括网桥24、控制模块25和 管理模块26。

所述控制模块25,用于根据接收到所述第一报文中包含的所述第一管 理数据或所述第二报文中包含的所述第二管理数据,监控所述服务器的运 行状态。相应地,所述虚拟网卡22还用于:将所述第一报文或所述第二 报文转发到所述控制模块25。

所述虚拟网卡22具体用于:通过所述网桥24透传所述第一报文或所 述第二报文;或者,通过在所述物理网卡23的驱动层增加侦测点,利用 所述物理网卡23的驱动层增加侦测点识别并转发所述第一报文或所述第 二报文。

所述管理模块26,用于管理所述虚拟网卡22的配置信息,所述配置 信息:媒体接入控制MAC地址。

本实施例的BMC,可用于执行实施例一至实施例三的技术方案,其 实现原理和技术效果类似,这里不再赘述。

图7为本发明实施例六提供的一种服务器的结构示意图,如图7所示, 本实施例的服务器300包括:处理器31、存储器32、BMC33和系统总线 34,其中,所述存储器32、所述BMC33通过所述系统总线34与所述处 理器31连接并通信,所述系统总线34具体可以为PCIe总线,所述服务 器与所述BMC之间采用所述PCIe总线连接,以建立所述服务器与所述 BMC的数据交换通道,通过所述数据交换通道传输数据。所述存储器32 中存储有计算机可执行指令321,所述处理器31用于执行所述计算机可执 行指令321以获取第一报文,并将所述第一报文发送给所述BMC33,所 述BMC具体用于执行如下操作:

接收第一报文,所述第一报文包含第一管理数据或业务数据,且所述 第一报文通过第一信道传输,其中,所述第一信道为所述业务数据通过所 述服务器300的物理网卡传输到外部网络的通信通道。

将接收到的所述第一报文通过预先配置好的虚拟网卡,按照转发规 则,转发到所述BMC33的物理网卡,所述第一报文经由所述物理网卡发 送到外部网络。

所述BMC33还用于接收第二报文,所述第二报文包含第二管理数据, 且所述第二报文通过第二信道传输,其中,所述第二信道为所述第二管理 数据通过所述BMC33的物理网卡传输到外部网络的通信通道。

其中,所述第一管理数据包括:所述服务器的操作系统OS的状态参 数、业务软件的状态参数或硬件部件的状态参数,其中,所述业务软件包 括所述服务器自带的应用软件以及第三方应用软件,所述硬件部件包括所 述服务器的中央处理器CPU、内存、硬盘、光驱、网卡以及显卡。所述第 二管理数据包括:所述服务器的主板、中央处理器CPU以及风扇的温度、 电压、电流。

可选地,所述BMC33还用于:将所述第一报文或所述第二报文通过 所述虚拟网卡,转发到所述BMC33的控制模块,所述控制模块用于根据 接收到所述第一报文中包含的所述第一管理数据或所述第二报文中包含 的所述第二管理数据,监控所述服务器的运行状态。

本实施例中,所述的转发规则包括:若接收到的报文的目的MAC地 址为所述BMC33的MAC地址,则将所述报文转发到所述BMC33的控制 模块,若所述报文的目的MAC地址不为所述BMC33的MAC地址,则将 所述报文转发到所述物理网卡,经由所述物理网卡发送到外部网络。

所述虚拟网卡根据所述转发规则转发接收到的所述第一报文或所述 第二报文具体为:通过所述BMC33的网桥透传所述第一报文或所述第二 报文;或者,通过在所述物理网卡的驱动层增加侦测点,利用所述物理网 卡的驱动层增加侦测点识别并转发所述第一报文或所述第二报文。

所述BMC33还用于:管理所述虚拟网卡的配置信息,所述配置信息 包括:媒体接入控制MAC地址。

本实施例的服务器,可用于执行实施例一至实施例三提供的技术方案, 其具体实现方式和技术效果类似,这里不再赘述。

图8为本发明实施例七提供的一种BMC的结构示意图,如图8所示, 本实施例的BMC400包括:处理器41、存储器42、通信接口43和系统总线 44,其中,所述存储器42、所述通信接口43通过所述系统总线44与所述处 理器41连接并通信,所述通信接口43用于与其他网络设备通信,所述存储 器42中存储有计算机可执行指令421,所述处理器41用于执行所述计算机 可执行指令421以使所述BMC400执行如下操作:

接收第一报文,所述第一报文包含第一管理数据或业务数据,且所述 第一报文通过第一信道传输,其中,所述第一信道为所述业务数据通过所 述服务器的物理网卡传输到外部网络的通信通道。

将接收到的所述第一报文通过预先配置好的虚拟网卡,按照转发规 则,转发到所述BMC的物理网卡,所述第一报文经由所述物理网卡发送 到外部网络。

进一步地,所述BMC400还用于接收第二报文,所述第二报文包含第 二管理数据,且所述第二报文通过第二信道传输,其中,所述第二信道为 所述第二管理数据通过所述BMC400的物理网卡传输到外部网络的通信 通道。

其中,所述第一管理数据包括:所述服务器的操作系统OS的状态参 数、业务软件的状态参数或硬件部件的状态参数,其中,所述业务软件包 括所述服务器自带的应用软件以及第三方应用软件,所述硬件部件包括所 述服务器的中央处理器CPU、内存、硬盘、光驱、网卡以及显卡。所述第 二管理数据包括:所述服务器的主板、中央处理器CPU以及风扇的温度、 电压、电流。

可选地,所述BMC400还用于将所述第一报文或所述第二报文通过所 述虚拟网卡,转发到所述BMC400的控制模块,所述控制模块用于根据接 收到所述第一报文中包含的所述第一管理数据或所述第二报文中包含的 所述第二管理数据,监控服务器的运行状态。

所述转发规则包括:若接收到的报文的目的MAC地址为所述BMC400 的MAC地址,则将所述报文转发到所述BMC400的控制模块,若所述报 文的目的MAC地址不为所述BMC400的MAC地址,则将所述报文转发 到所述物理网卡,经由所述物理网卡发送到外部网络。

所述虚拟网卡根据所述转发规则转发接收到的所述第一报文或所述 第二报文具体为:通过所述BMC400的网桥透传所述第一报文或所述第二 报文;或者,通过在所述物理网卡的驱动层增加侦测点,利用所述物理网 卡的驱动层增加侦测点识别并转发所述第一报文或所述第二报文。

可选地,所述服务器与所述BMC400之间采用标准总线和快速外设部 件互联标准PCIe接口连接,以建立所述服务器与所述BMC400的数据交 换通道,所述数据交换通道用于传输所述第一报文和所述第二报文。

可选地,所述BMC400还用于:管理所述虚拟网卡的配置信息,所述 配置信息包括:媒体接入控制MAC地址。

本实施例的服务器,可用于执行实施例一至实施例三提供的技术方案, 其具体实现方式和技术效果类似,这里不再赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步 骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可 读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而 前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码 的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对 其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通 技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并 不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号