高校中小型高性能集群系统的建设及管理实践
冯伟1 姜远飞1 孙晶2 姚震3 刘爱华1
1.吉林大学原子与分子物理研究所
吉林长春 130012
2.吉林大学数学学院
吉林长春 130012
3.吉林大学超硬材料国家重点实验室
吉林长春 130012
作者简介
冯伟,博士,高级工程师。
姜远飞,博士,高级工程师。
孙晶,博士,副研究馆员。
姚震,博士,副教授。
刘爱华,博士,教授。
本文目录结构
摘 要
理论模拟实验室是高校各级科研单位开展教学和科研工作的重要支撑平台。如何建设可持续发展且具有高性价比的高性能计算集群系统,并实现集群系统的高可用性和安全使用是各级科研单位集群系统建设和管理的重要问题,也是理论模拟实验室在“双一流”建设中所要面对的重要任务之一。基于吉林大学原子与分子物理研究所共享集群系统的建设、管理和维护实践,提出集群软件等公用资源共享使用、计算资源统一规划、分级管理,并结合自行开发的集群监控管理系统,利用手机端进行集群状态监控,发现异常即时处理,从而提高集群系统管理效率和确保集群系统稳定运行,为学科发展提供重要支撑。
关键词
理论模拟;高性能计算集群;实验室管理;分布式拒绝服务;监控管理系统
理论模拟研究是科学研究的主要组成部分,而高性能计算集群系统是进行理论模拟研究的重要支撑平台[1-2]。近年来,国内各高校高性能集群系统蓬勃发展。据统计,2021年中国HPC TOP100的行业应用中30%的应用为科学与工程计算类应用[3]。以“东数西算”为核心的全国数据中心新布局,将理论模拟研究的平台建设推到一个更高的层次。然而,高性价比的超算中心对从事理论模拟研究的单位存在一些应用不便,例如,高性价比的超算中心大多按年租赁,通常为每个研究组配置一个账号,若多人共用同一账号,则无法保障个人数据的私密性和安全性。用户使用受限,使得超算中心平台资源使用的灵活度低于自有资源。随着“双一流”建设发展,各高校的各级科研单位和研究组在租用超算中心的同时,都纷纷构建了或公用或私有的高性能计算集群系统。但受资金、管理人员、空间等方面的限制,高校所建的集群系统规模一般在百台以内,且基本上以分批建设为主。
吉林大学原子与分子物理研究所是教育部1979年批准设立的自然科学研究机构,研究所的理论模拟实验室主要为原子、分子及能源物理研究提供高性能的数值模拟计算与分析。早在2005年,研究所就利用当时最先进的IBM p690进行教学、科研工作。随着计算机硬件技术的发展,研究所理论模拟实验室规模也在逐渐扩大,各研究组陆续采购多核心塔式、机架式服务器开展教学和科研工作。但由于各计算节点都是独立使用的,并未构建统一的管理平台,直至2015年,研究所才有课题组构建了一套拥有6台计算节点的高性能计算集群系统。
为提升理论模拟科研平台的计算性能,2019年底,依托“新型光场调控物理及应用”重大研究计划,在一流学科建设经费资助下,研究所集结所内各研究组的资源,构建了一套仅有5台计算节点的高性能计算集群系统。此后,每年各研究组及研究所陆续投入资金对共享集群系统进行升级改造,甚至有部分研究组将其原有的高性能、独立使用的计算节点迁移到此平台。目前,研究所共享集群系统共有50台计算节点(含2600多核心)。这种分期建设的既有全体师生共享资源又有研究组私有资源的中小型集群系统如何进行配置和管理,实现集群系统的安全访问和资源的开放共享,从而提高资源利用率,得到最大的投入产出比,促进教学、科研工作高效稳定地进行,是集群系统建设单位也是高校理论模拟实验室需要进一步探讨的问题[4-6]。
1 集群系统的配置
中小型集群系统的建设通常使用开源软件,笔者建设集群系统时,操作系统采用开源软件Centos 7.2[7],作业调度系统使用开源软件SLURM19.05[8]。为满足全体用户的共性和个性需求,集群系统在操作系统和作业调度系统上做了如下配置。
1.1 作业提交方式
为平衡经费投入、缩减共享存储IO读写开销,并减少对计算节点系统盘的影响,集群系统中每个计算节点增设一块1T SSD盘(加载点为/scratch),作为计算节点的作业数据存储空间(/scratch/job)和各类计算软件的临时文件存储空间(/scratch/tmp)。对于作业核数使用低于单节点核数(48核或者56核)的作业,通过改变作业提交方式实现。在作业开始前,将输入数据文件提交到计算节点临时作业目录(/scratch/job)下,读写计算节点本地硬盘;待作业结束后,将计算结果数据拷贝回共享存储空间。随着使用软件种类的增多,笔者发现部分计算软件(MOLPRO、QE、EPOCH等)运行时需要大量的临时文件读写。经测试,有6个MOLPRO任务同时读写共享存储空间,容易引起执行ls等磁盘I/O操作命令异常缓慢。为解决这个问题,平台严格限制MOLPRO作业的跨节点运行,要求必须修改MOLPRO作业脚本,将MOLPRO作业临时文件和中间结果存储到计算节点/scratch/job目录下。
受集群系统建设规模影响,在集群用户使用高峰期(毕业论文、文章修改、数据补充期等),平台会出现较长时间的作业排队情况。不同类型作业的运行时长受多种因素的影响,并非核数越多,执行效率越高。为了测试使用多少核数提交作业,平台才能获得最大的使用效率,集群系统主要进行两种作业(GAUSSIAN和MOLPRO)核数和运行时间的比较。图1(a)、图1(b)分别是GAUSSIAN和MOLPRO的单节点作业核数与运行时间对比图,从图1可以看出,每个作业若以8~14核提交,则能得到较高的核数-运行时间比。因此,笔者建议大部分作业使用8~14核提交,确保集群系统在集群应用繁忙期能够运行较多的作业,并兼顾使用公平与运行效率,以满足各研究组的使用需求。
图1 GAUSSIAN、MOLPRO作业核数-运行时间对比
1.2 集群队列划分
在集群系统中,既有研究组间共享的计算资源,又有研究组内私有的计算资源。为均衡共享资源的使用,集群系统从整体上分为共享队列和私有队列。各研究组配套采购的计算节点划分到所在的研究组队列中,设置使用权限,这样研究组内用户使用时作业任务的计算时长不受限制。根据大部分作业在10天内即可运算完成的特性,将共享队列按运行时长又分为两个队列:iamp队列和long队列。其中,iamp队列拥有较多的计算节点(19台),且运行时长限定为10天,此队列中提交的作业数量不受限制;long队列配置较少的计算节点(5台),作业运行时间不受限制,但每个研究组可运行的作业数量限定为2个。long队列可以复用iamp队列中的部分计算节点,因此,long队列的优先级高于iamp队列。通过上述方式设置队列,限制了共享队列中超长时间作业的提交,促进了共享资源的循环使用,从而保障了集群用户均衡使用共享资源。
1.3 软件资源组间组内共享
集群系统中安装的软件资源包括三大类:全体用户共享使用的软件(如各版本编译器,FFTW、BLAS等各类数学库,DFTB、CP2K、NAMD、OCTOPUS等各类开源软件,GAUSSIAN、VASP等研究所采购的商业软件),研究组内共享的软件(组内开发的软件、组内采购的MOLPRO、Q-CHEM等商业软件),以及个人使用的软件。为方便集群用户动态加载上述三类软件的环境变量,集群系统采用“Lmod+Lua”[9]的环境变量加载方式。全体用户共享软件都安装到/data/packages目录下,各研究组使用的软件安装到研究组的共享软件/data/pkg_group/groupname目录下,而用户的个人软件安装到个人目录下。通过上述配置实现软件的组间、组内共享使用,减少集群系统中软件的重复安装。同时,动态加载环境变量的方式相较于原有的修改.bashrc/.login环境变量文件的方式,既降低了集群用户登录时系统内存的消耗,又简化了集群用户环境变量配置的复杂度。
2 集群系统的安全访问及运维管理
集群系统的运维体系和前端安全设备是决定集群系统能否持续高效使用的关键。为实现安全访问管理,各超算中心都配有堡垒机[9]等双因子身份验证系统。各高校在院所级别和研究组级别的中小型集群系统建设时,更侧重于计算节点的性能提升,而不会将有限的资金投入监控管理系统的定制开发中,更不会投到堡垒机、防火墙等前端安全设备上。院所级别的中小型集群系统通常都是由学生负责管理,但学生流动性强,且更侧重于自身的学习和科研任务。只有在集群系统无法使用时才会发现异常,然后联系供应商解决异常,严重影响了科研工作的持续进行。
集群系统根据异常来源可分为外部异常和内部异常。外部异常主要包括实验室停电和以Linux系统挖矿病毒[10]为主的各类DDoS(Distributed Denial of Service)攻击;内部异常主要包括节点硬件损毁、各类软件故障、集群用户不规范使用等。针对上述异常情况,笔者通过如下方案进行相关异常的检测及处理,从而确保集群系统的持续稳定运行。
2.1 实验室异常停电响应
受实验室环境及经费的限制,很多中小型集群系统并没有配置完备的不间断电源UPS(Uninterruptible Power Supply),仅为共享存储和集群管理节点配置了小型机架式UPS,以确保实验室出现异常停电时能够保存关键信息。通过在存储节点上配置检测异常停电及时关机的shell程序,借助Linux系统的定时任务机制crond(Chronograph Daemon),定期执行停电检测脚本,发现停电后依次关闭相关服务器和关键节点的方式,实现了对存储系统和管理节点的保护,降低因断电引起的关键设备故障,从而减少集群系统的宕机概率。
2.2 集群系统安全登录管理
频繁的DDoS攻击是集群系统面临的主要外源威胁。一旦集群系统被攻击,全部算力资源将被抢占,且不易有效彻底地清除,严重影响教学、科研工作的顺利进行。图2为笔者单位的三套集群系统曾遭到的可疑IP攻击信息。
图2 可疑IP攻击信息
为应对此类攻击,首先修改集群系统登录节点,SSH远程登录默认端口号22;其次修改/etc/hosts.deny、/etc/hosts.allow文件,配置禁止及允许SSH远程登录的IP地址范围;最后通过软件开发,修改Linux系统登录过程。在用户登录集群系统时,检测登录IP是否为可疑IP。若发现某一IP在短时间内尝试通过不同的非系统用户名登录系统,即可断定此IP为攻击IP,应立刻封锁此IP的后续尝试登录行为,并通过集群监控管理系统向管理员发出报警。经过上述三方面的设置,部分实现了前端安全设备的安全防护。
2.3 集群系统异常监控管理
为及时发现集群系统异常状况(如使用异常、DDoS攻击、硬件损毁等),笔者通过企业微信消息传送机制开发了一套“手机微信/企业微信端”接收告警信息的集群监控管理系统[11-12],实现在不主动登录集群系统的情况下对集群各类异常状态的实时监控。图3为管理员微信及企业微信App中接收的三类集群系统的告警信息。
图3 管理员微信及企业微信App中接收的告警信息
目前,集群系统监控的异常信息主要包括非法入侵IP检测及封锁、用户非法在登录节点提交计算任务、共享存储异常检测、各节点性能(内存、CPU温度、IO、硬盘等)异常检测、学校OA停电通知检测、集群软件异常检测等。管理员在接到非法攻击IP告警后会及时向学校网络中心反馈,便于网络中心进行后续处理。截至目前,笔者单位已向网络中心汇报了5个可疑IP。这一功能在检测DDoS攻击的同时,也将辅助学校网络中心开展安全防御工作。
图4 集群系统
3 结语
近年来,高校、研究所等各级科研单位、各科研课题组建设的集群系统越来越具规模。实践证明,通过本文提出的集群配置方式可以实现集群系统的可持续运行。一方面,充分利用了科研单位不同批次建设的计算资源,确保国有资产的持续使用;另一方面,提升了集群用户安全使用水平和故障检测效率,降低了运维成本,促进了集群系统安全、高效、共享使用,为一流学科建设提供重要支撑。
参考文献
[1] 孙震宇,石京燕,姜晓巍,等.大型高能物理计算集群资源管理方法的评测[J].计算机科学,2017,44(10):85-90.
[2] 金钟,陆忠华,李会元,等.高性能计算之源起:科学计算的应用现状及发展思考[J].中国科学院院刊,2019,34(6):625-639.
[3] 袁国兴,张云泉,袁良.2021年中国高性能计算机发展现状分析[J].计算机工程与科学,2021,43(12):2091-2097.
[4] 郜广兰,徐晶晶,任刚,等.面向高校科研人员的高性能集群计算科研平台建设研究[J].河南机电高等专科学校学报,2019(3):4-7.
[5] 孟玲玲.高性能计算集群系统建设与运行管理研究[J].软件导刊,2017,27(3):138-140.
[6] 王云艳,严鹏辉,张天宇.高校高性能并行计算集群系统运行管理机制研究[J].中国宽带,2020(5):106.
[7] The CentOS Project. Centos7.2[EB/OL]. https://www.centos.org/.
[8] Slurm Team. Slurm19.05 [EB/OL]. https://slurm.schedmd.com.
[9] 林志达,张华兵,曹小明,等.基于堡垒机技术的企业信息网络安全防护模型,2022,30(18):179-183.
[10] 郑先伟.注意!新型Linux挖矿木马来袭[J].中国教育网络,2018(12):58.
[11] 冯伟,姜远飞.一种基于企业微信的中小型高性能集群监控系统:202210210018.9[P].2023-06-30.
[12] 冯伟,姜远飞.基于企业微信的高性能集群监控管理系统[J].吉林大学学报(信息科学版),2023(41):382-386.
基金项目:科技部国家重点研发计划(政府间国际科技创新合作重点专项)“基于阿秒脉冲的纳米结构与富勒烯团簇超快动力学理论研究”(编号:2022YFE0134200);吉林大学实验技术项目“高性能计算平台的整合及远程监控管理系统的开发实施”(编号:2023-SYXM2023b023);吉林大学超硬材料国家重点实验室开放课题“超硬材料理论研究平台计算性能及管理效率提升的研究”(编号:202425)。
本文发表在《中国现代教育装备》杂志2024年9月第17期,如有转载,请注明出处。
责任编辑 | 张赛 郭熙凤
排版 | 张鑫
发布 | 张鑫