百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

超算中心环境监测系统的设计和实现

cac55 2025-02-20 14:35 16 浏览 0 评论

摘 要: 超级计算机对其运行环境有极为苛刻的要求,它的持续稳定运行需要通过水冷、风冷等设备对机房温度进行严格控制,为了检测制冷设备的稳定程度并制定合理的温度控制策略,提出了以Linux操作系统和S3C2440处理器为平台构建分布式温度采集系统的思想,该系统通过分布在机房多处的温度传感器采集机房内的温度值,并将这些数据存入本地SQLite数据库,再通过Boa服务和CGI技术访问这些信息,系统管理人员则可以通过分析这些温度信息判断制冷设备的可靠性并制定合理的温度控制策略。首先论述了系统的相关技术和实现方法,再将系统布置在机房中进行测试,测试结果表明,系统运行稳定、监测数据可靠,能够满足需求。

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],例如

是浏览器中的一个表单,提交这个表单就能够触发位于服务器上的一个CGI程序relay.cgi的执行;而dump database是一个超链接,点击这个超链接就能够触发dump.cgi的执行。CGI程序能够从环境变量或标准输入中获取来自浏览器的数据,并能将处理结果返回给浏览器[4-5]。

1.3 SQLite数据库

SQLite是一款开源的、嵌入式关系型数据库,它主要应用在嵌入式设备上,在很多Android和IOS设备上都可以看到它的身影。与其他大型数据库不同,SQLite数据库和基于这个数据库的应用程序共同运行于同一个系统中,应用程序产生的数据可以直接存入数据库中而不需要通过网络传输[6-7]。本系统中通过源码方式安装SQLite数据库,需要注意的是在安装过程中会生成一些文件,需要将其中的动态链接库文件复制到嵌入式Linux的/usr/lib目录下,除此之外还有一个头文件sqlite3.h和一个库文件libsqlite3.a,在编写基于数据库的应用程序时需要使用这两个文件。在本系统中数据库用于存储温度传感器采集的温度值,每个传感器都对应数据库中的一个表,该表用于存储传感器采集的数据。机房管理人员通过分析大量的历史数据,可以判断机房内的制冷设备能够满足制冷需求,还能够根据历史数据制定合理的温度控制策略,使天河2号计算机系统持续稳定地运行。

2 温度监测系统的实现

2.1 系统硬件实现

图2为温度采集系统中单个节点的硬件连接图,每个节点由一个S3C2440嵌入式控制平台和8个温度传感器组成。图中的8个圆圈是DS18B20温度传感器,该传感器是一种高精度的单线式传感器,通过一条数据线与处理器互连;图中的4条数据线长度为4 m,其余4条数据线的长度为2 m,这种拓扑结构可以保证该节点能够均匀地采集到其覆盖范围内的温度信息。另外为保障系统的稳定性,传感器的VCC和GND引脚没有与处理器相连,而是使用独立的5 V电源为传感器供电[8]。经实地测试,10个图2所示的温度采集节点基本可以将天河2号机房完整地覆盖,这些节点接入同一个路由器并与一台PC互联,而系统维护人员则能够通过这台PC获取机房内各处的温度信息。

2.2 温度信息的采集

处理器通过单总线发送指令控制传感器,对该传感器进行操作的指令可以分为3类:1条复位指令、5条ROM指令、6条RAM指令,每进行一次操作都需要至少3条组合指令,即1条复位指令、1条ROM指令和1条RAM指令,在某些情况下并不需要执行ROM指令,这时可以使用“跳过ROM”指令来代替ROM指令[8-9]。传感器驱动程序作为Linux系统的内核加载模块[10],每隔 5 min依次读取所有传感器的数据,驱动程序的核心函数是Write_byte和Read_byte,两个函数分别用于向传感器写1 B数据和从传感器读1 B数据,需要根据传感器的时序图实现这两个函数。向传感器发送ROM或RAM指令是通过函数Write_byte实现的,从传感器读取温度值是通过函数Read_byte实现的,图3为温度传感器驱动程序的流程图。

2.3 温度信息存入数据库

传感器的驱动程序读取温度值后会调用copy_to_user将温度数据传输到用户态进程[11],用户态进程则会将数据存入数据库。为了存储温度数据,每个温度采集节点需要创建一个本地的数据库,该数据库存放在嵌入式开发平台的板载Flash芯片上,每个数据库中需要创建8个表,用于存储该节点下每个传感器采集的数据。以0号传感器为例,该传感器采集的数据存储在表ds18b20_0中,表中有3列数据,分别为行编号、温度值、采集数据的时刻。由于需要循环将温度信息存入数据库,SQLite提供的参数化语句功能可以很好地满足这种应用[12],具体过程如下(下面函数省略了全部或部分参数):

char*sql="insert into ds18b20_0 values(?,?,?)"

//定义一条参数化的SQL语句

sqlite3_prepare//将上述语句编译成数据库引擎字节码

