CN114600088A - 使用基板管理控制器的服务器状态监测***和方法 - Google Patents

使用基板管理控制器的服务器状态监测***和方法 Download PDF

Info

Publication number
CN114600088A
CN114600088A CN202080075272.1A CN202080075272A CN114600088A CN 114600088 A CN114600088 A CN 114600088A CN 202080075272 A CN202080075272 A CN 202080075272A CN 114600088 A CN114600088 A CN 114600088A
Authority
CN
China
Prior art keywords
server
status code
status
code
error
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
Application number
CN202080075272.1A
Other languages
English (en)
Inventor
B·D·凯利
N·拉德卡尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN114600088A publication Critical patent/CN114600088A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0784Routing of error reports, e.g. with a specific transmission path or data flow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Debugging And Monitoring (AREA)

Abstract

在使用基板管理控制器(BMC)来监测服务器的状态的***和方法中,BMC可以通过到服务器的命令行接口访问在服务器的域0中生成的状态码,并且向警报管理***发送状态码。BMC可以通过输入/输出端口80h监听在服务器的管理程序中生成的状态码,并且向警报管理***发送该状态码。BMC可以读取在管理程序中生成且写入专用于模型的寄存器(MSR)中的状态码,并且向警报管理***发送该状态码。警报管理***可以容易地实时或几乎实时地识别错误的发生(包括错误的类型是软件错误)和错误原因。

Description

