ATCA管理模块模拟器的设计与实现
来源: 科学技术与工程   发布时间: 2015-12-07 11:09   1780 次浏览   大小:  16px  14px  12px
ATCA作为新一代计算平台标准,能够确保平台的可靠性和稳定性,得到普遍的关注和青睐,成为下一代通信技术的新宠。其管理模块是整个ATCA的控制中心,负责管理、监视机架中所有设备的状态,并且提供多种外部管理接口与第三方软件交互。目前尚没有该管理模块的模拟器,总结了其功能和特点,设计并实现了该管理模块的模拟器,为ATCA上的软件开发和测试提供了便利—— 大大提高了开发效率,缩短了开发周期,节约了开发的硬件成本。最后利用该模拟器构架了整套虚拟ATCA环境,某国际知名公司的电信平台中间件系统在其上运行效果良好。

李威,尚学群,陈建全,西北工业大学


在当前日趋白热化的竞争形势下,电信服务提供商面临着必须确保新业务能带来持续利润的压力,强调实现业务增长的同时必须要控制运营费用。电信设备制造商面临的挑战就是在正确的时间以正确的价格供应设备来满足服务提供商的需求。作为新一代电信网的高性能计算平台,ATCA融合了许多国际先进技术,更是为满足电信设备制造商的需要而设计的。电信设备制造商在传统的开发过程中,常常花费3O~48个月的时间开发一个基础平台以满足电信服务提供商的要求。从商业角度考虑,如此漫长的开发周期已经不再是经济可行的方法,开发基础平台不会带来市场优势,而只是延长开发时间并浪费资源。基于ATCA标准开发一个核心平台,可以极大地节省研发和生产的成本,大大缩短新技术进入市场的时间,增强电信设备制造商的竞争力。由此可见,ATCA是充分考虑电信行业的要求及特点的高性能、高可靠性的通用平台。


于是,各种运行在ATCA上的软件也应运而生。由于ATCA比较昂贵,而相关软件的开发和维护又需要大量的实机环境,便形成了矛盾。现采用虚拟机和xml文件模拟ATCA机架和ATCA管理模块,有效地解决了上述矛盾。


1、ATCA管理模块

Chassis Management Module(简称CMM)是整个ATCA的管理模块,CMM通过IPMI(智能平台管理接口)对机架中的设备进行管理。它可以监视和配置机架中基于IPMI的组件,包括电源、风扇和刀片式服务器(Made)。当有设备的值(如温度和电压)超过当前设置的阈值,或其他错误发生时,CMM捕获这些事件,将其存入系统日志,发送SNMP trap,驱动警报器,点亮警报指示灯。它还可以查询FRU(Field Replaceable Unit)信息,检测组件是否存在,监视每个组件的健康状态,控制每个设备的供电顺序和每个插槽的供电情况。


CMM是一个独立的SBC(single board computer),操作系统为Linux。—个机架中共有两个互为备份的CMM,以保证其高可用性。备用CMM会实时监视使用中的CMM,当使用中的CMM发生错误或失去响应时,备用CMM变为活动状态。另外,CMM之间会实时进行数据同步,使得系统状态切换不影响用户设置。


CMM通过多种方式向外界提供信息和管理方式,包括命令行,RPC,RMCP(Remote Management Control Protocol),SNMP。


2、模拟器的实现

根据CMM的特点,CMM Simulator需要实现以下功能:

(1)设备模拟(可动态增减)和管理信息存储;

(2)冗余和数据同步;

(3)解析命令并模拟命令的执行,返回命令执行结果;

(4)提供对外接口。


2.1 设备模拟


Xml(Extensible Markup language)即可扩展标记语言,它是在HTML语言的基础上发展起来的一种符号标记语言,它突破了HTML的固定标记集合的约束,用户可以根据需要自己定义各种标签来标记文档中的数据元素。它和HTML相比有以下优点:数据和表现形式分离;是一种无标记语言,没有固定的符号,用户可以自定义DTD;主要内容是数据;能够对数据源进行封装,屏蔽掉数据源通过Xml的集成实现不同数据源间数据的交换和分享。Xml技术中最重要的一个方面:DOM(Document Object Model)即文档对象模型。他是微软提供的HTML和Xml文档的编程基础,是W3C的正式标准。它定义了处理执行文档的途径,采用树形结构表示Xml文档,允许开发人员随意访问DOM中的信息。各种语言给他提供的接口使它被广泛地使用。


由于Xml文件的可扩展性和格式与数据分离的特点,使得其在动态的数据增减时不影响约定好的程序逻辑,从而成为模拟可动态增减的设备集的最佳选择。并且,由于Xml文件中的数据程树形存储,非常类似ATCA机架中的设备组成方式和CMM管理方式,使用Xml文件来模拟ATCA中的设备就成了不二之选。


CMM需要管理的设备分为两种,一种是可替换单元(FRU),另一种是FRU上的传感器。CMM Simulator使用Xml文件来模拟FRU和传感器,而Xml文件中的节点则用来存储该设备(FRU)和传感器的信息。文件采用分级的组织方式,每一个FRU和其上的传感器的数据存放在一个目录中,并按照约定的命名规则命名用来模拟硬件的Xml文件。如图1所示其中,Frul_* xml中的*代表传感器名,如为"NA"则表示其中存储的信息为该FRU的信息。



图1 Xml文件目录结构


在这些Xml文件中还同时存储着CMM对该设备的管理信息。管理信息在Xml文件中以与设备信息相同的节点格式存在,使得模拟设备成为自带管理信息的单元。相比于把管理信息和设备信息分开存储的方式,自带管理信息的方式具有它的优点:


