摘要
近年来,在PICMG协会(PCI Industrial Computer Manufactures Group)所公布的CompactPCI标准规范下,系统整合商可充分享受它所提供的坚固性(Rugged) 、可靠性(Reliability) 、可用性(Availability)及可管理性(Manageability)等模块化平台所带来的好处。其中在系统管理的部份,PICMG协会特别制定了PICMG 2.9的工业标准来加以规范。
PICMG 2.9系经由标准系统管理总线,采用了与IPMI(Intelligent Platform Management Interface)规格兼容的技术来达成系统管理的目的。它能够让管理人员直接进行系统的监控,透过远程管理,得知系统的健康状况,并且也可达到远程执行控制CompactPCI板卡,使系统重新开机等管理工作。
本篇文章将分为两大部份,第一部份将介绍IPMI的基本规格特性;第二部份将介绍如何运用IPMI规格到PICMG 2.9规范上。
第一部份 Intelligent Platform Management Interface (IPMI)
IPMI规格是在1998年由Intel、Dell、HP以及NEC所共同提出的,它提供了一个可跨平台的标准界面来监控服务器内的一些状态,如温度、电压、风扇等,并且可通过事件发送的形式让系统管理人员得知目前系统状况。在2001年IPMI 从1.0版改成1.5版,内容增加了LAN、Serial/Modem、PCI management Bus等系统管理的沟通界面,以及提供了Alerting的功能。2004年Intel于Intel开发者论坛(IDF,Intel Developer Forum)正式发表了IPMI 2.0版,为IT使用者提供了更高的安全性、远程服务器主机画面监控(Console Redirection) 、并支持模块化刀片型服务器(Blade Server)以及向下兼容1.0及1.5版IPMI规格。
IPMI让系统管理者能够透过网络或序列的传输形式来监控系统上各种组件的健康状况,如CPU运作、风扇转速、系统温度及电压等。管理者可以将要监控的部份,设定其感应的临界值,在IPMI控制器感应到有不正常的情况时,它将整个系统运作的状态及事件以日志的形式记录下来,并且经由警示形式,如发mail、送SNMP trap等来通知相关人员处理问题。另外,通过硬件及软件的配合,IPMI增加了远程管理及系统回复的功能,让系统管理者可以在非机器放置地得知系统目前是处于何种状态,如关机、开机中、OS当机等,并且下达开机、关机和重新开机等命令。
以下将通过简单的介绍来了解如何设计一个IPMI的系统。
Baseboard Management Controller (BMC)
图一为整个IPMI架构的示意图。位于整个架构中心的部份即为我们所谓的Baseboard Management Controller (BMC)。它通过各别的界面来管理整个系统,如系统状态侦测及事件过滤、电源管理、记录事件发生时间及系统回复控制,并且透过网络或串行端口来告知管理人员,另外,它提供了IPMB的总线来和外部的管理控制器互相沟通。
图一 IPMI架构示意图
通常一个基本的BMC所提供的界面有以下几种:
I2C/IPMB界面:一个BMC通常会有几组I2C和外围的Sensor、SEEPROM沟通,以读取系统侦测值及记录相关数据,另外也可外接一些GPIO控制器来扩充系统的侦测功能。IPMB则是必须存在的一组界面,用来和外部控制单位沟通。
系统界面:这组界面用来和系统上的CPU进行沟通,目前主要以LPC界面为主,系统上的CPU可利用固定的传输协议对BMC下达IPMI命令。另外,一些BMC的设计厂商也提供了PCI的界面来让CPU下达命令(必须依据BMC的规格来决定)。
Serial/Modem界面:在1.5的规格上定义了Serial/Modem的界面让管理者直接从串行端口或是从Modem机器接收IPMI讯息。它主要有三种连接模式:Basic、PPP及Terminal,三者即可让管理者通过文字模式解译IPMI平台上的状态或简单地下达IPMI命令。
LAN界面:经由RMCP(Remote Management Control Protocol)的封包格式,BMC可经由LAN的界面让管理者接收传送IPMI讯息。越来越多的应用软件运用这个界面使软件和远程的BMC沟通。另外,在图一中我们知道BMC利用side-band的形式经由I2C/SMBUS界面传送IPMI讯息,部份BMC设计中也已包含了部份网络功能,以减轻原先系统上的网络传输负载。
另外,在IPMI 2.0的支持上,不同厂商所提供的BMC会以不同的形式达到console redirection的功能,如新增一组硬件芯片或截取系统VGA的RGB讯号等。所以在设计一个IPMI平台时,必须先确认所设计的平台究竟是支持哪种IPMI规格,并且有那些功能是需要特别的界面来实现,以便于另选额外的周边控制组件来辅助。
Firmware、BIOS与System Management Software(SMS)
一个IPMI除了BMC主要的硬件组件外,相关辅助的软件设计也是必须要考虑的一个环节,因为它所呈现的是系统管理者所接触的控制界面,方便与否及强大的管理会是左右管理者考虑使用这个平台的一大因素。
图二 IPMI与管理软件的关系图
由图二我们可以看出,IPMI的界面以及上层的管理都需求一些软件来支持,以下将简略的描述IPMI所涉及到的软硬件种类:
BMC Firmware:有别于系统上的CPU,BMC其实也是一个独立的运算单元,它必须有独立的Firmware来驱动BMC的功能,就如x86系统所需的BIOS一样。通常BMC的Firmware必须负责BMC芯片的起始值设定、外围相关硬件的致能、IPMI标准的命令集解译及执行以及一些独特硬件设计所需的OEM命令的增列。
管理软件:系统管理者最常接触的就是上层的管理软件,简单的类型就是使用一般的终端机(Terminal)程序来接收从Serial/Modem所传送过来的文字讯息。近年来,除了BMC厂商会有自行开发的上层管理软件外,也有不少的软件厂商加入了开发管理软件的行列,而他们最主要利用的沟通界面即为网络界面。不管是通过序列或是网络,在界面上传输的都是BMC所能辨认的IPMI讯息。
BIOS (optional):这里的叙述只适合于有类似使用BIOS的系统。在管理的功能上有时对BMC来讲,它并无法独自完成这类工作,如事件时间的记录必须依靠BIOS来给予系统RTC的值、经由BIOS来修改网络的IP设定值、经由BIOS告知目前系统的POST状态、BIOS提供DMI(Desktop Management Interface)中的IPMI架构的讯息给上层管理软件以及由BIOS的设定来避免BMC上的Watchdog Timer timeout等,BIOS的依靠程度必须依据系统设计的复杂度而定。
将IPMI平台的设计考虑运用到CompactPCI单板,再加上PICMG 2.9的规范,一个CompactPCI的系统管理平台即可应运而生。
第二部份 应用IPMI于PICMG 2.9规范上
早期的CompactPCI单板具有自己管理自己的功能,任何一片单板可以自行根据环境的侦测值管理整个系统。随着应用于高可用性,CompactPCI平台的使用者对于系统管理的需求也开始增长,单板的系统管理已不能满足他们的需要。透过固定的管理数据的传输,不同架构的CPU系统也可放在同一个Chassis内来集中管理,但是因为管理数据较为重要,所以并不能和原有的PCI总线混合传输,因此共享另一种传输总线成了另一项需求。另外,对系统进行远程的监控功能也逐渐受到用户的欢迎,对于这些需求,PICMG 2.9规范为CompactPCI平台的提供者带来了解决的方案。
PICMG 2.9
PICMG 2.9 1.0版本发表于2000年。规范针对CompactPCI背板定义了系统管理的针脚(IPMB_SCI、IPMB_SDA和IPMB_PWR)。透过这些系统管理针脚,再配合IPMI标准,CompactPCI设计者可以很容易地达成系统管理的设计目的。
规范中定义了两组IPMB总线,第二组IPMB总线是可选的,其内部的联接是位于CompactPCI的J1及J2上,如表一所示:
表一 CompactPCI IPMB针脚分配
其中IPMB_PWR是由一个专用的系统管理电源所提供,这种有别于单板上的电源供给的形式可使得管理CompactPCI单板时,在单板上没电的情况下仍然能够工作。IPMB的界面则和IPMI的标准一样,它能扩充至外部的风扇、电源、机箱温度监控。典型的IPMB背板互连如图三所示:
图三 IPMB互联
在图三中,对于背板外部机箱内部的设备,PICMG 2.9定义了一个扩展的IPMB连接头,用来和系统上的管理控制元相连。在背板上另外可扩充一槽Chassis Management Module (CMM),用来集中管理外围槽(Peripheral Slots)及系统槽(System Slot),CMM的角色就如IPMI规格内的BMC。
在单板上设计了支持IPMI的控制组件,对于每一片的CompactPCI单板,其系统上都有一个BMC的组件存在。但若整合到一个机箱内,这些BMC的角色则必须要更改成一个PMC (Peripheral Management Controller),其位于IPMB总线上的地址则必须要和唯一的BMC有所区别。CompactPCI规范另行定义了背板上GA (Geographical Address)的针脚,用来提供不同槽位上不同的GA值设定(BMC上的Firmware必须能够先辨识GA值,然后给予系统上的BMC新的IPMB地址而成为PMC)。
不同形式的系统管理CompactPCI平台
依据CompactPCI规范及IPMI标准,巧妙地运用规范所提供的解决方案,即可设计出不同形式的CompactPCI系统管理平台。
标准型IPMI系统:利用背板上的IPMB总线,在系统槽上的CompactPCI单板上设计一颗BMC的控制器,其余在PCI插槽上的外围片只要存在简单的IPMI命令兼容的控制器,系统槽的单板即可透过IPMB读取所有外围片的状态,然后再经由序列或是网络的形式通知系统管理者。
刀片服务器(Blade Server)系统管理平台:在CompactPCI的刀片服务器的应用上,移除了PCI插槽的设计,加上利用PICMG 2.16网络互连的途径,使用系统管理的形式有别于一般标准型的IPMI系统。借助CMM的集中管理,每片CompactPCI CPU单板,经由IPMB或PICMG 2.16的网络,再加上强大的软件管理,只要透过一组序列或是网络线对外,系统管理者即可在远程进行管理,而管理的对象即为机箱内所有的CompactPCI CPU单板。
刀片服务器的KVM系统:随着IPMI 2.0的发表,每片刀片服务器上的CPU单板可设计上远程画面监控的功能及远程开机的功能,同样地集中管理于CMM的平台上,系统管理者可不再需要经KVM switch去手工切换界面,只要利用CMM的管理软件,即可得知任一片单板上系统目前的画面情况,进而执行不同的指令。
总结
PICMG 2.9规范借助于现在的IPMB及IPMI标准,提供了一个管理架构界面。这个标准给CompactPCI使用者提供了一条不依赖PCI总线去控制管理的解决路径。同时,PICMG 2.16也让CompactPCI的使用者可以借助RMCP的好处经由IP实现系统的远程管理。当CompactPCI平台的使用者在针对系统管理伤脑筋时,或许应该考虑一下使用PICMG 2.9规范兼容的平台。本篇文章仅以简单的叙述介绍如何在CompactPCI的平台上实现系统管理的目的。
from: http://www.gongkong.com/webpage/paper/200409/4-83CD-90E8A52F43B9.htm