中南学院硕士学位论文Linux平台下IPMI驱动程序设计与实现姓名:****请学位级别:硕士专业:计算机应用技术指导班主任:**刚20090513摘要目前主流的IPMI驱动程序各有特色,大部份难以达到跨显卡,不能手动探测系统中支持的IPMI系统插口类型,且大多不支持多用本文针对上述问题提出了解决方案,设计并实现了一个支持多用户的IPMI驱动程序。本论文研究了在Linux平台下读取和剖析SMBl0S中信息的方式linux软件管理平台设计与实现 pdf,从中获得与IPMI相关的信息(如主机支持的系统插口类型),而且手动初始化IPMI系统插口,改进了大部份传统驱动程序采用固定端口地址与基板管理微控制器通讯的缺陷,进而实现了跨显卡的特传统IPMI驱动多为单线程程序,因而只能接受单用户访问。本文对IPMI用户、IPMI消息和IPMI系统插口进行统一编号管理,整个系统基于风波驱动,在用户发送命令的同时注册用于接收回复的反弹函数,在实现多用户访问的基础上,本文首次提出了一种在多用户情况下对BMC的访问调度策略,实验表明,该策略具有较好的疗效。本文笔用松散耦合的模块化设计,模块之间用具象化的插口相连,大大提高了系统的可扩充性,应用程序插口模块向应用程序提供简单易用的插口。
消息管理器模块处理核心逻辑,具有承上启下的功能。IPMI系统插口模块负责直接与BMC通讯。本文最后通过实验与其他IPMI驱动做比较,验证本驱动跨显卡特点和多用户情况下的响应性能。关键词服务器管理,Linux驱动,智能管理平台插口,SMBIOSABSTRACTCurrently,mostIPMIdrivershavetheirownadvantagefeatures,however,mostofthemcouldnotberunondifferentplatformscouldnotidentifytypesofIPMIsysteminterfacessupportedbyhost,andcouldnotbeusedformulti.user.Thispaperpresentsasolutionforaboveissues,andimplementsgenericIPMIdriverwhichcouldbeusedformulti—user.ThispaperprovidesamethodtoreadIPMIrelatedinformation(thesysteminterfacetypessupportedbyhost)fromSMBIOS,andinitializeIPMISystemInterfacesautomatically.ThishasgreatlyimprovedcomparingwiththetraditionalwaythatcommunicatedtoBMCfixedports,then,thenewdrivercouldberunondifferentplatforms.MostoftraditionalIPMIdriversaredesignedwithasinglethread,andcouldonlybeaccessedbysingle—user.Inpaper,IPMIusers、IPMIinterfacesandIPMImessageshavebeenallassignedidentifynumber.Thewholesystembasedonevent—driven;acallbackfunctiontoreceivethereplywillberegiestedwhensendingcommandtoBMC.ThispaperpresentatsaschedulestrategyofBMCaccess,andtestsshowthatthestrategyworkswell.Inthispaper,themodularsofthesystemlooselycoupled;Modulesareconnectedabstractinterfaces.Applicationinterfacemoduleiseasy—to-useinterfaceforapplication.Messagemanagementmoduledealswiththecorelogicofthedriver,andconnectsdifferentmodulessystem.IPMIsysteminterfacemoduletalkingtoBMCdirectly.Atlast,thispaperhasdemonstratesdthecross—platformquickreactioninmulti—usersituationoftheimplementationbycomparingotherIPMldrivers.KEYWORDSServermanagement,Linuxdriver,IPMI,SMBIOS原创性申明本人申明,所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。
尽我所知linux操作系统论文,不仅论文中非常加以标明和致谢的地方外,论文中不包含其他人早已发表或撰写过的研究成果,也不包含为获得中南学院或其他单位的学位或证书而使用过的材料。与我共同工作的同志对本研究所作的贡献均已在论文中作了明晰的说明。作者签名:囊臣乳纽一日期:.盟-年』月立日学位论文版权使用授权书本人了解中南学院有关保留、使用学位论文的规定,即:中学有权保留学位论文并按照国家或广东省有关部门规定送交学位论文,容许学位论文被查阅和借书;中学可以公布学位论文的全部或部份内容,可以采用打印、缩印或其它手段保存学位论文。同时授权中国科学技术信息研究所将本学位论文收录到《中国学位论文全文数据库》,并通过网路向社会公众提供信息服务。硕士学位论文第一章总论1.1课题的研究背景第一章总论高度信息化的企业或组织都拥有为数诸多的服务器,这种服务器保证公司各项生产、电子化服务的正常运作,如公司内部的ERP系统,农行交易系统、生产制造部门的库存系统、学校选课系统等,这种系统软件都是运行在专用的服务器上。若是这种服务器发生问题,将会对使用者形成不小影响,甚至导致组织极大的混乱。倘若所有事情都要回到人工处理(如选课系统故障,要改为人工选课)或是整个公司产品生产因而停顿(如数据库系统故障,未能列举正确资产清单),所以维持这种服务器处于良好运行便变得非常重要。
网路的出现对服务器管理是个重大的影响,管理不再是局限于几台桌面计算机,而是通过网路技术,将百台以上的计算机组织上去集中管理,因而远程管理的能力也十分重要。对拥有大量主机系统的组织来说,二十四小时地监控三、四十部以上的主机运行状况是一个庞大的工程。因而在1998年,Intel、DELL、HP及NEC便共同提出了IPMIv1.0(IntelligentPlatformManagementInterface)尺寸I,作为DMTFl5】标准的一部份,它提供了一个可以跨平台的标准来规范系统内各类硬件的健康状况,如CPU的运行、风扇怠速、系统体温及电流等。在不同的处理器、不同BIOS、操作系统下,都可以提供辨识信息、监测、运行和复原记录的功能。管理者可以即将监控的部份,设置临界值,在IPMI控制器测量到不正常状况时,可以通过发E.mail、SNMP(SimpleNetworkManagementProtoc01)Trap、灯号、或蜂鸣声来通知系统管理者处理问题。常年不问断地监控、保持机器无差错运行并不是一件容易的事,而服务器管理系统的主要目的便是拿来减少这个负担。监控系统运行健康状况的能力可说是服务器管理当中最重要的功能,由于不论其它附属的功能有多强悍,只要被监控的系统崩溃,其它模块根本没法发挥作用【281,而IPMI最主要的目的就是用来监控系统运行健康状况,目前开源社群已开发许多遵守IPMI合同的IPMI应用程序。
这种软件都遵循规定的相关步骤实现。其益处是,使用者可很容易以开源的IPMI应用程序为基础,也遵循IPMI合同的规范,开发特定的IPMI应用程序;再通过和其它系统信息软件搭配来提供系统监控功能,这样便可以建立服务器管理软件。但是所有的IPMI应用程序(如IntelIPMIConformanceTestSuite和OpenlPMI)其驱动程序都必须通过IPMI合同规定的四个系统接121KCS(KeyboardControllerStyle)、SMIC(ServerManagementInterfaceChip)、BT(BlockTransfer)、SSIF(SMbusSystem硕十学位论文第一章总论Interface)能够与显卡上的管理控制器BMC(BaseboardManagementController)通信。四个插口中使用最为广泛的是KCS插口linux下载工具,而系统插口须要系统提供一组端El号(IPMI尺寸书称这个端口为BaseAddress),BaseAddress是服务器管理软件与BMC通讯的插口。并且主机提供的BaseAddress不一定是许多IPMI驱动程序固定采用的0xCA2、0xCA3;假如要在不同厂商的x86主机上运行,须事先确认主机采用的BaseAddress是否与IPMI应用程序一致。
若不相同,就需请BIOS与IPMI工程师更改固件,但可能导致资源相互冲突,因而造成系统崩溃;另外一种解决途径就是自动修改驱动程序,但不是这种所有程序都有源代码可以供使用者更改。采用固定的BaseAddress是市场上大部份IPMI驱动程序的一个缺点。因而开发一个通用的IPMI驱动程序具有较大的市场前景。目前主流的IPMI驱动程序都不支持多用户同时操作linux软件管理平台设计与实现 pdf,因而导致BMC被某个IPMI应用程序占用后,其它IPMI应用程序没法再访问BMC。其实在一般情况下有两个以上IPMI应用程序同时访问BMC的比较稀少,而且不能排除这些情况,在个别特定条件下(例如显卡电流偏低,气温过高等),并且这时电流或者水温监控软件难以访问BMC,这样便会导致严重的后果,因而开发一个支持多用户的IPMI驱动程序势在必行。目前开源社群早已开发出支持多用户的IPMI驱动程序,并且在用户数目较多的情况下,驱动程序的响应性能较差,造成超时命令的个数增多。1.2国外外研社究现况通过研究许多服务器管理软件,可发觉服务器管理软件必须包含以下功能。(1)远程管理:具有通过网路远程监控或终端机登入管理的能力。
(2)监控服务器健康状况、提供系统运作数据:随时监控影响主机运行的参数,如气温、电压、可用显存空间、执行效能、剩余的硬碟空间;并能提供友好的用户插口,以图形或不同颜色呈现简单易懂和及时的可视化显示。(3)提供建立管理举措及警告机制:可依照设置阈值或是历史纪录来判定,当有不正常趋势出现时,将通过E.mail发出警告信息给管理者或形成同志记录;或是当硬件、软件及操作系统设置值有变动时能通知管理者。(4)群组管理…I:如执行系统更新时为同性质的服务器一起更新,相关的设置也是全部一起设置,而不是自动个别处理。(5)安全控管:依照使用者身分给与不同用户权限,达到分级安全控管,包含验证密码的机制及SSL加密举措112l,而且让通常使用者难以修改系统管理的设置。(6)查询系统内容信息:提供如CPU、MemoDr装置的辨识数据(如序号、制硕七学位论文第一章总论造商、型号)、操作系统、驱动程序版本等等信息。IPMI管理程序可以做到上述大部份的功能,但是与其它服务器管理软件搭配,或以开源的IPMI程序为基础开发产品【”1,新增自己所需的功能,这样便可补齐原先功能不足之处。接出来介绍几套目前比较流行的IPMI程序,分别为IntelICTS(IPMIConformanceTestSuite)161,IPMICommandTestTool,OpenlPMl,Free