使用基板管理控制器的服务器状态监测***和方法
背景技术
基于云的服务向用户提供服务器的集群中的大型共享资源池。中央管理控制器(通常被称为基板管理控制器(BMC))可以在给定时间在管理服务器上发挥重要作用。BMC还提供了用以监测硬件和检测服务器中的硬件故障的功能性。当BMC被连接到服务器时,出于安全和保密的原因,BMC和服务器并未建立信任关系。因此,BMC既无法直接访问服务器中的主机存储器,也无法发起与服务器的通信。由于BMC只能检测硬件故障,无法检测软件故障,因此BMC无法检测在服务器上运行的软件的故障,诸如管理程序或域0。由于这样的访问限制和BMC的设计限制,当服务器上的软件崩溃或挂起时,连接到BMC的结构***手动发起与服务器的连接,并且在一段时间之后尝试确定软件故障的原因。这种追溯性诊断会导致时间延迟,并且可能难以找到***故障的根本原因。
发明内容
第一示例实施例涉及一种用于使用服务器上的命令行接口和基板管理控制器(BMC)来监测服务器的状态的***。该***包括BMC。BMC被配置为连接到服务器并在服务器上打开命令行接口的会话。BMC通过命令行接口的会话向服务器发送状态码请求。响应于状态码请求,BMC确定BMC是否已通过命令行接口的会话从服务器接收到状态码。当BMC未在预定时间内接收到状态码时,BMC将先前的状态码重写为错误状态码。然后,当状态码指示服务器上的错误时,BMC向警报管理***发送状态码。
第二示例实施例涉及一种通过监听服务器中的输入/输出(I/O)端口80h来监测服务器的状态的方法。该方法包括确定是否已通过读取在服务器的I/O端口80h上提供的状态码从服务器接收到状态码。服务器的状态码指示在服务器上运行的软件的状态。当BMC未在预定时间内接收到状态码时,BMC将先前的状态码重写为错误状态码。然后,当状态码指示服务器上的错误时,BMC向警报管理***发送状态码。
第三示例实施例涉及一种通过监听专用于模型的寄存器(MSR)来监测服务器的状态的方法。该方法包括确定BMC是否已通过读取MSR而接收到服务器的状态码。服务器的状态码指示在服务器上运行的软件的状态。当BMC未在预定时间内接收到状态码时,BMC将先前的状态码重写为错误状态码。当状态码指示服务器上的错误时,BMC可以向警报管理***发送状态码。
通过阅读以下具体实施方式并在适当情况下参考附图,这些以及其他实施例、各方面、优点和备选方案对于本领域普通技术人员而言将很是清楚明白的。此外,应理解,本文中所提供的该发明内容以及其他描述和附图旨在仅通过示例的方式来说明实施例,因此,很多变体是可能的。例如,组合、分布、消除或以其他方式改变,同时保持在所要求保护的实施例的范围内。
附图说明
图1图示了使用基板管理控制器(BMC)的服务器状态监测***的示例性示意图。
图2图示了根据本公开的实施例的示例服务器***。
图3是根据示例实施例的流程图。
图4图示了使用BMC的服务器状态监测***的第二示例性示意图。
图5是根据第二示例实施例的流程图。
图6图示了使用BMC的服务器状态监测***的第三示例性示意图。
图7是根据第三示例实施例的流程图。
具体实施方式
现在将详细参考实施例,其示例在附图中示出。在本文中的描述中使用的术语仅出于描述特定实施例的目的,并且不旨在进行限制。在本文中被描述为“示例”或“示例性”的任何实施例或特征不一定被解释为比其他实施例或特征优选或有利。可以利用其他实施例,并且可以做出其他改变,而不背离本文中所提出的主题的范围。将容易理解,如本文中一般描述的和图中所图示的本公开的各方面可以被布置、替换、组合、分离和设计成各种不同的配置,所有的这些都在本文中被明确地考虑。
1.概述
如上面所提到的,图1、图4和图6图示了与三个相应示例实施例相对应的三个示例性示意图。作为简要概述,为了克服追溯性诊断问题,基板管理控制器(BMC)200可以通过监听在服务器100或主机处理器160上运行的软件的状态来发挥作用。本公开描述了BMC 200如何监测和检测在服务器100上运行的软件的软件错误以及该错误如何被转发到警报管理***300,该警报管理***300实时(或者,几乎实时地)以自动方式管理服务器100。首先(图1),BMC 200可以通过命令行接口130在BMC 200的串行端口或通用异步收发器(UART)210之上访问在服务器100的域0 150中生成的状态码,并且向警报管理***300发送状态码。其次(图4),可以在服务器100的输入/输出(I/O)端口80h 120上提供在服务器100的管理程序110中生成的状态码,BMC 200可以监听I/O端口80h并获取状态码,并且BMC 200可以向警报管理***300发送状态码。第三(图6),可以将在管理程序110中生成的状态码写入专用于模型的寄存器(MSR)121中,BMC 200可以通过读取MSR 121来获取状态码,并且BMC 200可以向警报管理***300发送状态码。用于监测服务器100的状态的这些示例性***和方法会使得警报管理***300能够容易地实时或几乎实时地识别出错误的发生(包括错误的类型(诸如,软件错误))和错误原因。因此,这些示例性方法可以克服追溯性诊断方法中发现服务器100故障的根本原因时的时间延迟和困难。
2.使用服务器中的BMC和命令行接口的示例服务器状态监测***
a.服务器硬件组件
图1是例示使用BMC 200和在服务器100上运行的命令行接口130的服务器状态监测***10的简化框图。在该示例中,服务器100可以包括处理器160、数据存储装置170、网络接口180和(多个)输入/输出接口190,所有的这些可以通过***总线或类似机制耦接。处理器160可以包括一个或多个中央处理单元(CPU),诸如一个或多个通用处理器和/或一个或多个专用处理器(例如,专用集成电路(ASIC)、数字信号处理器(DSP)、和/或网络处理器)。
数据存储装置170继而可以包括易失性和/或非易失性数据存储装置,并且可以与处理器160整体或部分集成。数据存储装置170可以存储由处理器可执行的程序指令160、以及可以由指令操纵以执行本文中所描述的各种方法、过程或功能的数据。备选地,这些方法、过程或功能可以由硬件、固件和/或硬件、固件和软件的任何组合定义。例如,数据存储装置170中的数据可以包括程序指令,该程序指令可能存储在非暂态计算机可读介质上,该程序指令由处理器160可执行以执行说明书或附图中所公开的任何方法、过程或功能。
输入/输出接口190可以采用有线连接的形式,诸如以太网、令牌环或T载波连接。网络接口180也可以采用无线连接的形式,诸如IEEE 802.11(Wifi)、
Figure BDA0003617325710000041
或广域无线连接。然而,可以使用其他形式的物理层连接和其他类型的标准或专有通信协议。此外,服务器100可以与BMC 200具有带外网络通道,因为服务器100和BMC 200出于安全性、机密性或其他原因而没有建立信任关系。一个带外网络通道是服务器100与BMC 200中的UART210之间的串行线路连接。到UART 210的这种串行线路连接使得BMC 200能够在到服务器100的活动和非活动串行会话两者中诊断服务器100的软件。
图2示意性地示出了上面所描述的服务器100的非限制性实施例。服务器100以简化形式被示出。服务器100可以采取以下形式:一个或多个个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如,智能电话)和/或其他计算设备和可穿戴计算设备,诸如智能手表和头戴式增强现实设备。
服务器100包括逻辑处理器101、易失性存储器102和非易失性存储设备103。服务器100可以可选地包括显示子***104、输入子***105、通信子***106和/或图2中未示出的其他组件。
逻辑处理器101包括被配置为执行指令的一个或多个物理设备。例如,逻辑处理器101可以被配置为执行作为一个或多个应用、程序、例程、库、对象、组件、数据结构或其他逻辑构造的一部分的指令。可以实现这样的指令以执行任务、实现数据类型、变换一个或多个组件的状态、实现技术效果、或者以其他方式达到所期望的结果。逻辑处理器101可以与图1、图4和图6中的处理器160相同。
逻辑处理器101可以包括被配置为执行软件指令的一个或多个物理处理器(硬件)。另外地或备选地,逻辑处理器101可以包括被配置为执行硬件实现的逻辑或固件指令的一个或多个硬件逻辑电路或固件设备。逻辑处理器101的处理器可以是单核或多核的,并且其上所执行的指令可以被配置用于顺序、并行和/或分布式处理。逻辑处理器的个体组件可以可选地分布在两个或更多个单独的设备之间,这些设备可以远程定位和/或被配置用于协调处理。逻辑处理器的各方面可以由以云计算配置进行配置的远程可访问的联网计算设备虚拟化和执行。在这种情况下,这些虚拟化方面在各种不同机器的不同物理逻辑处理器上运行。
非易失性存储设备103包括被配置为存储由逻辑处理器可执行以实现本文中所描述的方法和过程的指令的一个或多个物理设备。当这样的方法和过程被实现时,非易失性存储设备103的状态可以被变换——例如以存储不同数据。
非易失性存储设备103可以包括可移除和/或内置的物理设备。非易失性存储设备103可以包括光学存储器(例如,CD、DVD、HD-DVD、蓝光光盘)、半导体存储器(例如,ROM、EPROM、EEPROM、闪存)和/或磁存储器(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM)或其他大容量存储设备技术。非易失性存储设备103可以包括非易失性、动态、静态、读/写、只读、顺序访问、位置可寻址、文件可寻址和/或内容可寻址设备。将理解,非易失性存储设备103被配置为即使在非易失性存储设备103的电源被切断时也存储指令。
易失性存储器102可以包括物理设备,该物理设备包括随机存取存储器。易失性存储器102通常被逻辑处理器101用于在软件指令的处理期间临时地存储信息。将理解,当易失性存储器102的电源被切断时,易失性存储器102通常不继续存储指令。图1、图4和图6的数据存储装置170包括易失性存储器102和非易失性存储设备103。
逻辑处理器101、易失性存储器102和非易失性存储设备103的各方面可以一起集成到一个或多个硬件逻辑组件中。例如,这样的硬件逻辑组件可以包括现场可编程门阵列(FPGA)、程序和应用特定集成电路(PASIC/ASIC)、程序和应用特定标准产品(PSSP/ASSP)、芯上***(SOC)和复杂可编程逻辑器件(CPLD)。
术语“模块”、“程序”、“机制”和“引擎”可以用于描述服务器100的一方面,该方面通常由处理器以软件实现以使用易失性存储器的部分来执行特定功能,该功能涉及变换处理,该处理将处理器专门配置为执行该功能。因此,可以经由逻辑处理器101使用易失性存储器102的部分来执行由非易失性存储设备103保存的指令,来实例化模块、程序或引擎。将理解,不同模块、程序、机制和/或引擎可以从相同应用、服务、代码块、对象、库、例程、API、函数等实例化。同样,相同模块、程序、机制和/或引擎可以由不同的应用、服务、代码块、对象、例程、API、函数等实例化。术语“模块”、“程序”、“机制”和“引擎”可以涵盖个体或成组的可执行文件、数据文件、库、驱动程序、脚本、数据库记录等。
当被包括时,显示子***104可以用于呈现由非易失性存储设备103保存的数据的视觉表示。视觉表示可以采用图形用户界面(GUI)的形式。由于本文中所描述的方法和过程改变了由非易失性存储设备保存的数据,并且因此变换了非易失性存储设备的状态,因此同样可以变换显示子***104的状态以在视觉上表示底层数据的变化。显示子***104可以包括利用几乎任何类型的技术的一个或多个显示设备。这样的显示设备可以在共享外壳中与逻辑处理器101、易失性存储器102和/或非易失性存储设备103组合,或者这样的显示设备可以是***显示设备。
当被包括时,输入子***105可以包括一个或多个用户输入设备(诸如,键盘、鼠标、触摸屏或游戏控制器)或与其连接。
当被包括时,通信子***106可以被配置为将本文中所描述的各种计算设备彼此通信耦接,并且与其他设备通信耦接。通信子***106可以包括与一种或多种不同通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子***可以被配置用于经由无线电话网络、或者有线或无线局域网或广域网(诸如,基于Wi-Fi连接的HDMI)通信。在一些实施例中,通信子***可以允许服务器100经由诸如互联网等网络向其他设备发送消息和/或从其他设备接收消息。通信子***106可以与图1、图4和图6中的网络接口180相同。
b.服务器软件组件
服务器100的处理器160可以运行软件,包括管理程序110、命令行接口130、迷你内核140和域0 150。管理程序110或虚拟机监测程序可以是创建和运行虚拟机的计算机软件。管理程序110虚拟化服务器的硬件。管理程序110在不依赖于服务器的硬件规范的域之间共享服务器的虚拟化CPU、存储器和网络资源。管理程序110可以控制服务器的硬件和域。管理程序110通过被称为域0 150、dom0或受启发访客的特殊域来在域之间控制和管理用户域。在一种配置中,用户域可能是无法直接访问服务器的硬件的非特权域。当管理程序110控制服务器的硬件时,管理程序110可以将管理程序110的状态留在数据存储装置170中。管理程序110的状态可以指示管理程序110执行的最后的进程、或者管理程序110正在执行什么进程。如果管理程序110的状态指示管理程序110中的错误,则该状态可以指示管理程序110在哪里以及为何遇到错误(或者,者管理程序110为何已崩溃)。
即使当服务器100无反应时,命令行接口130、串行控制台接口或MicrosoftWindows的特殊管理控制台(SAC)也可以经由串行端口(或者,其他端口)访问域0 150和迷你内核140。命令行接口130扮演用于BMC 200访问服务器100、特别是域0 150的输入/输出接口的角色。当服务器100未响应或处于崩溃状态时,这种带外通信特别有效。命令行接口130可以收集服务器100的崩溃转储。因此,如果域0 150或域0 150控制的用户域处于崩溃状态或未响应,则命令行接口130可以监听崩溃转储并且将域0 150或用户域的错误状态留在数据存储装置170中。域0 150或用户域的错误状态可以指示域0 150或用户域在何处以及为何出现错误或处于崩溃模式。如果命令行接口130可以访问管理程序110,则命令行接口130不仅可以提供域0 150或用户域的状态,还可以提供管理程序110的状态。然而,一些服务器不提供对管理程序110的命令行接口130访问,因为命令行接口130在比管理程序110更高的软件堆栈中。在这种情况下,使用服务器100中的I/O端口80h 120的示例服务器状态监测***20、或者下面在与图6相关的讨论中更详细地描述的使用专用于模型的寄存器(MSR)121的示例服务器状态监测***30可以用于监听管理程序110的状态。
c.基板管理控制器(BMC)
BMC 200是中央管理控制器,其通常是嵌入在主电路板或主板上的片上***(SoC)。BMC 200可以通过带外通道与服务器100通信。BMC 200可以监测连接到主板的硬件,诸如电源电压、风扇速度、湿度和温度。由于BMC 200不具有监测在服务器100上运行的软件的任何直接能力,因此BMC 200中的串行端口可以用于连接命令行接口130以诊断在服务器100上运行的软件的状态。串行端口可以是特殊的控制器芯片,诸如UART 210,其使得BMC200能够经由串行线通信。BMC 200可以通过UART 210之上的命令行接口诊断服务器100的某些数据。然而,应理解,串行端口不被限制为UART 210用以与命令行接口130通信。也可以使用BMC 200中的任何其他适当的接口与命令行接口130通信。例如,BMC 200中的***管理总线(SMBus)可以连接到BMC的网络接口芯片(NIC)或局域网(LAN)控制器。因此,BMC 200可以经由NIC或LAN打开服务器100的命令行接口130的会话。来自命令行接口130的LAN业务符合通过LAN的串行(SOL)。LAN业务可以包括服务器状态码,以允许BMC 200访问该信息。
BMC 200可以连接到非易失性数据存储装置。非易失性数据存储装置可以全部或部分与BMC 200集成。数据存储装置可以保存***事件日志(SEL)、传感器数据记录(SDR)存储库、现场可更换单元(FRU)库存信息和服务器状态码。服务器状态码可以保存在非易失性数据存储装置中。然而,服务器状态码也可以直接转发到警报管理***300,而无需首先驻留在数据存储装置中。在这种情况下,保存在高速缓存中的服务器状态码被直接转发给警报管理***300。这可以通过降低计算能力来提高效率,同时节省将代码保存在数据存储装置中所花费的时间;以及还允许服务器300。
BMC 200还经由带外通道与警报管理***300通信。BMC 200可以将服务器软件状态码和/或硬件状态码转发给警报管理***300。BMC 200中的串行端口可以连接到警报管理***300以传输服务器软件状态码和硬件状态码。串行端口可以是特殊的控制器芯片,诸如UART 210,该控制器芯片使得BMC 200能够经由串行线通信。然而,应理解,UART 210不是与警报管理***300通信的唯一端口。可以使用BMC 200中的任何其他适当的接口与警报管理***300通信。例如,BMC中的SMBus可以连接到网络接口芯片或LAN控制器。LAN将网络接口芯片连接到警报管理***300。到警报管理***300的LAN业务符合SOL。LAN业务可以包括服务器状态码。
d.警报管理***
警报管理***300经由带外通道被连接到BMC 200。警报管理***300从BMC 200接收服务器状态码,并且实时或几乎实时地提供服务器100上的错误存在的警报。警报管理***300可以是结构计算***并使用发布-订阅或pub/sub机制。pub/sub机制使得警报管理***300能够独立于BMC 200。此外,BMC 200不需要对服务器100的状态码进行编程以将其直接发送到pub/sub机制中的订户。相反,服务器100的状态码可以被分类为诸如域0错误、管理程序错误和硬件错误等错误类型。所分类的状态码可以被发送到适当的警报管理***300,该警报管理***300可以处理特定类型的错误。然而,应理解,用于向警报管理***300发送服务器100的状态码的机制不限于pub/sub机制。可以使用可观察的模式和其他适当的机制向警报管理***300发送服务器100的状态码。
e.服务器与BMC之间的通信
命令行接口130可以经由串行端口与服务器100通信。服务器100上的串行端口可以使用SOL经由LAN连接到BMC 200中的UART 210。然而,应理解,可以使用其他通信通道将服务器100与BMC 200进行连接。例如,可以利用低引脚计数器(LPC)总线将服务器100与BMC200进行连接。当利用SOL时,命令行接口130可以通过LAN传输服务器状态码。此外,除了物理连接以外,网络接口180还可以采用无线连接的形式,诸如IEEE 802.11(Wifi)、
Figure BDA0003617325710000101
或广域无线连接。
f.用以使用BMC来监测服务器状态的方法
图3图示了用于使用BMC 200监测服务器状态的方法的流程图。在操作S410中,生成服务器100的状态码。服务器100的状态码可以在服务器100的域0 150中的数据存储装置170中被生成。服务器100的状态码可以是在服务器100上运行的软件的状态。该软件可以包括管理程序110、域0 150和用户域。一些命令行接口130只能访问域0 150和用户域,而无法访问管理程序110。如果是这样,则服务器100的状态码可能被限制为域0 150和用户域的状态。在这种情况下,管理程序110的状态可以由在服务器100(参见图4)中的I/O端口80h 120上进行监听的示例服务器状态监测***20、或者下面所描述的使用专用于模型的寄存器(MSR)121(参见图6)的示例服务器状态监测***30进行监测。默认状态码指示软件的良好的正常工作或无错误状态。然而,当错误存在于软件中时,指示错误的错误状态码会重写先前的状态码。错误状态码可以包括错误发生的位置和原因。
在操作S420中,BMC 200可以连接到服务器100,并且可能能够通过BMC 200的串行端口(UART)在服务器100上打开命令行接口130的会话。命令行接口130可以访问域0 150并且取回位于域0150中的服务器100的状态码。
在操作S430中,BMC 200可以通过命令行接口130向服务器100发送状态码请求。
在操作S440中,响应于BMC 200的状态码请求,服务器100通过命令行接口130向BMC 200发送状态码。BMC 200可以从服务器100诊断在命令行接口130上打印的状态码。BMC200可以打开命令行接口130的会话,并且以规则间隔向服务器100发送状态码请求。定期发送或接收的信号可以用作心跳以同步连接到BMC 200的其他硬件。此外,这可以用作请求响应模型。
在操作S450中,确定BMC 200是否已接收到服务器100的状态码。BMC 200可以通过读取打印在命令行接口130上的状态码来接收服务器100的状态码。设置在BMC 200中的UART 210是用于通过命令行接口130接收服务器100的状态码的串行端口。
如果BMC 200已接收到服务器100的状态码,则在操作S500中,向警报管理***300发送服务器100的状态码。如果在操作S450中,确定BMC 200未接收到服务器100的状态码,则在操作S460中,BMC 200确定预定时间是否已过去。如果预定时间未过去,则操作S460返回到操作S450。如果预定时间已过去,则在操作S470中,BMC 200做出服务器100出错的初步结论。这种未能接收到状态码的情况可以指示两种可能情况:1)BMC 200未接收到作为对BMC的状态码请求的服务器响应的状态码,或者2)BMC 200以规则间隔预期状态码,但是在间隔之后未接收到状态码。
服务器100出错的初步结论提示BMC 200在操作S470中将状态码重写为错误状态码。在状态码被重写之后,在操作S480中,再次确定BMC 200是否已接收到状态码。如果BMC已从服务器100接收到状态码,则在操作S490中,将状态码重写为从服务器100接收到的状态码。这可以防止在网络业务可能延迟接收状态码时BMC 200过于仓促地向警报管理***300发送错误消息。在操作S500中,当状态码指示服务器100上的错误时,BMC 200向警报管理***300发送状态码。在一种配置中,仅当状态码指示服务器100上的错误时,才可以向警报管理***300发送状态码。在另一种配置中,可以向警报管理***300发送状态码,而不管服务器100上的错误指示。在这种情况下,警报管理***300可以过滤掉错误状态码并处理服务器100上的错误。
由于这些操作是自动处理的,因此警报管理***300会容易地几乎实时地知道服务器100上的软件错误。
3.使用服务器中的I/O端口80h的服务器状态监测***示例
a.服务器I/O端口
图4是还例示监听服务器100中的I/O端口120的服务器状态监测***20的简化框图。I/O端口可以是服务器中的I/O端口80h 120。服务器100可以向服务器100中的I/O端口80h 120发送服务器100的状态码。BMC 200可以监听I/O端口80h 120,并且通过在I/O端口80h 120上读取状态码来接收服务器100的状态码。然后,BMC 200可以向警报管理***300发送服务器100的状态码。
BMC 200通常具有I/O端口80h 120使用开机自检(POST)代码在服务器100上监听的能力。当基本输入/输出***(BIOS)针对硬件执行内置自检时,生成代码并将其发送到I/O端口80h 120。硬件的基本健康状况通常与硬件有关,包括主机处理器、存储器/芯片组、输入/输出总线、输出设备、输入设备和引导设备。然而,服务器100的I/O端口80h 120可以以不同方式用于诊断在服务器100上运行的软件。软件的状态可以是由管理程序110、域0 150或用户域执行的最后的进程的状态。软件的状态也可以是由管理程序110、域0 150或用户域当前执行的状态。如果管理程序110、域0 150或用户域的状态指示错误,则该状态可以指示管理程序110、域0 150或用户域在哪里以及为何处于错误或崩溃状态。然而,软件的状态可以被限制为管理程序110的状态,并且管理程序110可能不访问域0 150和用户域,因为管理程序110是软件堆栈中较低级别的软件。
如果管理程序110可以执行对管理程序110、域0 150和用户域的状态的监测,则状态码可以指示管理程序110、域0 150或用户域的状态。如果管理程序110仅限于监测管理程序110的状态,或者如果命令行接口130无法访问管理程序110,则状态码可以被限制为管理程序110的状态。在这种情况下,可以另外采用使用BMC 200和命令行接口130的示例监测***10。因此,除了通过命令行接口130监测域0 150和用户域以外,管理程序110可以独立地向服务器100的I/O端口80h 120发送管理程序110的状态。
b.用以使用BMC来监测服务器状态的方法
图5图示了用于通过监听服务器100中的I/O端口80h 120来监测服务器状态的方法的流程图。在操作S510中,可以在服务器100的管理程序110中生成服务器100的状态码。服务器100的状态码可以保存在数据存储装置170中,并且管理程序110可以访问数据存储装置170。然而,服务器100的状态码可以直接发送到服务器中的I/O端口80h 120,而不存储在数据存储装置170中。服务器100的状态码可以是在服务器100上运行的软件的状态。该软件可以包括管理程序110、域0 150和用户域。默认状态码指示软件的无错误或正常运行状态。然而,当错误存在于软件中时,状态码将被重写为指示错误的错误状态码。错误状态码可以包括与错误的定时、特定故障点和故障原因等相关的信息。
在一些情况下,由于不同软件堆栈,管理程序110可能无法访问域0 150和用户域的状态码。在这种情况下,管理程序110可以仅生成管理程序110的状态码。为了监测域0150和用户域的状态,也可以采用上面所描述的使用命令行接口130和BMC 200的示例性监测***。
然而,在一些实施例中,管理程序110可以通过访问保存在数据存储装置170中的状态码来监测管理程序110、域0 150和用户域的状态。数据存储装置170包括域0 150和用户域的状态。在这种情况下,上面所描述的使用命令行接口130和BMC 200(参见图1)的示例性监测***可能不是必需的。
在操作S520中,管理程序110将状态码发送到服务器100的I/O端口120。管理程序110可以以规则间隔将状态码发送到I/O端口120。定期发送的信号可以用作心跳以同步连接到BMC 200的其他硬件。服务器100的I/O端口120可以是服务器100的I/O端口80h 120。即使当服务器100未响应或处于崩溃状态时,这些带外通信也可以是可操作的,并且还可以通过监听服务器100的I/O端口80h 120来确定***故障原因,并且几乎实时地向警报管理***300报告故障和原因。
在操作S530中,BMC 200确定BMC 200是否已通过服务器100的I/O端口80h 120接收到状态码。BMC 200可以通过读取在服务器100的I/O端口80h 120上提供的状态码来接收服务器100的状态码。
在操作S530中,确定BMC 200是否已接收到服务器100的状态码。如果BMC 200已接收到服务器100的状态码,则进行操作S580。在操作S580中,向警报管理***300发送服务器100的状态码。如果在操作S530期间确定BMC 200未接收到服务器100的状态码,则在操作S540中,BMC 200确定预定时间是否已过去。如果预定时间未过去,则操作S540返回到操作S530。另一方面,如果在操作S540中确定预定时间已过去,则在操作S550中,BMC 200做出服务器100出错的初步结论。这种未能接收到状态码的情况可以包括其中BMC 200以固定间隔预期状态码,但是在该间隔之后未接收到状态码的情况。在操作S550中,初步结论导致状态码被重写为错误状态码。然而,在状态码由于经过的时间而被重写之后,在操作S560中,重新确定BMC 200是否已从服务器100接收到状态码。然后,如果BMC已从服务器100接收到状态码,则在操作S570中,操作S550中的状态码被重写到从服务器100接收到的状态码。这可以防止BMC 200在网络业务(或者,与服务器无关的其他问题)可能延迟接收状态码时过于仓促地向警报管理***300发送错误消息。在操作S580中,当状态码指示服务器100上的错误时,BMC 200向警报管理***300发送状态码。如果状态码指示服务器100上的错误,则可以将状态码发送到警报器管理***300。然而,无论服务器100上的错误指示如何,或者对于一组特定状态码,状态码可以被发送到警报管理***300。在这种情况下,警报管理***300可以过滤掉错误状态码并且处理服务器100上的错误。
由于这些操作是自动处理的,因此警报管理***300会容易地几乎实时地知道服务器100上的软件错误。
4.使用MSR的示例服务器状态监测***
a.专用于模型的寄存器(MSR)
图6是例示使用BMC 200以及服务器100和BMC 200可以访问的MSR的服务器状态监测***30的简化框图。MSR 121可以被称为擦除寄存器、模式特定寄存器或机器特定寄存器。一些BMC可以不包括图4中所示出的I/O端口80h 120,或者可能需要或有必要使用备选***。备选地,也可以使用图6中所示出的MSR 121代替I/O端口80h 120来接收服务器状态码。BMC 200可以提供用于检测和报告硬件(机器)错误的机制,诸如:***总线错误、ECC错误、奇偶校验错误、高速缓存错误和TLB错误。BMC 200可以访问用于设置机器检查的一组专用于模型的寄存器(MSR)和用于记录检测到的错误的附加的MSR组。MSR通常用于检查硬件错误。然而,MSR 121可以被编程用于检测服务器100中的软件错误。MSR 121可以设置在服务器100或BMC 200上。
管理程序110可以监测在服务器100上运行的软件的状态并且请求服务器100中的处理器160将在服务器100上运行的软件的状态的状态码写入MSR 121。处理器160可以指示将服务器100的状态码写入MSR 121。如果管理程序110可以监测(或者,“可以执行其监测”)管理程序110、域0 150和用户域的状态,则服务器100的状态码可以是管理程序110、域0150或用户域的状态。如果管理程序110仅限于执行对管理程序110的状态的监测,或者命令行接口130可能无法访问管理程序110,则状态码会被限制为管理程序110的状态。在这种情况下,可以另外采用使用BMC 200和命令行接口130(参见图1)的示例监测***10。
BMC 200可以访问写入MSR 121的状态码。BMC 200可以通过读取MSR 121来接收服务器100的状态码。通过分析服务器100的状态码,BMC 200可以识别出在服务器100上运行的软件在哪里以及为何遇到错误。
该示例***器状态监测***30中的其他组件可以与使用服务器100的I/O端口80h 120的示例***器状态监测***20中的那些相同或相似。
b.用以使用BMC来监测服务器状态的方法
图7图示了使用从BMC 200可访问的MSR 121来监测服务器状态的方法的流程图。在操作S610中,可以在服务器100的管理程序110中生成服务器100的状态码。服务器100的状态码可以保存在数据存储装置170中,并且管理程序110可以访问数据存储装置170。然而,服务器100的状态码可以直接写入MSR 121,而不保存在数据存储装置170中。服务器100的状态码可以是在服务器100上运行的软件的状态。该软件可以包括管理程序110、域0 150和用户域。默认状态码指示软件状态良好。然而,当错误存在于软件中时,状态码将被重写为指示错误的错误状态。错误状态码可以包括错误已发生的位置和原因。
在某些情况下,管理程序110可能无法访问域0 150和用户域的状态码。在这种情况下,管理程序110可以仅监测管理程序110并生成管理程序110的状态码。为了监测域0150和用户域的状态,可能另外需要上面所描述的使用命令行接口130和BMC 200的示例性监测***(参见图1)。
然而,如果管理程序110监测管理程序110、域0 150和用户域的状态、或者访问保存在数据存储装置170中的指示域0 150和用户域的状态的状态码,则可能并不另外需要上面所描述的使用命令行接口130和BMC 200的示例性监测***。
在操作S620中,服务器100可以将状态码写入MSR 121,该MSR 121从BMC 200可访问。具体地,管理程序110可以请求处理器160将状态码写入MSR 121。然后,服务器100的处理器160可以将状态码写入MSR 121。MSR 121可以在服务器100或BMC 200上。服务器100可以以规则间隔将状态码写入MSR 121。定期写入的信号可以用作心跳以同步连接到BMC 200的其他硬件。即使当服务器100未响应或处于崩溃状态时,这种带外通信也仍然可以是可操作的,并且可以工作以监听***故障的原因并几乎实时地将其报告给警报管理***300。
在操作S630中,BMC 200确定BMC 200是否已通过读取MSR 121而接收到状态码。如果BMC 200已接收到服务器100的状态码,则在操作S680中,服务器100的状态码被发送到警报管理***300。如果BMC未接收到服务器100的状态码,则在操作S640中,BMC 200确定预定时间是否已过去。如果预定时间未过去,则操作S640返回到操作S630。如果在操作S640中确定预定时间已过去,则在操作S650中,BMC 200做出服务器100出错的初步结论。这种未能接收到状态码的情况可以包括其中BMC 200预期以固定间隔接收状态码,但是在该间隔之后未接收到状态码的情况。在操作S650中,该初步结论导致状态码被重写为错误状态码。然而,在状态码由于经过的时间而被重写之后,在操作S660中,重新确定BMC 200是否已接收到服务器100的状态码。如果BMC 200已接收到服务器100的状态码,则在操作S670,操作S650中的状态码被重写到从MSR 121接收的状态码。这可以防止BMC 200在网络业务可能延迟接收状态码时过于仓促地向警报管理***300发送错误消息。在操作S680中,当状态码指示服务器100上的错误时,BMC 200向警报管理***300发送状态码。在一种配置中,仅当状态码指示服务器100上的错误时,可以向警报管理***300发送状态码。在另一种配置中,可以向警报管理***300发送状态码,而不管服务器100上的错误指示。在这种情况下,警报管理***300可以过滤掉错误状态码并且处理服务器100上的错误。
由于这些操作是自动处理的,因此警报管理***300会容易地几乎实时地知道服务器100上的软件错误。
5.结论
上面详细描述的使用BMC 200的示例***器状态监测***和方法会使得服务器100上的软件错误能够几乎实时地被标识出。因此,这些示例性***和方法可以克服追溯性诊断方法中发现服务器100故障的根本原因时的时间延迟和困难。
根据本公开的一个方面,一种用于使用基板管理控制器监测服务器的状态的***包括:基板管理控制器,其中基板管理控制器被配置为:连接到服务器;在服务器上打开命令行接口的会话;通过命令行接口的会话向服务器发送状态码请求;响应于状态码请求,确定基板管理控制器是否已通过命令行接口的会话从服务器接收到状态码;当基板管理控制器未在预定时间内接收到状态码时,将状态码重写为错误状态码;以及当状态码指示服务器上的错误时,向警报管理***发送状态码。
在该方面,基板管理控制器还被配置为:在将状态码重写为错误状态码之后,再次确定基板管理控制器是否已从服务器接收到第二状态码;以及当基板管理控制器在将状态码重写为错误状态码之后已从服务器接收到第二状态码时,将重写的状态码重写为从服务器接收的第二状态码。
在该方面,基板管理控制器中设置有通用异步收发器(UART)以从服务器接收状态码,并且基板管理控制器通过UART打开命令行接口的会话以从服务器接收状态码。
在这方面,状态码以规则间隔被发送到基板管理控制器。
在这方面,服务器上的命令行接口访问域0以取回状态码。
在这方面,服务器的状态码是在服务器的域0中生成的。
在这方面,服务器的状态是在服务器上运行的软件的状态。
在这方面,软件包括服务器的域0。
在这方面,当软件处于无错误状态时,状态码指示软件的无错误状态,并且当错误存在于软件中时,状态码指示错误的原因和位置。
在这方面,基板管理控制器与命令行接口之间的连接符合通过局域网的串行(SOL)。
根据本公开的另一方面,一种使用基板管理控制器来监测服务器的状态的方法包括:确定是否已通过读取在服务器的输入/输出端口上提供的状态码而从服务器接收到服务器的所述状态码,其中服务器的状态码指示在服务器上运行的软件的状态;当基板管理控制器在预定时间内未接收到状态码时,将状态码重写为错误状态码;以及当状态码指示服务器上的错误时,从基板管理控制器向警报管理***发送状态码。
在这方面,该方法还包括在服务器的管理程序中生成服务器的状态码;以及从服务器的管理程序向基板管理控制器的串行输入/输出端口发送状态码。
在这方面,服务器的输入/输出端口是服务器的端口80h。
在此方面,在将状态码重写为错误状态码之后,再次确定基板管理控制器是否从服务器接收到第二状态码;以及当基板管理控制器在将状态码重写为错误状态码之后从服务器接收到第二状态码时,将重写的状态码重写为从服务器接收的第二状态码。
在这方面,软件包括管理程序。
在这方面,当软件处于无错误状态时,状态码指示软件的无错误状态,并且当错误存在于软件中时,状态码指示错误的原因和位置。
根据本公开的另一方面,一种使用基板管理控制器来监测服务器的状态的方法包括:确定基板管理控制器是否已通过读取专用于模型的寄存器而接收到服务器的状态码,其中服务器的状态码指示在服务器上运行的软件的状态;当基板管理控制器在预定时间内未接收到状态码时,将状态码重写为错误状态码;以及当状态码指示服务器上的错误时,从专用于模型的寄存器向警报管理***发送状态码。
在这方面,该方法还包括:在服务器的管理程序中生成服务器的状态码;以及将状态码从服务器写入专用于模型的寄存器。
在这方面,软件包括管理程序。
在这方面,当软件处于无错误状态时,状态码指示软件的无错误状态,并且当错误存在于软件中时,状态码指示错误的原因和位置。
本公开不限于本申请中所描述的特定实施例,该实施例旨在作为各个方面的说明。可以在不脱离其范围的情况下进行很多修改和变化,这对本领域技术人员而言是很清楚的。根据前面的描述,除了本文中所列举的以外,在本公开的范围内的功能等同的方法和装置对于本领域技术人员而言将是很清楚的。这样的修改和变化旨在落入所附权利要求的范围内。
上面的具体实施方式参考附图描述了所公开的***、设备和方法的各种特征和功能。本文中和附图中所描述的示例实施例并不表示是限制性的。可以利用其他实施例,并且可以做出其他改变,而不背离本文中所提出的主题的范围。将容易理解,如本文中一般描述的和图中所图示的本公开的各方面可以被布置、替换、组合、分离和设计成各种不同的配置,所有的这些都在本文中被明确地考虑。
关于图中以及如本文中所讨论的任何或所有消息流程图、场景和流程图,每个步骤、块和/或通信可以表示根据示例实施例的信息的处理和/或信息的传输。备选实施例被包括在这些示例实施例的范围内。在这些备选实施例中,例如,被描述为步骤、块、传输、通信、请求、响应和/或消息的功能可以与所示出或讨论的顺序无序地执行,包括基本上同时或以相反顺序,这取决于涉及的功能性。此外,更多或更少的块和/或功能可以与本文中所讨论的梯形图、场景和流程图中的任何一个一起使用,并且这些梯形图、场景和流程图可以部分地或全部地彼此组合。
表示信息处理的步骤或块可以对应于可以被配置为执行本文中所描述的方法或技术的特定逻辑功能的电路***。备选地或另外地,表示信息处理的步骤或块可以对应于程序代码模块、段或部分(包括相关数据)。程序代码可以包括由处理器可执行以实现方法或技术中的特定逻辑功能或动作的一个或多个指令。程序代码和/或相关数据可以存储在任何类型的计算机可读介质上,诸如存储设备,包括磁盘、硬盘驱动器或其他存储介质。
计算机可读介质还可以包括非暂态计算机可读介质,诸如在短时间段内存储数据的计算机可读介质,如寄存器存储器、处理器高速缓存和随机存取存储器(RAM)。计算机可读介质还可以包括将程序代码和/或数据存储更长时间段的非暂态计算机可读介质。因此,计算机可读介质可以包括二级或永久长期存储装置,例如只读存储器(ROM)、光盘或磁盘、光盘只读存储器(CD-ROM)。计算机可读介质也可以是任何其他易失性或非易失性存储***。例如,计算机可读介质可以被认为是计算机可读存储介质或有形存储设备。
此外,表示一个或多个信息传输的步骤或块可以对应于同一物理设备中的软件和/或硬件模块之间的信息传输。然而,其他信息传输可以在不同物理设备中的软件模块和/或硬件模块之间进行。
图中所示出的特定布置不应当被视为限制性的。应当理解,其他实施例可以包括更多或更少的给定图中所示出的每个元素。此外,所图示的元素中的一些元素可以组合或省略。此外,示例实施例可以包括图中未示出的元素。
虽然本文中已公开了各个方面和实施例,但是其他方面和实施例对于本领域技术人员而言将是显而易见的。本文中所公开的各个方面和实施例是出于说明的目的而不旨在是限制性的,真实范围由所附权利要求指示。

