適用於 HPC 的 Azure 架構架構
Azure 高效能運算 (HPC) 的計劃概述一個程式,以合理化您的案例、排定技術工作的優先順序,以及識別工作負載。 對於許多工作負載而言,請務必遵守一組架構原則。 這些原則有助於引導工作負載的開發與優化。 這五個架構建構詳述於 Azure Well-Architected Framework 中。 本指南摘要說明如何將這些原則套用至數據工作負載的管理。
可靠性
一切都有可能打破。 數據管線沒有例外狀況。 絕佳的架構設計時會考慮到可用性和復原能力。 主要考慮是偵測變更的速度,以及恢復作業的速度。
您的數據環境應考慮復原架構、跨區域備援、服務等級、服務等級協定(SLA)和重要支援。 現有的環境也應該包含使用整合式監視和通知架構的稽核、監視和警示。
在這些環境控制之上,工作負載小組應考慮:
- 進行更多架構修改以改善服務等級 SLA。
- 設定備援工作負載特定架構。
- 建立監視和通知的程式,超出雲端作業小組所提供的功能。
混合式 ExpressRoute 連線能力
若要支援任務關鍵 HPC 工作負載,請使用 Azure ExpressRoute 高可用性設定。 即使在單一月臺的高可用性設定中,您可能有備援的 ExpressRoute 連線,它也不會保護您免受單一邊緣月臺停機。 當您在兩個設施啟用兩個連線時,如果主要位置發生災害,備援可讓您的企業繼續。 藉由使用 ExpressRoute 高可用性,您可以在單一區域中發生 ExpressRoute 中斷時,協助確保 Azure 的連線能力。
建議
- 在兩個不同的 ExpressRoute 邊緣月臺位置中啟用兩個 ExpressRoute 線路,以達到最大備援。
- 此設定會要求您在兩個不同的 ExpressRoute 邊緣月臺位置的 Azure 入口網站 中建立兩個 ExpressRoute 線路。 然後,您會將 ExpressRoute 線路連線到 Azure 中的相同虛擬網路。
- 將兩個邊緣月臺位置放在相同的 Azure 區域中。 這是在其中一個對等互連位置失敗時提供備援的內容。 這兩個 ExpressRoute 連線都會終止至 Azure 中的相同虛擬網路。 檢視 ExpressRoute 位置和連線合作夥伴的清單,以規劃 ExpressRoute 對等互連位置。
- 請與提供者合作來設定第二個 ExpressRoute 月臺。
- 藉由將流量故障轉移至第二個位置,以確保第二個連線正常運作,這十分重要。 執行一般演練以確保連線能力。
如需最大復原能力 ExpressRoute 設定的詳細資訊,請參閱 使用 ExpressRoute 進行災害復原的設計。
安全性
將安全策略套用至您的 HPC 環境,以提供防範蓄意攻擊和濫用貴重數據和系統的防護措施。 查看保護您的使用者操作系統映像和使用者存取權,並遵循 Azure Batch 和 Azure CycleCloud 安全性指導方針。 如需詳細資訊,請參閱 安全性要素的原則。
作業系統映像
Azure Marketplace 提供 Linux 型 HPC 映射,以在叢集中使用。 這些映像包含許多熱門的連結庫、軟體套件和診斷工具,例如:
- 以 InfiniBand 為基礎的訊息傳遞介面 (MPI) 連結庫。
- 梅蘭諾克斯 OFED。
- 透過 InfiniBand 預先設定的 IP。
- 通訊運行時間。
- Intel/AMD 優化連結庫。
- Azure HPC 診斷工具。
您可以從映像開始,然後套用組織的安全策略來加強軟體映像,以防止弱點和網路威脅。 驗證之後,您可以在 Azure 計算資源庫中儲存新的映像。 然後,您可以使用映像在 Azure CycleCloud、Azure HPC 和 Batch 中建立虛擬機。
使用者存取
- 定義每個函式的明確責任線和職責區隔。
- 根據需要知道的基礎和最低許可權安全性原則來限制存取。
- 透過 Azure 角色型存取控制,將許可權指派給特定範圍的使用者、群組和應用程式。 盡可能使用內建角色。
- 防止透過管理鎖定刪除或修改資源、資源群組或訂用帳戶。
- 使用受控識別來存取 Azure 中的資源。
- 支援單一企業目錄。 讓雲端和內部部署目錄保持同步,但影響重大的帳戶除外。
- 設定 Microsoft Entra 條件式存取。 驗證所有使用者時強制執行及測量關鍵安全性屬性,特別是對於重大影響帳戶。
- 使用無密碼方法或選擇新式密碼方法。
- 封鎖舊版通訊協議和驗證方法。
Azure Batch 安全性
請遵循最佳做法來啟用 Batch 的安全性。
Azure CycleCloud 安全性
請遵循最佳做法來啟用 Azure CycleCloud 的安全性。
成本最佳化
若要充分利用在 Azure 中執行環境,請排定成本管理和預先規劃練習的優先順序。 成本管理和規劃通常是組織成功雲端移轉旅程最重要的考慮。 Microsoft 成本管理 提供工具,讓您規劃、分析及減少支出,以將雲端投資最大化。 如需規劃及優化雲端成本方式的詳細資訊,請參閱 成本管理計費最佳做法。 下列考慮是成本優化中最重要的一些考慮。
操作系統的選擇
Linux 是 HPC 工作負載的主要作業系統。 Linux 是開放原始碼,並已針對效能進行調整,以使用 HPC 基礎結構。 因此,MPI 連結庫和 Infiniband 驅動程式在 Linux 與 Windows 上運作良好。 藉由使用Linux虛擬機 (VM) 與 Windows 來設定 HPC 叢集,它絕對可以節省成本。 但有些使用者可能會對 Windows 環境有很強的喜好設定,特別是在工作負載中執行前置處理和後置處理工作,例如計算流體動態。 在此情況下,我們建議將 Windows 前端提交作業提交至 Linux 主機,也就是前端節點,其會使用計算節點進行模擬。
自動調整規模
自動調整可讓您只在提交作業或作業為使用中時設定及使用 VM。 當作業完成時,節點會自動關閉。 藉由使用自動調整,您可以調整應用程式所使用的計算資源,以節省您的時間和金錢。 根據預設,Azure CycleCloud 在其排程器中已開啟自動調整。 關閉節點的默認時間限製為15分鐘。 您可以自訂時間限制。 時間限制可協助確保使用者只支付其使用費用。 Batch 提供將自動調整公式與參數選擇整合的機制。 如需詳細資訊,請參閱 開始使用 Azure 中的自動調整。
隨用隨付與保留實例和現成實例
Azure 提供各種定價選項、隨用隨付、保留實例與一年或三年選項,以及會受限於數據中心內可用容量的現成實例。 隨用隨付實例符合成本效益,因為它們符合零星容量的需求。 如果 HPC 持續需求或在 Azure HPC 上執行許多應用程式,保留實例可能會證明符合成本效益。 這兩者都適合用於生產環境就緒的工作負載。 現成實例適用於簡短測試和測試,或您的應用程式需要檢查點,例如 genomics。 現成實例受限於數據中心內可用的容量。 定價取決於這些因素。 您可以收回具有最低通知的現成實例。
資料分類
HPC 工作負載受益於高輸送量記憶體。 例如,使用 Azure 受控 Lustre、Azure Net App Files 或 BeeGFS 平行文件系統。 這些記憶體服務可提供效能,但可能會付出代價。 請務必事先分類您的數據,讓只有應用程式特定數據位於這些系統中。 所有其他數據都可以位於低成本的記憶體解決方案中,例如 Azure Data Lake 儲存體 或 Azure Blob 儲存體。
此外,建議您視需要設定 HPC 記憶體系統,以協助確保數據會同步處理至低成本的記憶體服務,例如 Blob 儲存體。 當高效能記憶體系統關閉時,隨選記憶體有助於確保數據保留在 Blob 儲存體 中。 受控 Lustre 和 Net App Files 提供同步處理服務。
設定預算
Azure CycleCloud 可讓您設定每個叢集的預算,而且如果通知接近耗用預算,可以將通知傳送給收件者。 針對 Batch,您可以從 Azure 入口網站 為 Batch 集區或 Batch 帳戶建立預算和費用警示。 預算和警示對於通知項目關係人是否有超支的任何風險很有用,儘管支出警示可能會延遲,而且略高於預算。
卓越營運
當您讓 HPC 應用程式在生產環境中執行時,部署必須可靠且可預測。 可靠且可預測的部署是由使用基礎結構即程式代碼 (IaC) 解決方案自動化 HPC 工作負載所組成。 您也必須執行節點健康情況檢查,以分析及監視 HPC 工作負載。
如需部署建議的詳細資訊,請參閱使用基礎結構即程式代碼 建議。 如需監視建議的詳細資訊,請參閱 建議 來設計和建立監視系統。
基礎結構即程式碼
Azure 上的 HPC 會部署數個資源,例如 Azure CycleCloud、HPC Cluster、儲存體、視覺效果節點、授權伺服器等等。 若要將部署自動化,建議您使用 Terraform、Ansible 和 Packer 等業界標準工具來簡化程式。
節點健康情況檢查
Azure 受控 Grafana 是完全受控的服務,可用於分析和監視解決方案。 Grafana Labs 支援 Grafana,並提供可延伸的數據視覺效果。 您可以將此解決方案整合在 HPC 工作負載中作為範例。 如需詳細資訊,請參閱 Azure HPC OnDemand 平臺。
效能效益
請確定您的 HPC 環境能夠有效率地調整,使其符合使用者對它的需求。 根據應用程式廠商的建議,為您的 HPC 應用程式選擇正確的平臺。 如果您需要額外的基礎結構以符合需求,請投資容量規劃。 當使用者使用您的系統時,監視 HPC 基礎結構效能。
如需詳細資訊,請參閱 效能效率文章。
為 HPC 應用程式選擇正確的平臺
Azure 針對以 Intel、AMD CPU 和 NVIDIA 和 AMD GPU 為基礎的 VM 提供一系列平臺。 雖然大部分的應用程式都與可用的專案相容,但有些應用程式只受益於特定類型的 CPU 或 GPU。 將基礎結構部署至雲端之前,請務必讓應用程式廠商 (ISV) 的建議瞭解下列需求。
- 如果應用程式是記憶體系結、CPU 系結或 GPU 系結
- 如果他們對任何類型的CPU或 GPU 架構有任何建議,以達到效能
- 如果有一種 MPI 及其版本,其應用程式可以從中受益
- 如果排程器類型有建議
- 如果有來自平行文件系統的IOPS/輸送量建議
投資容量規劃
根據應用程式的類型及其授權條件,檢閱授權是否設定為使用特定數目的核心。 評估您的投資,讓授權能夠迎合 HPC,然後據以規劃您的容量。
監視基礎結構的效能
- 請務必能夠追蹤使用者使用您的系統、追蹤資源使用的方式,並通常會監視系統的健康情況和效能。 您可以使用這項資訊作為診斷協助來偵測和更正問題,並協助找出潛在問題並防止它們發生。 如需可用來監視資源的 Azure 元件和服務概觀,請參閱 Azure 監視器概觀。
- 監視是一個很好的工具,可用來識別 VM 實例和記憶體中是否有任何瓶頸。
- 儲存體 節流可能會導致應用程式大幅降低速度並影響效能。 當記憶體內的輸入和輸出作業超過您設定的輸送量限制時,就會發生節流。 Azure 儲存體 服務提供讀取和寫入作業圖表,以監視是否有任何節流問題。
- Azure CycleCloud 與 Azure 服務整合,例如監視器和 Microsoft 成本管理工具。 它也支援透過其插入式架構監視外部服務。 如需詳細資訊,請參閱 監視。
- 此外,如果您使用 Batch,Batch Explorer 是免費、功能豐富的獨立用戶端工具,可協助建立、偵錯及監視 Batch 應用程式。