①有利于设备的动态增减,要增加一个设备时,只需要将编辑好的设备模拟文件存放到符合规则的位置,而无需修改其他文件;与之类似,如果要去掉一个设备,只需要将相应文件移除即可;


②有利于实现不同类型设备的管理,CMM对各种不同类型的设备的管理信息相差较大,如果将管理信息单独存储,管理信息的种类就会非常庞杂,管理信息的编辑也会变得繁重且易错。将管理信息做成可动态增减的文件节点,节点名为管理信息名,每个设备文件可以拥有不同数目、不同名称的管理信息,高效地实现了设备管理的多样性。


2.2 冗余和数据同步


CMM Simulator使用两台装有Linux系统的主机(或虚拟机)实现冗余。如图2所示,两台主机之间始终保持一个TCP连接,活动CMM监视自己和备份机的健康状态,当自己有严重的健康事件时,发送系统切换请求(failover),将备份机变为活动状态,自己变为备份状态,并向用户指定的IP地址发送SNMP消息陷阱(SNMP Trap)。另外,在NFS共享盘上设置一个值,标示当前处于活动状态的CMM的状态。正常状态的CMM会定时修改标示值为1。当两机之间的TCP连接中断时,备份CMM需要确定连接中断的原因,确认方法为:将共享盘上的标志位设为0,等待一定时间后再检查该值,如果其值被修改为1,则表示活动状态的CMM状态正常,备份机应重新请求建立TCP连接;否则表示活动状态的CMM已经没有响应,备份机将自己更改为活动状态,由此完成系统的自动切换。



图2 CMM Simulator构成


在系统切换的过程中需要保持管理数据和模拟设备的同步。如果将信息分别存储在两个CMM主机上,则需要定时或即时进行数据同步,增加了网络通信的负担。并且,如果需要增加一个设备,则可能要准备两份完全相同的数据,或使得增加设备的操作触发一个事件来通知备份状态的CMM进行数据拷贝。同理,需要减少一个设备时,也需要进行两次文件删除。为了解决这些问题,最好的方法就是使用单一的数据源。本文采用了网络文件系统(NFS)来实现这一目的。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。NFS至少包括两个主要的部分:一台服务器,以及至少一台客户机,客户机远程地访问保存在服务器上的数据。因此,除了两个CMM之外,还需要一台主机来做NFS服务器,而两个CMM就是这个主机的客户机。将模拟设备的文件放置在NFS服务器上,CMM通过NFS访问这些文件。配置好NFS后,需要依次启动NFS服务器、两个CMM。


2.3 命令行和接口


RMCP(Remote Management Control Protoco1),是一个在网络上转发IPMI数据包的协议。CMM上的RMCP服务接收并解码RMCP数据包,将其中的IPMI数据转发至ATCA内的设备。当机架内设备返回IPMI响应消息后,CMM将其封装为RMCP数据包并发送给其请求者。整个过程如图3所示。



图3 RMCP工作过程


在Simulator中,由于设备是由文件模拟的,所以其不可能响应IPMI请求,RMCP服务就必须解析IPMI数据包,取得其内容并查询相关数据然后返回结果。


CMM Simulator模拟了CMM的命令行和对外接口。命令执行的过程分三步,命令解析、文件解析、返回结果。以RMCP为例,如图4所示。



图4 CMM Simulator RMCP模拟过程


3、使用测试

运行在ATCA上的中间件为了保证系统的高可用性,会主动与CMM交互以监视整个机架内的设备运行状态,在有障碍发生时及时采取措施。为了测试CMM Simulator的效果,利用它构建了一套虚拟的ATCA环境,并在其上安装了一款该类型的中间件。系统结构如图5所示。



图5 虚拟ATCA结构图


图5中的Server上装有机架管理软件(中间件),通过与CMM交互对ATCA进行管理。SBC(single board computer),即刀片式计算机,用虚拟机模拟。CMM Simulator的共享数据中存储SBC及其他模拟设备的管理信息,并可以根据Server的指令对SBC进行操作。


测试的内容有:设备模拟、冗余的构成、数据同步、障碍发生时的消息传输,长时间运行时的可靠性。


①设备模拟,即模拟设备信息的取得和管理,以及动态增减设备功能。经测试,该功能完备。


②冗余构成测试,使用机架管理软件(中间件)命令可以查询到两系统CMM初始状态正常(active,standby)。对活动的CMM设置障碍,一段时间后障碍的CMM执行了系统切换(简称系切)命令后重启,备份CMM变为活动状态,并提供对外服务。在Server上可以用中间件提供的命令看到系统切换的结果,并且系切后与之交互正常。


③数据同步在活动状态的CMM上设置管理信息,例如:设置snmpaddress为192.168.105.2,然后执行系切命令(failover)。在新的活动状态的CMM上执行命令查询snmpaddress的值,确认其结果是正确的。进行了多次测试后,确认数据同步功能良好。


④障碍发生时的消息传输。即障碍发生时是否成功发送SNMPTrap至目的地址。将NMPTrap受信地址设为Server的地址,然后对某blade设置障碍。查看Server上的SNMPTrap受信log,可以看到设备障碍信息已经收到。


⑤长时间运行的可靠性,整套环境连续运行了一周,状况良好。


5、结论

根据ATCA的特点,设计并实现了一种ATCA模拟器。这个模拟器为ATCA上的软件开发提供了便利,并为ATCA管理方式的研究提供了一种简便的测试方法。通过这个模拟器,用户可以快速、廉价地搭建一个ATCA模拟环境,快速熟悉ATCA的结构和管理方法,并且不必为因为误操作导致的设备损坏而担心。