sqlite3_bind_int(1,id)//将id和第一个“?”绑定

sqlite3_bind_int(2,temperature)

//将温度值temperature和第二个“?”绑定

sqlite3_bind_text(3,time)

//将时间字符串time和第三个“?”绑定

sqlite3_step//执行绑定了参数的SQL语句

2.4 查询温度信息

系统维护人员可以通过PC上的浏览器访问任意一个节点数据库中的温度信息,实现该功能需要节点中Boa服务器的后台CGI程序支持。由于SQLite是一种嵌入式数据库,它对网络应用的支持不全面,因此如果需要通过网络访问数据库中的信息,可以先将数据库中的信息导出到本地文件中,再通过网络访问这个本地文件。每个监测节点中都有一个CGI程序负责将数据库中的信息导出到本地的文本文件中,以导出表ds18b20_0中的数据为例,过程如下:

char*sql="select*from ds18b20_0;"

//定义一条SQL语句,查询整个表ds18b20_0

sqlite3_get_table(db,sql,&result,&row,&colum,&zErr)

//执行上述SQL语句,将查询结果保存在result中,

并返回查询结果中的行数和列数

最后这个CGI程序还要将保存在result中的临时结果输出到文本文件中,因此当网页中一个超链接指向这个文本文件时,用户在浏览器中点击这个超链接就可以查看温度信息。

3 测试结果

在系统构建完成之后将其部署在机房中并对其稳定性和可靠性进行测试,启动系统并使其运行一段时间,以保证能够采集到足够量的数据。在浏览器地址栏输入其中一个温度监控节点的IP地址,例如192.168.1.112,并选择查看该节点下的任意一个传感器采集的数据,浏览器就能显示图4所示的该传感器采集的温度信息。由图4可知,这段时间内该传感器附近的温度维持在23℃,将多个传感器采集的数据与机房内的温度计对比可知,通过该系统采集到的数据可靠,同时也可以说明机房内各处的温度保持在一个稳定的状态。

4 结论

Web服务器提供了一种通过局域网或广域网访问和控制嵌入式设备的方式,这种方式基于成熟的网络通信技术,使用这种方式能够将嵌入式设备部署到任何地方而无需过多额外成本,而嵌入式数据库则为数据的存储和访问带来了极大的便利。本文首先分析了天河2号机房温度采集的需求,针对这种需求提出了构建分布式温度采集系统的思想,该系统通过分布在机房各处的传感器实现温度信息的采集,并将采集到的数据存储到数据库中。由于传感器分布在机房的多个位置,因此采集到的数据能更好地反映机房内的温度信息。相比传统方式,这种分布式温度采集系统采集到的数据更为可靠,能够更准确反映机房的温度信息。而机房维护员则可以通过网络查看这些数据,并以这些数据为依据调整水冷和风冷设备的工作状态,使机房环境保持在最佳状态以保证天河2号超级计算机的可靠稳定运行。

参考文献

[1] 孙辉,陆松年,杨树堂.基于Linux和S3c2410的嵌入式Web Sever的研究与实现[J].计算机应用与软件,2007,24(2):134-136.

[2] 刘鑫.基于ARM平台的嵌入式Web服务器的设计与实现[D].成都:电子科技大学,2010.

[3] 王军飞.基于ARM和Linux的嵌入式Web服务器的研究与实现[D].太原:太原理工大学,2009.

[4] 张曦熀,柴志雷.嵌入式Web服务器中的CGI特点及实现[J].小型微型计算机系统,2003,24(11):2046-2048.

[5] 黄奇光.CGI编程指南[M].北京:电子工业出版社,1999.

[6] ALLEN G, OWENS M. The definitive guide to SQLite (Second Edition)[M]. Berkeley: Apress, 2010.

[7] 施忠华.基于嵌入式Linux和Sqlite的Web服务器的研究及应用[D].南昌:南昌大学,2012.

[8] ds18b20[EB/OL].[2015-01-08]. http://baike.baidu.com/link?Nhh7VxAxdcGfK-t5sbmM1tZIhXB1a5yo1P3DbisgKmlbuH xU vvxKbns7a3dLuNeUkrDHTf2qxZiM-K.

[9] 李雪峰.分布式温度采集网络在恒温控制中的应用[J].微型机与应用,2013,32(15):69-72.

[10] CORBET J, RUBINI A, KROAH-HARTMAN G. Linux设备驱动程序(第三版)[M].魏永明,耿岳,钟书毅,译.北京:中国电力出版社,2009.

[11] BOVET D, CESATI M.深入理解Linux内核(第三版)[M].陈莉君,张琼声,张宏伟,译.北京:中国电力出版社,2009.

[12] BI C Y. Research and application of sqlite embedded database technology[J]. Wseas Transactions on Computer,2009,8(1):83-92.

相关推荐

MIRIX重塑AI记忆:超Gemini 410%,节省99.9%内存,APP同步上线

