你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

适用于 HPC 的 Azure 良好架构框架

Azure 高性能计算(HPC)计划概述了一个过程,用于合理化方案、确定技术工作的优先级以及确定工作负荷。 对于许多工作负荷,必须遵循一组体系结构原则。 这些原则有助于指导工作负载的开发和优化。 Azure 架构良好的框架中详细介绍了五种体系结构构造。 本指南概述了如何将这些原则应用于数据工作负载的管理。

可靠性

一切都有可能中断。 数据管道并不例外。 出色的体系结构设计时考虑到可用性和复原能力。 关键注意事项是检测更改的速度以及恢复操作的速度。

数据环境应考虑弹性体系结构、跨区域冗余、服务级别、服务级别协议 (SLA) 以及关键支持。 通过使用集成的监视和通知框架,现有环境还应该包括审核、监视和警报。

在这些环境控制上,工作负载团队应考虑:

  • 执行更多体系结构修改以提高服务级别 SLA。
  • 设置冗余的特定于工作负荷的体系结构。
  • 建立监视和通知流程,超出云运营团队提供的功能。

混合 ExpressRoute 连接

为了支持任务关键型 HPC 工作负荷,请使用 Azure ExpressRoute 高可用性配置。 即使在单个站点的高可用性设置中,你可能具有冗余的 ExpressRoute 连接,也不会保护你免受单个边缘站点停机的侵害。 在两个设施中启用两个连接时,如果主要位置发生灾难,冗余可让业务继续。 通过使用 ExpressRoute 高可用性,可以在单个区域中发生 ExpressRoute 中断时帮助确保与 Azure 的连接。

建议

  • 在两个不同的 ExpressRoute 边缘站点位置中启用两条 ExpressRoute 线路,以实现最大冗余。
    • 此设置要求你在Azure 门户中为两个不同的 ExpressRoute 边缘站点位置建立两条 ExpressRoute 线路。 然后,将两条 ExpressRoute 线路连接到 Azure 中的同一虚拟网络。
    • 将两个边缘站点位置放置在同一 Azure 区域中。 如果某个对等互连位置发生故障,则提供冗余。 两个 ExpressRoute 连接都终止到 Azure 中的同一虚拟网络。 查看 ExpressRoute 位置和连接合作伙伴的列表,以规划 ExpressRoute 对等互连位置。
    • 使用提供程序配置第二个 ExpressRoute 站点。
    • 确保第二个连接正常工作,方法是将流量故障转移到第二个位置,这一点至关重要。 执行常规演练以确保连接。

有关最大复原能力 ExpressRoute 配置的详细信息,请参阅 ExpressRoute 的灾难恢复设计。

安全性

将安全原则应用于 HPC 环境,以提供防范故意攻击和滥用有价值的数据和系统的安全措施。 了解如何保护用户操作系统映像和用户访问,并遵循 Azure Batch 和 Azure CycleCloud 安全准则。 有关详细信息,请参阅 安全支柱的原则。

操作系统映像

Azure 市场提供在群集中使用的基于 Linux 的 HPC 映像。 这些映像包含许多常用库、软件包和诊断工具,例如:

  • 基于 InfiniBand 的消息传递接口 (MPI) 库。
  • 梅拉诺克斯·
  • 通过 InfiniBand 预配置的 IP。
  • 通信运行时。
  • Intel/AMD 优化库。
  • Azure HPC 诊断工具。

可以从映像开始,然后应用组织的安全策略来加强软件映像免受漏洞和网络威胁的影响。 验证后,可以在 Azure 计算库中保存新映像。 然后,可以使用映像在 Azure CycleCloud、Azure HPC 和 Batch 中创建虚拟机。

用户访问权限

  • 为每个职能定义明确的责任线和职责分离。
  • 根据“需要知道”和“最低权限”安全原则限制访问。
  • 通过 Azure 基于角色的访问控制将权限分配给特定范围内的用户、组和应用程序。 尽可能使用内置角色。
  • 通过资源管理锁定来防止删除或修改资源、资源组或订阅。
  • 使用托管标识访问 Azure 中的资源。
  • 支持单个企业目录。 保持云和本地目录同步,但具有重大影响力的帐户除外。
  • 设置 Microsoft Entra 条件访问。 在对所有用户进行身份验证时强制执行和衡量关键安全属性,尤其是对于具有重大影响力的帐户。
  • 使用无密码方法或选择新式密码方法。
  • 阻止旧协议和身份验证方法。

Azure Batch 安全性

遵循最佳做法为 Batch 启用安全性。

Azure CycleCloud 安全性

遵循最佳做法为 Azure CycleCloud 启用安全性。

成本优化

若要充分利用在 Azure 中运行环境,请确定成本管理和前期规划练习的优先级。 成本管理和规划通常是组织成功云迁移旅程的最重要注意事项。 Microsoft 成本管理 为你提供了用于规划、分析和减少支出的工具,以最大程度地增加云投资。 有关规划和优化云成本的方式的详细信息,请参阅 成本管理计费最佳做法。 以下注意事项是成本优化中最重要的一些注意事项。

操作系统的选择

Linux 是 HPC 工作负荷的主要操作系统。 Linux 是开源的,已针对性能进行了优化,以使用 HPC 基础结构。 因此,MPI 库和 Infiniband 驱动程序适用于 Linux 与 Windows。 通过使用 Linux 虚拟机(VM)和 Windows 设置 HPC 群集,它绝对可以节省成本。 但是,某些用户可能会对 Windows 环境有很强的偏好,尤其是在执行工作负载(例如计算流体动力学)的预处理和后处理任务时。 在这种情况下,我们建议将 Windows 前端作业提交到 Linux 主机(头节点),该节点使用计算节点进行模拟。

自动缩放

