共用方式為


使用 HPC Pack IaaS 部署指令碼建立 Windows 高效能運算 (HPC) 叢集

重要

傳統 VM 將於 2023 年 3 月 1 日淘汰。

如果您使用來自 ASM 的 IaaS 資源,請在 2023 年 3 月 1 日前完成移轉。 我們鼓勵您及早切換,以利用 Azure Resource Manager 的許多功能增強功能。

如需詳細資訊,請參閱請於 2023 年 3 月 1 日之前將您的 IaaS 資源遷移至 Azure Resource Manager

執行 HPC Pack IaaS 部署 PowerShell 指令碼,以在 Azure 虛擬機器中為 Windows 工作負載部署完整的 HPC Pack 2012 R2 叢集。 叢集是由加入 Active Directory、且執行 Windows Server 和 Microsoft HPC Pack 的前端節點,以及您指定的其他 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 之 Resource Manager 範本的詳細資訊,請參閱 Azure 中的 HPC Pack 叢集部署選項

根據您的環境和選擇,指令碼可建立所有的叢集基礎結構,包括 Azure 虛擬網路、儲存體帳戶、雲端服務、網域控制站、遠端或本機 SQL Database、前端節點、及其他叢集節點。 或者,指令碼可使用既有的 Azure 基礎結構,然後只建立 HPC 叢集節點。

如需規劃 HPC Pack 2012 R2 叢集的背景資訊,請參閱 HPC Pack 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>]

注意

以系統管理員身分執行指令碼。

參數

  • /ConfigFile:指定說明 HPC 叢集之組態檔的檔案路徑。 詳細資訊請參閱本主題中的組態檔,或指令碼所在之資料夾中的 Manual.rtf 檔。

  • AdminUserName:指定使用者名稱。 如果網域樹系是由指令碼所建立,這將會成為所有 VM 的本機系統管理員使用者名稱和網域系統管理員名稱。 如果網域樹系已存在,則會將網域使用者指定為安裝 HPC Pack 的本機系統管理員使用者名稱。

  • AdminPassword:指定系統管理員的密碼。 如果未在命令列中指定,指令碼會提示您輸入密碼。

  • HPCImageName (選擇性):指定用來部署 HPC 叢集的 HPC Pack VM 映像名稱。 它必須是 Microsoft 在 Azure Marketplace 中提供的 HPC Pack 映像。 如果未指定 (通常會建議使用),指令碼會選擇最新發佈的 HPC Pack 2012 R2 映像。 最新的映像是基於已安裝 HPC Pack 2012 R2 Update 3 的 Windows Server 2012 R2 Datacenter。

    注意

    若未指定有效的 HPC Pack 映像,部署將會失敗。

  • LogFile (選擇性):指定部署記錄檔路徑。 若未指定,指令碼會在執行指令碼之電腦的暫存目錄中建立記錄檔。

  • 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。

範例組態檔

在下列範例中,請將訂用帳戶 ID 或名稱及帳戶和服務名稱取代為您自己的值。

範例 1

下列組態檔會部署一個 HPC Pack 叢集,其中包含一個具有本機資料庫的前端節點,以及五個執行 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 更新的自動安裝。 所有雲端服務都直接建立在「東亞」位置中。 計算節點會建立在三個雲端服務和三個儲存體帳戶中:MyHPCCNService01mycnstorage01 中的 MyHPCCN-0001MyHPCCN-0005MyHPCCNService02mycnstorage02 中的 MyHPCCN-0006MyHPCCN0010;以及 MyHPCCNService03mycnstorage03 中的 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 叢集。 叢集中包含兩個具有本機資料庫的前端節點、建立了兩個 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 虛擬網路存取網際網路時發生問題 - 如果您使用部署指令碼建立具有新網域控制站的叢集,或手動將前端節點 VM 升級到網域控制站,則在將 VM 連接到網際網路時,可能會發生問題。 如果網域控制站上自動設定了轉寄站 DNS 伺服器,而此轉寄站 DNS 伺服器未正確解析,就可能發生這種問題。

    若要解決此問題,請登入網域控制站,並選擇移除轉寄站組態設定,或設定有效的轉寄站 DNS 伺服器。 若要設定此設定,請在伺服器管理員按一下 [工具>dns ] 以開啟 [dns 管理員],然後按兩下 [轉寄站]。

  • 從計算密集型 VM 存取 RDMA 網路時發生問題 - 如果您使用支援 RDMA 大小 (例如 A8 或 A9) 的 VM 來新增 Windows Server 計算節點 VM 或訊息代理程式節點 VM,則在將這些 VM 連接到 RDMA 應用程式網路時,可能會發生問題。 之所以會發生此問題,其中一個原因是在將 VM 新增到叢集時,未正確安裝 HpcVmDrivers 擴充功能。 比方說,延伸模組可能卡在安裝中狀態。

    若要解決這個問題,請先檢查 VM 中的延伸模組狀態。 如果延伸模組未正確安裝,請嘗試從 HPC 叢集中移除節點,然後重新新增節點。 例如,您可以在前端節點上執行 Add-HpcIaaSNode.ps1 指令碼,以新增計算節點 VM。

後續步驟