第11卷第4期Vol.11

服务器硬件检测工具  时间:2021-01-25  阅读:()

No.
42018年2月February2018服务器系统故障的远程调试方法王志德,祝永新*(上海交通大学微电子学院,上海201100)摘要:研究利用一种通过服务器的基板管理控制器(baseboardmanagementcontroller,BMC)系统和平台环境式控制接口(platformenvironmentcontrolinterface,PECI),在不影响服务器本身系统资源且不破坏其运用环境的基础上,实现不需要额外的外部专业系统硬件或软件调试工具,只需要通过服务器带外的网络连接BMC系统,即可远程获取服务器出现故障时的系统处理器和系统平台控制单元(platformcontrollerhub,PCH)芯片组的内部芯片级寄存器以及相关服务器系统内关键设备或部件的数据或状态信息.
通过这些专业的数据信息,服务器系统管理人员就能够快速分析出服务器出现故障的真正故障点,对服务器的维护或维修做出快速且准确的判断或指令.
该设计有效加快了服务器系统的维护速度,降低了服务器的运行维护成本,提高了服务器的运行性能和效率.
关键词:信息处理技术;故障调试;服务器;平台环境式控制接口(PECI);基板管理控制器(BMC)中图分类号:TN919文献标识码:A文章编号:1674-2850(2018)04-0405-08RemotedebuggingmethodofserversystemfailureWANGZhide,ZHUYongxin(SchoolofMicroelectronics,ShanghaiJiaoTongUniversity,Shanghai201100,China)Abstract:Thispaperutilizesserverbaseboardmanagementcontroller(BMC)systemandplatformenvironmentcontrolinterface(PECI)toremotelyachievedataandstatusinformationofsystemprocessor,platformcontrollerhub(PCH)chipsetinternalchiplevelregisterandkeydevicesorcomponentswithinrelatedserversystemwhentheseverappearsfailurethroughserverout-of-bandnetworkconnectionwithBMCsystemwithoutadditionalprofessionalsystemhardwareorsoftwaredebuggingtoolsundernoinfluenceonsevers'ownsystemresourceandapplicationenvironment.
Theserversystemadministratorscouldquicklyanalyzetheserverfailure,findouttherootcause,andgivetheaccuratemaintenancejudgmentandactionsthroughtheprofessionaldataandinformation.
Thisdesigneffectivelypromotesthemaintenancerateofserversystem,decreasestheoperationalmaintenancecostofserver,andimprovestheoperationperformanceandefficiency.
Keywords:informationprocessingtechnology;failuredebugging;server;platformenvironmentcontrolinterface(PECI);baseboardmanagementcontroller(BMC)0引言随着现代社会的信息数据、移动终端及云服务的发展和壮大,越来越多的服务器运用于各行各业,如传统的银行、政府、电信行业和各种新兴的网络运营(网络金融、网络游戏、网络超市等).
2016年3月市场调研机构IDC称,上一年度阿里巴巴采购的X86服务器数量与巴西差不多,腾讯采购的服务器数量比韩国还多,百度采购的数量与新西兰出货量相当,奇虎360采购量与土耳其相当[1].
随着越来越多的服务器被运用,服务器的故障维护和故障分析将越来越重要.
传统的服务器管理方式存在时效性差、服务器宕机无法查找原因、严重占用服务器资源等问题[1],这不仅关系到服务器运行的正确性,更是涉及作者简介:王志德(1978—),男,硕士研究生,主要研究方向:嵌入式系统通信联系人:祝永新,副教授,主要研究方向:计算机系统结构、嵌入式系统、芯片系统级设计.

E-mail:zhuyongxin@sjtu.
edu.
cn第11卷第4期2018年2月中国科技论文在线精品论文406服务器运营客户的体验感,以及商业利益和发展.
传统的故障诊断是由系统管理人员在故障现场根据经验诊断故障原因[2],随着BMC在服务器的应用,虽然系统管理人员渐渐可以利用网络来获取服务器的事件日志和传感器的数据记录并进行分析,通过确认服务器的系统故障,再进行有针对性的恢复,但对一些比较棘手的顽症,例如系统宕机、蓝屏、自动重启等故障就不得不采用最为原始的传统方式,迫使系统管理人员或专业维护人员,带着相关的调试诊断工具赶至或送至故障服务器现场进行现场调试、诊断分析,即便如此,由于时差或环境因素,现场很多数据也没有办法很好地收集和保存.

