3 高校超算集群标准化建设流程
超算集群的建设是一个复杂且有一定时间跨度的过程,从项目立项为伊始到交付、验收、正式上线运行,一般需要8-12个月的时间。其中需要注意的事项与流程较多,一般以需求为导向开始逐步规划与建设。
3.1 初步拟定需求
首先需要初步规划集群的用途和目标,如计算需求、数据规模与存储性能、高速网络带宽、对外网络的带宽、预估需要多少算力,在同行中处于何种水平,或者想要在top500中取得多少排名。以下几点建议在这个阶段的工作中基本明确。
3.1.1 计算需求
明确计算需求是集群设计的必要工作。应考虑清楚集群未来主要应用场景和计算需求,如需要处理的数据量、计算规模、并行计算需求等。根据计算需求确定集群的规模和性能指标,如计算节点数量、每个计算节点的处理器核心数(当然也需要考虑拟选定cpu的每核心价格)、内存容量等。 并根据实际应用需求进行权衡和调整,以确保集群建设目标与应用需求相匹配,并能够满足未来的扩展和发展需求。
3.1.1.1 现有资源评估
如有已在运行的集群,应查看与统计当前计算资源的利用率和性能瓶颈,分析哪些资源经常会排队、队列排队的比例,平均每个作业排队的时间是多久。统计哪些资源未被充分利用,分析这部分资源未被充分利用的原因,考虑是否在新一代集群中减少占比或者有其他替代方案。 同时也可以收集有关当前系统性能状况的信息,如故障率较高、容易发生故障的组件等,这些部分应在新的集群中得到稳定性的加强。
3.1.1.2 校内调研
校内调研可以通过线上或线下的形式进行开展,如针对学院、学科、代表软件设计的线上调查问卷,或者针对原先用户的普遍性问卷调查。线下调研可以针对一些大课题组的用户或者用户数量大、用户活跃度踊跃的院系或者一些潜在用户群体进行调研,分析其在科学研究、工程模拟、数据分析等方面的需求。 当然在集群正式运行之后,应建立一个长期的反馈机制,以便用户可以定期更新他们的计算需求。
3.1.1.3 校外调研
校外调研可以优先参观当前具有代表性的高校集群,再考察国家超算、商业化集群。如果可以,建议在以下几个方面进行全方位的咨询,深度了解。
- 硬件方面:选址、建设规模、硬件配置、机房设计、配套设施设计等。
- 软件方面:运维管理软件栈,运维管理制度,用户管理方法,用户教育方法,用户计费结算方法,数据安全设施,网络安全设施,调度方法,主要计算软件,主要用户群体,作业时长分布,作业规模分布,集群软硬件故障率,软硬件故障处理方法等。
- 团队方面:管理团队、开发团队、运维团队、后勤保障团队等。
- 综合方面:询问经典的服务、管理、应急、招投标等案例等。
他山之石,可以攻玉。如有可能,尽量调研3家以上高校或单位,总结是否有共性的问题可以借鉴,规避明显的设计缺陷。
3.1.2 性能要求
根据实际需求确定集群的性能要求,包括计算的浮点能力、存储容量及性能、网络带宽等。同时考虑未来主要任务的工作负载特点和计算任务的特征,初步确定集群总体的性能指标,以支持高效的科学计算和数据处理。在初步拟定集群的性能要求后,可以考虑常规性能指标的验收标准,如HPL、IOZONE、OSUBENCHMARK等。
3.1.3 可扩展性
考虑未来集群的扩展需求和可能的发展方向,确保集群具备良好的可扩展性。根据计算规模和需求的增长预测,选择合适的硬件和网络设备,以便在需要时能够方便地进行扩展和升级,在基础建设时预留一定的空间及电力冗余。
3.1.3.1 硬件扩展性
在考虑集群的硬件扩展性方面应选择支持横向扩展的服务器和网络设备。如服务器是否支持且易于横向扩展,内部的组件是否通用且模块化设计,是否内存插槽留有余量,选用的Pcie是否可以支持更高速的组网。
3.1.3.2 软件扩展性
在考虑集群的软件扩展性方面应注重如下几个方面。
- 模块化设计:将HPC集群软件系统划分为模块,通过松耦合的方式设计模块之间的交互和通信。这样的设计可以使得在集群规模扩大时,能够更容易地对系统进行扩展和维护,同时也有利于保持系统的稳定性。如各类关键管理软件所在的节点物理或逻辑上可以尽量打散部署,但对有依赖关系的软件套件及数据库等中间件互相独立,方便对其分配的资源动态扩容。
- 水平扩展性:HPC集群软件应具备良好的水平扩展性,能够随着集群规模的增加而扩展其性能和容量。在设计时需要考虑如何有效地将新增的物理节点、计算资源或异构的设备整合到系统中,使其能够协同工作并提供线性的性能增益。
- 弹性伸缩性:HPC集群软件需要考虑在面对不同工作负载和需求变化时的弹性伸缩性。这意味着系统应能够动态地调整资源分配和任务调度,以适应不同计算需求的变化,保证系统在不同负载下能够高效运行。如作业调度系统可以支持大规模数量的并发使用,开源的slurm软件是一个不错的选择。
- 管理便利性:HPC集群通常由大量的节点和复杂的软件组成,软件扩展性设计也需要考虑如何简化管理和维护。如能提供可视化的管理界面、自动化的配置和部署工具等,可以帮助管理员更好地管理整个集群系统。
3.1.3.3 存储系统可扩展性
在考虑集群的存储系统扩展性方面应注重如下几个方面。
- 弹性的存储容量扩展:存储系统需要支持弹性的存储容量扩展,能够随着数据增长而扩展存储容量,而不会影响系统的性能和可用性。这可以通过使用可扩展的存储架构和技术来实现,例如分布式文件系统或对象存储系统。
- 水平的存储性能扩展:除了存储容量的扩展,存储系统的性能也需要能够随着存储规模的增加而线性扩展。通过采用并行存储架构和优化存储访问的方式,可以实现存储性能的水平扩展,确保系统在面对大规模计算和数据处理时能够提供高效的存储服务。
- 灵活的数据访问和共享:存储系统需要支持灵活的数据访问和共享,能够满足不同计算任务对数据的访问需求。这包括对不同数据访问模式(例如随机访问和顺序访问)的支持,以及跨节点、跨用户的数据共享能力。
- 可扩展的数据保护和恢复:存储系统需要具备可扩展的数据保护和恢复能力,能够有效地备份和恢复大规模数据,并确保数据的可靠性和一致性。这可能涉及到数据备份策略的设计、快照和镜像技术的应用等方面。
3.1.4 能耗效率
在建设新的集群时必须要考虑集群的能耗效率。PUE是Power Usage Effectiveness的简写,是评价集群能源效率的关键指标,集群消耗的所有能源与IT负载使用的能源之比。PUE越接近1,表明能效水平越好。 前期设计的服务器物理散热架构决定了PUE可以下探的极限,如风冷架构可以接近1.35,板载水冷架构约1.10,浸没式液冷架构约1.05,当然集群所在地区的自然环境差异也会对数值有些影响。选择节能的硬件设备和合理的能耗管理系统,降低能源消耗,达到节约成本和环保的目标,符合双碳政策,将PUE控制在相对的较好水平。
3.1.5 高可用性和可靠性
确保集群具备高可用性和可靠性,应采用冗余设计和容错机制,以保障集群的稳定运行,尽量减少全局性故障引起的停机时间,如电力系统、制冷系统、网络、存储等方面的单点故障隐患。
- 电力系统N+1架构:建议为存储、管理及核心网络部分应配备N+1电力设备,从ups到列头柜到PDU,再到服务器及交换机等末端设备均采用N+1的电源模块,在供电方面有所保障。在遇到市电波动或者一路市电维护的场景时可以让用户继续访问数据。
- 制冷系统冗余:如采用风冷架构则建议每个微模块有一台空调的冗余,如采用液冷的架构需要设计cdu、冷却塔及管道预留机柜的接口甚至是多回路的备份。
- 核心管理网络:核心管理网络建议可以采取堆叠的方式避免单点故障,堆叠式网络架构可以将两个或多个物理交换机堆叠成一个逻辑交换机,从而增加了内部交换带宽和吞吐量,提供更大的数据传输能力。当一个交换机发生故障时,堆叠中的其他交换机可以自动接管其功能,确保网络的连通性。同时,堆叠式网络架构能够提供统一的控制平面,对于整个堆叠中的交换机实现统一的管理和控制,简化了网络的运维管理。不过需要注意的是,当堆叠网络架构需要扩展或者更换物理设备时需要承受一定时间的断网。
- 存储系统冗余:HPC集群应存在多个存储系统,如一套较小的存储部署了nas文件系统,较大容量的热存储部署lustre或gpfs分布式文件系统,一定容量的冷存储以块或者nas的形式挂载在部分数据节点上。这些存储从物理及逻辑上尽可能都是高可用架构,避免出现单点故障导致作业或登陆异常,影响用户体验。
- IB网络架构:由于价格较贵,一般IB网络采用树状架构即菊花链式连接,存在单点故障的风险。如预算足够且对于高速网络的要求较高可以考虑胖树组网的架构,胖树网络可以提供高带宽和低延迟的通信能力;也具有多条冗余路径,当出现链路或交换机故障时,可以快速切换到其他路径,保证通信的连续性和可靠性。同时,胖树网络还具有很好的扩展性。
3.2 规划和设计
集群的规划和设计可以根据初步的需求大致确定集群的规模、性能指标、网络拓扑结构等,再进行服务器、芯片、网络设备等的选型。
3.2.1 内部规划
通过前期的调研及初步分析,可将算力为基准开始倒推,需要多少核心、节点数,配置多少存储,再算出需要多少机柜、待建的机房区域是否有足够的空间与电力。当然cpu的选型、每节点的核心数、每机柜的功率不同将影响集群的算力及总预算,需要在内部建立一个相关联的表格,算出一个比较合理的目标区间。
3.2.2 厂商参与
在选则厂商范围时可以考量以下几个方面,再确定纳入考察清单:
- 技术实力:评估厂商的技术实力和创新能力,包括其硬件产品性能、软件解决方案、技术支持和研发投入等方面。
- 参考案例:了解厂商在HPC领域的成功案例和客户参考,以验证其在HPC集群建设方面的实际经验和能力。以近两年不同架构的代表方案优先,或者算力接近的案例。
- 合作伙伴关系:考虑厂商的合作伙伴网络和生态系统,包括硬件合作伙伴、软件合作伙伴和服务提供商等,以确保整体解决方案的完整性和稳定性。
- 技术支持:评估厂商的技术支持能力,包括售前咨询、售后支持、培训等方面的服务水平。
- 持续发展:考察厂商的发展战略和产品技术路线,确保其能够持续提供具有竞争优势的产品和服务,如对国产自主操作系统是否有持续的研发投入。
3.3 立项与采购
根据规划和设计的需求进行硬件设备的采购,包括服务器、存储设备、网络设备等,需根据国家、地区及学校的招标办法进行。
3.3.1 立项
需要根据学校内部的流程规范进行。首先,应在单位内部决议通过,再进行平级单位的审核,如财务预审、可行性评估、对项目意义与价值等进行充分阐述,期间有多份材料需要撰写及修改。在流程及必要的文件都通过后,取得最终的立项批复。
3.3.2 招采
在立项通过及确认资金来源后,应尽快开展招采流程,一般耗时在3-4个月,一般有以下流程。
- 招标文件编制:编制HPC集群招标文件,明确硬件设备与软件服务的具体要求,包括技术规范、投标人资格要求、技术支持、售后服务等内容。
- 招标公告:发布HPC集群招标公告,吸引各投标人参与竞标,并公布相关招标信息和要求,目前还需要提前进行一个月的意向公开。
- 投标人资格审查:对投标人的资格进行审查,包括注册资格、技术能力、财务实力等方面,确保投标人具备相应的资质和能力。
- 技术方案评审:对投标人提交的HPC集群技术方案进行评审,包括硬件配置、系统架构、性能指标、可扩展性等方面的比对和分析,选定最佳方案。
- 商务谈判:选定后与投标人进行商务谈判,就价格、交付期、服务支持等具体事宜进行磋商,并最终确定中标方案。
- 合同签订:与中标投标人签订HPC集群采购合同,明确双方的权利和义务,确保项目顺利交付和售后服务。
- 项目实施:根据合同约定,协调各方资源,进行HPC集群项目的采购、交付和实施工作,确保按期完成并达到预期效果。
3.4 建设与验收
3.4.1 基础设施
基础设施主要涉及机房的设计与实施,机柜、电源、冷却设备等安装,可靠的基础设施是集群未来持续稳定运行的基石。机房建设一般有以下几个步骤:
- 在开展机房建设之前应尽量提前与大楼物业做好沟通、确认进场手续、临电来源、确认临时堆放材料处、做好临时通道保护等工作。如涉及室外环境或者毁绿也需要和校内主管施工、绿化环境的部门保持沟通,看是否有需要提前报备的流程。
- 在开始施工之前还应和施工经理及监理确认责任划分、例会制度、实施计划、预判主要风险因素、主要机电设备供货周期等。
- 在实施过程中需尽可能对进度和质量管控,处理一些突发的意外。安全与卫生管理也需要提前约定并严格执行,尽量使现场保持有序,对楼宇内其他生产环境的影响降低。还应严格执行合同规定,确保双方权益保障。在实施过程中如发生变更需求,论证材料及流程一定要充分。
- 在建设阶段基本完成后,应提前准备对机房各模块分项测试验收的指标及流程,严格按照方案进行测试,如与预期结果不符,需尽快协商整改方案。每项基础设施的模块验收通过后,则留存好验收报告及记录的相关影音材料。
3.4.2 集成与调试
按照深化设计的上架方案进行服务器、存储设备、网络设备的安装和调试,确保各设备能够正常通信和工作。布线应尽量整齐、美观且标识清楚、对应关系严格按照规律。物理部署完毕后可先按区域加电检测是否有硬件故障的IT设备,最后整体加电,确认所有的设备运行正常。在集群点亮后按照管理网络及计算网络拓扑进行配置,确保各组件可以互联互通,计算资源之间已处于物理上的紧密耦合状态。
3.5 后续运营
3.5.1 集群管理和维护
集群的日常运维应建立合理、完整并不断更新的管理策略、应急SOP和监控系统。包括集群资源调度、性能监测、告警规则的制定与推送、故障处理与记录、故障节点重新上线的流程等,确保集群的高可用性、高性能。如有可能,投入专人开展告警收敛、数字孪生方面的建设。
3.5.2 应用优化和调试
针对具体应用需求(可以是最多用户使用的,或者是重点用户的合作项目)进行性能优化或者并行度的提升,以提高集群的计算能力,增加资源的使用效率。 因具备学科背景且懂计算的人力有限,在选择应用进行代码级或者算法级优化时应考量多个维度,进行投入产出的测算,再进行深入研究。
3.5.3 培训和技术支持
可以邀请厂商或者优秀同行分享经验,对集群管理员和用户进行培训。在校内建立技术支持体系,如监建立邮件工单系统,规范化的解决用户的日常技术问题;组建微信或qq群发布日常通知,使用户可以获取集群最新的动态;完善并及时更新用户手册,同时使用户开通账号的流程更合理,使新用户在使用之前对集群有个初步的认识并上手更友好。