MIRIX,一个由UCSD和NYU团队主导的新系统,正在重新定义AI的记忆格局。在过去的十年里,我们见证了大型语言模型席卷全球,从写作助手到代码生成器,无所不能。然而,即使最强大的模型依...

硬盘坏了怎么把数据弄出来对比10种硬盘数据恢复软件

机械硬盘或固态硬盘损坏导致数据丢失时,应立即停止对硬盘的读写操作,并根据损坏类型选择逻辑层恢复工具或专业物理恢复服务。紧急处置措施立即停止通电使用:发现硬盘异响、无法识别或数据异常时,需立即断开连接,...

蓝宝石B850A WIFI主板新玩法:内存小参调节体验

蓝宝石前段时间发布了一款性价比极高的主板:NITRO氮动B850AWIFI主板。这款主板的售价只要1349元,相比普遍1500元以上的B850主板,确实极具竞争力。虽然价格实惠,蓝宝石NITR...

内存卡损坏读不出怎么修复?这5个数据恢复工具汇总,3秒挽回!

在数字化生活的浪潮中,内存卡凭借小巧便携与大容量存储的特性,成为相机、手机、行车记录仪等设备存储数据的得力助手,承载着无数珍贵回忆与重要文件。然而,当内存卡突然损坏无法读取,无论是误删、格式化、病毒入...

内存卡修复不再难,2025年必学的6款软件工具

内存卡出现问题时,通常是因为文件系统损坏、物理损坏或病毒感染。通过专业的修复工具,我们可以尝试恢复数据并修复内存卡。内存卡修复利器:万兴恢复专家万兴恢复专家是一款功能强大的数据恢复软件,支持多种设备和...

有5款内存卡修复工具汇总,内存卡数据轻松找回!

在如今的数字时代,内存卡作为不可或缺的存储介质,广泛应用于相机、手机、行车记录仪等各类设备中,承载着我们珍贵的照片、视频以及重要文件。然而,数据丢失的风险却如影随形,误删、格式化、病毒入侵、硬件故障等...

揭秘:如何通过多种方式精准查询内存条型号及规避风险?

以下是内存条型号查询的常用方法及注意事项,综合了物理查看、软件检测、编码解析等多种方式:一、物理标签查看法1.拆机查看标签打开电脑主机/笔记本后盖找到内存条,观察标签上的型号标识。例如内存标签通常标...

内存卡数据恢复5个工具汇总推荐,轻松找回珍贵记忆!

在这个数字化时代,内存卡作为我们存储珍贵照片、重要文件的常用载体,广泛应用于手机、相机、平板电脑等设备。但数据丢失的意外却常常不期而至,误删除、格式化、病毒攻击,甚至内存卡的物理损坏,都可能让辛苦保存...

电脑内存智能监控清理,优化性能的实用软件

软件介绍Memorycleaner是一款内存清理软件。功能很强,效果很不错。Memorycleaner会在内存用量超出80%时,自动执行“裁剪进程工作集”“清理系统缓存”以及“用全部可能的方法清理...

TechPowerUp MemTest64:内存稳定性测试利器

TechPowerUpMemTest64:内存稳定性测试利器一、软件简介TechPowerUpMemTest64,由知名硬件信息工具GPU-Z的出品公司TechPowerUp发布,是一款专为64位...

微软推出AI恶意软件检测智能体Project Ire,精确度高达98%

IT之家8月6日消息,当地时间周二,微软宣布推出可自主分析恶意软件的AI检测系统原型——ProjectIre。该项目由微软研究院、Defender研究团队及Discovery&a...

农村老木匠常用的20种老工具,手艺人靠它养活一家人,你认识几种

生活中的手艺老匠人是非常受到尊敬和崇拜的,特别是在农村曾经的老匠人都是家里的“座上宾”。对于民间传统的手艺人,有一种说法就是传统的八大匠:木匠、泥匠、篾匠、铁匠、船匠、石匠、油匠和剃头匠。木匠的祖始爷...

恶意木马新变种伪装成聊天工具诱人点击

国家计算机病毒应急处理中心通过对互联网监测发现,近期出现一种恶意木马程序变种Trojan_FakeQQ.CTU。该变种通过伪装成即时聊天工具,诱使计算机用户点击运行。该变种运行后,将其自身复制到受感染...

学习网络安全 这些工具你知道吗?

工欲善其事必先利其器,在新入门网络安全的小伙伴而言。这些工具你必须要有所了解。本文我们简单说说这些网络安全工具吧!Web安全类web类工具主要是通过各种扫描工具,发现web站点存在的各种漏洞...

5分钟盗走你的隐私照片,这个全球性漏洞到底有多可怕?

这个时代,大家对电脑出现漏洞,可能已经习以为常。但如果机哥告诉大家,这个漏洞能够在5分钟内,破解并盗取你所有加密文件,而且还无法通过软件和补丁修复...这可就有点吓人啦。事情是酱婶的。来自荷兰埃因...

取消回复欢迎 发表评论: