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

重要

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

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

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

运行 HPC Pack IaaS 部署 PowerShell 脚本,以便在 Azure 虚拟机中部署适用于 Windows 工作负荷的完整 HPC Pack 2012 R2 群集。 群集包含运行 Windows Server 和 Microsoft HPC Pack 的已加入 Active Directory 的头节点以及指定的其他 Windows 计算资源。 如果想要在 Azure 中部署适用于 Linux 工作负荷的 HPC Pack 群集,请参阅使用 HPC Pack IaaS 部署脚本创建 Linux 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 功能,脚本默认会暂时在客户端计算机的本地计算机\受信任的根证书颁发机构 存储中安装这些证书,以在脚本执行期间禁止显示"不受信任的 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 文件详细描述的子元素。

示例配置文件

在下面的示例中,将订阅 ID 或名称以及帐户和服务名称替换成自己的值。

示例 1

以下配置文件将部署 1 个 HPC Pack 群集,其中包含 1 个具有本地数据库的头节点和 5 个运行 Windows Server 2012 R2 操作系统的计算节点。 所有云服务直接在“美国西部”位置创建。 头节点充当域林的域控制器。

<?xml version="1.0" encoding="utf-8" ?>
<IaaSClusterConfig>
  <Subscription>
    <SubscriptionId>08701940-C02E-452F-B0B1-39D50119F267</SubscriptionId>
    <StorageAccount>mystorageaccount</StorageAccount>
  </Subscription>
  <Location>West US</Location>  
  <VNet>
    <VNetName>MyVNet</VNetName>
    <SubnetName>Subnet-1</SubnetName>
  </VNet>
  <Domain>
    <DCOption>HeadNodeAsDC</DCOption>
    <DomainFQDN>hpc.local</DomainFQDN>
  </Domain>
  <Database>
    <DBOption>LocalDB</DBOption>
  </Database>
  <HeadNode>
    <VMName>MyHeadNode</VMName>
    <ServiceName>MyHPCService</ServiceName>
    <VMSize>ExtraLarge</VMSize>
  </HeadNode>
  <ComputeNodes>
    <VMNamePattern>MyHPCCN-%1000%</VMNamePattern>
    <ServiceName>MyHPCCNService</ServiceName>
    <VMSize>Medium</VMSize>
    <NodeCount>5</NodeCount>
    <OSVersion>WindowsServer2012R2</OSVersion>
  </ComputeNodes>
</IaaSClusterConfig>

示例 2

以下配置文件会在现有域林中部署一个 HPC Pack 群集。 该群集包含 1 个具有本地数据库的头节点和 12 个应用了 BGInfo VM 扩展的计算节点。 对于域林中的所有 VM,禁用了 Windows 更新的自动安装。 所有云服务直接在“亚洲东部”位置创建。 计算节点在 3 个云服务和 3 个存储帐户中创建:MyHPCCNService01mycnstorage01 中的 MyHPCCN-0001MyHPCCN-0005MyHPCCNService02mycnstorage02 中的 MyHPCCN-0006MyHPCCN0010MyHPCCNService03mycnstorage03 中的 MyHPCCN-0011MyHPCCN-0012。 计算节点是基于从计算节点捕获的现有专用映像创建的。 已启用自动增长和收缩服务,该服务采用默认的增长和收缩间隔。

<?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>
     <NoWindowsAutoUpdate />
  </Domain>
  <Database>
    <DBOption>LocalDB</DBOption>
  </Database>
  <HeadNode>
    <VMName>MyHeadNode</VMName>
    <ServiceName>MyHPCService</ServiceName>
    <VMSize>ExtraLarge</VMSize>
  </HeadNode>
  <Certificates>
    <Certificate>
      <Id>1</Id>
      <PfxFile>d:\mytestcert1.pfx</PfxFile>
      <Password>MyPsw!!2</Password>
    </Certificate>
  </Certificates>
  <ComputeNodes>
    <VMNamePattern>MyHPCCN-%0001%</VMNamePattern>
<ServiceNamePattern>MyHPCCNService%01%</ServiceNamePattern>
<MaxNodeCountPerService>5</MaxNodeCountPerService>
<StorageAccountNamePattern>mycnstorage%01%</StorageAccountNamePattern>
    <VMSize>Medium</VMSize>
    <NodeCount>12</NodeCount>
    <ImageName HPCPackInstalled=”true”>MyHPCComputeNodeImage</ImageName>
    <VMExtensions>
       <VMExtension>
          <ExtensionName>BGInfo</ExtensionName>
          <Publisher>Microsoft.Compute</Publisher>
          <Version>1.*</Version>
       </VMExtension>
    </VMExtensions>
  </ComputeNodes>
  <AutoGrowShrink>
    <CertificateId>1</CertificateId>
  </AutoGrowShrink>
</IaaSClusterConfig>

示例 3

以下配置文件会在现有域林中部署一个 HPC Pack 群集。 该群集包含 1 个头节点、 1 个具有 500 GB 数据磁盘的数据库服务器、2 个运行 Windows Server 2012 R2 操作系统的代理节点,以及 5 个运行 Windows Server 2012 R2 操作系统的计算节点。 云服务 MyHPCCNService 是在地缘组 MyIBAffinityGroup 中创建的,其他云服务是在地缘组 MyAffinityGroup 中创建的。 已在头节点上启用了 HPC 作业计划程序 REST API 和 HPC Web 门户。

