CN117951057A - 网卡管理方法、***及设备 - Google Patents
网卡管理方法、***及设备 Download PDFInfo
- Publication number
- CN117951057A CN117951057A CN202211285623.9A CN202211285623A CN117951057A CN 117951057 A CN117951057 A CN 117951057A CN 202211285623 A CN202211285623 A CN 202211285623A CN 117951057 A CN117951057 A CN 117951057A
- Authority
- CN
- China
- Prior art keywords
- network card
- running state
- state data
- storage area
- controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims abstract description 122
- 230000015654 memory Effects 0.000 claims description 139
- 238000000034 method Methods 0.000 claims description 37
- 238000011022 operating instruction Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 12
- 230000007704 transition Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 25
- 238000012545 processing Methods 0.000 description 12
- 238000011084 recovery Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000002085 persistent effect Effects 0.000 description 6
- 239000007787 solid Substances 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000036541 health Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 210000001503 joint Anatomy 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供了一种网卡管理方法,其中,该方法包括:网卡的控制器从网卡的存储区读取来自于计算机设备的读取请求,读取请求用于读取网卡芯片的硬件运行状态数据,存储区为所述计算机设备能够通过所述网卡的第一串行接口访问的存储区域;控制器通过网卡的第二串行接口获取所述硬件运行状态数据,所述第二串行接口用于输出所述网卡的硬件运行状态数据;所述控制器根据所述读取请求将所述硬件运行状态数据写入到所述存储区。本申请技术方案中,计算机设备可以通过网卡的存储区读取网卡的硬件运行状态数据,不需要改变现有计算机设备的设计,即可实现对网卡的管理,提高了计算机设备的适应性,降低了设计成本。
Description
技术领域
本申请涉及网卡技术领域,并且更具体地,涉及一种网卡管理方法、***及设备。
背景技术
高速串行拓展总线(peripheral component interface express,PCIe)板卡等可以运行独立操作***的智能网卡正在被数据中心广泛应用。智能网卡的硬件运行状态数据能够反映智能网卡中硬件的运行情况,例如,在智能网卡的操作***(operating system,OS)启动前,智能网卡基本输入输出***(basic input output system,BIOS)的启动信息。通过网卡的硬件运行状态数据,数据中心运维人员能够对网卡进行管理和维护。
但是,智能网卡的硬件运行状态数据属于网卡的底层数据,不能够被服务器直接访问。现有技术通过在服务器内增加串口连接器,将智能网卡的***串口通过专用的串口线与服务器对接来获取智能网卡的硬件运行状态数据。这种方案只适合定制服务器的场景,不具备通用性,大多数场景下无法实际部署。
因此,如何在不改变现有服务器设计和数据中心管理网络的情况下,实现对智能网卡的管理是目前亟需解决的技术问题。
发明内容
本申请实施例提供一种网卡管理方法、***及设备,计算机设备可以通过网卡的存储区读取网卡的硬件运行状态数据,不需要改变现有计算机设备的设计,即可实现对网卡的管理,提高了计算机设备的适应性,降低了设计成本。
第一方面,提供了一种网卡管理方法,该方法包括:控制模块和网卡芯片,所述控制模块通过第一串行接口与所述网卡所在的计算机设备通信,所述控制模块和所述网卡芯片通过第二串行接口通信;所述网卡芯片,用于持续生成硬件运行状态数据,通过所述第二串行接口将所述硬件运行状态数据发送至控制器,其中,所述硬件运行状态数据包括所述网卡的操作***内核运行数据、所述网卡的基本输入输出***的日志数据或所述网卡的固件运行状态数据中任意一种或者多种;所述控制模块包括存储区和所述控制器,所述存储区与所述第一串行接口建立通信,所述计算机设备通过所述第一串行接口访问所述存储区,所述控制器用于从所述存储区读取来自于所述计算机设备的读取请求,根据所述读取请求通过所述第二串行接口将所述硬件运行状态数据写入到所述存储区。
本申请实施例提供了一种网卡管理方法,计算机设备可以通过网卡的存储区读取网卡的硬件运行状态数据,不需要改变现有计算机设备的设计,即可实现对网卡的管理,提高了计算机设备的适应性,降低了设计成本。
应理解,网卡运行独立的操作***(operating system,OS)。网卡的硬件运行状态数据能够反映智能网卡中硬件的运行情况,硬件运行状态数据包括网卡的操作***内核运行数据、网卡的基本输入输出***(basic input output system,BIOS)的日志数据或网卡的固件(firmware)运行状态数据中任意一种或者多种。示例性地,硬件运行状态数据包括网卡的OS启动前,网卡BIOS的启动信息和/或BIOS排除故障(debug)的信息。
应理解,计算机设备将读取请求写入到网卡的存储区后,网卡中的控制器可以将硬件运行状态数据写入到网卡的存储区中,这样计算机设备就可以从网卡的存储区读取网卡的硬件运行状态数据。当网卡的操作***挂死或网络异常后,运维人员可以通过硬件运行状态数据,实现对网卡的故障定位和故障恢复。
示例性地,该存储区可以是网卡的寄存器,第二串行接口可以是通用异步收发传输器 (universal asynchronous receiver/transmitter,UART)接口
应理解,网卡的硬件运行状态数据是实时产生的,并且在上一时刻产生的硬件运行状态数据在下一刻不会进行保存。示例性地,网卡的操作***内核运行数据在网卡的操作***内核上,BIOS的日志数据在网卡的BIOS上,固件运行状态数据在网卡的固件上。网卡的硬件运行状态数据通过网卡的第二串行接口实时输出,并且随机输出网卡的操作***内核运行数据、所述网卡的基本输入输出***的日志数据或所述网卡的固件运行状态数据中任意一种或者多种。控制器可以通过网卡的第二串行接口获取网卡的硬件运行状态数据。
应理解,控制器可以根据读取请求从网卡的第二串行接口获取网卡的硬件运行状态数据。可选的,控制器也可以在计算机设备还未将读取请求写入存储区之前,提前对网卡的硬件运行状态数据进行保存,例如,控制器可以提前将网卡的硬件运行状态数据保存在缓存区中,当检测到计算机设备的读取请求时,从缓存区中读取硬件状态运行数据并将该网卡的硬件运行状态数据写入存储区供计算机设备读取。
结合第一方面,在第一方面的某些实现方式中,所述读取请求包括所述硬件运行状态数据的长度。
本申请实施例提供了一种网卡管理方法,计算机设备可以通过网卡的存储区读取网卡的硬件运行状态数据,不需要改变现有计算机设备的设计,即可实现对网卡的管理,提高了计算机设备的适应性,降低了设计成本。
结合第一方面,在第一方面的某些实现方式中,在所述控制器根据所述读取请求将所述硬件运行状态数据写入到所述存储区之前,所述方法还包括:所述控制器由空闲状态转换为繁忙状态。
应理解,控制器的状态信息可以保存在相关的状态寄存器中,控制器的状态信息包括空闲状态和繁忙状态。计算机设备可以通过读取状态寄存器里控制器的状态来判断控制器是否空闲。示例性地,可以用“0”来代表控制器为空闲状态,用“1”代表控制器为繁忙状态。若控制器状态为空闲,则代表控制器此时可以及时的响应计算机设备的读取请求,将硬件运行状态数据写入到存储区。若控制器状态为繁忙,则代表控制器此时可能不能够及时响应计算机设备的读取请求,计算机设备可以选择等待一段时间再向网卡的存储区写入读取请求。
本申请实施例提供了一种网卡管理方法,计算机设备在向网卡的存储区写入读取请求之前,可以首先对控制器的状态进行判断,从而保证网卡的控制器可以及时响应计算机设备的读取请求,保证硬件运行状态数据的读取效率。
结合第一方面,在第一方面的某些实现方式中,所述方法还包括:所述第一串行接口包括集成电路总线接口,所述方法还包括:当所述网卡的操作***故障时,所述控制器通过所述集成电路总线接口获取来自于所述计算机设备的操作指令,将所述操作指令存到所述存储区,所述操作指令为所述计算机设备根据所述硬件运行状态数据确定的指令;所述控制器从所述存储区读取所述操作指令,发送给所述网卡芯片;所述网卡芯片接收并执行所述操作指令。
应理解,计算机设备可以通过分析从网卡获得的硬件运行状态数据来生成对应的操作指令,用于实现对网卡的故障定位和恢复。在一些应用场景中,该操作指令也可以是预设的操作指令,无需根据硬件运行状态数据来生成。
示例性地,当网卡的操作***故障时,网卡的控制器可以通过集成电路总线接口获取来自于计算机设备的操作指令,将该操作指令存到存储区,然后将该操作指令从存储区发送给网卡芯片,如中央处理器(central processing unit,CPU)中,实现对网卡的故障定位和恢复。
本申请实施例提供了一种网卡管理方法,在网卡的操作***故障时,计算机设备可以通过网卡的存储区将操作指令发送给网卡的芯片,实现对网卡的故障定位和恢复。
结合第一方面,在第一方面的某些实现方式中,在所述控制器根据所述读取请求将所述硬件运行状态数据写入到所述存储区之前,所述方法还包括:所述控制器通过所述第二串行接口将所述硬件运行状态数据存放在所述网卡的缓存区;所述控制器根据所述读取请求将所述硬件运行状态数据写入到所述存储区,包括:所述控制器根据所述读取请求将所述硬件运行状态数据从所述缓存区写入到所述存储区。
示例性地,控制器可以在计算机设备还未将读取请求写入存储区之前,提前对网卡的硬件运行状态数据进行保存,例如,控制器可以提前将网卡的硬件运行状态数据保存在缓存区中,当检测到计算机设备的读取请求时,从缓存区中读取硬件状态运行数据并将该网卡的硬件运行状态数据写入存储区供计算机设备读取。
本申请实施例提供了一种网卡管理方法,控制器可以提前将网卡的硬件运行状态数据保存在缓存区中,保证了计算机设备对网卡的硬件运行状态数据的读取效率和完整性。
第二方面,提供了一种网卡管理方法,该方法包括:计算机设备的硬件单元通过所述计算机设备的总线接口将读取请求写入到网卡的存储区,所述读取请求用于读取所述网卡的硬件运行状态数据,所述存储区为所述计算机设备能够通过所述总线接口访问的存储区域,所述硬件运行状态数据包括所述网卡的操作***内核运行数据、所述网卡的基本输入输出***的日志数据或所述网卡的固件运行状态信息中任意一种或者多种;所述硬件单元通过所述总线接口从所述存储区读取所述硬件运行状态数据。
计算机设备的硬件单元可以是处理器或者基板管理控制器(baseboardmanagement controller,BMC)。处理器可以通过高速串行拓展总线(peripheralcomponent interface express,PCIe)接口从存储区读取网卡的硬件运行状态数据,BMC可以通过集成电路总线(inter-integrated circuit,IIC)接口从存储区读取网卡的硬件运行状态数据。
本申请实施例提供了一种网卡管理方法,计算机设备可以通过网卡的存储区读取网卡的硬件运行状态数据,不需要改变现有计算机设备的设计,即可实现对网卡的管理,提高了计算机设备的适应性,降低了设计成本。
示例性地,该存储区可以是网卡的寄存器。
应理解,网卡运行独立的OS。网卡的硬件运行状态数据能够反映智能网卡中硬件的运行情况,硬件运行状态数据包括网卡的操作***内核运行数据、网卡BIOS的日志数据或网卡的固件运行状态数据中任意一种或者多种。示例性地,硬件运行状态数据包括网卡的OS启动前,网卡BIOS的启动信息和/或BIOS排除故障(debug)的信息。
应理解,计算机设备将读取请求写入到网卡的存储区后,网卡中的控制器可以将硬件运行状态数据写入到网卡的存储区中,这样计算机设备就可以从网卡的存储区读取网卡的硬件运行状态数据。当网卡的操作***挂死或网络异常后,运维人员可以通过硬件运行状态数据,实现对网卡的故障定位和故障恢复。
应理解,计算机设备可以通过存储区中指定比特位的值来确定所需要的硬件运行状态数据是否已经写入到存储区。示例性地,该比特位为“1”,代表硬件运行状态数据已经写入到存储区,若该比特位为“0”,代表硬件运行状态数据还未完全写入存储区,计算机设备继续等待。
应理解,计算机设备的CPU和BMC都可以将读取请求写入到网卡的存储区中。区别在于,计算机设备的CPU通过PCIe将读取请求写入到网卡的存储区,BMC通过IIC将读取请求写入到网卡的存储区。
本申请实施例提供了一种网卡管理方法,计算机设备可以通过网卡的存储区读取网卡的硬件运行状态数据,不需要改变现有计算机设备的设计,即可实现对网卡的管理,提高了计算机设备的适应性,降低了设计成本。
结合第二方面,在第二方面的某些实现方式中,所述读取请求包括所述硬件运行状态数据的长度。
本申请实施例提供了一种网卡管理方法,计算机设备可以通过网卡的存储区读取网卡的硬件运行状态数据,不需要改变现有计算机设备的设计,即可实现对网卡的管理,提高了计算机设备的适应性,降低了设计成本。
结合第二方面,在第二方面的某些实现方式中,所述计算机设备的硬件单元通过所述计算机设备的总线接口将读取请求写入到网卡的存储区,包括:当所述网卡的操作***故障时,所述基板管理控制器通过集成电路总线接口将所述读取请求写入到所述网卡的所述存储区。
应理解,计算机设备的CPU通过PCIe将读取请求写入到网卡的存储区依赖于网卡的操作***,当网卡的操作***故障后,计算机设备可以通过BMC访问网卡的硬件运行状态数据,从而可以实现对网卡的故障定位和故障恢复。
应理解,BMC可以负责服务器的硬件状态管理、操作***管理、健康状态管理、功耗管理等核心功能。BMC可以在服务器未开机的状态下,对服务器进行固件升级、查看服务器设备等操作。BMC是独立于服务器***之外的小型操作***,是一个集成在主板上的芯片。在一些场景中,BMC通过高速串行拓展总线(peripheral component interface express,PCIe)等形式插在主板上。服务器集群可以使用BMC指令进行大规模无人值守操作,包括服务器的远程管理、监控、安装、重启等。
本申请实施例提供了一种网卡管理方法,在网卡的操作***故障时,计算机设备的 BMC通过IIC通道访问网卡的硬件运行状态数据,不需要改变现有计算机设备的设计,即可实现对网卡的管理,提高了计算机设备的适应性,降低了设计成本。
结合第二方面,在第二方面的某些实现方式中,在所述基板管理控制器通过集成电路总线将所述读取请求写入到所述网卡的所述存储区之前,所述方法还包括:所述基板管理控制器将所述基板管理控制器的串行接口设置为离线状态。
本申请实施例中,在BMC通过IIC将读取请求写入到网卡的存储区之前,BMC可以切换串行接口为离线状态,当网卡的操作***故障后,计算机设备可以通过BMC访问网卡的硬件运行状态数据,从而可以实现对网卡的故障定位和故障恢复。
结合第二方面,在第二方面的某些实现方式中,所述方法还包括:所述基板管理控制器通过所述集成电路总线将操作指令写入到所述网卡的所述存储区。
应理解,当网卡的操作***故障时,BMC可以通过IIC将操作指令写入到网卡的存储区,网卡的控制器可以将来自于计算机设备的操作指令从存储区发送给网卡芯片,实现对网卡的故障恢复。
本申请实施例提供了一种网卡管理方法,在网卡的操作***故障时,计算机设备可以通过网卡的存储区将操作指令发送给网卡的芯片,实现对网卡的故障恢复。
结合第二方面,在第二方面的某些实现方式中,在所述计算机设备的硬件单元通过所述计算机设备的总线接口将读取请求写入到网卡的存储区之前,所述方法还包括:所述硬件单元确定所述网卡中的控制器处于空闲状态,所述控制器用于将所述硬件运行状态数据写入到所述网卡的所述存储区中。
应理解,控制器的状态信息可以保存在相关的状态寄存器中,控制器的状态信息包括空闲状态和繁忙状态。计算机设备的CPU或者BMC可以通过读取状态寄存器里控制器的状态来判断控制器是否空闲。示例性地,可以用“0”来代表控制器为空闲状态,用“1”代表控制器为繁忙状态。若控制器状态为空闲,则代表控制器此时可以及时的响应计算机设备的读取请求,将硬件运行状态数据写入到存储区。若控制器状态为繁忙,则代表控制器此时可能不能够及时响应计算机设备的读取请求,计算机设备可以选择等待一段时间再向网卡的存储区写入读取请求。
本申请实施例提供了一种网卡管理方法,计算机设备在向网卡的存储区写入读取请求之前,可以首先对控制器的状态进行判断,从而保证网卡的控制器可以及时响应计算机设备的读取请求,保证硬件运行状态数据的读取效率。
第三方面,提供了一种网卡,包括:控制模块和网卡芯片,所述控制模块通过第一串行接口与所述网卡所在的计算机设备通信,所述控制模块和所述网卡芯片通过第二串行接口通信;所述网卡芯片,用于持续生成硬件运行状态数据,通过所述第二串行接口将所述硬件运行状态数据发送至控制器,其中,所述硬件运行状态数据包括所述网卡的操作***内核运行数据、所述网卡的基本输入输出***的日志数据或所述网卡的固件运行状态数据中任意一种或者多种;所述控制模块包括存储区和所述控制器,所述存储区与所述第一串行接口建立通信,所述计算机设备通过所述第一串行接口访问所述存储区,所述控制器用于从所述存储区读取来自于所述计算机设备的读取请求,根据所述读取请求通过所述第二串行接口将所述硬件运行状态数据写入到所述存储区。
结合第三方面,在第三方面的某些实现方式中,所述读取请求包括所述硬件运行状态数据的长度。
结合第三方面,在第三方面的某些实现方式中,所述控制器,还用于在从所述存储区读取来自于所述计算机设备的所述读取请求之前,由空闲状态转换为繁忙状态。
结合第三方面,在第三方面的某些实现方式中,所述第一串行接口包括集成电路总线接口;所述控制器,还用于当所述网卡的操作***故障时,通过所述集成电路总线接口获取来自于所述计算机设备的操作指令,将所述操作指令存到所述存储区,所述操作指令为所述计算机设备根据所述硬件运行状态数据确定的指令;所述控制器,还用于从所述存储区读取所述操作指令,发送给所述网卡芯片;所述网卡芯片,还用于接收并执行所述操作指令。
结合第三方面,在第三方面的某些实现方式中,所述网卡还包括缓存区,所述缓存区与所述控制器连接,用于存放所述控制器通过所述第二串行接口获取的所述硬件运行状态数据;所述控制器,还用于根据所述读取请求将所述硬件运行状态数据从所述缓存区写入到所述存储区。
第三方面和第三方面的任意一个可能的实现方式的有益效果和第一方面以及第一方面的任意一个可能的实现方式的有益效果是对应的,对此,不再赘述。
第四方面,提供了一种计算机设备,包括:总线接口,用于与所述计算机设备的网卡通信;硬件单元,与所述总线接口连接,用于通过所述总线接口将读取请求写入到所述网卡的存储区,所述读取请求用于读取所述网卡的硬件运行状态数据,所述存储区为计算机设备能够通过所述总线接口访问的存储区域,所述硬件运行状态数据包括所述网卡的操作***内核运行数据、所述网卡的基本输入输出***的日志数据或所述网卡的固件运行状态信息中任意一种或者多种;所述硬件单元,还用于通过所述总线接口从所述存储区读取所述硬件运行状态数据。
结合第四方面,在第四方面的某些实现方式中,所述硬件单元为处理器,所述总线接口为高速串行拓展总线接口,或者,所述硬件单元为基板管理控制器,所述总线接口为集成电路总线接口。
结合第四方面,在第四方面的某些实现方式中,所述基板管理控制器,还用于当所述网卡的操作***故障时,通过所述集成电路总线接口将所述读取请求写入到所述网卡的所述存储区。
结合第四方面,在第四方面的某些实现方式中,所述基板管理控制器,还用于通过所述集成电路总线接口将所述计算机设备的操作指令写入到所述网卡的所述存储区。
结合第四方面,在第四方面的某些实现方式中,所述硬件单元,还用于确定所述网卡中的控制器处于空闲状态,所述控制器用于将所述硬件运行状态数据写入到所述网卡的所述存储区中。
第四方面和第四方面的任意一个可能的实现方式的有益效果和第二方面以及第二方面的任意一个可能的实现方式的有益效果是对应的,对此,不再赘述。
第五方面,提供了一种网卡管理***,该***包括:第三方面或第三方面任意一种可能的实现方式中所述的网卡;第四方面或第四方面任意一种可能的实现方式中所述的计算机设备。
第六方面,提供了一种网卡管理***,该***包括网卡和所述网卡所在的计算机设备;所述网卡包括控制模块和网卡芯片,所述控制模块通过第一串行接口与所述计算机设备通信,所述控制模块和所述网卡芯片通过第二串行接口通信;所述网卡芯片,用于持续生成硬件运行状态数据,通过所述第二串行接口将所述硬件运行状态数据发送至控制器,其中,所述硬件运行状态数据包括所述网卡的操作***内核运行数据、所述网卡的基本输入输出***的日志数据或所述网卡的固件运行状态数据中任意一种或者多种;所述控制模块包括存储区和所述控制器,所述存储区与所述第一串行接口建立通信,所述计算机设备通过所述第一串行接口访问所述存储区,所述控制器用于从所述存储区读取来自于所述计算机设备的读取请求,根据所述读取请求通过所述第二串行接口将所述硬件运行状态数据写入到所述存储区;所述计算机设备包括总线接口和硬件单元,所述总线接口用于与所述网卡通信,所述硬件单元与所述总线接口连接,用于通过所述总线接口将读取请求写入到所述网卡的存储区。
第七方面,提供了一种网卡管理***方法,该***方法包括:计算机设备的硬件单元通过所述计算机设备的总线接口和网卡的第一串行接口将读取请求写入到所述网卡的存储区,所述网卡的控制模块通过所述第一串行接口与所述计算机设备通信,所述控制模块包括所述存储区和控制器,所述读取请求用于读取网卡芯片的硬件运行状态数据,所述存储区为所述计算机设备能够通过所述总线接口访问的存储区域,所述网卡芯片用于持续生成所述硬件运行状态数据,所述硬件运行状态数据包括所述网卡的操作***内核运行数据、所述网卡的基本输入输出***的日志数据或所述网卡的固件运行状态信息中任意一种或者多种;所述控制器从所述存储区读取所述读取请求;所述控制器通过所述网卡的第二串行接口获取所述硬件运行状态数据,所述第二串行接口用于输出所述网卡的硬件运行状态数据;所述控制器根据所述读取请求将所述硬件运行状态数据写入到所述存储区;所述硬件单元通过所述总线接口从所述存储区读取所述硬件运行状态数据。
第八方面,提供了一种包含指令的计算机程序产品,当所述指令被网卡运行时,使得所述网卡执行如上述第一方面以及第一方面的任意一种实现方式中的方法。
第九方面,提供了一种包含指令的计算机程序产品,当所述指令被计算设备运行时,使得所述计算设备执行如上述第二方面以及第二方面的任意一种实现方式中的方法。
第十方面,提供了一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由网卡执行时,所述网卡执行如上述第一方面以及第一方面的任意一种实现方式中的方法。
作为示例,这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的 PROM(erasable PROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM) 以及硬盘驱动器(hard drive)。
可选地,作为一种实现方式,上述存储介质具体可以是非易失性存储介质。
第九方面,提供了一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备执行时,所述计算设备执行如上述第二方面以及第二方面的任意一种实现方式中的方法。
作为示例,这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的 PROM(erasable PROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM) 以及硬盘驱动器(hard drive)。
可选地,作为一种实现方式,上述存储介质具体可以是非易失性存储介质。
附图说明
图1是本申请实施例提供的一种数据中心的场景示意图。
图2是本申请实施例提供的一种网卡管理方法的示例性流程图。
图3是本申请实施例提供的一种网卡管理方法的应用场景示意图。
图4是本申请实施例提供的另一种网卡管理方法的应用场景示意图。
图5是本申请实施例提供的一种网卡管理方法的结构性示意图。
图6是本申请实施例提供的一种服务器获取硬件运行状态信息的示例性流程图。
图7是本申请实施例提供的一种服务器发送操作指令的示例性流程图。
图8是本申请实施例提供的一种BMC获取硬件运行状态信息的示例性流程图。
图9是本申请实施例提供的一种BMC发送操作指令的示例性流程图。
图10是本申请实施例提供的另一种网卡管理方法的示例性流程图。
图11是本申请实施例提供的一种计算设备的架构示意图。
具体实施方式
PCIe板卡等可以运行独立操作***的智能网卡正在被数据中心广泛应用。智能网卡的硬件运行状态数据能够反映智能网卡中硬件的运行情况,网卡的硬件运行状态数据能够反映智能网卡中硬件的运行情况,硬件运行状态数据包括网卡的操作***内核运行数据、网卡的基本输入输出***(basic input output system,BIOS)的日志数据或网卡的固件 (firmware)运行状态数据中任意一种或者多种。示例性地,硬件运行状态数据包括网卡的OS启动前,网卡BIOS的启动信息和/或BIOS排除故障(debug)的信息。通过网卡的硬件运行状态数据,数据中心运维人员能够对网卡进行管理和维护。在某些应用场景中,网卡的硬件运行状态数据也被称为串口数据。
计算机设备和网卡的连接包括PCIe和集成电路总线(inter-integratedcircuit,IIC)。但是,智能网卡的硬件运行状态数据属于网卡的底层数据,计算机设备不能够通过PCIe 或IIC直接访问网卡的硬件运行状态数据。尤其是当网卡的操作***层故障后网卡会因为网络故障导致失连,数据中心运维人员无法通过网络获取任何故障信息,这在数据中心运维要求中是不可接受的。
为了解决智能网卡的远程管理和维护的问题,当前业界存在以下两种方案:
一种是在服务器内增加串口连接器,将智能网卡的***串口通过专用的串口线与服务器对接,通过服务器的基板管理控制器(baseboard management controller,BMC)实现服务器离线(servers off line,SOL),从而满足智能网卡的远程管理的需求。应理解,串口为串行接口(serial interface,SI)的简称,也称串行通信接口或串行通讯接口,是采用串行通信方式的扩展接口。在这种方案中,服务器内部需要预留物理的串口,这种方案只适合定制服务器的场景,通用服务器一般是不会为了这种场景做独立串口的预留,因此,这种方案不具备通用性,大多数场景下无法实际部署。
另一种方案是在智能网卡内部增加独立的BMC***,智能网卡内部实现***串口的 SOL。但是,如果在智能网卡内部增加独立的BMC***,智能网卡的实现难度和实现成本都会增加。并且,在这种方案中,智能网卡需要独立出网口,每台服务器会出2个管理口,***组网及管理方案与不配智能网卡的服务器不统一,对数据中心的组网和管理的归一化及实现复杂度都有较大影响,实际部署可行性低。
下面将结合附图,对本申请实施例中的技术方案进行描述。显然,所描述的实施例是本申请的一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本申请保护的范围。
本申请将围绕包括多个设备、组件、模块等的***来呈现各个方面、实施例或特征。应当理解和明白的是,各个***可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
另外,在本申请实施例中,“示例的”、“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请实施例描述的业务场景是为了更加清楚地说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:包括单独存在A,同时存在A和B,以及单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c 中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
图1是本申请实施例提供的一种数据中心的场景示意图。
数据中心100可以设置多个服务器(图中2个仅为示意)。每个服务器包括硬件层103和软件层102,硬件层103为服务器的常规配置,软件层102包括安装并运行在服务器上的操作***。其中,硬件层103包括内存104,处理器105,网卡106和磁盘107。内存104,处理器105,网卡106和磁盘107通过总线连接。多个服务器的网卡连接到数据中心内部网络101。
内存104是指与处理器直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为操作***或其他正在运行中的程序的临时数据存储器。内存包括至少两种存储器,例如内存既可以是随机存取存储器,也可以是只读存储器(read only memory,ROM)。举例来说,随机存取存储器是动态随机存取存储器(dynamic random access memory,DRAM),或者存储级存储器(storage class memory,SCM)。DRAM是一种半导体存储器,与大部分随机存取存储器(random access memory,RAM)一样,属于一种易失性存储器(volatile memory)设备。SCM是一种同时结合传统储存装置与存储器特性的复合型储存技术,存储级存储器能够提供比硬盘更快速的读写速度,但存取速度上比DRAM慢,在成本上也比DRAM更为便宜。然而,DRAM和SCM在本实施例中只是示例性的说明,内存还可以包括其他随机存取存储器,例如静态随机存取存储器(static random access memory,SRAM)等。而对于只读存储器,举例来说,可以是可编程只读存储器 (programmable read onlymemory,PROM)、可抹除可编程只读存储器(erasable programmable read only memory,EPROM)等。另外,内存104还可以是双列直插式存储器模块或双线存储器模块(dual in-line memory module,简称DIMM),即由动态随机存取存储器(DRAM)组成的模块,还可以是固态硬盘(solid state disk,SSD)。本实施例不对内存104的数量和类型进行限定。
处理器105是一个中央处理器(central processing unit,CPU),用于处理来自服务器外部的数据访问请求,也用于处理服务器内部生成的请求。
网卡106是一个智能网卡,它可以包含CPU和内存。在某些应用场景中,网卡106 也可能具有持久化内存介质,如持久性内存(persistent memory,PM),或者非易失性随机访问存储器(non-volatile random access memory,NVRAM),或者相变存储器(phase changememory,PCM)等。示例性地,网卡106可以是智能PCIe卡。
磁盘107用于提供存储资源,例如存储数据。它可以固态硬盘或者叠瓦式磁记录硬盘等。
图2是本申请实施例提供的一种网卡管理方法的示例性流程图。
210,计算机设备将读取请求写入网卡的存储区。
计算机设备的硬件单元通过所述计算机设备的总线接口将读取请求写入到网卡的存储区,该读取请求用于读取所述网卡的硬件运行状态数据,该存储区为计算机设备能够通过总线接口访问的存储区域,例如,存储区可以为寄存器。
网卡的硬件运行状态数据能够反映智能网卡中硬件的运行情况,硬件运行状态数据包括网卡的操作***内核运行数据、网卡的BIOS的日志数据或网卡的固件运行状态数据中任意一种或者多种。示例性地,硬件运行状态数据包括网卡的OS启动前,网卡BIOS的启动信息和/或BIOS排除故障(debug)的信息。
计算机设备的硬件单元可以是处理器或者基板管理控制器(baseboardmanagement controller,BMC)。处理器可以通过高速串行拓展总线(peripheralcomponent interface express,PCIe)接口将读取请求写入到网卡的存储区,BMC可以通过集成电路总线 (inter-integrated circuit,IIC)接口将读取请求写入到网卡的存储区。
网卡为智能网卡,它可以包含中央处理器(central processing unit,CPU)和内存。在某些应用场景中,网卡也可能具有持久化内存介质,如持久性内存(persistentmemory, PM),或者非易失性随机访问存储器(non-volatile random access memory,NVRAM),或者相变存储器(phase change memory,PCM)等。示例性地,网卡可以是智能PCIe卡。
计算机设备可以是服务器,台式计算机,平板电脑,笔记本电脑等。网卡可以插在计算机设备上。
220,网卡的控制器将硬件运行状态数据写入存储区。
网卡的控制器从网卡的存储区读取来自于计算机设备的读取请求,该存储区为计算机设备能够通过网卡的第一串行接口访问的存储区域,第一串行接口用于与所述计算机设备通信。
控制器通过网卡的第二串行接口获取该硬件运行状态数据,第二串行接口用于输出所述网卡的硬件运行状态数据。控制器根据该读取请求将该硬件运行状态数据写入到存储区。
应理解,网卡的硬件运行状态数据是实时产生的,并且在上一时刻产生的硬件运行状态数据在下一刻不会进行保存。示例性地,网卡的操作***内核运行数据在网卡的操作***内核上,BIOS的日志数据在网卡的BIOS上,固件运行状态数据在网卡的固件上。网卡的硬件运行状态数据通过网卡的第二串行接口实时输出,并且随机输出网卡的操作***内核运行数据、所述网卡的基本输入输出***的日志数据或所述网卡的固件运行状态数据中任意一种或者多种。控制器可以通过网卡的第二串行接口获取网卡的硬件运行状态数据。
应理解,控制器可以根据读取请求从网卡的第二串行接口获取网卡的硬件运行状态数据。可选的,控制器也可以在计算机设备还未将读取请求写入存储区之前,提前对网卡的硬件运行状态数据进行保存,例如,控制器可以提前将网卡的硬件运行状态数据保存在缓存区中,当检测到计算机设备的读取请求时,从缓存区中读取硬件状态运行数据并将该网卡的硬件运行状态数据写入存储区供计算机设备读取。
230,计算机设备从存储区读取硬件运行状态数据。
计算机设备的硬件单元可以是处理器或者基板管理控制器(baseboardmanagement controller,BMC)。处理器可以通过高速串行拓展总线(peripheralcomponent interface express,PCIe)接口从存储区读取网卡的硬件运行状态数据,BMC可以通过集成电路总线(inter-integrated circuit,IIC)接口从存储区读取网卡的硬件运行状态数据。
应理解,计算机设备可以通过存储区中指定比特位的值来确定所需要的硬件运行状态数据是否已经写入到存储区。示例性地,该比特位为“1”,代表硬件运行状态数据已经写入到存储区,若该比特位为“0”,代表硬件运行状态数据还未完全写入存储区,计算机设备继续等待。
本申请实施例提供了一种网卡管理方法,计算机设备可以通过网卡的存储区读取网卡的硬件运行状态数据,不需要改变现有计算机设备的设计,即可实现对网卡的管理,提高了计算机设备的适应性,降低了设计成本。
图3是本申请实施例提供的一种网卡管理方法的应用场景示意图。
本申请实施例可以通过服务器的基板管理控制器(baseboard managementcontroller, BMC)的集成电路总线(inter-integrated circuit,IIC)通道到访问网卡的***串口,从而实现通过服务器的BMC来管理网卡。
网卡106通过控制模块320存储网卡的硬件运行状态信息,对服务器1的BMC提供IIC接口,服务器的BMC可以通过IIC通道获取网卡106的硬件运行状态信息。网卡106 和服务器1之间通过标准PCIe接口定义中的IIC通道,不增加额外的定制化设计,服务器对外管理接口也没有变化。
应理解,网卡106可以插在服务器1上,图示网卡106位于服务器1内部仅为示例,不应理解为对本申请的限制。
基板管理控制器310是服务器的基本核心功能子***,负责服务器的硬件状态管理、操作***管理、健康状态管理、功耗管理等核心功能。基板管理控制器310可以在服务器未开机的状态下,对服务器进行固件升级、查看服务器设备等操作。基板管理控制器310 是独立于服务器***之外的小型操作***,是一个集成在主板上的芯片。在一些场景中,基板管理控制器310通过PCIe等形式插在主板上。服务器集群可以使用BMC指令进行大规模无人值守操作,包括服务器的远程管理、监控、安装、重启等。
图4是本申请实施例提供的另一种网卡管理方法的应用场景示意图。
本申请实施例中,服务器的处理器105可以通过PCIe访问网卡的硬件运行状态信息。网卡106通过控制模块320存储网卡的硬件运行状态信息,对服务器1的CPU提供PCIe 接口,服务器的处理器105可以通过PCIe获取网卡106的硬件运行状态信息。应理解,网卡106可以插在服务器1上,图示网卡106位于服务器1内部仅为示例,不应理解为对本申请的限制。
图5是本申请实施例提供的一种网卡管理方法的结构性示意图。
网卡106包括第一串行接口410、控制模块320和网卡芯片460。其中,控制模块320包括存储区420、控制器430和缓存区440,网卡芯片460包括第二串行接口480和第二串行接口480输出的硬件运行状态数据470。计算机设备401包括硬件单元403和总线接口405。可选的,第一串行接口410也可以包括在控制模块320内。
其中,硬件单元403可以是基板管理控制器310或者处理器105,当硬件单元403为基板管理控制器310时,总线接口405为IIC接口,第一串行接口为与总线接口405对应的IIC接口。当硬件单元403为处理器105时,总线接口405为PCIe接口,第一串行接口为与总线接口405对应的PCIe接口。
基板管理控制器310可以通过控制模块320中的存储区420访问网卡106的硬件运行状态信息470,同时本申请实施例支持基板管理控制器310通过IIC协议传递操作指令到网卡芯片460内部。
处理器105可以通过控制模块320中的存储区420访问网卡106的硬件运行状态信息 470,同时支持处理器105通过PCIe协议传递操作指令到网卡芯片460内部。
控制模块320通过第一串行接口410与计算机设备401通信,控制模块320和网卡芯片460通过第二串行接口480通信。
硬件运行状态数据470包括网卡106的操作***内核运行数据、网卡106的基本输入输出***的日志数据或网卡106的固件运行状态数据中任意一种或者多种。硬件运行状态数据470是实时产生的,并且在上一时刻产生的硬件运行状态数据470在下一刻不会进行保存。示例性地,网卡的操作***内核运行数据在网卡的操作***内核上,BIOS的日志数据在网卡的BIOS上,固件运行状态数据在网卡的固件上。网卡的硬件运行状态数据470 通过网卡的第二串行接口480实时输出,并且随机输出网卡的操作***内核运行数据、所述网卡的基本输入输出***的日志数据或所述网卡的固件运行状态数据中任意一种或者多种。控制器430可以通过网卡106的第二串行接口480获取网卡的硬件运行状态数据 470。网卡的第二串行接口480位于网卡芯片460上。
第一串行接口410负责与计算机设备401通信,硬件单元403可以通过第一串行接口 410从存储区420中读取硬件运行状态信息470,或者硬件单元403可以通过第一串行接口410向存储区420中写入读取请求。
存储区420负责存储硬件单元403写入的读取请求和/或操作指令,还可以存储控制器430从第二串行接口480获取的硬件运行状态信息470,还可以存储控制器430从缓存区440取出的硬件运行状态信息470。
控制器430可以读取存储区420中存储的读取请求,将硬件运行状态信息470写入到存储区420中,还可以将存储区420中的操作指令发送给网卡芯片460。
缓存区440负责存储硬件运行状态信息470,还可以存储控制器430从存储区420取出的操作指令。
应理解,控制模块320中的缓存区440为可选模块,控制器430可以直接将硬件运行状态信息470写入到存储区420,将操作指令从存储区420写入到网卡芯片460,而不通过缓存区440。控制器430也可以先将硬件运行状态信息470写入到缓存区440,当读取到计算机设备401的读取请求后将硬件运行状态信息470从缓存区440写入到存储区420。控制器430也可以先将操作指令从存储区420写入到缓存区440,再将操作指令从缓存区 440写入到网卡芯片460。
图6是本申请实施例提供的一种服务器获取硬件运行状态信息的示例性流程图。
610,CPU或BMC将读取请求写入存储区420。
处理器105可以通过PCIe将读取请求写入到网卡的存储区420,基板管理控制器310 可以通过IIC将读取请求写入到网卡的存储区420。示例性地,读取请求可以包括硬件运行状态数据的长度。
620,控制器430将硬件运行状态数据470写入存储区420。
控制器430从存储区420读取处理器105或基板管理控制器310的读取请求,然后根据该读取请求将网卡的硬件运行状态数据470写入存储区420。
应理解,硬件运行状态数据470是实时产生的,并且在上一时刻产生的硬件运行状态数据470在下一刻不会进行保存。示例性地,网卡的操作***内核运行数据在网卡的操作***内核上,BIOS的日志数据在网卡的BIOS上,固件运行状态数据在网卡的固件上。网卡的硬件运行状态数据470通过网卡的第二串行接口480实时输出,并且随机输出网卡的操作***内核运行数据、所述网卡的基本输入输出***的日志数据或所述网卡的固件运行状态数据中任意一种或者多种。控制器430可以通过网卡的第二串行接口获取网卡的硬件运行状态数据。网卡的第二串行接口位于网卡芯片460上。
可选的,控制器430也可以在处理器105或基板管理控制器310还未将读取请求写入存储区420之前,提前将硬件运行状态数据470保存在缓存区440中,当检测到读取请求时,从缓存区440中读取硬件状态运行数据470并将该硬件运行状态数据470写入存储区420供处理器105或基板管理控制器310读取。
630,CPU或BMC从存储区420读取硬件运行状态数据470。
处理器105可以通过PCIe接口从存储区420读取硬件运行状态数据470,基板管理控制器310可以通过IIC接口从存储区420读取硬件运行状态数据470。
应理解,处理器105或基板管理控制器310可以通过存储区420中指定比特位的值来确定所需要的硬件运行状态数据470是否已经写入到存储区420。示例性地,该比特位为“1”,代表硬件运行状态数据470已经写入存储区420,若该比特位为“0”,代表硬件运行状态数据470还未完全写入存储区420,处理器105或基板管理控制器310继续等待。
图7是本申请实施例提供的一种服务器发送操作指令的示例性流程图。
710,CPU或BMC向存储区420写入操作指令。
处理器105可以通过PCIe接口将操作指令写入到网卡的存储区420,基板管理控制器310可以通过IIC接口将操作指令写入到网卡的存储区420。
720,控制器430将操作指令发送给网卡芯片。
控制器430将存储区420中的操作指令发送给网卡芯片460。
可选的,控制器430也可以将存储区420中的操作指令写入到缓存区440,然后再将缓存区440中的操作指令发送给网卡芯片460。
图8是本申请实施例提供的一种BMC获取硬件运行状态信息的示例性流程图。应理解,计算机设备的CPU通过PCIe将读取请求写入到网卡的存储区依赖于网卡的操作***,当网卡的操作***故障后,服务器可以通过BMC访问网卡的硬件运行状态数据,从而可以实现对网卡的故障定位和故障恢复。当网卡的操作***故障时,服务器的BMC可以执行如图8所示的方法获取硬件运行状态信息。
810,将硬件运行状态数据470存入缓存区440。
可选的,服务器BMC可以切换串行接口到SOL选项,此时控制器430开始将硬件运行状态数据470存入到缓存区440中。
应理解,服务器BMC切换串口到SOL选项不是必须要进行的操作,该操作不应理解为对本申请的限制。
820,BMC判断控制器430的状态。
可选的,在服务器BMC将读取请求写入存储区420之前,BMC可以判断控制器430 的状态是否空闲和/或缓存区440中缓存数据的长度。
示例性地,BMC可以判断控制器430是否为空闲状态。应理解,控制器430的状态信息可以保存在相关的状态寄存器中,BMC通过读取状态寄存器里控制器430的状态来判断控制器430是否空闲。示例性地,可以用“0”来代表控制器430为空闲状态,用“1”代表控制器430为繁忙状态。若控制器430状态为空闲,则代表控制器430此时可以及时的响应BMC的读取请求。若控制器430状态为繁忙,则代表控制器430此时可能不能够及时响应BMC的读取请求,BMC可以选择等待一段时间再将读取请求写入存储区420。
可选的,BMC还可以判断缓存区440中缓存数据的长度,当缓存数据的长度到达预设阈值时,BMC将读取请求写入存储区420,提高数据的读取效率。
830,BMC将读取请求写入存储区420。
BMC将读取请求写入存储区420,示例性地,该读取请求可以包括硬件运行状态数据 470的长度。
840,控制器将硬件运行状态数据470写入存储区420。
控制器430读取存储区420中BMC的读取请求后,可以将控制器430设置为繁忙状态,并根据BMC的读取请求将缓存区440中的硬件运行状态数据470写入到存储区420 中。
850,BMC从存储区420读取硬件运行状态数据。
应理解,存储区420中可以通过指定比特位的值来代表控制器430是否已经将BMC所需要的数据写入存储区420。示例性地,该比特位为“1”,代表BMC所需要的数据已经写入到了存储区420,BMC可以开始从存储区420中读取数据。该比特位为“0”,代表BMC 所需要的数据还未完全写入存储区420,BMC继续等待。
若BMC所需要的数据已经写入到了存储区420,BMC可以通过第一串行接口410读取存储区420中的硬件运行状态数据470。
图9是本申请实施例提供的一种BMC发送操作指令的示例性流程图。当网卡的操作***故障时,服务器的BMC可以执行如图9所示的方法将操作指令写入网卡的芯片中。
910,BMC向存储区420写入操作命令。
示例性地,服务器BMC可以切换串口到SOL选项,服务器BMC通过IIC接口向存储区420写入操作命令。
应理解,服务器BMC切换串口到SOL选项不是必须要进行的操作,该操作不应理解为对本申请的限制。
可选的,在服务器BMC通过IIC接口向存储区420写入操作命令之前,服务器BMC 可以首先判断控制器430是否为空闲状态。应理解,控制器430的状态信息可以保存在相关的状态寄存器中,BMC通过读取状态寄存器里控制器430的状态来判断控制器430是否空闲。示例性地,可以用“0”来代表控制器430为空闲状态,用“1”代表控制器430为繁忙状态。若控制器430状态为空闲,则代表控制器430此时可以及时的响应BMC的写入请求。若控制器430状态为繁忙,则代表控制器430此时可能不能够及时响应BMC的写入请求,BMC可以选择等待一段时间再向存储区420写入操作指令。
920,控制器430将操作指令发送给网卡芯片460。
应理解,存储区420中可以通过指定比特位的值来代表BMC是否已经将操作指令写入到了存储区420,即是否完成了910步骤。示例性地,该比特位为“1”,代表BMC向存储区420写入操作指令完毕,控制器430可以将存储区420中的操作指令发送给网卡芯片 460。该比特位为“0”,代表BMC还未完全将操作指令写入到存储区420,控制器430继续等待。
可选的,控制器430也可以将操作指令先写入到缓存区440。示例性地,缓存区440缓存的操作指令可以在一个先进先出(first in first out,FIFO)的数据队列中,控制器430 从该数据队列中取操作指令,然后通过串行接口协议将操作指令发送给网卡芯片460。
图10是本申请实施例提供的另一种网卡管理方法的示例性流程图。
1010,在网卡上增加控制模块。
在网卡106上增加控制模块320,控制模块320可以将网卡106的硬件运行状态数据470传递到服务器的PCIe接口或IIC接口,同时支持服务器的CPU通过PCIe协议,或 BMC通过IIC协议传递操作指令到网卡106的网卡芯片460。
1020,将网卡部署到服务器。
将增加了控制模块320的网卡106部署到服务器上,服务器可以通过控制模块320获取网卡的硬件运行状态数据470。
1030,网卡管理。
当网卡106操作***故障后,运维人员可以通过服务器的BMC访问网卡106的硬件运行状态信息470,通过IIC协议传递操作指令到网卡106的网卡芯片460,从而可以实现对网卡106的故障定位和故障恢复。
本申请实施例提供了一种网卡管理方法,计算机设备可以通过网卡的存储区读取网卡的硬件运行状态数据,不需要改变现有计算机设备的设计,即可实现对网卡的管理,提高了计算机设备的适应性,降低了设计成本。在一些可能的实现方式中,本申请提供的方法可以通过复杂可编程逻辑器件(complex programmable logic device,CPLD)或者微控制器 (microcontroller unit,MCU)来实现。
上文结合图1至图10,详细描述了本申请实施例提供的网卡管理方法,下面将结合图11,详细描述本申请设备和***的实施例。应理解,方法实施例的描述与设备实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图11是本申请实施例提供的一种计算设备的架构示意图。该计算设备1300可以是服务器或者其他具有计算能力的设备。图11所示的计算设备1300包括:处理器1320、存储器1330、总线接口1340、网卡106、基板管理控制器1360和总线1310。处理器1320、存储器1330、总线接口1340、网卡106、基板管理控制器1360可以通过总线1310或各种类型的接口通信。应理解,本申请不限定计算设备1300中的处理器、存储器的个数。
总线1310可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线1310可包括在计算设备1300各个部件(例如,存储器1330、处理器1320、总线接口1340)之间传送信息的通路。
处理器1320包括中央处理器(central processing unit,CPU),还可以包括图形处理器 (graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器1330可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器1330还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD) 或固态硬盘(solid state drive,SSD)。
存储器1330中存储有可执行的程序代码,处理器1320执行该可执行的程序代码以实现上述实施例描述的网卡管理方法。也即,存储器1330上存有用于执行述实施例描述的网卡管理方法的指令。
总线接口1340使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备1300与其他设备或通信网络之间的通信,示例性地,总线接口1340可以是PCIe接口或者IIC接口。
基板管理控制器1360可以负责服务器的硬件状态管理、操作***管理、健康状态管理、功耗管理等核心功能。基板管理控制器1360可以在服务器未开机的状态下,对服务器进行固件升级、查看服务器设备等操作。基板管理控制器1360是独立于服务器***之外的小型操作***,是一个集成在主板上的芯片。在一些场景中,基板管理控制器1360 通过PCIe等形式插在主板上。服务器集群可以使用BMC指令进行大规模无人值守操作,包括服务器的远程管理、监控、安装、重启等。
网卡106为图5所示的网卡。
以上列举的计算设备1300的结构仅为示例性说明,本申请并未限定于此,本申请实施例的计算设备1300包括现有技术中计算机***中的各种硬件,例如,计算设备1300还包括除存储器1330以外的其他存储器,例如,磁盘存储器等。本领域的技术人员应当理解,计算设备1300还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,上述计算设备1300还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,上述计算设备1300也可仅仅包括实现本申请实施例所必须的器件,而不必包括图11中所示的全部器件。
应理解,图11也可以视为一种网卡管理***的示意性框图。该网卡管理***可以包括计算机设备1300和网卡106。计算机设备1300可以包括处理器1320、基板管理控制器1360、存储器1330、总线接口1340和总线1310。计算机设备和网卡106可以实现上述实施例描述的网卡管理方法。
本申请实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在网卡上运行时,使得网卡执行上述实施例中网卡执行的方法。
本申请实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在计算设备上运行时,使得计算设备执行上述实施例中计算机设备执行的方法。
本实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,当计算机可读存储介质中的指令在计算设备或网卡上被执行时,使得计算设备或网卡执行上述实施例所提供的网卡管理方法。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种网卡,其特征在于,包括控制模块和网卡芯片,所述控制模块通过第一串行接口与所述网卡所在的计算机设备通信,所述控制模块和所述网卡芯片通过第二串行接口通信;
所述网卡芯片,用于持续生成硬件运行状态数据,通过所述第二串行接口将所述硬件运行状态数据发送至控制器,其中,所述硬件运行状态数据包括所述网卡的操作***内核运行数据、所述网卡的基本输入输出***的日志数据或所述网卡的固件运行状态数据中任意一种或者多种;
所述控制模块包括存储区和所述控制器,所述存储区与所述第一串行接口建立通信,所述计算机设备通过所述第一串行接口访问所述存储区,所述控制器用于从所述存储区读取来自于所述计算机设备的读取请求,根据所述读取请求通过所述第二串行接口将所述硬件运行状态数据写入到所述存储区。
2.根据权利要求1所述的网卡,其特征在于,所述读取请求包括所述硬件运行状态数据的长度。
3.根据权利要求1或2所述的网卡,其特征在于,所述控制器,还用于在从所述存储区读取来自于所述计算机设备的读取请求之前,由空闲状态转换为繁忙状态。
4.根据权利要求1至3任一项所述的网卡,其特征在于,所述第一串行接口包括集成电路总线接口;
所述控制器,还用于当所述网卡的操作***故障时,通过所述集成电路总线接口获取来自于所述计算机设备的操作指令,将所述操作指令存到所述存储区,所述操作指令为所述计算机设备根据所述硬件运行状态数据确定的指令;
所述控制器,还用于从所述存储区读取所述操作指令,发送给所述网卡芯片;
所述网卡芯片,还用于接收并执行所述操作指令。
5.根据权利要求1至4任一项所述的网卡,其特征在于,还包括缓存区,所述缓存区与所述控制器连接,用于存放所述控制器通过所述第二串行接口获取的所述硬件运行状态数据;
所述控制器,还用于根据所述读取请求将所述硬件运行状态数据从所述缓存区写入到所述存储区。
6.一种计算机设备,其特征在于,包括:
总线接口,用于与所述计算机设备的网卡通信;
硬件单元,与所述总线接口连接,用于通过所述总线接口将读取请求写入到所述网卡的存储区,所述读取请求用于读取所述网卡的硬件运行状态数据,所述存储区为计算机设备能够通过所述总线接口访问的存储区域,所述硬件运行状态数据包括所述网卡的操作***内核运行数据、所述网卡的基本输入输出***的日志数据或所述网卡的固件运行状态信息中任意一种或者多种;
所述硬件单元,还用于通过所述总线接口从所述存储区读取所述硬件运行状态数据。
7.根据权利要求6所述的计算机设备,其特征在于,所述硬件单元为处理器,所述总线接口为高速串行拓展总线接口,或者,
所述硬件单元为基板管理控制器,所述总线接口为集成电路总线接口。
8.根据权利要求7所述的计算机设备,其特征在于,所述基板管理控制器,还用于当所述网卡的操作***故障时,通过所述集成电路总线接口将所述读取请求写入到所述网卡的所述存储区。
9.根据权利要求8所述的计算机设备,其特征在于,所述基板管理控制器,还用于通过所述集成电路总线接口将所述计算机设备的操作指令写入到所述网卡的所述存储区,所述操作指令为所述计算机设备根据所述硬件运行状态数据确定的指令。
10.根据权利要求6至9任一项所述的计算机设备,其特征在于,所述硬件单元,还用于确定所述网卡中的控制器处于空闲状态,所述控制器用于将所述硬件运行状态数据写入到所述网卡的所述存储区中。
11.一种网卡管理方法,其特征在于,包括:
网卡的控制器从所述网卡的存储区读取来自于计算机设备的读取请求,所述读取请求用于读取网卡芯片的硬件运行状态数据,所述存储区为所述计算机设备能够通过所述网卡的第一串行接口访问的存储区域,所述第一串行接口用于与所述计算机设备通信,所述网卡芯片用于持续生成所述硬件运行状态数据,所述硬件运行状态数据包括所述网卡的操作***内核运行数据、所述网卡的基本输入输出***的日志数据或所述网卡的固件运行状态数据中任意一种或者多种;
所述控制器通过所述网卡的第二串行接口获取所述硬件运行状态数据,所述第二串行接口用于输出所述网卡的硬件运行状态数据;
所述控制器根据所述读取请求将所述硬件运行状态数据写入到所述存储区。
12.根据权利要求11所述的方法,其特征在于,所述第一串行接口包括集成电路总线接口,所述方法还包括:
当所述网卡的操作***故障时,所述控制器通过所述集成电路总线接口获取来自于所述计算机设备的操作指令,将所述操作指令存到所述存储区,所述操作指令为所述计算机设备根据所述硬件运行状态数据确定的指令;
所述控制器从所述存储区读取所述操作指令,发送给所述网卡芯片;
所述网卡芯片接收并执行所述操作指令。
13.根据权利要求11或12所述的方法,其特征在于,在所述控制器根据所述读取请求将所述硬件运行状态数据写入到所述存储区之前,所述方法还包括:
所述控制器通过所述第二串行接口将所述硬件运行状态数据存放在所述网卡的缓存区;
所述控制器根据所述读取请求将所述硬件运行状态数据写入到所述存储区,包括:
所述控制器根据所述读取请求将所述硬件运行状态数据从所述缓存区写入到所述存储区。
14.一种网卡管理方法,其特征在于,包括:
计算机设备的硬件单元通过所述计算机设备的总线接口将读取请求写入到网卡的存储区,所述读取请求用于读取所述网卡的硬件运行状态数据,所述存储区为所述计算机设备能够通过所述总线接口访问的存储区域,所述硬件运行状态数据包括所述网卡的操作***内核运行数据、所述网卡的基本输入输出***的日志数据或所述网卡的固件运行状态信息中任意一种或者多种;
所述硬件单元通过所述总线接口从所述存储区读取所述硬件运行状态数据。
15.一种网卡管理***,其特征在于,所述***包括网卡和所述网卡所在的计算机设备;
所述网卡包括控制模块和网卡芯片,所述控制模块通过第一串行接口与所述计算机设备通信,所述控制模块和所述网卡芯片通过第二串行接口通信;
所述网卡芯片,用于持续生成硬件运行状态数据,通过所述第二串行接口将所述硬件运行状态数据发送至控制器,其中,所述硬件运行状态数据包括所述网卡的操作***内核运行数据、所述网卡的基本输入输出***的日志数据或所述网卡的固件运行状态数据中任意一种或者多种;
所述控制模块包括存储区和所述控制器,所述存储区与所述第一串行接口建立通信,所述计算机设备通过所述第一串行接口访问所述存储区,所述控制器用于从所述存储区读取来自于所述计算机设备的读取请求,根据所述读取请求通过所述第二串行接口将所述硬件运行状态数据写入到所述存储区;
所述计算机设备包括总线接口和硬件单元,所述总线接口用于与所述网卡通信,所述硬件单元与所述总线接口连接,用于通过所述总线接口将读取请求写入到所述网卡的存储区。
16.一种网卡管理***方法,其特征在于,包括:
计算机设备的硬件单元通过所述计算机设备的总线接口和网卡的第一串行接口将读取请求写入到所述网卡的存储区,所述网卡的控制模块通过所述第一串行接口与所述计算机设备通信,所述控制模块包括所述存储区和控制器,所述读取请求用于读取网卡芯片的硬件运行状态数据,所述存储区为所述计算机设备能够通过所述总线接口访问的存储区域,所述网卡芯片用于持续生成所述硬件运行状态数据,所述硬件运行状态数据包括所述网卡的操作***内核运行数据、所述网卡的基本输入输出***的日志数据或所述网卡的固件运行状态信息中任意一种或者多种;
所述控制器从所述存储区读取所述读取请求;
所述控制器通过所述网卡的第二串行接口获取所述硬件运行状态数据,所述第二串行接口用于输出所述网卡的硬件运行状态数据;
所述控制器根据所述读取请求将所述硬件运行状态数据写入到所述存储区;
所述硬件单元通过所述总线接口从所述存储区读取所述硬件运行状态数据。
17.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由网卡执行时,所述网卡执行如权利要求11至13中任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备执行时,所述计算设备执行如权利要求14所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211285623.9A CN117951057A (zh) | 2022-10-20 | 2022-10-20 | 网卡管理方法、***及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211285623.9A CN117951057A (zh) | 2022-10-20 | 2022-10-20 | 网卡管理方法、***及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117951057A true CN117951057A (zh) | 2024-04-30 |
Family
ID=90795122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211285623.9A Pending CN117951057A (zh) | 2022-10-20 | 2022-10-20 | 网卡管理方法、***及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117951057A (zh) |
-
2022
- 2022-10-20 CN CN202211285623.9A patent/CN117951057A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8131892B2 (en) | Storage apparatus and a data management method employing the storage apparatus | |
US8898517B2 (en) | Handling a failed processor of a multiprocessor information handling system | |
US7426588B2 (en) | Storage apparatus | |
US10846159B2 (en) | System and method for managing, resetting and diagnosing failures of a device management bus | |
CN103955441A (zh) | 一种设备管理***、方法及一种io扩展接口 | |
CN115686872B (zh) | 基于bmc的内存资源处理设备、方法、装置及介质 | |
US20140149732A1 (en) | System and method for initializing processor cores in a multiprocessor system | |
CN114116378A (zh) | 获取PCIe设备温度的方法、***、终端及存储介质 | |
CN117873931B (zh) | 一种数据处理***、方法及介质 | |
US11687253B2 (en) | Configuration of a computational drive | |
US20130151885A1 (en) | Computer management apparatus, computer management system and computer system | |
CN111198832B (zh) | 一种处理方法和电子设备 | |
CN117349212A (zh) | 一种服务器主板及其固态硬盘***检测方法 | |
WO2023016379A1 (zh) | 计算机***、基于PCIe设备的控制方法及相关设备 | |
CN117951057A (zh) | 网卡管理方法、***及设备 | |
US20220342835A1 (en) | Method and apparatus for disaggregation of computing resources | |
US8688889B2 (en) | Virtual USB key for blade server | |
CN115543246A (zh) | 一种bmc和服务器 | |
CN111857576B (zh) | 一种以太网管理的存储*** | |
US9836359B2 (en) | Storage and control method of the same | |
CN111258763B (zh) | 一种服务器***及服务器***的控制方法和装置 | |
EP2307969B1 (en) | Connecting a storage subsystem and an electronic device with a control device that hides details of the storage subsystem | |
CN115202803A (zh) | 一种故障处理方法及装置 | |
WO2013027297A1 (ja) | 半導体装置、管理装置、及びデータ処理装置 | |
WO2023093210A1 (zh) | 为存储器提供备电的方法和相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |