使用 Microsoft HPC Pack 和按需 Azure PaaS 计算节点设置混合高性能计算(HPC)群集

使用 Microsoft HPC Pack 2016 Update 1(或更高版本)和 Azure 设置小型混合高性能计算(HPC)群集。 本文中所示的群集由本地 HPC Pack 头节点和一些在 Azure 云服务中按需部署的计算节点组成。 然后,可以在混合群集上运行计算作业。

混合 HPC 群集

本教程演示了一种方法,有时称为群集“突发到云”,以使用可缩放的按需 Azure 资源来运行计算密集型应用程序。

本教程假定以前没有使用计算群集或 HPC Pack 的经验。 它仅用于帮助快速部署混合计算群集以实现演示目的。 有关在生产环境中大规模部署混合 HPC Pack 群集的注意事项和步骤,请参阅 详细的指南。 若要使用旧版 HPC Pack,请参阅 HPC Pack 2012 R2 文档

先决条件

  • Azure 订阅 - 如果没有 Azure 订阅,只需几分钟即可创建 免费帐户

  • 运行 Windows Server 2012 R2 或 Windows Server 2016 的本地计算机 - 将此计算机用作 HPC 群集的头节点。 如果尚未运行 Windows Server,可以下载并安装 评估版

    • 计算机应加入 Active Directory 域。 出于测试目的,可以将头节点计算机配置为域控制器。 若要添加 Active Directory 域服务服务器角色并将头节点计算机提升为域控制器,请参阅 Windows Server 的文档。
    • 若要支持 HPC Pack,操作系统必须安装以下语言之一:英语、日语或中文(简体中文)。
    • 验证是否已安装重要更新和关键更新。
  • HPC Pack 2016 - 免费下载 最新版本的安装包,并将文件复制到头节点计算机。

  • 域帐户 - 此帐户必须在头节点上配置本地管理员权限才能安装 HPC Pack。

  • 从头节点到 Azure 的端口 443 上的 TCP 连接(已超出边界)。

在头节点上安装 HPC Pack

首先在运行 Windows Server 的本地计算机上安装 Microsoft HPC Pack。 此计算机将成为群集的头节点。

  1. 使用具有本地管理员权限的域帐户登录到头节点。

  2. 通过从 HPC Pack 安装文件运行 Setup.exe 来启动 HPC Pack 安装向导。

  3. HPC Pack 2016 安装程序 屏幕上,单击 新安装或向现有安装添加新功能。

    HPC Pack 2016 安装程序

  4. Microsoft软件用户协议页上,单击 下一

  5. 选择安装类型 页上,单击 通过创建头节点创建新的 HPC 群集,然后单击“下一步”

  6. 该向导运行多个预安装测试。 如果所有测试都通过,请单击 安装规则 页上的“下一步”。 否则,请查看提供的信息,并在环境中进行任何必要的更改。 然后再次运行测试,或者如有必要,请再次启动安装向导。

  7. HPC DB 配置 页上,确保所有 HPC 数据库都选择了 头节点,然后单击“下一步”

    DB 配置

  8. 接受向导剩余页上的默认选择。 在 安装所需组件 页上,单击 安装

    安装

  9. 安装完成后,取消检查 启动 HPC 群集管理器,然后单击 完成。 (在后面的步骤中启动 HPC 群集管理器)。

    完成

准备 Azure 订阅

使用 Azure 订阅 Azure 门户中执行以下步骤。 完成这些步骤后,可以从本地头节点部署 Azure 节点。

注意

另请记下 Azure 订阅 ID,稍后需要该 ID。 在门户中 订阅中找到 ID。

上传默认管理证书

以前的 HPC Pack 版本在头节点上安装自签名证书(称为默认Microsoft HPC Azure 管理证书),你可以将其作为 Azure 管理证书上传。 但从 HPC Pack 2016 Update 1 中,默认情况下不提供此证书,因此需要在头节点上准备具有命令的自签名证书,并将证书导出为 tmpfolder\hpccert.cer

New-SelfSignedCertificate -Subject "CN=HPC Pack Management" -KeySpec KeyExchange -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2") -CertStoreLocation cert:\LocalMachine\My -KeyExportPolicy Exportable -NotAfter (Get-Date).AddYears(5) -NotBefore (get-Date).AddDays(-1)
  1. 在头节点计算机中,将证书从 tmpfolder\hpccert.cer 导入到 LocalMachine\My。 请注意,与以前的 HPC Pack 版本不一样,无需导入证书来 LocalMachine\Trusted Root

  2. 登录到 Azure 门户

  3. 单击 订阅>your_subscription_name

  4. 单击 管理证书>上传,在文件 tmpfolder\hpccert.cer的头节点上浏览。 然后单击 上传

默认 HPC Azure 管理 证书显示在管理证书列表中。

