再见AIX

目录

从入职的2013年到2018年,单位的数值预报业务系统全部运行在IBM的AIX高性能计算机上。2018年气象局采购曙光-PI高性能计算机,作为第一批启动业务迁移的单位,经过近一年的时间,我们已将主要的业务系统迁移到PI上,剩余的业务系统今年将全部迁移到新的HPC上。随着IBM上的个人账户将于月底封停,是时候向AIX操作系统说再见了。

AIX

用一句话总结上一代的IBM HPC:对于运维很不友好。

虽然AIX是基于UNIX的操作系统,但信息中心在AIX上并没有安装足够的开发环境。例如:

  • gcc只是xlc的别名,无法使用gcc编译软件
  • 缺乏一整套编译工具,包括autotools、cmake等
  • Python只是2.6版本,缺少增加大量特性的2.7或3.X

因此,业务系统运维工具的开发变得尤为困难,必须得构建一整套开发环境才能顺利实现工具开发。

当然,上面的问题都属于应用问题,通过自己编译软件还是能解决。最严重的问题还是在系统架构和系统软件的方面。

据“不负责任”消息来源说,气象局订购的这套高性能计算机系统不是针对高性能计算而是针对于分布式计算的。不管事实与否,表现形式就是提交的作业经常不明原因出错,给出的故障往往是InfiniBand网卡问题。另一个严重的问题就是提交LoadLeveler作业失败,为了解决这个问题,我修改了业务系统作业提交脚本,使用随机延迟避免同一时刻大量提交作业,检测作业失败并自动重新提交。这个问题从我们迁移业务的第一年就开始出现,直到2019年的今天依然没有解决。这令我止不住怀疑,到底是能力的问题还是责任心的问题。

进入农历猪年,不知道是不是因为气象局未来不会再购买IBM的HPC,uranus的运行环境急剧恶化,节点多次关停重启,队列作业异常问题也缺乏足够的反馈。即便对AIX有一丝怀念,可扛不住半夜起来处理现实的现实。因此,汛期前一定要将所有主要的业务系统迁移到PI上。

AIX上的开发

模式运行

直到现在,其实我也没有创建过完整的数值预报模式积分业务系统。在IBM上,我尝试编译并运行GRAPES MESO 3.3版本,并尝试使用Python构建业务系统运行脚本。参考下面的项目

perillaroc/nwpc-grapes-meso-script

最后得出结论,如果不是为了强行使用Python,还是shell脚本更适合做目前模式系统的运行脚本。

在物理过程诊断项目中,我还运行了增加诊断变量的GRAPES GFS模式,得到两个时次的结果,该套数据支持诊断软件开发近四年。

业务系统建设

最主要的业务系统建设任务就是整合产品后处理系统,在整合过程中,使用ecFlow的python api生成sms的def文件,参考下面的项目

nwpc-oper/nwpc-product-system-migrate

当然与单位通用的构建系统方式不一致,不方便维护,现在已废弃。

另外还构建了检验系统的框架。正如上一节提到的,我没有创建过完整的模式积分业务系统。

命令行工具

入职以来真正的工作重点其实放在运维工具上。为了解决llqn执行速度慢的问题(注:llqn显示当前用户的loadleveler作业),开发了llcient命令行工具,参见

nwpc-oper/loadleveler-client

为了解决SMS作业提交失败的问题,更新了llsubmit系列脚本,参见

perillaroc/nwpc-nost

为了分析提交脚本的日志,开发了GUI分析工具。参见

perillaroc/nwpc-nosat

SMS监控

监控SMS一直是我们部门最重要的任务,为了更高效地监控业务系统运行状态,我开发了一整套SMS监控平台,包括实时状态收集、显示和报警信息推送等,参见

perillaroc/nwpc-monitor-platform

为了将SMS收集器与AIX操作系统解耦,开发了SMS CDP的docker镜像,参见

perillaroc/sms-docker

HPC监控

虽然高性能计算机不由我们部门维护,但我们依然关心它的运行状态。因此,我针对AIX基于Prometheus和Grafana开发了HPC监控系统,参见

perillaroc/nwpc-hpc-exporter

SMS日志分析

我们缺乏统一的日志平台,因此分析SMS日志是获取历史任务信息的唯一途径,我因此申请了单位的青年基金项目,开发了SMS的日志分析工具,参见

perillaroc/nwpc-log-reporter perillaroc/nwpc-workflow-log-tool

开发总结

上述项目中与LoadLeveler和SMS相关的大部分项目已不再维护,少部分已迁移到PI上,适应PI上新的工具,未来会持续开发,欢迎大家继续关注。

再见AIX

2019年终于不用升级AIX上的业务系统,因此我也不会继续在AIX上进行开发,再见AIX,该去投入Linux的怀抱了。