使用 HPC Pack IaaS 部署脚本创建 Linux 高性能计算 (HPC) 群集

重要

经典 VM 将于 2023 年 3 月 1 日停用。

如果从 ASM 使用 IaaS 资源,请在 2023 年 3 月 1 日之前完成迁移。 我们建议你尽快进行切换,以利用 Azure 资源管理器中的许多增强功能。

有关详细信息,请参阅在 2023 年 3 月 1 日之前将 IaaS 资源迁移到 Azure 资源管理器

运行 HPC Pack IaaS 部署 PowerShell 脚本,以便为 Azure 虚拟机中的 Linux 工作负荷部署完整的 HPC Pack 2012 R2 群集。 群集包含一个运行 Windows Server 和 Microsoft HPC Pack 的已加入 Active Directory 的头节点和多个运行 HPC Pack 支持的 Linux 分发之一的计算节点。 如果想要在 Azure 中部署适用于 Windows 工作负荷的 HPC Pack 群集,请参阅 Create a Windows HPC cluster with the HPC Pack IaaS deployment script(使用 HPC Pack IaaS 部署脚本创建 Windows HPC 群集)。

重要

本文中介绍的 PowerShell 脚本使用经典部署模型在 Azure 中创建 Microsoft HPC Pack 2012 R2 群集。 Microsoft 建议大多数新部署使用 Resource Manager 模型。 此外,本文中所述的脚本不支持 HPC Pack 2016。 有关用于 HPC Pack 2012 R2 和 HPC Pack 2016 的资源管理器模板的信息,请参阅 Azure 中的 HPC Pack 群集部署选项

根据环境和选择,该脚本可以创建所有群集基础结构,包括 Azure 虚拟网络、存储帐户、云服务、域控制器、远程或本地 SQL 数据库、头节点和其他群集节点。 或者,该脚本可以使用预先存在的 Azure 基础结构仅创建 HPC 群集节点。

有关规划 HPC Pack 群集的背景信息,请参阅 HPC Pack 2012 R2 TechNet 库中的产品评估和规划入门内容。

先决条件

  • Azure 订阅:可以使用 Azure 全球或 Azure 中国区服务中的订阅。 订阅限制会影响可部署的群集节点数目和类型。 有关信息,请参阅 Azure 订阅和服务限制、配额与约束
  • 安装并配置了 Azure PowerShell 0.8.10 或更高版本的 Windows 客户端计算机 - 有关安装说明和 Azure 订阅的连接步骤,请参阅 Azure PowerShell 入门
  • HPC Pack IaaS 部署脚本:从 Microsoft 下载中心下载并解压缩最新版本的脚本。 通过运行 New-HPCIaaSCluster.ps1 –Version 检查脚本的版本。 本文基于脚本版本 4.5.2。
  • 脚本配置文件:创建供脚本用来配置 HPC 群集的 XML 文件。 有关信息和示例,请参阅本文后面的章节和部署脚本随附的文件 Manual.rtf。

语法

New-HPCIaaSCluster.ps1 [-ConfigFile] <String> [-AdminUserName]<String> [[-AdminPassword] <String>] [[-HPCImageName] <String>] [[-LogFile] <String>] [-Force] [-NoCleanOnFailure] [-PSSessionSkipCACheck] [<CommonParameters>]

注意

以管理员身份运行该脚本。

parameters

  • ConfigFile:指定描述 HPC 群集的配置文件的路径。 请参阅本主题中该配置文件的详细信息,也可查看包含脚本的文件夹中的 Manual.rtf 文件。

  • AdminUserName:指定用户名。 如果域林是由脚本创建的,则此用户名将成为所有 VM 的本地管理员用户名以及域管理员名称。 如果域林已存在,则此参数会将域用户指定为安装 HPC Pack 的本地管理员用户名。

  • AdminPassword:指定管理员的密码。 如果未在命令行中指定密码,脚本会提示输入密码。

  • HPCImageName(可选):指定用于部署 HPC 群集的 HPC Pack VM 映像名称。 它必须是 Microsoft 通过 Azure 市场提供的 HPC Pack 映像。 如果未指定(通常不建议指定),脚本将选择最新发布的 HPC Pack 2012 R2 映像。 最新映像基于装有 HPC Pack 2012 R2 Update 3 的 Windows Server 2012 R2 Datacenter。

    注意

    指定无效的 HPC Pack 映像会导致部署失败。

  • LogFile(可选):指定部署日志文件路径。 如果未指定,脚本会在运行脚本的计算机的 temp 目录中创建一个日志文件。

  • Force(可选):隐藏所有确认提示。

  • NoCleanOnFailure(可选):指定不删除未成功部署的 Azure VM。 在重新运行脚本以继续部署之前,请手动删除这些 VM,否则部署可能失败。

  • PSSessionSkipCACheck(可选):对于每个包含此脚本所部署的 VM 的云服务,Azure 会自动生成自签名证书,云服务中的所有 VM 使用此证书作为默认的 Windows 远程管理 (WinRM) 证书。 若要在这些 Azure Vm 中部署 HPC 功能,脚本默认情况下会在客户端计算机的 "本地 Computer\Trusted 根证书颁发机构" 存储中临时安装这些证书,以在脚本执行期间禁止显示 "不受信任的 CA" 安全错误。 完成脚本后将删除这些证书。 如果指定此参数,不会在客户端计算机中安装证书,并且会抑制安全警告。

    重要

    对于生产部署,不建议指定此参数。