<?xml version="1.0" encoding="utf-8" ?>
<IaaSClusterConfig>
  <Subscription>
    <SubscriptionName>Subscription-1</SubscriptionName>
    <StorageAccount>mystorageaccount</StorageAccount>
  </Subscription>
  <AffinityGroup>MyAffinityGroup</AffinityGroup>
  <Location>East Asia</Location>  
  <VNet>
    <VNetName>MyVNet</VNetName>
    <SubnetName>Subnet-1</SubnetName>
  </VNet>    
  <Domain>
    <DCOption>ExistingDC</DCOption>
    <DomainFQDN>hpc.local</DomainFQDN>
  </Domain>
  <Database>
    <DBOption>NewRemoteDB</DBOption>
    <DBVersion>SQLServer2014_Enterprise</DBVersion>
    <DBServer>
      <VMName>MyDBServer</VMName>
      <ServiceName>MyHPCService</ServiceName>
      <VMSize>ExtraLarge</VMSize>
      <DataDiskSizeInGB>500</DataDiskSizeInGB>
    </DBServer>
  </Database>
  <HeadNode>
    <VMName>MyHeadNode</VMName>
    <ServiceName>MyHPCService</ServiceName>
    <VMSize>ExtraLarge</VMSize>
    <EnableRESTAPI />
    <EnableWebPortal />
  </HeadNode>
  <ComputeNodes>
    <VMNamePattern>MyHPCCN-%0000%</VMNamePattern>
    <ServiceName>MyHPCCNService</ServiceName>
    <VMSize>A8</VMSize>
<NodeCount>5</NodeCount>
<AffinityGroup>MyIBAffinityGroup</AffinityGroup>
  </ComputeNodes>
  <BrokerNodes>
    <VMNamePattern>MyHPCBN-%0000%</VMNamePattern>
    <ServiceName>MyHPCBNService</ServiceName>
    <VMSize>Medium</VMSize>
    <NodeCount>2</NodeCount>
  </BrokerNodes>
</IaaSClusterConfig>

示例 4

以下配置文件会在现有域林中部署一个 HPC Pack 群集。 该群集包含 2 个具有本地数据库的头节点,此外将创建 2 个 Azure 节点模板并为 Azure 节点模板 AzureTemplate1 创建 3 个中等大小的 Azure 节点。 配置头节点后,在其上运行脚本文件。

<?xml version="1.0" encoding="utf-8" ?>
<IaaSClusterConfig>
  <Subscription>
    <SubscriptionName>Subscription-1</SubscriptionName>
    <StorageAccount>mystorageaccount</StorageAccount>
  </Subscription>
  <AffinityGroup>MyAffinityGroup</AffinityGroup>
  <Location>East Asia</Location>  
  <VNet>
    <VNetName>MyVNet</VNetName>
    <SubnetName>Subnet-1</SubnetName>
  </VNet>
  <Domain>
    <DCOption>ExistingDC</DCOption>
    <DomainFQDN>hpc.local</DomainFQDN>
  </Domain>
  <Database>
    <DBOption>LocalDB</DBOption>
  </Database>
  <HeadNode>
    <VMName>MyHeadNode</VMName>
    <ServiceName>MyHPCService</ServiceName>
<VMSize>ExtraLarge</VMSize>
    <PostConfigScript>c:\MyHNPostActions.ps1</PostConfigScript>
  </HeadNode>
  <Certificates>
    <Certificate>
      <Id>1</Id>
      <PfxFile>d:\mytestcert1.pfx</PfxFile>
      <Password>MyPsw!!2</Password>
    </Certificate>
    <Certificate>
      <Id>2</Id>
      <PfxFile>d:\mytestcert2.pfx</PfxFile>
    </Certificate>    
  </Certificates>
  <AzureBurst>
    <AzureNodeTemplate>
      <TemplateName>AzureTemplate1</TemplateName>
      <SubscriptionId>bb9252ba-831f-4c9d-ae14-9a38e6da8ee4</SubscriptionId>
      <CertificateId>1</CertificateId>
      <ServiceName>mytestsvc1</ServiceName>
      <StorageAccount>myteststorage1</StorageAccount>
      <NodeCount>3</NodeCount>
      <RoleSize>Medium</RoleSize>
    </AzureNodeTemplate>
    <AzureNodeTemplate>
      <TemplateName>AzureTemplate2</TemplateName>
      <SubscriptionId>ad4b9f9f-05f2-4c74-a83f-f2eb73000e0b</SubscriptionId>
      <CertificateId>1</CertificateId>
      <ServiceName>mytestsvc2</ServiceName>
      <StorageAccount>myteststorage2</StorageAccount>
      <Proxy>
        <UsesStaticProxyCount>false</UsesStaticProxyCount>     
        <ProxyRatio>100</ProxyRatio>
        <ProxyRatioBase>400</ProxyRatioBase>
      </Proxy>
      <OSVersion>WindowsServer2012</OSVersion>
    </AzureNodeTemplate>
  </AzureBurst>
</IaaSClusterConfig>

疑难解答

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

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

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

  • 从计算密集型 VM 访问 RDMA 网络时出现问题 - 如果使用支持 RDMA 的大小(例如 A8 或 A9)添加 Windows Server 计算节点 VM 或代理节点 VM,则在将这些 VM 连接到 RDMA 应用程序网络时可能会遇到问题。 出现此问题的原因之一是,在将 VM 添加到群集时未正确安装 HpcVmDrivers 扩展。 例如,该扩展可能会停滞在安装状态。

    若要解决此问题,请先检查 VM 中扩展的状态。 如果该扩展未正确安装,请尝试从 HPC 群集中删除节点,再重新添加节点。 例如,可以通过使用 Add-HpcIaaSNode.ps1 脚本添加计算节点 VM。

后续步骤