再见AIX

目录

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

AIX

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

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

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

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

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

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

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

AIX上的开发

模式运行

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

perillaroc/nwpc-grapes-meso-script (注:因安全问题,项目转为 Private)

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

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

业务系统建设

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

nwpc-oper/nwpc-product-system-migrate (注:因安全问题,项目转为 Private)

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

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

命令行工具

入职以来真正的工作重点其实放在运维工具上。 为了解决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 的怀抱了。