本发明涉及计算机技术,特别涉及一种提高计算机系统稳定性的方法及计算机系统。
背景技术:
由于高端容错计算机系统承载着金融、电信、航空、电力等行业的关键业务(missioncritical),需要保证365天24小时不间断的运行,并保证数据的正确性,因此需要具备高度的稳定性、可用性与可服务性(reliability、availabilityandserviceability,ras)特性。具体来说,稳定性要求计算机能够持续运转,自动检测和纠正系统错误。可用性要求计算机系统的重要资源都有备份,能够检测到潜在要发生的问题,并且能够转移其上正在运行的任务到备份资源,以保持计算机系统正常运行,减少宕机时间。可服务性要求计算机系统能够实时在线诊断,精确定位出根本问题所在,做到准确无误的快速修复。
现有技术中,通常通过板上管理(onboardadministrator,oa)来收集运行中的计算机系统的设备错误数据,以利用这些错误数据进行故障的预测。当设备故障次数达到设定阈值时,启用备份设备或进行热替换。这些错误数据严重影响重新启动的计算机系统或已经下线,之后再次上线启用的设备的稳定性。
技术实现要素:
本发明实施例提出一种提高计算机系统稳定性的方法及计算机系统,以提高计算机系统的稳定性。
本发明实施例提供了一种提高计算机系统稳定性的方法,包括:
计算机系统在启动或运行时,收集所述计算机系统的设备产生的错误数据;
将所述错误数据存储到非易失性存储器中;
所述计算机系统重启时,根据所述错误数据对产生所述错误数据的设备进行状态恢复处理。
本发明实施例还提供了一种提高计算机系统稳定性的方法,包括:
计算机系统在运行时,收集所述计算机系统的设备中发生异常的设备的异常信息;
将发生异常的设备的所述异常信息存储到非易失性存储器中;
所述计算机系统根据所述异常信息对请求重新上线的已下线的所述设备进行状态恢复。
本发明实施例还提供了一种计算机系统,包括:
错误收集单元,用于在计算机系统运行或启动时,收集所述计算机系统的设备产生的错误数据;
存储单元,用于将所述错误数据存储到非易失性存储器中;
恢复处理单元,用于在所述计算机系统重启时,根据所述错误数据对产生所述错误数据的设备进行状态恢复处理。
本发明实施例还提供了一种计算机系统,包括:
异常信息收集单元,用于在计算机系统运行时,收集所述计算机系统的设备中发生异常的设备的异常信息;
存储单元,用于将发生异常的设备的所述异常信息存储到非易失性存储器中;
状态恢复单元,用于根据所述异常信息对请求重新上线的已下线的所述设备进行状态恢复。
本发明实施例提供的提高计算机系统稳定性的方法及计算机系统,通过在计算机系统运行中将错误数据记录到非易失性存储器中,并在重新启动过程中读取非易失性存储器中的错误数据对计算机系统中对应的设备进行状态恢复处理,解决了计算机系统在重启后设备状态初始化导致的计算机系统之前对一些异常或预测会损坏的设备的禁用、隔离等处理失效,直接导致系统稳定性的降低的问题,提高了计算机系统的稳定性。
附图说明
图1为本发明实施例提供的一种提高计算机系统稳定性的方法的流程图;
图2为本发明实施例提供的另一种提高计算机系统稳定性的方法的流程图;
图3为本发明实施例提供的提高计算机系统稳定性的方法中计算机系统重启情况下的设备状态恢复示意图;
图4为本发明实施例提供的提高计算机系统稳定性的方法中计算机系统的bios策略配置菜单示意图;
图5为本发明实施例提供的提高计算机系统稳定性的方法中dimm隔离状态恢复流程图;
图6为本发明实施例提供的提高计算机系统稳定性的方法中处理器核禁用恢复处理流程图;
图7为本发明实施例提供的提高计算机系统稳定性的方法中缓存禁用信息的状态恢复处理流程图;
图8为本发明实施例提供的提高计算机系统稳定性的方法中已下线的发生异常的节点重新上线的状态恢复处理流程图;
图9为本发明实施例提供的一种计算机系统的结构示意图;
图10为本发明实施例提供的另一种计算机系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
图1为本发明实施例提供的一种提高计算机系统稳定性的方法的流程图。本实施例针对重新启动的计算机系统在上一次运行时收集的错误数据对计算机系统中的设备进行状态恢复,以提高计算机系统的稳定性。如图1所示,该方法包括:
步骤11、计算机系统在启动或运行时,收集所述计算机系统的设备产生的错误数据;错误数据可以是设备的异常信息、双列直插式存储模块(dualinlinememorymodules,dimm)隔离信息、处理器核的禁用信息、缓存禁用信息等。
步骤12、将所述存储到非易失性存储器(non-volatilememory,nvm)中。
当错误数据为设备的异常信息时,计算机系统在运行时将发生异常的设备的异常信息存储到所述非易失性存储器中;
该方法还包括:所述计算机系统在运行时根据所述异常信息,对请求重新上线的已下线的所述设备进行状态恢复。
当错误数据为dimm隔离信息时,所述计算机系统在运行时判断所述dimm是否被替换,若是,则将存储在所述非易失性存储器中的所述dimm隔离信息进行清除;否则,所述计算机系统重启时将所述dimm隔离。
步骤13、所述计算机系统重启时,根据所述错误数据对产生所述错误数据的设备进行状态恢复处理。
例如计算机系统根据dimm隔离信息对所述计算机系统中对应的dimm进行隔离。再如计算机系统根据处理器核的禁用信息禁止所述计算机系统中对应的处理器核参与处理器启动处理线程(processorbootstrapprocessor,pbsp)的选择,或禁用所述计算机系统中对应的处理器核。又如计算机系统根据缓存禁用信息重新禁用所述计算机系统中对应的缓存。
本实施例中,计算机系统通过将运行时收集的错误数据存储在nvm中,并通过在重启时根据错误数据对对应设备进行状态恢复处理,避免了初始化后计算机系统将有问题的或不稳定的设备作为正常设备启用,提高了计算机系统的稳定性。
图2为本发明实施例提供的另一种提高计算机系统稳定性的方法的流程图。本实施例单独针对运行的计算机系统中异常设备下线后重新上线导致计算机系统不稳定的问题进行处理。如图2所示,该方法包括:
步骤21、计算机系统在运行时,收集所述计算机系统的设备中发生异常的设备的异常信息;
步骤22、将发生异常的设备的所述异常信息存储到非易失性存储器中;
步骤23、所述计算机系统根据所述异常信息对请求重新上线的已下线的所述设备进行状态恢复。
计算机系统在运行时将发生异常的设备的异常信息存储到所述非易失性存储器中之后,还可包括:所述计算机系统判断所述设备是否被替换,若是,则删除所述非易失性存储器中的所述异常信息;否则,执行所述状态恢复。
本实施例中,计算机系统通过根据nvm中存储的异常信息对对应的重新请求上线的已下线的设备进行状态恢复,避免了由于设备异常而下线的设备作为正常设备重新上线而导致的系统不稳定,提高了计算机系统的稳定性。
例如在计算机系统运行时,如果其中的设备出现故障或被系统禁用,其基本输入输出系统(basicinputoutputsystem,bios)会将这些信息保存在nvm中。当计算机系统重新启动时,对这些信息进行分析和处理,在不稳定设备启动前根据这些信息进行系统配置,将不稳定设备隔离或禁用,还原计算机系统中不稳定设备到重启前的状态,以保证计算机系统的稳定性。
图3为本发明实施例提供的提高计算机系统稳定性的方法中计算机系统重启情况下的设备状态恢复示意图。如图3所示,计算机系统运行时,将收集的dimm隔离信息、处理器核健康状态信息及缓存禁用信息等错误数据存储到nvm中,当计算机系统重启时,开启bios配置策略,即在bios配置界面开启设备状态恢复功能,从nvm获取错误数据,根据相应的错误数据调用相应的设备状态恢复分发程序对对应的设备进行状态恢复处理。
进一步地,bios配置界面还可设置有开关,以使用户根据需求进行灵活的设备状态恢复。如图4所示,按照需求分别开启不同设备的配置策略开关,只有处于开启状态的设备才会按照相应策略进行状态恢复。当重启开始,进行系统初始化时,系统会进入设备状态恢复分发程序。
下面以图4所示dimm隔离信息、处理器核健康状况信息和缓存被禁用信息为例,对提高计算机系统稳定性的方法做进一步详细的说明。
当这些错误数据产生后,bios将这些错误数据保存在非易失性存储器中,当计算机系统重新启动进行初始化时,调用设备状态恢复分发程序,从nvm中获取这些错误数据,按照不同的策略进行处理。
具体地,dimm隔离状态恢复流程如图5所示,包括:
步骤51、计算机系统运行时,某一dimm的错误检查与纠正(errorcorrectingcode,ecc)错误达到规定阈值;
步骤52、计算机系统通过log信息识别出错误来源;
步骤53、计算机系统标记该dimm为即将失效状态,并将该dimm禁用;
步骤54、计算机系统将失效dimm信息保存到nvm中;
步骤55、计算机系统判断dimm是否被替换,若是,则执行步骤58;否则,执行步骤56;
步骤56、计算机系统重新启动后读取nvm中存储的dimm信息;
步骤57、计算机系统调用设备状态恢复分发程序,将对应的dimm隔离,计算机系统继续启动,引导操作系统(operationsystem,os)。
步骤58、计算机系统清除nvm中该失效dimm信息,计算机系统恢复为健康状态。
本实施例中,计算机系统中的dimm通过ecc等机制来对其中的数据进行保护,当发现ecc错误数量达到设定的阈值上限时,系统会将此dimm标记为失效状态并禁用,将失效信息保存在nvm中。在计算机系统继续正常运行到重启的这段时间内,如果dimm通过热插拔流程进行了更换,则将nvm中该dimm的失效信息清除。否则,当系统重新启动时,在启动过程中调用设备状态恢复分发程序,读取系统中所有dimm的失效信息,使用配置程序将其隔离。
处理器核禁用恢复处理流程如图6所示,包括:
步骤61、计算机系统在第一次启动时,检测处理器核的健康状况;
步骤62、计算机系统对未通过检测的处理器核进行禁用;
步骤63、计算机系统记录该禁用信息到nvm中;
步骤64、pbsp选择,计算机系统继续启动,引导os;
步骤65、计算机系统第二次启动时,调用设备状态恢复分发程序,从nvm中读取禁用信息;
步骤66、计算机系统根据读取的禁用信息禁止对应的处理器核参与pbsp选择,或直接禁用对应的处理器核;
步骤67、计算机系统继续启动,检测处理器核的健康状况;
步骤68、计算机系统对未经过检测的处理器核进行禁用;
步骤69、计算机系统将禁用信息记录到nvm中。
之后,计算机系统进行pbsp选择,计算机系统继续启动,引导os。
系统启动时有可能会检测到一些不稳定的核,在本次启动中该核会被屏蔽,但下次启动时,该核却仍有可能通过检测,进一步竞争pbsp和sbsp成为系统主线程,这时如果该核发生问题,整个系统就会立即崩溃。本处理流程中将检测到的不稳定核的信息存储在nvm中,下次启动时通过设备状态恢复流程识别并限制不稳定的核参与pbsp竞争或直接将该核禁用。
针对缓存禁用信息的状态恢复处理流程如图7所示,包括:
步骤71、计算机系统中,某缓存(cacheline)发生ecc错误次数达到阈值时,计算机系统禁用该缓存。
步骤72、计算机系统记录该禁用信息到nvm中;
步骤73、计算机系统重新启动时,调用设备状态恢复分发程序,读取缓存禁用信息;
步骤74、计算机系统使用系统服务对缓存进行重新配置。
之后,计算机系统继续启动,引导os。
缓存安全技术中规定,当某条cachelineecc错误次数达到阈值后,会被系统禁用,本处理流程通过nvm保存此信息,当下一次计算机系统启动时,调用设备状态恢复分发程序读取此信息,进行cacheline配置,将曾经标记为禁用的cacheline重新关闭。
在运行的计算机系统中设备发生异常的信息都被保存到nvm中,假设一个场景中,用户由于节能或其它需求,对运行中的计算机系统中的某一发生异常的节点进行了下线请求,计算机系统完成了下线操作后,由于业务需要,用户请求将已下线的节点重新上线,这时系统会调用设备状态恢复程序,对节点状态进行恢复处理,具体如图8所示,包括:
步骤81、运行的计算机系统中设备发生异常时,对异常状况进行处理。
步骤82、将异常信息保持在nvm中;
步骤83、用户需求将某一节点或设备下线;
步骤84、下线操作完成,计算机系统继续运行;
步骤85、用户需求将已下线节点或设备重新上线;
步骤86、计算机系统在上线操作中调用设备状态恢复分发程序,对各个设备进行状态恢复操作;
步骤87、设备上线;
步骤88、计算机系继续运行。
这个恢复操作是可选的,如图4所示可以采用bios配置界面中设置的开关在上线操作时进行配置。
本处理流程与上述处理流程最大的不同在于不涉及计算机系统重启,整个操作是动态进行的。
上述方法实施例通过在计算机系统运行中将错误数据记录到nvm中,并在重新启动过程中读取nvm中的错误数据对计算机系统中对应的设备进行状态恢复处理,解决了计算机系统在重启后设备状态初始化导致的计算机系统之前对一些异常或预测会损坏的设备的禁用、隔离等处理失效,直接导致系统稳定性的降低的问题,提高了计算机系统的稳定性。并且,通过在运行的计算机系统中的设备上线流程中将异常信息保存到nvm中,并在该设备重新上线过程中根据nvm保存的异常信息对该设备进行恢复处理,解决了在计算机系统运行过程中,用户请求设备下线后重新上线,这时设备下线前的状态会被初始化,设备中被禁用的不稳定部分(可能是另一个子设备)可能再次运行于系统中,造成系统稳定性下降的问题,提高了计算机系统的稳定性。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令及相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
图9为本发明实施例提供的一种计算机系统的结构示意图。如图9所示,计算机系统包括:错误收集单元91、存储单元92及恢复处理单元93。
错误收集单元91用于在计算机系统运行或启动时,收集所述计算机系统的设备产生的错误数据;存储单元92用于将所述错误数据存储到nvm中;恢复处理单元93用于在所述计算机系统重启时,根根据所述错误数据对产生所述错误数据的设备进行状态恢复处理。
当所述错误数据为所述设备的异常信息,所述恢复处理单元93还用于在所述计算机系统运行时根据所述异常信息,对请求重新上线的已下线的所述设备进行状态恢复。
再如所述恢复处理单元93具体用于根据dimm隔离信息对所述计算机系统中对应的dimm进行隔离。
所述计算机系统还可包括:替换判断单元及信息清除单元。
替换判断单元用于在所述计算机系统运行时判断所述dimm是否被替换;信息清除单元用于若所述替换判断单元判断所述dimm是被替换,则将存储在所述非易失性存储器中的所述dimm隔离信息进行清除;相应地,所述恢复处理单元用于若所述替换判断单元判断所述dimm未被替换,则在所述计算机系统重启时将所述dimm隔离。
又如所述恢复处理单元93可具体用于根据处理器核的禁用信息禁止所述计算机系统中对应的处理器核参与pbsp的选择,或禁用所述计算机系统中对应的处理器核。
又如所述恢复处理单元93可具体用于根据缓存禁用信息重新关闭所述计算机系统中对应的缓存。上述错误收集单元收集的错误数据及恢复处理单元进行的恢复处理操作具体详见上述方法实施例中的说明。
本实施例中,计算机系统通过错误收集单元将运行时收集的错误数据存储在nvm中,并通过恢复处理单元在重启时根据错误数据对对应设备进行状态恢复处理,避免了初始化后计算机系统将有问题的或不稳定的设备作为正常设备启用,提高了计算机系统的稳定性。
图10为本发明实施例提供的另一种计算机系统的结构示意图。如图10所示,计算机系统包括:异常信息收集单元101、存储单元102及状态恢复单元103。
异常信息收集单元101用于在计算机系统运行时,收集所述计算机系统的设备中发生异常的设备的异常信息;存储单元102用于将发生异常的设备的所述异常信息存储到nvm中;状态恢复单元103用于根据所述异常信息对请求重新上线的已下线的所述设备进行状态恢复。
本发明实施例提供的计算机系统还可包括:替换判断单元及信息删除单元。
替换判断单元用于在所述计算机系统运行时将发生异常的设备的异常信息存储到所述非易失性存储器中之后,判断所述设备是否被替换;信息删除单元用于若所述替换判断单元判断所述设备是被替换,则删除所述非易失性存储器中的所述异常信息;相应地,所述状态恢复单元用于若所述替换判断单元判断所述设备未被替换,则执行所述状态恢复。
本实施例中,计算机系统通过状态恢复单元根据nvm中存储的异常信息对对应的重新请求上线的已下线的设备进行状态恢复,避免了由于设备异常而下线的设备作为正常设备重新上线而导致的系统不稳定,提高了计算机系统的稳定性。
上述系统实施例中各单元可设置在bios中。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
1.一种提高计算机系统稳定性的方法,其特征在于,包括:
计算机系统在启动或运行时,收集所述计算机系统的设备产生的错误数据;
将所述错误数据存储到非易失性存储器中;
所述计算机系统重启时,根据所述错误数据对产生所述错误数据的设备进行状态恢复处理。
2.根据权利要求1所述的提高计算机系统稳定性的方法,其特征在于,所述错误数据为所述设备的异常信息;
所述方法还包括:所述计算机系统在运行时根据所述异常信息,对请求重新上线的已下线的所述设备进行状态恢复。
3.根据权利要求1或2所述的提高计算机系统稳定性的方法,其特征在于,所述错误数据为双列直插式存储模块dimm隔离信息;
根据所述错误数据对所述计算机系统中对应的设备进行状态恢复处理的过程,包括:
根据所述dimm隔离信息对所述计算机系统中对应的dimm进行隔离。
4.根据权利要求3所述的提高计算机系统稳定性的方法,其特征在于,所述计算机系统在运行时判断所述dimm是否被替换,若是,则将存储在所述非易失性存储器中的所述dimm隔离信息进行清除;否则,所述计算机系统重启时将所述dimm隔离。
5.根据权利要求1或2所述的提高计算机系统稳定性的方法,其特征在于,所述错误数据为处理器核的禁用信息;
根据所述处理器核的禁用信息禁止所述计算机系统中对应的处理器核参与pbsp的选择,或禁用所述计算机系统中对应的处理器核。
6.根据权利要求1或2所述的提高计算机系统稳定性的方法,其特征在于,所述错误数据为缓存禁用信息;
根据所述缓存禁用信息重新关闭所述计算机系统中对应的缓存。
7.一种提高计算机系统稳定性的方法,其特征在于,包括:
计算机系统在运行时,收集所述计算机系统的设备中发生异常的设备的异常信息;
将发生异常的设备的所述异常信息存储到非易失性存储器中;
所述计算机系统根据所述异常信息对请求重新上线的已下线的所述设备进行状态恢复。
8.根据权利要求7所述的提高计算机系统稳定性的方法,其特征在于,计算机系统在运行时将发生异常的设备的异常信息存储到所述非易失性存储器中之后,还包括:所述计算机系统判断所述设备是否被替换,若是,则删除所述非易失性存储器中的所述异常信息;否则,执行所述状态恢复。
9.一种计算机系统,其特征在于,包括:
错误收集单元,用于在计算机系统运行或启动时,收集所述计算机系统的设备产生的错误数据;
存储单元,用于将所述错误数据存储到非易失性存储器中;
恢复处理单元,用于在所述计算机系统重启时,根据所述错误数据对产生所述错误数据的设备进行状态恢复处理。
10.根据权利要求9所述的计算机系统,其特征在于,所述错误数据为所述设备的异常信息;
所述恢复处理单元还用于在所述计算机系统运行时根据所述异常信息,对请求重新上线的已下线的所述设备进行状态恢复。
11.根据权利要求9或10所述的计算机系统,其特征在于,所述错误数据为双列直插式存储模块dimm隔离信息;所述恢复处理单元具体用于根据dimm隔离信息对所述计算机系统中对应的dimm进行隔离。
12.根据权利要求11所述的计算机系统,其特征在于,还包括:
替换判断单元,用于在所述计算机系统运行时判断所述dimm是否被替换;
信息清除单元,用于若所述替换判断单元判断所述dimm是被替换,则将存储在所述非易失性存储器中的所述dimm隔离信息进行清除;
所述恢复处理单元,用于若所述替换判断单元判断所述dimm未被替换,则在所述计算机系统重启时将所述dimm隔离。
13.根据权利要求9或10所述的计算机系统,其特征在于,所述错误数据为处理器核的禁用信息;所述恢复处理单元具体用于根据处理器核的禁用信息禁止所述计算机系统中对应的处理器核参与pbsp的选择,或禁用所述计算机系统中对应的处理器核。
14.根据权利要求9或10所述的计算机系统,其特征在于,所述错误数据为缓存禁用信息;所述恢复处理单元具体用于根据缓存禁用信息重新关闭所述计算机系统中对应的缓存。
15.一种计算机系统,其特征在于,包括:
异常信息收集单元,用于在计算机系统运行时,收集所述计算机系统的设备中发生异常的设备的异常信息;
存储单元,用于将发生异常的设备的所述异常信息存储到非易失性存储器中;
状态恢复单元,用于根据所述异常信息对请求重新上线的已下线的所述设备进行状态恢复。
16.根据权利要求15所述的计算机系统,其特征在于,还包括:
替换判断单元,用于在所述计算机系统运行时将发生异常的设备的异常信息存储到所述非易失性存储器中之后,判断所述设备是否被替换;
信息删除单元,用于若所述替换判断单元判断所述设备是被替换,则删除所述非易失性存储器中的所述异常信息;
所述状态恢复单元,用于若所述替换判断单元判断所述设备未被替换,则执行所述状态恢复。
技术总结