摘 要: 超级计算机对其运行环境有极为苛刻的要求,它的持续稳定运行需要通过水冷、风冷等设备对机房温度进行严格控制,为了检测制冷设备的稳定程度并制定合理的温度控制策略,提出了以Linux操作系统和S3C2440处理器为平台构建分布式温度采集系统的思想,该系统通过分布在机房多处的温度传感器采集机房内的温度值,并将这些数据存入本地SQLite数据库,再通过Boa服务和CGI技术访问这些信息,系统管理人员则可以通过分析这些温度信息判断制冷设备的可靠性并制定合理的温度控制策略。首先论述了系统的相关技术和实现方法,再将系统布置在机房中进行测试,测试结果表明,系统运行稳定、监测数据可靠,能够满足需求。
关键词:嵌入式系统;Linux;Boa;SQLite;公共网关接口
0 引言
随着计算任务规模越来越大,对超级计算机的性能要求也越来越高,但随之而来的问题是超级计算机的功耗和发热量越来越大,同时由于计算密度的差异,同一个计算任务在不同的时间段内计算机的发热量不同,因此机房内的温度极易波动。而超级计算机的持续可靠运行需要稳定的机房温度,因此机房内的制冷效果以及制冷策略的制定变得极为重要。本文以天河2号超级计算机机房管理为背景,提出了一种分布式温度采集方法用以检测机房内温度的稳定性和制冷设备的可靠性。首先分析了以Linux操作系统和S3C2440嵌入式处理器为平台,并利用Boa服务器、SQLite数据库和温度传感器构建分布式温度采集系统的可行性,并给出了系统的具体实现方法,最后对系统进行了测试。由于这种分布式温度采集系统能够同时采集到机房内多处的温度信息,相比使用单个传感器或使用温度计对机房温度进行采集,该系统的效率更高,采集到的数据也更加可靠。而机房维护人员则可以通过分析保存在数据库里的历史数据判断制冷设备的可靠性,并以此为依据科学地制定机房温度控制策略。
1 系统技术分析
该系统基于一种嵌入式开发平台,该平台上集成了一颗S3C2440嵌入式处理器,并且平台上已经移植了Linux操作系统。在此基础上又移植了Boa服务器和SQLite数据库,并在处理器的6个IO引脚上挂接了温度传感器DS18B20,这些传感器分布在机房各处。系统采集的温度数据存储到数据库中,而机房维护人员可以通过浏览器查看这些信息,图1为单个温度采集系统的框图。
1.1 Boa服务器
Boa是类Unix操作系统下的一个开源的Web服务器软件,最新版本的源码包不到200 KB。Boa是一个单任务服务器,即在同一时刻只能响应一个用户的请求,当多个用户同时访问服务器时,只能有一个用户的请求得到响应,而其他用户必须等待[1]。由于这些特性,Boa服务器适合移植到资源受限的嵌入式系统中。当服务器收到来自浏览器的请求后,会分析请求类型,若请求的是静态网页,则服务器直接向浏览器返回静态网页,如是更复杂的请求,例如表单处理等,则需要调用CGI程序处理用户请求[2]。该系统通过源码方式安装Boa服务器,在安装完成后还需要通过修改配置文件boa.conf对服务器进行配置[3-4]。
1.2 CGI编程
CGI程序是Web服务器的一种后台程序,用于处理来自浏览器的请求,是实现浏览器与服务器动态交互的一种方式,通常情况下提交浏览器中的表单或点击一个超级链接就能够触发一个CGI程序的执行[5],例如