表1为传统服务器故障调试方法和本文研究的故障调试分析方法的总结和比较.

表1系统故障专业分析方式比较Tab.
1Comparisonofanalysismethodsonsystemfailure性能传统调试方法本文调试分析方法操控性难,需打开系统外盖,热插拔外部调试诊断工具,类似ITP/XDP易,直接页面或命令行读取时效性不可控,某些时候需要等待数小时甚至1~2d只要网络具备就可以随时随地进入调试诊断理解性难,需要专业工程人员解读较难,重点部分重点解析,只需要专业工程人员协助解读远程操作不能可以硬件支持系统主机板需要配备或预留调试接口、专业XDP工具和软件及相应配置文件,特定设备价格昂贵需要系统支持BMC和PECI完整性故障环境容易被破坏;不同配置文件或权限读取结果不同,系统周边设备数据的获取相对完整可以保持问题的原有故障环境;根据特定设计和要求读取主要部分本文利用BMC在原有调试分析的基础上,重点研究如何能够使服务器维护工程人员在即使一些服务器棘手的顽疹发生时或极短的时间内也可以不通过额外的外接设备或专业设备,准确、快速地收集服务器的系统故障信息,使系统管理人员在故障发生的第一时间就可以通过BMC进行远程调试和分析.
1基本技术综述1.
1PECIPECI是由Intel提供的一种常用数字接口,只需要使用一根线就可以实现自身时钟与数据的传输,不需要任何其他的控制信号线[3].
PECI最早主要是为获取处理器的温度而设计的,PECI通过处理器中的数字温度传感器(digitalthermalsensor,DTS)获取处理器的核心温度.
随着PECI的优化和使用,其不仅与Intel的CPU相连接,也与Intel的一些芯片或芯片组相连接,并广泛地运用在一路或多路系统中.
只需要一根信号线的数据传输特性,使其在计算机系统主机板上类处理器和芯片组附近拥挤的线路设计中,灵活布设的优势突显.
PECI采用主从结构,接口支持的传输速度范围介于2kbit/s~2Mbit/s,而且指令简化;支持循环冗余校验(cyclicredundancycheck,CRC)位元组进行错误检验;每个传输信息开始都会同步最小化设备的时间要求.
自Intel酷睿CPU成功应用此项新技术后,PECI现已被普遍应用于服务器笔记本和台式机中.
本课题将通过PECI获取处理器核心温度、Intel处理器和芯片组的内部信息.
1.
2BMCBMC是一个在智能平台管理接口(intelligentplatformmanagementinterface,IPMI)标准规范下提供服务器系统智能管理的控制器[4].
实际上,BMC是一个独立系统,有自己独立的运算器、控制器、存储器、输入输出设备以及可在该系统上运行的各种应用程序.
BMC一般采用高阶精简指令集机器(advancedRISCmachine,ARM)的芯片组和相应的嵌入式操作系统,以Linux居多.
BMC系统通过IPMI管理服务器,为服务器管理实时状态监控、远程服务、系统日志记录和故障预警等一系列智能化功能.
Vol.
11No.
4February2018王志德等:服务器系统故障的远程调试方法4072系统故障调试分析2.
1系统故障调试工作原理服务器系统故障调试分析系统设计的硬件基础是服务器需要支持PECI和独立的服务器BMC系统.
通过服务器的BMC系统,利用其支持的PECI与服务器硬件系统中所支持的PECI设备相互连接,从而使BMC系统可以通过PECI访问到服务器系统中相应的关键设备或部件,例如CPU和PCH芯片组.
如图1所示,在BMC系统中新增一个服务器故障调试分析模块,BMC系统可以通过此故障调试分析模块获取和分析服务器系统中的一些主要部件或设备的实时运行数据,再通过客制化的IPMI命令调用、返回相应的数据.
这样服务器系统运维人员或服务器专业服务工程师就可以通过BMC系统得到故障服务器相应的一些关键系统信息,如CPU内部特殊模块寄存器(modelspecificregister,MSR)[5]数据、系统外部部件互连接口(peripheralcomponentinterconnect,PCI)设备设定信息等.
注:CLI—命令行接口(commandlineinterface);COM—串行通讯接口(clustercommunicationport);IPMB—智能平台管理总线(intelligentplatformmanagementBUS)图1系统故障调试分析结构示意图Fig.
1Schematicofsystemfailuredebugginganalysisstructure2.
2系统故障调试分析模块设计思路服务器系统故障调试分析系统分为软件和硬件两部分.
本文主要设计和讨论软件部分.
如图2所示,服务器故障调试分析系统软件由故障调试分析模块、IPMI控制模块和PECI驱动三部分组成,均集成在服务器主板控制管理系统BMC中.
IPMI控制模块是负责对外沟通的窗口;故障调试分析模块负责通过PECI具体执行和分析服务器系统中关键设备或部件的状态信息;PECI驱动则是故障调试分析模块通过PECI访问硬件设备的中间件.
总结来看,故障调试分析模块是整个系统中最为关键的部分,故障调试分析模块的设计有3个主要功能:1)服务器系统状态信息的收集;2)服务器系统错误信息的收集和分析;3)CPU内部介质访问控制层(mediaaccesscontrol,MCA)数据的收集和分析.
图2系统故障调试分析模块架构示意图Fig.
2Schematicofsystemfailuredebugginganalysismodule第11卷第4期2018年2月中国科技论文在线精品论文4083系统故障调试分析模块的实现与测试3.
1系统故障调试实现流程服务器主板控制管理系统通过PECI直接访问系统CPU和PCH等主要芯片,获取这些关键系统部件芯片级的内部运行状态数据.
在整个系统中有两种工作模式,一种是终端用户手动获取服务器当前状态下的服务器信息;另一种是BMC系统自动读取服务器系统中的系统信息.
终端用户获取服务器故障调试信息,可以通过网络、BMC命令行指令或BMC串口对BMC进行访问,IPMI控制模块解析到终端用户需要对系统进行故障调试分析,以便BMC调用故障调试分析模块.
如图3所示,系统故障调试分析模块工作流程如下:1)首先检测相应的PECI是否正常.
2)如果出现错误,直接报告PECI出错,结束故障调试分析;如果检测结果均正确,故障调试分析模块会解析IPMI控制模块传过来的调试指令.
3)解析出的调试指令如果是获取系统状态信息或解析系统错误信息,可直接首先通过PECI读取所有设备的状态信息或关键数据;如果是读取解析CPU的MCA信息,则直接通过PECI获取CPU内的MCA信息,再解析出来.
4)根据调试指令传递的用户访问方式,对获取的系统信息、解析的系统错误信息或CPU的MCA信息作为不同的返回方式,如果用户是以BMCWebUI的方式获取系统的信息,则最终将以文档的方式由网络存储,再下载传递,如果是以BMC的命令行或COM接口为访问方式获取系统的信息,将以命令行或字符串显示的方式输出希望获取的信息.
图3系统故障调试分析模块实现流程图Fig.
3Systemfailuredebugginganalysismoduleworkingflow当BMC收到服务器系统端发送的当前服务器出现非常严重的系统错误时,BMC将主动读取服务器系统的信息.
在本课题中,如果发生CPU内部错误(internalerror,IERR)[6]和内存控制器的不可纠正错误这两种情况,BMC会主动读取服务器的系统信息,并保存为对应时间的零时文档,以防服务器发生自动重启而破坏故障系统环境,避免无法知悉发生故障时的具体系统状态.