创建 Azure 云服务

注意

为了获得最佳性能,请在同一地理区域中创建云服务和存储帐户(在后面的步骤中)。

  1. 在门户中,单击 云服务(经典)>+添加

  2. 键入服务的 DNS 名称,选择资源组和位置,然后单击“创建

创建 Azure 存储帐户

  1. 在门户中,单击 存储帐户(经典)>+添加

  2. 键入帐户的名称,然后选择 经典 部署模型。

  3. 选择资源组和位置,并将其他设置保留为默认值。 然后单击 创建。 此处必须具有前缀的“新建”或“选择资源组”Default-Storage-<your_picked_Location> 否则服务将无法找到存储帐户。

配置头节点

若要使用 HPC 群集管理器部署 Azure 节点并提交作业,请先执行一些所需的群集配置步骤。

  1. 在头节点上,启动 HPC 群集管理器。 如果出现 “选择头节点”对话框,请单击 本地计算机。 将显示“部署到操作列表”

  2. 所需的部署任务下,单击“配置网络

    配置网络

  3. 在“网络配置向导”中,选择 仅在企业网络(拓扑 5)上的所有节点。 此网络配置是用于演示目的的最简单配置。

    拓扑 5

  4. 单击 “下一步” 接受向导剩余页上的默认值。 然后,在 “查看”选项卡上,单击 “配置 以完成网络配置。

  5. 在“部署目录”中,单击“提供安装凭据

  6. 安装凭据 对话框中,键入用于安装 HPC Pack 的域帐户的凭据。 然后单击“确定”

    安装凭据

  7. 在“部署目录”中,单击 配置新节点的命名

  8. 指定节点命名系列 对话框中,接受默认命名系列,然后单击“确定”。 完成此步骤,即使本教程中添加的 Azure 节点会自动命名。

    节点命名

  9. 部署目录中,单击 创建节点模板。 本教程稍后将使用节点模板将 Azure 节点添加到群集。

  10. 在“创建节点模板向导”中,执行以下操作:

    一个。 在 “选择节点模板类型” 页上,单击 Windows Azure 节点模板,然后单击 “下一步”

    节点模板

    b. 单击“下一 接受默认模板名称。

    c. 在“提供订阅信息 页上,输入 Azure 订阅 ID(在 Azure 帐户信息中可用)。 然后,在 管理证书中,浏览 默认Microsoft HPC Azure 管理。 然后单击“下一步”

    节点模板

    d. 在“提供服务信息 页上,选择在上一步中创建的云服务和存储帐户。 然后单击“下一步

    节点模板

    e. 单击“下一步” 接受 指定代理节点的默认值,指定辅助角色指定向导的启动脚本 页。 请注意,此脚本将在预配期间执行,然后再将节点准备为 offline。 有两个注册表可用于优化默认行为。 例如,如果管理员将注册表项 Microsoft.Hpc.Azure.AzureStartupTaskFailureEnable 设置为 1,则部署将等到启动脚本完成执行,然后再设置作业可访问的节点:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HPC Name:Microsoft.Hpc.Azure.AzureStartupTaskFailureEnable Type:REG_DWORD; (default is 0)HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HPC Name:Microsoft.Hpc.Azure.AzureStartupTaskTimeoutSec Type:REG_DWORD; (default is 1800)

    f. 单击 “下一步” 接受“”设置“Microsoft Azure 虚拟网络 页上的默认值。 如果使用 Azure VPN 或 具有强制隧道的快速路由,则必须使用 Azure 内部负载均衡,只需从子网中选取一个有效且免费的静态 IP。

    节点模板

    g. 单击 “下一步”,在 配置远程桌面凭据页上提供凭据。 单击 “下一步” 以配置可用性策略。 如果以后想要启用自动增长收缩,只需选择 Start and stop nodes manually。 然后,在“审阅”选项卡上,单击“创建 创建 以创建节点模板。

    注意

    默认情况下,Azure 节点模板包括用于启动(预配)和手动停止节点的设置,使用 HPC 群集管理器,稍后可以配置 自动增长收缩。 可以选择配置计划以自动启动和停止 Azure 节点。

将 Azure 节点添加到群集

现在,使用节点模板将 Azure 节点添加到群集。 将节点添加到群集会存储其配置信息,以便可以随时在云服务中启动(预配)它们。 在云服务中运行实例后,订阅仅对 Azure 节点收费。

