共用方式為


使用 HPC Pack IaaS 部署指令碼建立 Linux 高效能運算 (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 虛擬機器中為 Linux 工作負載部署完整的 HPC Pack 2012 R2 叢集。 叢集是由加入 Active Directory、且執行 Windows Server 和 Microsoft HPC Pack 的前端節點,以及執行其中一個 HPC Pack 所支援的 Linux 散發套件的計算節點所組成。 如果您想要在 Azure 中為 Windows 工作負載部署 HPC Pack 叢集,請參閱使用 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 之 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。

範例組態檔

下列組態檔會建立網域控制站和網域樹系並部署 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 部署腳本,在一個訂用帳戶下同時部署多個叢集,則一或多個部署可能會失敗,並出現「VNet VNet_Name 不存在」錯誤。 如果發生此錯誤,請針對失敗的部署重新執行指令碼。

  • 從 Azure 虛擬網路存取網際網路時發生問題。 如果您藉由使用部署指令碼來建立具有新網域控制站的 HPC Pack 叢集,或是手動將前端節點 VM 升級到網域控制站,則在將 Azure 虛擬網路中的 VM 連接到網際網路時,可能會發生問題。 如果在網域控制站上自動設定轉寄站 DNS 伺服器,且這個轉寄站 DNS 伺服器未正確解析,就可能出現這種狀況。

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

後續步驟