CN118132301A - 服务器及其i2c总线挂死自恢复方法、设备及存储介质 - Google Patents
服务器及其i2c总线挂死自恢复方法、设备及存储介质 Download PDFInfo
- Publication number
- CN118132301A CN118132301A CN202410129403.XA CN202410129403A CN118132301A CN 118132301 A CN118132301 A CN 118132301A CN 202410129403 A CN202410129403 A CN 202410129403A CN 118132301 A CN118132301 A CN 118132301A
- Authority
- CN
- China
- Prior art keywords
- target
- bus
- downlink
- signal line
- bmc
- 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
- 238000011084 recovery Methods 0.000 title claims abstract description 44
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000004891 communication Methods 0.000 claims abstract description 65
- 238000012544 monitoring process Methods 0.000 claims abstract description 19
- 230000002159 abnormal effect Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 10
- 230000005856 abnormality Effects 0.000 description 10
- 239000000725 suspension Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0745—Error 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 an input/output transactions management context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0793—Remedial or corrective actions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种服务器及其I2C总线挂死自恢复方法、设备及存储介质,涉及服务器技术领域,该服务器包括:BMC、I2C总线监控器、I2C总线、第一信号线和多个I2C设备;其中,I2C总线包括I2C上行总线和与多个I2C设备分别对应的多条I2C下行总线;BMC与I2C总线监控器之间通过I2C上行总线和第一信号线相连,第一信号线用于控制BMC;每个I2C设备与I2C总线监控器之间通过相应的I2C下行总线相连;I2C总线监控器用于监控各I2C下行总线的通信状态,在监控到目标I2C下行总线处于挂死状态的情况下,控制BMC和目标I2C下行总线进行挂死自恢复,可以保证服务器的稳定性和可靠性。
Description
技术领域
本申请涉及服务器技术领域,尤其涉及一种服务器及其I2C总线挂死自恢复方法、设备及存储介质。
背景技术
随着云计算应用的快速发展,信息化与智能化逐渐覆盖到社会的各个领域,服务器作为处理及存储数据的核心设备,用户对于其可靠性和稳定性的要求也越来越高。服务器运行期间,基板管理控制器(Baseboard Management Controller,BMC)会周期性地轮询I2C(Inter-Integrated Circuit)总线上的I2C设备。由于I2C总线异常复位或I2C设备异常的问题,会出现I2C总线挂死的情况。
目前,如图1所示,BMC与多个I2C设备通过I2C总线相连,在I2C总线挂死的情况下,无法识别异常的I2C设备,且各I2C设备不支持独立的上下电。针对I2C总线异常复位的问题,由于BMC无法单独复位某一个I2C设备,BMC会向I2C总线连续发送9个CLK时钟的数据;然而,由于BMC无法正常判断发送时机,所以解除I2C总线挂死的效果较差。针对I2C设备异常的问题,通过向I2C总线连续发送9个CLK时钟的数据无法解除I2C总线挂死,只能通过对整机进行上下电;然而,整机掉电会中断服务器正在运行的业务。因此,这两种方案会导致服务器的稳定性和可靠性较差。
发明内容
本申请的目的是提供一种服务器及其I2C总线挂死自恢复方法、设备及存储介质,用于单独对处于挂死状态的I2C下行总线进行挂死自恢复,可以保证服务器的稳定性和可靠性。
本申请提供一种服务器,包括:基板管理控制器BMC、I2C总线监控器、I2C总线、第一信号线和多个I2C设备;其中,所述I2C总线包括I2C上行总线和与多个所述I2C设备分别对应的多条I2C下行总线;所述BMC与所述I2C总线监控器之间通过所述I2C上行总线和所述第一信号线相连,所述第一信号线用于控制所述BMC;每个所述I2C设备与所述I2C总线监控器之间通过相应的所述I2C下行总线相连;所述I2C总线监控器用于监控各所述I2C下行总线的通信状态,在监控到目标I2C下行总线处于挂死状态的情况下,控制所述BMC和所述目标I2C下行总线进行挂死自恢复。
可选地,所述服务器还包括:各所述I2C设备分别对应的供电电源和电子保险丝E-FUSE以及各所述E-FUSE分别对应的第二信号线;所述E-FUSE设置于所述I2C设备与所述供电电源之间,所述E-FUSE与所述I2C总线监控器之间通过所述第二信号线相连;
所述I2C总线监控器具体用于:
监控各所述I2C下行总线的通信状态;
在监控到所述目标I2C下行总线处于挂死状态的情况下,通过所述第一信号线控制所述BMC丢弃当前读取的从所述目标I2C下行总线传来的通信数据,并中断针对所述目标I2C下行总线对应的目标I2C设备的轮询操作;
向所述目标I2C下行总线连续发送9个时钟的数据;
在所述目标I2C下行总线未解除挂死状态的情况下,通过目标第二信号线控制所述目标I2C设备与所述供电电源之间的目标E-FUSE断开后接通;
在所述目标I2C下行总线解除挂死状态的情况下,通过所述第一信号线控制所述BMC恢复丢弃的所述通信数据,并恢复针对所述目标I2C设备的轮询操作。
可选地,所述I2C总线监控器还用于:
在控制所述目标E-FUSE断开后接通之后所述目标I2C下行总线未解除挂死状态的情况下,通过所述第一信号线控制所述BMC从轮询设备列表中删除所述目标I2C设备;
通过所述目标第二信号线控制所述目标E-FUSE断开。
可选地,所述I2C总线监控器还用于:
在控制所述目标E-FUSE断开后接通之后所述目标I2C下行总线未解除挂死状态的情况下,向目标对象发送告警通知,所述告警通知用于提示所述目标对象所述目标I2C设备出现异常。
本申请还提供一种如上述任一种所述的服务器的I2C总线挂死自恢复方法,应用于I2C总线监控器,所述方法包括:
监控各I2C下行总线的通信状态;
在监控到目标I2C下行总线处于挂死状态的情况下,通过第一信号线控制BMC丢弃当前读取的从所述目标I2C下行总线传来的通信数据,并中断针对所述目标I2C下行总线对应的目标I2C设备的轮询操作;
向所述目标I2C下行总线连续发送9个时钟的数据;
在所述目标I2C下行总线未解除挂死状态的情况下,通过目标第二信号线控制所述目标I2C设备与供电电源之间的目标E-FUSE断开后接通;
在所述目标I2C下行总线解除挂死状态的情况下,通过所述第一信号线控制所述BMC恢复丢弃的所述通信数据,并恢复针对所述目标I2C设备的轮询操作。
可选地,还包括:
在控制所述目标E-FUSE断开后接通之后所述目标I2C下行总线未解除挂死状态的情况下,通过所述第一信号线控制所述BMC从轮询设备列表中删除所述目标I2C设备;
通过所述目标第二信号线控制所述目标E-FUSE断开。
可选地,还包括:
在控制所述目标E-FUSE断开后接通之后所述目标I2C下行总线未解除挂死状态的情况下,向目标对象发送告警通知,所述告警通知用于提示所述目标对象所述目标I2C设备出现异常。
本申请还提供一种如上述任一种所述的服务器的I2C总线挂死自恢复装置,包括:
监控模块,用于监控各I2C下行总线的通信状态;
第一控制模块,用于在监控到目标I2C下行总线处于挂死状态的情况下,通过第一信号线控制BMC丢弃当前读取的从所述目标I2C下行总线传来的通信数据,并中断针对所述目标I2C下行总线对应的目标I2C设备的轮询操作;
发送模块,用于向所述目标I2C下行总线连续发送9个时钟的数据;
第二控制模块,用于在所述目标I2C下行总线未解除挂死状态的情况下,通过目标第二信号线控制所述目标I2C设备与供电电源之间的目标E-FUSE断开后接通;
第三控制模块,用于在所述目标I2C下行总线解除挂死状态的情况下,通过所述第一信号线控制所述BMC恢复丢弃的所述通信数据,并恢复针对所述目标I2C设备的轮询操作。
本申请还提供一种I2C总线监控器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述的服务器的I2C总线挂死自恢复方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述的服务器的I2C总线挂死自恢复方法的步骤。
本申请还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上述任一种所述的服务器的I2C总线挂死自恢复方法的步骤。
本申请提供的服务器及其I2C总线挂死自恢复方法、设备及存储介质,该服务器包括:基板管理控制器BMC、I2C总线监控器、I2C总线、第一信号线和多个I2C设备,I2C总线包括I2C上行总线和与多个I2C设备分别对应的多条I2C下行总线;也即,服务器新增了I2C总线监控器和第一信号线,并重新设置了I2C总线,使得每个I2C设备都有其一一对应的I2C下行总线;BMC与I2C总线监控器之间通过I2C上行总线和第一信号线相连,第一信号线用于控制BMC;每个I2C设备与I2C总线监控器之间通过相应的I2C下行总线相连;I2C总线监控器用于监控各I2C下行总线的通信状态,在监控到目标I2C下行总线处于挂死状态的情况下,控制BMC和目标I2C下行总线进行挂死自恢复;也即,由于每个I2C设备与I2C总线监控器之间通过相应的I2C下行总线相连,I2C总线监控器可以监控各I2C下行总线的通信状态,可以定位处于挂死状态的目标I2C下行总线,并针对性地控制BMC和目标I2C下行总线进行挂死自恢复。因此,本申请可以单独对处于挂死状态的I2C下行总线进行挂死自恢复,可以保证服务器的稳定性和可靠性。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是相关技术提供的服务器的I2C总线拓扑示意图;
图2是本申请实施例提供的服务器的I2C总线拓扑示意图;
图3是本申请实施例提供的服务器的I2C总线挂死自恢复方法的流程示意图;
图4是本申请实施例提供的服务器的I2C总线挂死自恢复装置的结构示意图;
图5是本申请实施例提供的I2C总线监控器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
首先,下面结合附图2,通过具体的实施例对本申请实施例提供的服务器进行详细地说明。
请参照图2,图2是本申请实施例提供的服务器的I2C总线拓扑示意图。如图2所示,服务器可以包括:BMC1、I2C总线监控器2、I2C总线、第一信号线4和多个I2C设备5。
其中,I2C总线包括I2C上行总线31和与多个I2C设备5分别对应的多条I2C下行总线32,BMC1与I2C总线监控器2之间通过I2C上行总线31相连,每个I2C设备5与I2C总线监控器2之间通过相应的I2C下行总线32相连。
具体地,I2C总线监控器2设置于BMC1与多个I2C设备5之间,I2C上行总线31为BMC1与I2C总线监控器2之间的I2C总线,I2C下行总线32为I2C设备5与I2C总线监控器2之间的I2C总线。也即,重新设置了I2C总线,使得每个I2C设备5都有其一一对应的I2C下行总线32。
BMC1与I2C总线监控器2之间还通过第一信号线4相连,第一信号线4用于控制BMC1。也即,I2C总线监控器2可以通过第一信号线4控制BMC1。
I2C总线监控器2用于监控各I2C下行总线的32通信状态,在监控到目标I2C下行总线处于挂死状态的情况下,控制BMC1和目标I2C下行总线进行挂死自恢复。
具体地,由于每个I2C设备5与I2C总线监控器2之间通过相应的I2C下行总线32相连,I2C总线监控器2可以监控各I2C下行总线32的通信状态,可以定位处于挂死状态的目标I2C下行总线,并针对性地控制BMC1和目标I2C下行总线进行挂死自恢复。
本申请实施例提供的服务器,包括:基板管理控制器BMC、I2C总线监控器、I2C总线、第一信号线和多个I2C设备,I2C总线包括I2C上行总线和与多个I2C设备分别对应的多条I2C下行总线;也即,服务器新增了I2C总线监控器和第一信号线,并重新设置了I2C总线,使得每个I2C设备都有其一一对应的I2C下行总线;BMC与I2C总线监控器之间通过I2C上行总线和第一信号线相连,第一信号线用于控制BMC;每个I2C设备与I2C总线监控器之间通过相应的I2C下行总线相连;I2C总线监控器用于监控各I2C下行总线的通信状态,在监控到目标I2C下行总线处于挂死状态的情况下,控制BMC和目标I2C下行总线进行挂死自恢复;也即,由于每个I2C设备与I2C总线监控器之间通过相应的I2C下行总线相连,I2C总线监控器可以监控各I2C下行总线的通信状态,可以定位处于挂死状态的目标I2C下行总线,并针对性地控制BMC和目标I2C下行总线进行挂死自恢复。因此,本申请实施例可以单独对处于挂死状态的I2C下行总线进行挂死自恢复,可以保证服务器的稳定性和可靠性。
在一种实施例中,服务器还包括:各I2C设备5分别对应的供电电源6和电子保险丝E-FUSE7以及各E-FUSE7分别对应的第二信号线8;E-FUSE7设置于I2C设备5与供电电源6之间,E-FUSE7与I2C总线监控器2之间通过第二信号线8相连。
具体地,I2C设备5与供电电源6之间设置有E-FUSE7,E-FUSE7与I2C总线监控器2之间通过第二信号线8相连,I2C总线监控器2可以通过第二信号线8控制E-FUSE7的通断。
I2C总线监控器2具体用于:监控各I2C下行总线32的通信状态;在监控到目标I2C下行总线处于挂死状态的情况下,通过第一信号线4控制BMC1丢弃当前读取的从目标I2C下行总线传来的通信数据,并中断针对目标I2C下行总线对应的目标I2C设备的轮询操作;向目标I2C下行总线连续发送9个时钟的数据;在目标I2C下行总线未解除挂死状态的情况下,通过目标第二信号线控制目标I2C设备与供电电源6之间的目标E-FUSE断开后接通;在目标I2C下行总线解除挂死状态的情况下,通过第一信号线4控制BMC1恢复丢弃的通信数据,并恢复针对目标I2C设备的轮询操作。
具体地,在BMC1与I2C设备5之间增加了I2C总线监控器2,I2C总线监控器2可以实时监控各I2C下行总线32的通信状态。I2C总线监控器2在监控到目标I2C下行总线处于挂死状态的情况下,将目标I2C下行总线的标识记录到寄存器中,通过第一信号线4向BMC1发送携带目标I2C下行总线的标识的I2C_ERROR中断信号。BMC1在接收到I2C_ERROR中断信号之后,丢弃当前读取的从目标I2C下行总线传来的通信数据,并中断针对目标I2C下行总线对应的目标I2C设备的轮询操作。BMC1记录目标I2C下行总线处于挂死状态的异常日志,并通知服务器系统及管理人员。
由于BMC在恢复数据时,SDA(Serial Data)信号为低电平,BMC1进行了异常复位,使CLK信号恢复为高电平IDLE状态。I2C总线只能在CLK信号为低电平时才会使SDA信号发生变化,因此,CLK信号为高电平IDLE状态时,SDA信号无法正常输出数据,导致I2C总线挂死。为了尝试解除这种情况导致的目标I2C下行总线挂死,I2C总线监控器2向目标I2C下行总线连续发送9个时钟的数据,使得SDA信号可以在SCL信号为低电平时正常输出数据。
可选地,以I2C总线监控器2向目标I2C下行总线连续发送9个时钟的数据为一个循环,重复操作两个循环,尝试解除目标I2C下行总线的挂死状态,可以提升系统可靠性。
如果I2C总线监控器2向目标I2C下行总线连续发送9个时钟的数据之后,目标I2C下行总线未解除挂死状态,意味着目标I2C下行总线挂死的原因不是目标I2C下行总线异常复位。
此时,为了尝试解除目标I2C设备异常导致的目标I2C下行总线挂死,I2C总线监控器2通过目标第二信号线向目标I2C设备与供电电源6之间的目标E-FUSE发送断开指令,以使目标E-FUSE断开,即控制目标I2C设备掉电复位。然后,I2C总线监控器2通过目标第二信号线向目标E-FUSE发送接通指令,以使目标E-FUSE接通,即控制目标I2C设备上电复位。
如果目标I2C下行总线解除挂死状态,即I2C总线监控器2监控到目标I2C下行总线的电平状态处于IDLE状态,意味着目标I2C下行总线挂死的原因为目标I2C设备异常。通过第一信号线4控制BMC1恢复丢弃的通信数据,并恢复针对目标I2C设备的轮询操作。
在本实施例中,I2C设备与供电电源之间设置有E-FUSE,E-FUSE与I2C总线监控器之间通过第二信号线相连;首先,I2C总线监控器可以监控各I2C下行总线的通信状态;在监控到目标I2C下行总线处于挂死状态的情况下,通过第一信号线控制BMC丢弃当前读取的从目标I2C下行总线传来的通信数据,并中断针对目标I2C下行总线对应的目标I2C设备的轮询操作,避免BMC继续处理从目标I2C下行总线传来的异常通信数据;而后,向目标I2C下行总线连续发送9个时钟的数据,以尝试解除由于目标I2C下行总线异常复位导致的目标I2C下行总线挂死;接着,在目标I2C下行总线未解除挂死状态的情况下,通过目标第二信号线控制目标I2C设备与供电电源之间的目标E-FUSE断开后接通,以尝试解除由于目标I2C设备异常导致的目标I2C下行总线挂死;最后,在目标I2C下行总线解除挂死状态的情况下,通过第一信号线控制BMC恢复丢弃的通信数据,并恢复针对目标I2C设备的轮询操作,从而完成目标I2C下行总线的挂死自恢复,可以保证服务器的稳定性和可靠性。
在一种实施例中,I2C总线监控器2还用于:在控制目标E-FUSE断开后接通之后目标I2C下行总线未解除挂死状态的情况下,通过第一信号线4控制BMC1从轮询设备列表中删除目标I2C设备;通过目标第二信号线控制目标E-FUSE断开。
具体地,如果在控制目标E-FUSE断开后接通之后目标I2C下行总线仍未解除挂死状态,通过第一信号线4控制BMC1从轮询设备列表中删除目标I2C设备,继续轮询剩余的I2C设备,不会影响服务器的正常运行。通过目标第二信号线控制目标E-FUSE断开,不再控制目标E-FUSE接通,可以剔除目标I2C下行总线。
在本实施例中,如果I2C总线监控器控制目标E-FUSE断开后接通之后目标I2C下行总线仍未解除挂死状态,通过第一信号线控制BMC从轮询设备列表中删除目标I2C设备,通过目标第二信号线控制目标E-FUSE断开,可以剔除目标I2C下行总线和目标I2C设备,不会影响其余I2C下行总线和I2C设备的正常工作,从而不会影响服务器的正常运行。
在一种实施例中,I2C总线监控器2还用于:在控制目标E-FUSE断开后接通之后目标I2C下行总线未解除挂死状态的情况下,向目标对象发送告警通知,告警通知用于提示目标对象目标I2C设备出现异常。
具体地,如果I2C总线监控器控制目标E-FUSE断开后接通之后目标I2C下行总线仍未解除挂死状态,向目标对象(例如服务器管理人员)发送告警通知,可以及时提示目标对象目标I2C设备出现异常,需要进行掉电停机维护。
接着,下面结合附图3,通过具体的实施例对本申请实施例提供的服务器的I2C总线挂死自恢复方法进行详细地说明。
请参照图3,图3是本申请实施例提供的服务器的I2C总线挂死自恢复方法的流程示意图。该方法应用于I2C总线监控器2,如图3所示,该方法可以包括以下步骤:
步骤301、监控各I2C下行总线的通信状态。
具体地,在BMC1与I2C设备5之间增加了I2C总线监控器2,I2C总线监控器2可以实时监控各I2C下行总线32的通信状态。
步骤302、在监控到目标I2C下行总线处于挂死状态的情况下,通过第一信号线控制BMC丢弃当前读取的从目标I2C下行总线传来的通信数据,并中断针对目标I2C下行总线对应的目标I2C设备的轮询操作。
具体地,I2C总线监控器2在监控到目标I2C下行总线处于挂死状态的情况下,将目标I2C下行总线的标识记录到寄存器中,通过第一信号线4向BMC1发送携带目标I2C下行总线的标识的I2C_ERROR中断信号。BMC1在接收到I2C_ERROR中断信号之后,丢弃当前读取的从目标I2C下行总线传来的通信数据,并中断针对目标I2C下行总线对应的目标I2C设备的轮询操作。BMC1记录目标I2C下行总线处于挂死状态的异常日志,并通知服务器系统及管理人员。
步骤303、向目标I2C下行总线连续发送9个时钟的数据。
具体地,由于BMC在恢复数据时,SDA信号为低电平,BMC1进行了异常复位,使CLK信号恢复为高电平IDLE状态。I2C总线只能在CLK信号为低电平时才会使SDA信号发生变化,因此,CLK信号为高电平IDLE状态时,SDA信号无法正常输出数据,导致I2C总线挂死。为了尝试解除这种情况导致的目标I2C下行总线挂死,I2C总线监控器2向目标I2C下行总线连续发送9个时钟的数据,使得SDA信号可以在SCL信号为低电平时正常输出数据。
可选地,以I2C总线监控器2向目标I2C下行总线连续发送9个时钟的数据为一个循环,重复操作两个循环,尝试解除目标I2C下行总线的挂死状态,可以提升系统可靠性。
步骤304、在目标I2C下行总线未解除挂死状态的情况下,通过目标第二信号线控制目标I2C设备与供电电源之间的目标E-FUSE断开后接通。
具体地,如果I2C总线监控器2向目标I2C下行总线连续发送9个时钟的数据之后,目标I2C下行总线未解除挂死状态,意味着目标I2C下行总线挂死的原因不是目标I2C下行总线异常复位。
此时,为了尝试解除目标I2C设备异常导致的目标I2C下行总线挂死,I2C总线监控器2通过目标第二信号线向目标I2C设备与供电电源6之间的目标E-FUSE发送断开指令,以使目标E-FUSE断开,即控制目标I2C设备掉电复位。然后,I2C总线监控器2通过目标第二信号线向目标E-FUSE发送接通指令,以使目标E-FUSE接通,即控制目标I2C设备上电复位。
步骤305、在目标I2C下行总线解除挂死状态的情况下,通过第一信号线控制BMC恢复丢弃的通信数据,并恢复针对目标I2C设备的轮询操作。
具体地,如果目标I2C下行总线解除挂死状态,即I2C总线监控器2监控到目标I2C下行总线的电平状态处于IDLE状态,意味着目标I2C下行总线挂死的原因为目标I2C设备异常。通过第一信号线4控制BMC1恢复丢弃的通信数据,并恢复针对目标I2C设备的轮询操作。
本申请实施例提供的服务器的I2C总线挂死自恢复方法,首先,I2C总线监控器可以监控各I2C下行总线的通信状态;在监控到目标I2C下行总线处于挂死状态的情况下,通过第一信号线控制BMC丢弃当前读取的从目标I2C下行总线传来的通信数据,并中断针对目标I2C下行总线对应的目标I2C设备的轮询操作,避免BMC继续处理从目标I2C下行总线传来的异常通信数据;而后,向目标I2C下行总线连续发送9个时钟的数据,以尝试解除由于目标I2C下行总线异常复位导致的目标I2C下行总线挂死;接着,在目标I2C下行总线未解除挂死状态的情况下,通过目标第二信号线控制目标I2C设备与供电电源之间的目标E-FUSE断开后接通,以尝试解除由于目标I2C设备异常导致的目标I2C下行总线挂死;最后,在目标I2C下行总线解除挂死状态的情况下,通过第一信号线控制BMC恢复丢弃的通信数据,并恢复针对目标I2C设备的轮询操作,从而完成目标I2C下行总线的挂死自恢复,可以保证服务器的稳定性和可靠性。
在一种实施例中,该方法还包括:在控制目标E-FUSE断开后接通之后目标I2C下行总线未解除挂死状态的情况下,通过第一信号线控制BMC从轮询设备列表中删除目标I2C设备;通过目标第二信号线控制目标E-FUSE断开。
具体地,如果在控制目标E-FUSE断开后接通之后目标I2C下行总线仍未解除挂死状态,通过第一信号线4控制BMC1从轮询设备列表中删除目标I2C设备,继续轮询剩余的I2C设备,不会影响服务器的正常运行。通过目标第二信号线控制目标E-FUSE断开,不再控制目标E-FUSE接通,可以剔除目标I2C下行总线。
在本实施例中,如果I2C总线监控器控制目标E-FUSE断开后接通之后目标I2C下行总线仍未解除挂死状态,通过第一信号线控制BMC从轮询设备列表中删除目标I2C设备,通过目标第二信号线控制目标E-FUSE断开,可以剔除目标I2C下行总线和目标I2C设备,不会影响其余I2C下行总线和I2C设备的正常工作,从而不会影响服务器的正常运行。
在一种实施例中,该方法还包括:在控制目标E-FUSE断开后接通之后目标I2C下行总线未解除挂死状态的情况下,向目标对象发送告警通知,告警通知用于提示目标对象目标I2C设备出现异常。
具体地,如果I2C总线监控器控制目标E-FUSE断开后接通之后目标I2C下行总线仍未解除挂死状态,向目标对象(例如服务器管理人员)发送告警通知,可以及时提示目标对象目标I2C设备出现异常,需要进行掉电停机维护。
需要说明的是,本申请实施例提供的服务器的I2C总线挂死自恢复方法,执行主体可以为服务器的I2C总线挂死自恢复装置,或者该服务器的I2C总线挂死自恢复装置中的用于执行服务器的I2C总线挂死自恢复方法的控制模块。本申请实施例中以服务器的I2C总线挂死自恢复装置执行服务器的I2C总线挂死自恢复方法为例,说明本申请实施例提供的服务器的I2C总线挂死自恢复装置。
需要说明的是,本申请实施例中,上述各个方法附图所示的服务器的I2C总线挂死自恢复方法均是以结合本申请实施例中的一个附图为例示例性的说明的。具体实现时,上述各个方法附图所示的服务器的I2C总线挂死自恢复方法还可以结合上述实施例中示意的其它可以结合的任意附图实现,此处不再赘述。
下面对本申请提供的服务器的I2C总线挂死自恢复装置进行描述,下文描述的与上文描述的服务器的I2C总线挂死自恢复方法可相互对应参照。
请参照图4,图4是本申请实施例提供的服务器的I2C总线挂死自恢复装置的结构示意图。如图4所示,还装置可以包括:
监控模块10,用于监控各I2C下行总线的通信状态;
第一控制模块20,用于在监控到目标I2C下行总线处于挂死状态的情况下,通过第一信号线控制BMC丢弃当前读取的从目标I2C下行总线传来的通信数据,并中断针对目标I2C下行总线对应的目标I2C设备的轮询操作;
发送模块30,用于向目标I2C下行总线连续发送9个时钟的数据;
第二控制模块40,用于在目标I2C下行总线未解除挂死状态的情况下,通过目标第二信号线控制目标I2C设备与供电电源之间的目标E-FUSE断开后接通;
第三控制模块50,用于在目标I2C下行总线解除挂死状态的情况下,通过第一信号线控制BMC恢复丢弃的通信数据,并恢复针对目标I2C设备的轮询操作。
在一种实施例中,该装置还可以包括:
第四控制模块,用于在控制目标E-FUSE断开后接通之后目标I2C下行总线未解除挂死状态的情况下,通过第一信号线控制BMC从轮询设备列表中删除目标I2C设备;
第五控制模块,用于通过目标第二信号线控制目标E-FUSE断开。
在一种实施例中,该装置还可以包括:
告警模块,用于在控制目标E-FUSE断开后接通之后目标I2C下行总线未解除挂死状态的情况下,向目标对象发送告警通知,告警通知用于提示目标对象目标I2C设备出现异常。
图5示例了一种I2C总线监控器的实体结构示意图,如图5所示,该I2C总线监控器可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行服务器的I2C总线挂死自恢复方法,该方法包括:监控各I2C下行总线的通信状态;在监控到目标I2C下行总线处于挂死状态的情况下,通过第一信号线控制BMC丢弃当前读取的从目标I2C下行总线传来的通信数据,并中断针对目标I2C下行总线对应的目标I2C设备的轮询操作;向目标I2C下行总线连续发送9个时钟的数据;在目标I2C下行总线未解除挂死状态的情况下,通过目标第二信号线控制目标I2C设备与供电电源之间的目标E-FUSE断开后接通;在目标I2C下行总线解除挂死状态的情况下,通过第一信号线控制BMC恢复丢弃的通信数据,并恢复针对目标I2C设备的轮询操作。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的服务器的I2C总线挂死自恢复方法,该方法包括:监控各I2C下行总线的通信状态;在监控到目标I2C下行总线处于挂死状态的情况下,通过第一信号线控制BMC丢弃当前读取的从目标I2C下行总线传来的通信数据,并中断针对目标I2C下行总线对应的目标I2C设备的轮询操作;向目标I2C下行总线连续发送9个时钟的数据;在目标I2C下行总线未解除挂死状态的情况下,通过目标第二信号线控制目标I2C设备与供电电源之间的目标E-FUSE断开后接通;在目标I2C下行总线解除挂死状态的情况下,通过第一信号线控制BMC恢复丢弃的通信数据,并恢复针对目标I2C设备的轮询操作。
又一方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的服务器的I2C总线挂死自恢复方法,该方法包括:监控各I2C下行总线的通信状态;在监控到目标I2C下行总线处于挂死状态的情况下,通过第一信号线控制BMC丢弃当前读取的从目标I2C下行总线传来的通信数据,并中断针对目标I2C下行总线对应的目标I2C设备的轮询操作;向目标I2C下行总线连续发送9个时钟的数据;在目标I2C下行总线未解除挂死状态的情况下,通过目标第二信号线控制目标I2C设备与供电电源之间的目标E-FUSE断开后接通;在目标I2C下行总线解除挂死状态的情况下,通过第一信号线控制BMC恢复丢弃的通信数据,并恢复针对目标I2C设备的轮询操作。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种服务器,其特征在于,包括:基板管理控制器BMC、I2C总线监控器、I2C总线、第一信号线和多个I2C设备;其中,所述I2C总线包括I2C上行总线和与多个所述I2C设备分别对应的多条I2C下行总线;所述BMC与所述I2C总线监控器之间通过所述I2C上行总线和所述第一信号线相连,所述第一信号线用于控制所述BMC;每个所述I2C设备与所述I2C总线监控器之间通过相应的所述I2C下行总线相连;所述I2C总线监控器用于监控各所述I2C下行总线的通信状态,在监控到目标I2C下行总线处于挂死状态的情况下,控制所述BMC和所述目标I2C下行总线进行挂死自恢复。
2.根据权利要求1所述的服务器,其特征在于,所述服务器还包括:各所述I2C设备分别对应的供电电源和电子保险丝E-FUSE以及各所述E-FUSE分别对应的第二信号线;所述E-FUSE设置于所述I2C设备与所述供电电源之间,所述E-FUSE与所述I2C总线监控器之间通过所述第二信号线相连;
所述I2C总线监控器具体用于:
监控各所述I2C下行总线的通信状态;
在监控到所述目标I2C下行总线处于挂死状态的情况下,通过所述第一信号线控制所述BMC丢弃当前读取的从所述目标I2C下行总线传来的通信数据,并中断针对所述目标I2C下行总线对应的目标I2C设备的轮询操作;
向所述目标I2C下行总线连续发送9个时钟的数据;
在所述目标I2C下行总线未解除挂死状态的情况下,通过目标第二信号线控制所述目标I2C设备与所述供电电源之间的目标E-FUSE断开后接通;
在所述目标I2C下行总线解除挂死状态的情况下,通过所述第一信号线控制所述BMC恢复丢弃的所述通信数据,并恢复针对所述目标I2C设备的轮询操作。
3.根据权利要求2所述的服务器,其特征在于,所述I2C总线监控器还用于:
在控制所述目标E-FUSE断开后接通之后所述目标I2C下行总线未解除挂死状态的情况下,通过所述第一信号线控制所述BMC从轮询设备列表中删除所述目标I2C设备;
通过所述目标第二信号线控制所述目标E-FUSE断开。
4.根据权利要求3所述的服务器,其特征在于,所述I2C总线监控器还用于:
在控制所述目标E-FUSE断开后接通之后所述目标I2C下行总线未解除挂死状态的情况下,向目标对象发送告警通知,所述告警通知用于提示所述目标对象所述目标I2C设备出现异常。
5.一种如权利要求2至4任一项所述的服务器的I2C总线挂死自恢复方法,其特征在于,应用于I2C总线监控器,所述方法包括:
监控各I2C下行总线的通信状态;
在监控到目标I2C下行总线处于挂死状态的情况下,通过第一信号线控制BMC丢弃当前读取的从所述目标I2C下行总线传来的通信数据,并中断针对所述目标I2C下行总线对应的目标I2C设备的轮询操作;
向所述目标I2C下行总线连续发送9个时钟的数据;
在所述目标I2C下行总线未解除挂死状态的情况下,通过目标第二信号线控制所述目标I2C设备与供电电源之间的目标E-FUSE断开后接通;
在所述目标I2C下行总线解除挂死状态的情况下,通过所述第一信号线控制所述BMC恢复丢弃的所述通信数据,并恢复针对所述目标I2C设备的轮询操作。
6.根据权利要求5所述的服务器的I2C总线挂死自恢复方法,其特征在于,还包括:
在控制所述目标E-FUSE断开后接通之后所述目标I2C下行总线未解除挂死状态的情况下,通过所述第一信号线控制所述BMC从轮询设备列表中删除所述目标I2C设备;
通过所述目标第二信号线控制所述目标E-FUSE断开。
7.根据权利要求6所述的服务器的I2C总线挂死自恢复方法,其特征在于,还包括:
在控制所述目标E-FUSE断开后接通之后所述目标I2C下行总线未解除挂死状态的情况下,向目标对象发送告警通知,所述告警通知用于提示所述目标对象所述目标I2C设备出现异常。
8.一种如权利要求2至4任一项所述的服务器的I2C总线挂死自恢复装置,其特征在于,包括:
监控模块,用于监控各I2C下行总线的通信状态;
第一控制模块,用于在监控到目标I2C下行总线处于挂死状态的情况下,通过第一信号线控制BMC丢弃当前读取的从所述目标I2C下行总线传来的通信数据,并中断针对所述目标I2C下行总线对应的目标I2C设备的轮询操作;
发送模块,用于向所述目标I2C下行总线连续发送9个时钟的数据;
第二控制模块,用于在所述目标I2C下行总线未解除挂死状态的情况下,通过目标第二信号线控制所述目标I2C设备与供电电源之间的目标E-FUSE断开后接通;
第三控制模块,用于在所述目标I2C下行总线解除挂死状态的情况下,通过所述第一信号线控制所述BMC恢复丢弃的所述通信数据,并恢复针对所述目标I2C设备的轮询操作。
9.一种I2C总线监控器,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求5至7中任一项所述的服务器的I2C总线挂死自恢复方法的步骤。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求5至7中任一项所述的服务器的I2C总线挂死自恢复方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410129403.XA CN118132301A (zh) | 2024-01-30 | 2024-01-30 | 服务器及其i2c总线挂死自恢复方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410129403.XA CN118132301A (zh) | 2024-01-30 | 2024-01-30 | 服务器及其i2c总线挂死自恢复方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118132301A true CN118132301A (zh) | 2024-06-04 |
Family
ID=91246536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410129403.XA Pending CN118132301A (zh) | 2024-01-30 | 2024-01-30 | 服务器及其i2c总线挂死自恢复方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118132301A (zh) |
-
2024
- 2024-01-30 CN CN202410129403.XA patent/CN118132301A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105808394B (zh) | 一种服务器自愈的方法和装置 | |
CN106850286B (zh) | 单板上的基板管理控制器及网元管理盘的基板管理控制器 | |
CN111045866B (zh) | 一种bmc故障处理方法、装置、电子设备及存储介质 | |
CN104598329A (zh) | 一种基于rmc管理的自动bmc故障解决方法 | |
WO2018095107A1 (zh) | 一种bios程序的异常处理方法及装置 | |
JP6130520B2 (ja) | 多重系システムおよび多重系システム管理方法 | |
US20150019671A1 (en) | Information processing system, trouble detecting method, and information processing apparatus | |
US20130159039A1 (en) | Data center infrastructure management system for maintenance | |
CA2124772C (en) | Processor shelf controller | |
US8751847B2 (en) | Method and system for detecting whether a computer server has shut down gracefully | |
CN115686935A (zh) | 数据备份方法、计算机设备及存储介质 | |
CN111831488A (zh) | 具有安全等级设计的tcms-mpu控制单元 | |
CN117992270B (zh) | 一种内存资源管理系统、方法、装置、设备及存储介质 | |
CN112035285A (zh) | 基于高通平台的硬件看门狗电路系统及其监控方法 | |
JP5056504B2 (ja) | 制御装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラム | |
US11455211B2 (en) | Power control system and power control method | |
CN118132301A (zh) | 服务器及其i2c总线挂死自恢复方法、设备及存储介质 | |
CN106407081B (zh) | 一种机箱管理系统及服务器 | |
CN105589821A (zh) | 一种防止总线死锁的装置及方法 | |
CN114296995B (zh) | 一种服务器自主修复bmc的方法、系统、设备及存储介质 | |
CN109491867A (zh) | 一种通讯自动恢复方法和装置 | |
CN114509981B (zh) | 控制器硬件冗余控制方法及系统 | |
CN113867815B (zh) | 服务器挂起监测和自动重启方法以及应用其的服务器 | |
CN101410808A (zh) | 检查管理网络的潜在故障的方法 | |
TW201820137A (zh) | 具有重啟功能的裝置 |
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 |