自动缩放允许仅在提交作业或作业处于活动状态时设置和使用 VM。 作业完成后,节点会自动关闭。 通过使用自动缩放,可以调整应用程序使用的计算资源,从而节省时间和金钱。 默认情况下,Azure CycleCloud 在其计划程序中启用自动缩放。 关闭节点的默认时间限制为 15 分钟。 可以自定义时间限制。 时间限制有助于确保用户仅为其使用的内容付费。 Batch 提供了一种机制,用于将自动缩放公式与所选参数集成。 有关详细信息,请参阅Azure 中的自动缩放入门

即用即付与预留实例和现成实例

Azure 提供各种定价选项、即用即付、预留实例以及一年或三年选项,以及受数据中心可用容量约束的现成实例。 即用即付实例经济高效,因为它们迎合了零星的容量需求。 如果对 HPC 持续需求或 Azure HPC 上运行的许多应用程序,预留实例可以证明经济高效。 这两者都非常适合生产就绪工作负载。 现成实例适用于简短测试和试验,或者应用程序是否需要检查点(例如基因组学)。 现成实例受数据中心可用容量的约束。 定价取决于这些因素。 可以使用最小通知逐出现成实例。

数据分类

HPC 工作负荷受益于高吞吐量存储。 例如,使用 Azure 托管 Lustre、Azure Net 应用文件或 BeeGFS 并行文件系统。 这些存储服务提供性能,但可能会付出代价。 请务必事先对数据进行分类,以便只有特定于应用程序的数据驻留在这些系统中。 所有其他数据可以驻留在低成本存储解决方案中,例如 Azure Data Lake 存储 或Azure Blob 存储。

此外,按需设置 HPC 存储系统有助于确保数据同步到低成本存储服务(如 Blob 存储)。 按需存储有助于确保在关闭高性能存储系统时将数据保留在 Blob 存储。 托管 Lustre 和 Net App 文件提供同步服务。

设置预算

Azure CycleCloud 允许你为每个群集设置预算,如果通知即将耗尽预算,可以向收件人发送通知。 对于 Batch,可以从Azure 门户为 Batch 池或 Batch 帐户创建预算和支出警报。 存在任何透支风险时,预算和警报可用于通知利益干系人,不过,支出警报可能会有所延迟,并可能存在略微超出预算的情况。

卓越运营

使 HPC 应用程序在生产环境中运行时,部署必须可靠且可预测。 可靠且可预测的部署包括使用基础结构即代码(IaC)解决方案自动执行 HPC 工作负荷。 还必须执行节点运行状况检查来分析和监视 HPC 工作负荷。

有关部署建议的详细信息,请参阅推荐,了解如何使用基础结构即代码。 有关监视建议的详细信息,请参阅推荐来设计和创建监视系统

基础结构即代码

Azure 上的 HPC 部署多个资源,例如 Azure CycleCloud、HPC 群集、存储、可视化节点、许可证服务器等。 若要自动执行部署,我们建议使用行业标准工具(如 Terraform、Ansible 和 Packer)来简化该过程。

节点运行状况检查

Azure 托管 Grafana 是用于分析和监视解决方案的完全托管服务。 Grafana Labs 支持 Grafana 并提供可扩展的数据可视化效果。 可以将此解决方案作为示例集成到 HPC 工作负载中。 有关详细信息,请参阅 Azure HPC OnDemand 平台

性能效率

确保 HPC 环境能够高效地进行缩放,以便它可以满足用户对它的需求。 根据应用程序供应商建议为 HPC 应用程序选择适当的平台。 如果需要额外的基础结构来满足需求,投资容量规划。 当用户使用系统时监视 HPC 基础结构性能。

有关详细信息,请参阅 性能效率文章

为 HPC 应用程序选择正确的平台

Azure 为基于 Intel、AMD CPU 和 NVIDIA 和 AMD GPU 的 VM 提供了一系列平台。 尽管大多数应用程序都与可用内容兼容,但某些应用程序仅受益于特定类型的 CPU 或 GPU。 在将基础结构部署到云之前,请务必向应用程序供应商(ISV)提供建议,以了解以下需求。

  • 如果应用程序受内存限制、CPU 绑定或 GPU 绑定
  • 如果针对任何类型的 CPU 或 GPU 体系结构有性能建议
  • 如果有一种类型的 MPI 及其应用程序可以从其应用程序中受益的版本
  • 如果计划程序类型有建议
  • 如果建议并行文件系统中的 IOPS/吞吐量

投资容量计划

根据应用程序的类型及其许可证条件,查看许可证是否设置为使用特定数目的核心。 评估你的投资,使许可证能够迎合 HPC,然后相应地规划容量。

监视基础结构的性能

  • 必须能够跟踪用户使用系统的方式、跟踪资源使用情况,并普遍监视系统的运行状况和性能。 可以使用此信息作为诊断帮助来检测和更正问题,并帮助发现潜在问题并防止它们发生。 有关可用于监视资源的 Azure 组件和服务概述,请参阅 Azure Monitor 概述
  • 监视器是一个很好的工具,用于确定 VM 实例和存储中是否存在任何瓶颈。
  • 存储限制可能导致应用程序大幅减慢并影响性能。 当存储中的输入和输出操作超出所设置的吞吐量限制时,会发生限制。 Azure 存储服务提供读取和写入操作图来监视是否存在限制问题。
  • Azure CycleCloud 与 Azure 服务(如 Monitor 和 Microsoft 成本管理工具)集成。 它还支持通过可插入体系结构监视外部服务。 有关详细信息,请参阅 “监视”。
  • 此外,如果使用 Batch,Batch Explorer 是一种免费的功能丰富的独立客户端工具,可帮助创建、调试和监视 Batch 应用程序。

后续步骤