3.
2系统故障调试分析模块的设计与实现服务器系统故障调试分析模块功能的实现主要有三部分,以三个主函数实现,分别为SysDump()、Vol.
11No.
4February2018王志德等:服务器系统故障的远程调试方法409SysErrors()和MCADecoder().
3.
2.
1SysDump()函数SysDump()函数能够实现获取服务器系统中软硬件配置信息、处理器和PCH设备的运行状态、内部寄存器信息以及与它们相连的内外部PCI-E设备的相关信息.
SysDump()函数的部分代码截取如下:SYS_STATUSSysDump(VOID){…//--DumpCPUinformationandstatusfor(intCpu_Index=0;Cpu_IndexProcessor_Dump()函数:根据提供的处理器序号,实现读取CPU内部的MSR、CSR、MCA和PCI-E总线信息,记录在一个TCPU_info.
log临时文档中,返回函数读取运行状态.
PCH_Dump()函数:获取PCH内部设备接口如SATA、USB和PCI-E总线以及连接PCI-E设备相关信息记录在一个TPCH_info.
log文件中,返回函数读取运行状态.
3.
2.
2SysErrors()函数SysErrors()函数通过SysDump()函数读取系统信息,解析其中所有出错的信息并单独显示出来.
SysErrors()函数的部分代码截取如下:SYS_STATUSSysErrors(VOID){//--AnalysisCPUsErrorinformationfor(intCpu_Index=0;Cpu_IndexProcessor_Errors()函数:通过解析利用SysDump()函数获取TCPU_info.
log文档,分析CPU内部相关的错误状态信息,针对CPU内部寄存器的状态值,例如处理器的IERR、MCERR以及集成在处理器芯片内的PCI-E总线的错误状态,保存能够解析的错误信息进入TCPU_err.
log临时文档中,返回函数处理第11卷第4期2018年2月中国科技论文在线精品论文410过程的状态值.
PCH_Errors()函数:通过解析利用SysDump()函数获取TPCH_info.
log文档,分析PCH相关的各种内部接口错误信息,例如SATA控制接口、PCI-E总线的错误信息等,保存能够解析的错误信息进入TPCH_err.
log临时文档中,返回函数处理过程的状态值.
3.
2.
3MCADecoder()函数MCADecoder()函数直接读取指定系统中CPU的MCA值,并做出相应的解析.
MCADecoder()函数的部分代码截取如下:SYS_STATUSMCADecoder(intCPU_index,intMCA_Max){inti=0;do{Status=RdMSR(CPU_index,MCA_ADD[i]);Decoder_MCA_Errors();i++;}while(i<=MCA_Max);}MCADecoder()函数直接读取指定系统中CPU的MCA值,并做出相应的解析.
目前实现的主要MCA如下:#DEFINEIA32_MC0_CTL0X400#DEFINEIA32_MC0_STATUS0X401#DEFINEIA32_MC0_ADDR0X402#DEFINEIA32_MC0_MISC0X403#DEFINEIA32_MC0_MISC20X280#DEFINEIA32_MC1_CTL0X404#DEFINEIA32_MC1_STATUS0X405#DEFINEIA32_MC1_ADDR0X406#DEFINEIA32_MC1_MISC0X407#DEFINEIA32_MC1_MISC20X2813.
3系统故障调试功能测试与验证本课题测试验证以IntelSkylakeX86的两路服务器为开发测试平台,此服务器主机板上集成了AST2500的服务器BMC芯片控制器.
测试验证的思路和方法:IntelSkylakeX86服务器为被测试的HOST主机,一台安装Linux操作系统的笔记本为测试终端,将X86服务器的BMC网络接口和笔记本接入同一网络,通过测试终端连接服务器的BMC,X86服务器的BMC软件被烧录为支持服务器系统故障调试分析系统.
通过利用IPMITOOL工具和操作系统的网络浏览器分别对系统故障调试分析系统做BMC的命令行和Web窗口登录及访问测试.
图4为通过IPMITOOL在Linux操作系统内,获取服务器系统当前处理器的标识信息,0X050652表示Intel(R)SkyLakeB-0版本的处理器,符合实际IntelCPU的标识信息.
实际上此功能可通过Intel支持PECIrdpkgconfig指令中的CPUIDread获取.
该测试的目的为验证故障调试分析模块的PECI、PECI驱动及BMC命令行的模式运行状态.
Vol.
11No.
4February2018王志德等:服务器系统故障的远程调试方法411图4系统故障调试分析模块命令行接口模式功能测试Fig.
4SystemfailuredebugginganalysismoduleCLImodefunctiontesting图5为通过IPMITOOL在Linux操作系统内,获取当前服务器系统中MCA的错误状态.
返回值0xE00000表示当前服务器系统有发生MCA错误.
图5系统故障调试分析模块命令行接口模式MCA错误检测功能测试Fig.
5SystemfailuredebugginganalysismoduleCLImodeMCAerrorcheckingfunctiontesting以上两个测试是测试终端通过网络使用IPMITOOL工具和客制化的IPMI命令,验证故障调试分析系统的功能是否正常.
由测试结果可以看出,通过PECI读取的处理器内部标识信息和检测MCA出错数据信息均正确.
但很明显,通过这种方式操作繁琐,解析也不容易.
与IntelCPU专业测试工具ITP/XDP读取和解析难度相近,唯一不同的是节省了专业工具的实物接入和时间,同时具有远程操作的便利性.

图6为系统故障调试分析网页登录后的显示,按功能有4个选择项分别选择下载不同的文档,最终文档以XML文件保存.
SystemLog实现的功能是保存和分析服务器系统中已关注的处理器、PCH等一系列的数据;SystemErrorLog实现的功能是保存和分析服务器系统中已出错的数据和信息;MCALog实现的功能是保存和分析系统中处理器内MCA的已出错信息;LastSystemLog实现的功能是保存和分析服务器在自动重启前的系统数据和信息.
图6系统故障调试分析模块网页模式功能Fig.
6Webmodefunctionofsystemfailuredebugginganalysismodule图7为SystemLog选项的XML文件保存显示,可下载的XML文档分为调试数据存档开始时间、服务器系统SMBIOS数据表[7]、处理器内部寄存器数据和其他状态值以及PCH芯片组和PCI-E设备配置信息.
测试终端访问BMC网页端的结果显示,在通过网络从BMC网页界面的窗口来看,服务器故障调试分析的特点明显,不仅可以读取服务器内部的处理器、PCH、PCI-E设备的数据,而且可以读取服务器系统配置信息中的SMBIOS表,并保存解析到同一个XML文件中,使整个故障数据的收集简单明了.
通过规范的整理和分析可知,这种方式操作简单、解析方便,服务器系统管理人员和设计人员只需要通过网络做按键操作就能够与IntelCPU专业测试工具获取相同的服务器主要芯片组的核心数据,并做出分析.
既节省了专业工具和时间,又可以远程操作,便捷性强.
第11卷第4期2018年2月中国科技论文在线精品论文412图7系统故障调试分析模块网页模式下载的系统信息文件Fig.
7SystemlogfileofsystemfailuredebugginganalysismodulebyWebmodedownloading4结论本文研究了服务器系统故障调试分析方法,基于服务器现在或传统的调试分析方法,充分利用服务器自带的BMC系统和PECI,研究和实现了只需要通过服务器自身的硬件和软件,不需要再通过一些昂贵的专业硬件工具和软件,就可以直接对服务器故障进行远程的相对专业的调试和分析,不仅充分利用了服务器自身的软件和硬件,突出自身性能价值,还节省了通过外部专业设备调试和分析的软件、硬件、时间及其他费用,更重要的是只要有网络就可以随时随地进行调试分析,快捷、实效性好.
本文实现了故障调试分析系统对服务器系统信息的获取、系统错误信息的解析、处理器内部MCA的专业解析和关键错误系统自动重启系统状态信息保存等方面的设计,为服务器管理人员提供了方便的调试分析方式,为整个服务器的系统故障调试和分析提供了有力帮助,加快了服务器的维护速度,提高了服务器的运行性能和效率.
[参考文献](References)[1]王栩浩.
基于IPMI的服务器管理系统的实现[D].
上海:东华大学,2016.
WANGXH.
ImplementationofservermanagementsystembasedonIPMI[D].
Shanghai:DonghuaUniversity,2016.
(inChinese)[2]童燕.
基于IPMI的智能平台管理系统的实现[D].
上海:东华师范大学,2008.
TONGY.
ImplementationofintelligentplatformmanagementsystembasedonIPMI[D].
Shanghai:EastChinaNormalUniversity,2008.
(inChinese)[3]Intel.
Platformenvironmentcontrolinterface.
PECI3.
1[R/OL].
2015[2015-05-20].
https://cdrd.
intel.
com/v1/dl/getContent/554767.
[4]IntelHewlett-PackardNECDell.
IntelligentplatformmanagementinterfacespecificationV2.
0Rev1.
1[R/OL].
2013[2013-10-1].
https://www.
intel.
com/content/www/us/en/servers/ipmi/ipmi-v2-rev1-1-spec-errata-6-markup.
html.

[黑五]ProfitServer新加坡/德国/荷兰/西班牙VPS五折,不限流量KVM月付2.88美元起

ProfitServer已开启了黑色星期五的促销活动,一直到本月底,商家新加坡、荷兰、德国和西班牙机房VPS直接5折,无码直购最低每月2.88美元起,不限制流量,提供IPv4+IPv6。这是一家始于2003年的俄罗斯主机商,提供虚拟主机、VPS、独立服务器、SSL证书、域名等产品,可选数据中心包括俄罗斯、法国、荷兰、美国、新加坡、拉脱维亚、捷克、保加利亚等多个国家和地区。我们随便以一个数据中心为例...

Hosteons:洛杉矶/纽约/达拉斯免费升级10Gbps端口,KVM年付21美元起

今年1月的时候Hosteons开始提供1Gbps端口KVM架构VPS,目前商家在LET发布消息,到本月30日之前,用户下单洛杉矶/纽约/达拉斯三个地区机房KVM主机可以从1Gbps免费升级到10Gbps端口,最低年付仅21美元起。Hosteons是一家成立于2018年的国外VPS主机商,主要提供VPS、Hybrid Dedicated Servers及独立服务器租用等,提供IPv4+IPv6,支持...

美国高防云服务器 1核 1G 26元/月 香港/日本站群服务器 E5 16G 1600元/月 触摸云

触摸云国内IDC/ISP资质齐全商家,与香港公司联合运营, 已超8年运营 。本次为大家带来的是双12特惠活动,美国高防|美国大宽带买就可申请配置升档一级[CPU内存宽带流量选一]升档方式:CPU内存宽带流量任选其一,工单申请免费升级一档珠海触摸云科技有限公司官方网站:https://cmzi.com/可新购免费升档配置套餐:地区CPU内存带宽数据盘价格购买地址美国高防 1核 1G10M20G 26...

服务器硬件检测工具为你推荐
马云将从软银董事会辞职马云为什么辞职桌面背景图片风景有没有高清唯美天然风景电脑桌面壁纸月付百万的女人们满身香水味的女人和满身油烟味的女人,那种才男人们最想要的的女人?腾讯空间首页腾讯空间主页哪去了录屏软件哪个好有什么好用的录制屏幕的软件吗朱祁钰和朱祁镇哪个好朱高炽是不是被朱瞻基谋杀的?朱祁镇和朱祁钰谁更好炒股软件哪个好最好的炒股软件是哪个?手机音乐播放器哪个好哪种手机音乐播放器最好考生个人空间登录自学考试的“考生个人空间”密码忘记了……一定要本人带身份证和考籍证去有关部门吗?考生个人空间登录第一次登陆湖南省高等教育自学考试 考生个人空间就密码不对为什么
太原域名注册 个人域名备案流程 互联网域名管理办法 hnyd qq数据库下载 免费申请网站 韩国代理ip 德隆中文网 免费个人主页 阵亡将士纪念日 重庆服务器 香港ip 碳云 .htaccess ipower 2016黑色星期五 e-mail web服务器有哪些 美国西雅图独立 大硬盘分区 更多