Claims (15)

1.一种用于使用基板管理控制器来监测服务器的状态的***,包括:所述基板管理控制器,
其中所述基板管理控制器被配置为:
连接到所述服务器;
在所述服务器上打开命令行接口的会话;
通过所述命令行接口的所述会话向所述服务器发送状态码请求;
响应于所述状态码请求,确定所述基板管理控制器是否已通过所述命令行接口的所述会话从所述服务器接收到状态码;
当所述基板管理控制器未在预定时间内接收到所述状态码时,将所述状态码重写为错误状态码;以及
当所述状态码指示所述服务器上的错误时,向警报管理***发送所述状态码。
2.根据权利要求1所述的***,其中所述基板管理控制器还被配置为:
在将所述状态码重写为所述错误状态码之后,再次确定所述基板管理控制器是否已从所述服务器接收到第二状态码;以及
当所述基板管理控制器在将所述状态码重写为所述错误状态码之后已从所述服务器接收到所述第二状态码时,将经重写的所述状态码重写为从所述服务器接收到的所述第二状态码。
3.根据权利要求1所述的***,其中通用异步收发器(UART)被设置在所述基板管理控制器上,
其中所述基板管理控制器通过所述UART打开所述命令行接口的所述会话以从所述服务器接收所述状态码。
4.根据权利要求1所述的***,其中所述状态码以规则间隔被发送到所述基板管理控制器。
5.根据权利要求4所述的***,其中所述服务器上的所述命令行接口访问域0以取回所述状态码。
6.根据权利要求1所述的***,其中从所述服务器接收到的所述状态码是在所述服务器的域0中被生成的。
7.根据权利要求1所述的***,其中所述服务器的所述状态是在所述服务器上运行的软件的状态,并且
其中所述软件包括所述服务器的域0。
8.根据权利要求7所述的***,其中当所述软件具有无错误状态时,所述状态码指示所述软件的无错误状态,并且
其中当所述错误存在于所述软件中时,所述状态码指示所述错误的原因和位置。
9.一种使用基板管理控制器来监测服务器的状态的方法,包括:
确定是否已通过读取在所述服务器的输入/输出端口上被提供的所述服务器的状态码从所述服务器接收到所述状态码,其中所述服务器的所述状态码指示在所述服务器上运行的软件的状态;
当所述基板管理控制器未在预定时间内接收到所述状态码时,将所述状态码重写为错误状态码;以及
当所述状态码指示所述服务器上的错误时,从所述基板管理控制器向警报管理***发送所述状态码。
10.根据权利要求9所述的方法,其中所述服务器的所述输入/输出端口是所述服务器的输入/输出端口80h。
11.根据权利要求9所述的方法,其中在将所述状态码重写为所述错误状态码之后,再次确定所述基板管理控制器是否已从所述服务器接收到第二状态码;并且
当所述基板管理控制器在将所述状态码重写为所述错误状态码之后已从所述服务器接收到所述第二状态码时,将经重写的所述状态码重写为从所述服务器接收到的所述第二状态码。
12.根据权利要求9所述的方法,其中所述软件包括管理程序。
13.一种使用基板管理控制器来监测服务器的状态的方法,包括:
确定所述基板管理控制器是否已通过读取专用于模型的寄存器而接收到所述服务器的状态码,其中所述服务器的所述状态码指示在所述服务器上运行的软件的状态;
当所述基板管理控制器未在预定时间内接收到所述状态码时,将所述状态码重写为错误状态码;以及
当所述状态码指示所述服务器上的错误时,向警报管理***发送所述服务器的所述状态码。
14.根据权利要求13所述的方法,还包括:在所述服务器的管理程序中生成所述服务器的所述状态码;以及
将所述状态码从所述服务器写入到所述专用于模型的寄存器中。
15.根据权利要求13所述的方法,其中所述软件包括管理程序。
CN202080075272.1A 2019-11-05 2020-10-28 使用基板管理控制器的服务器状态监测***和方法 Pending CN114600088A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/674,723 2019-11-05
US16/674,723 US11176020B2 (en) 2019-11-05 2019-11-05 Server status monitoring system and method using baseboard management controller
PCT/US2020/057579 WO2021091733A1 (en) 2019-11-05 2020-10-28 Server status monitoring system and method using baseboard management controller