示例

以下示例使用配置文件 MyConfigFile.xml 创建一个 HPC Pack 群集,并指定用于安装该群集的管理员凭据。

.\New-HPCIaaSCluster.ps1 –ConfigFile MyConfigFile.xml -AdminUserName <username> –AdminPassword <password>

其他注意事项

  • (可选)该脚本可以启用通过 HPC Pack Web 门户或 HPC Pack REST API 提交作业。
  • 如果想要安装其他软件或配置其他设置,该脚本可以选择在头节点上运行自定义的配置前和配置后脚本。

配置文件

部署脚本的配置文件是一个 XML 文件。 架构文件 HPCIaaSClusterConfig.xsd 位于 HPC Pack IaaS 部署脚本文件夹中。 IaaSClusterConfig 是配置文件的根元素,其中包含部署脚本文件夹中 Manual.rtf 文件详细描述的子元素。

示例配置文件

以下配置文件创建域控制器和域林并部署 HPC Pack 群集,其中包含 1 个具有本地数据库的头节点和 10 个 Linux 计算节点。 所有云服务直接在“亚洲东部”位置创建。 Linux 计算节点在 2 个云服务和 2 个存储帐户中创建(即,MyLnxCNService01mylnxstorage01 中的 MyLnxCN-0001MyLnxCN-0005,以及 MyLnxCNService02mylnxstorage02 中的 MyLnxCN-0006MyLnxCN-0010)。 计算节点是基于 OpenLogic CentOS 7.0 版 Linux 映像创建的。

将订阅名称以及帐户和服务名称替换为自己的值。

<?xml version="1.0" encoding="utf-8" ?>
<IaaSClusterConfig>
  <Subscription>
    <SubscriptionName>Subscription-1</SubscriptionName>
    <StorageAccount>mystorageaccount</StorageAccount>
  </Subscription>
  <Location>East Asia</Location>  
  <VNet>
    <VNetName>MyVNet</VNetName>
    <SubnetName>Subnet-1</SubnetName>
  </VNet>
  <Domain>
    <DCOption>NewDC</DCOption>
    <DomainFQDN>hpc.local</DomainFQDN>
    <DomainController>
      <VMName>MyDCServer</VMName>
      <ServiceName>MyHPCService</ServiceName>
      <VMSize>Large</VMSize>
    </DomainController>
  </Domain>
  <Database>
    <DBOption>LocalDB</DBOption>
  </Database>
  <HeadNode>
    <VMName>MyHeadNode</VMName>
    <ServiceName>MyHPCService</ServiceName>
    <VMSize>ExtraLarge</VMSize>
  </HeadNode>
  <LinuxComputeNodes>
    <VMNamePattern>MyLnxCN-%0001%</VMNamePattern>
    <ServiceNamePattern>MyLnxCNService%01%</ServiceNamePattern>
    <MaxNodeCountPerService>5</MaxNodeCountPerService>
    <StorageAccountNamePattern>mylnxstorage%01%</StorageAccountNamePattern>
    <VMSize>Medium</VMSize>
    <NodeCount>10</NodeCount>
    <ImageName>5112500ae3b842c8b9c604889f8753c3__OpenLogic-CentOS-70-20150325 </ImageName>
  </LinuxComputeNodes>
</IaaSClusterConfig>

疑难解答

  • “VNet 不存在”错误。 如果运行 HPC Pack IaaS 部署脚本在 Azure 中的一个订阅下同时部署多个群集,则一个或多个部署可能会失败,并出现错误 "VNet VNet_Name 不存在"。 如果发生此错误,请对失败的部署重新运行该脚本。

  • 从 Azure 虚拟网络访问 Internet 时出现问题。 如果使用部署脚本创建具有新域控制器的 HPC Pack 群集,或将头节点 VM 手动提升为域控制器,则将 Azure 虚拟网络中的 VM 连接到 Internet 时可能会遇到问题。 如果已在域控制器上自动配置转发器 DNS 服务器,但此转发器 DNS 服务器未正确解析,则会出现这种情况。

    若要解决此问题,请登录到域控制器,删除转发器配置设置或配置一个有效的转发器 DNS 服务器。 为此,请在服务器管理器单击 "工具> " "dns " 打开 DNS 管理器,然后双击 "转发器"。

后续步骤