按照以下步骤添加两个小节点。

  1. 在 HPC 群集管理器中,单击 节点管理(在当前版本的 HPC Pack 中称为 资源管理),>添加节点

    添加节点

  2. 在“添加节点向导”的 “选择部署方法” 页上,单击“添加 Windows Azure 节点,然后单击 ”下一步“

    添加 Azure Node

  3. “指定新节点” 页上,选择之前创建的 Azure 节点模板(默认 默认的 AzureNode 模板调用)。 然后指定 大小为 2 个 节点,然后单击“下一步”

    指定节点

  4. 完成“添加节点向导” 页上,单击“完成

    两个名为 AzureCN-0001 和 AzureCN-0002的 Azure 节点现在显示在 HPC 群集管理器中。 两者都处于“未部署”状态

    添加的节点

启动 Azure 节点

若要在 Azure 中使用群集资源,请使用 HPC 群集管理器启动 Azure 节点(预配)并将其联机。

  1. 在 HPC 群集管理器中,单击 节点管理(在当前版本的 HPC Pack 中称为 资源管理),然后选择 Azure 节点。

  2. 单击 “开始”,然后单击“确定”

    启动节点

    节点将转换为 预配 状态。 查看预配日志以跟踪预配进度。

    预配节点

  3. 几分钟后,Azure 节点完成预配,处于 脱机 状态。 在此状态下,角色实例正在运行,但尚不能接受群集作业。

  4. 若要确认角色实例正在运行,请在 Azure 门户中单击 云服务(经典)>your_cloud_service_name

    应会看到两个 HpcWorkerRole 实例(节点)在服务中运行。 HPC Pack 还会自动部署两个 HpcProxy 实例(大小中等),以处理头节点和 Azure 之间的通信。

    运行实例

  5. 若要使 Azure 节点联机以运行群集作业,请选择节点,右键单击,然后单击 联机

    脱机节点

    HPC 群集管理器指示节点处于 联机 状态。

跨群集运行命令

若要检查安装,请使用 HPC Pack clusrun 命令在一个或多个群集节点上运行命令或应用程序。 作为一个简单的示例,请使用 clusrun 来获取 Azure 节点的 IP 配置。

  1. 在头节点上,以管理员身份打开命令提示符。

  2. 键入以下命令:

    clusrun /nodes:azurecn* ipconfig

  3. 如果出现提示,请输入群集管理员密码。 应会看到类似于下面的命令输出。

    克鲁斯伦

运行测试作业

现在提交在混合群集上运行的测试作业。 此示例是一个简单的参数扫描作业(一种内部并行计算类型)。 此示例使用 set /a 命令运行向自身添加整数的子任务。 群集中的所有节点都有助于完成从 1 到 100 的整数子任务。

  1. 在 HPC 群集管理器中,单击 作业管理>新的参数扫描作业

    新作业

  2. “新建参数扫描作业”对话框中,在 命令行键入 set /a *+*(覆盖显示的默认命令行)。 保留其余设置的默认值,然后单击 提交 提交作业。

    参数扫描

  3. 作业完成后,双击“我的扫描任务” 作业

  4. 单击 查看任务,然后单击子任务以查看该子任务的计算输出。

    任务结果

  5. 若要查看哪个节点为该子任务执行了计算,请单击 分配的节点。 (群集可能显示不同的节点名称。

    任务结果

停止 Azure 节点

试用群集后,停止 Azure 节点以避免对帐户产生不必要的费用。 此步骤停止云服务并删除 Azure 角色实例。

  1. 在 HPC 群集管理器中,在 节点管理(在早期版本的 HPC Pack 中称为 资源管理),选择这两个 Azure 节点。 然后单击 停止

    停止节点

  2. 在“停止 Windows Azure 节点 对话框中,单击 停止

  3. 节点将转换为 停止 状态。 几分钟后,HPC 群集管理器会显示节点 未部署

    未部署的节点

  4. 若要确认角色实例不再在 Azure 中运行,请在 Azure 门户中单击 云服务(经典)>your_cloud_service_name。 生产环境中未部署任何实例。

    这将完成本教程。

为 Azure 辅助角色节点启用自动增长收缩

如果不想手动启动和停止 Azure 辅助角色节点,则可以启用自动增长收缩,以便在队列中有作业时自动启动节点,并在节点处于空闲状态时自动停止节点。

启用 AutoGrowShrink 属性

Set-HpcClusterProperty –EnableGrowShrink 1

启用此属性后,可以再次提交作业,并检查是否自动启动 Azure 辅助角色节点。 打开 HPC 群集管理器,转到“资源 管理”窗格,选择 操作>AzureOperations 视图,会看到所有 Azure 增长收缩操作。 有关详细信息,请查看 hpcpack 自动增大收缩

后续步骤

  • 了解将数据移动到云节点的 hpcpack.exehpcsync.exe
  • 若要大规模设置混合 HPC Pack 群集部署,请参阅 使用 Microsoft HPC Pack突发到 Azure 辅助角色实例。
  • 有关在 Azure 中创建 HPC Pack 群集的其他方法(包括使用 Azure 资源管理器模板),请参阅 Azure中的 HPC Pack 群集入门。