Publications (1)

Publication Number Publication Date
CN114600088A true CN114600088A (zh) 2022-06-07

Family

ID=73544284

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080075272.1A Pending CN114600088A (zh) 2019-11-05 2020-10-28 使用基板管理控制器的服务器状态监测***和方法

Country Status (4)

Country Link
US (1) US11176020B2 (zh)
EP (1) EP4055480A1 (zh)
CN (1) CN114600088A (zh)
WO (1) WO2021091733A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113553243A (zh) * 2020-04-24 2021-10-26 捷普科技(上海)有限公司 远端侦错方法
CN113708986B (zh) * 2020-05-21 2023-02-03 富联精密电子(天津)有限公司 服务器监控装置、方法及计算机可读存储介质
US11411835B2 (en) * 2020-10-23 2022-08-09 Larsen & Toubro Infotech Ltd Cognitive model determining alerts generated in a system
CN113238913B (zh) * 2021-05-12 2023-10-24 康键信息技术(深圳)有限公司 服务器故障智能推送方法、装置、设备及存储介质
US12024100B2 (en) * 2021-05-19 2024-07-02 Pony Ai Inc. Device-level fault detection

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8713295B2 (en) * 2004-07-12 2014-04-29 Oracle International Corporation Fabric-backplane enterprise servers with pluggable I/O sub-system
US20070226377A1 (en) 2006-02-09 2007-09-27 Dell Products L.P. Detecting parameters of a system UART and matching those parameters in a serial-over-LAN (SOL) UART
US20080046546A1 (en) 2006-08-18 2008-02-21 Parmar Pankaj N EFI based mechanism to export platform management capabilities to the OS
US8201029B2 (en) 2008-01-31 2012-06-12 International Business Machines Corporation Method and apparatus for operating system event notification mechanism using file system interface
CN103164354A (zh) 2011-12-12 2013-06-19 鸿富锦精密工业(深圳)有限公司 具有通用异步接收发送装置的电子设备及输入控制方法
US8904240B2 (en) 2012-04-20 2014-12-02 International Business Machines Corporation Monitoring and resolving deadlocks, contention, runaway CPU and other virtual machine production issues
US20140344431A1 (en) 2013-05-16 2014-11-20 Aspeed Technology Inc. Baseboard management system architecture
CN104424041A (zh) * 2013-08-23 2015-03-18 鸿富锦精密工业(深圳)有限公司 错误处理***和方法
US9880867B2 (en) 2013-12-06 2018-01-30 Vmware, Inc. Method and subsystem for data exchange between a guest operating system and a virtualization layer
US9971609B2 (en) * 2014-06-05 2018-05-15 American Megatrends, Inc. Thermal watchdog process in host computer management and monitoring
TWI614613B (zh) 2014-09-11 2018-02-11 廣達電腦股份有限公司 伺服器系統與其相關的控制方法
US9842003B2 (en) 2014-10-07 2017-12-12 Dell Products, L.P. Master baseboard management controller election and replacement sub-system enabling decentralized resource management control
US9954727B2 (en) 2015-03-06 2018-04-24 Quanta Computer Inc. Automatic debug information collection
CN107769953A (zh) 2016-08-23 2018-03-06 佛山市顺德区顺达电脑厂有限公司 服务器故障检测***
CN110865819B (zh) 2016-10-31 2022-05-10 超聚变数字技术有限公司 一种os的安装方法、服务器和***

Also Published As

Publication number Publication date
EP4055480A1 (en) 2022-09-14
WO2021091733A1 (en) 2021-05-14
US11176020B2 (en) 2021-11-16
US20210133081A1 (en) 2021-05-06

Similar Documents

Publication Publication Date Title
CN114600088A (zh) 使用基板管理控制器的服务器状态监测***和方法
EP3255527B1 (en) Remote keyboard-video-mouse technologies
US9298524B2 (en) Virtual baseboard management controller
US9912535B2 (en) System and method of performing high availability configuration and validation of virtual desktop infrastructure (VDI)
US9489274B2 (en) System and method for performing efficient failover and virtual machine (VM) migration in virtual desktop infrastructure (VDI)
TWI632462B (zh) 開關裝置及偵測積體電路匯流排之方法
US20180157444A1 (en) Virtual storage controller
US20100162045A1 (en) Method, apparatus and system for restarting an emulated mainframe iop
US9712382B2 (en) Retrieving console messages after device failure
US20070255869A1 (en) Device evaluation using automatic connection path reconfiguration
TWI739127B (zh) 提供系統資料之方法、系統及伺服器
US10924350B1 (en) Software sensor for reporting controller metrics
JP2015114873A (ja) 情報処理装置および監視方法
US10514972B2 (en) Embedding forensic and triage data in memory dumps
US10838785B2 (en) BIOS to OS event communication
JP5689783B2 (ja) コンピュータ、コンピュータシステム、および障害情報管理方法
TWI832173B (zh) 快閃記憶體監控系統、方法及其電腦系統
US11487550B1 (en) Event communication management
US20210334153A1 (en) Remote error detection method adapted for a remote computer device to detect errors that occur in a service computer device
US11093301B2 (en) Input output adapter error recovery concurrent diagnostics
JP5884801B2 (ja) パス切替装置、パス切替方法及びパス切替プログラム
JP6089543B2 (ja) 試験方法および処理装置
JP2004030513A (ja) バスモニタリングシステムおよびそのプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination