記憶體存取是規劃高效能運算 (HPC) 工作負載效能時要考慮的重要因素。 特定環境中的大規模 HPC 工作負載可以建立超過傳統雲端文件系統功能的數據記憶體和存取需求。 本文提供建議,協助您為 Azure HPC 工作負載選擇正確的記憶體。
若要協助決定要使用的記憶體解決方案,請考慮下列與應用程式需求相關的因素:
- 延遲
- 每秒的輸入/輸出作業 (IOPS)
- 吞吐量
- 檔案大小和檔案計數
- 作業運行時間
- 成本
- 記憶體位置 (內部部署與 Azure)
如需詳細資訊,請參閱 瞭解影響 Azure中 HPC 記憶體選取的因素。
下圖顯示特定 HPC 記憶體系統選擇的判定樹。
下載此架構的 Visio 檔案。
高效能運算的考慮事項
數據記憶體 和存取需求會根據工作負載規模而有所不同。
高效能輸入/輸出 (I/O) 需求和 HPC 的大規模延展性需求 為資料儲存和存取帶來獨特的挑戰。
HPC 使用平行處理和大規模延展性,以快速且可靠地執行大型且複雜的計算任務,而這些任務若使用傳統運算技術處理,並不實際或符合成本效益。
HPC 叢集中的計算節點分配
在 Azure HPC 叢集中,您可以將計算節點建立為虛擬機(VM),以執行指派給叢集的工作。 為了協助達成解決複雜 HPC 問題所需的高效能平行處理,計算節點會將這些作業分散到叢集。
當您執行作業時,計算節點必須在共用數據源上執行讀取和寫入作業。 節點會在下列兩個極端之間的一系列案例中存取此數據源。
一個數據源到許多計算節點: 在此案例中,網路上有一個數據源可供所有計算節點存取工作數據。 雖然計算節點在結構上很簡單,但記憶體位置的 I/O 容量會限制 I/O 作業。
許多數據源到許多計算節點: 在此案例中,網路上有許多數據源可供所有計算節點存取工作數據。 儘管計算節點的結構簡單,但記憶體位置的 I/O 容量會限制 I/O 作業。
工作負載流量分佈
請考慮 HPC 環境產生和處理的流量類型。 如果您打算執行多種類型的工作負載,並計劃將記憶體用於其他用途,則此步驟特別重要。 請考慮並記錄下列流量類型:
- 單一數據流與多個數據流
- 讀取流量與寫入流量的比例
- 平均檔案大小和檔案計數
- 隨機存取模式與循序存取模式
數據位置
此類別會考慮數據的位置。 區域意識可協助您判斷是否可以使用複製、快取或同步處理作為數據移動策略。 事先檢查下列當地項目:
- 如果源數據位於本地、Azure 或同時位於兩者
- 如果結果數據是儲存在本地設備、Azure 或兩者當中
- 如果 Azure 中的 HPC 工作負載需要與原始資料修改時間表協調
- 如果包含敏感數據或健康保險可攜性與責任法案 (HIPAA) 數據
效能需求
記憶體解決方案的效能需求通常摘要如下:
- 單一數據流吞吐量。
- 多重數據流吞吐量。
- 預期的最大 IOPS。
- 平均延遲。
每個因素都會影響效能,因此這些數位可作為特定解決方案預期結果的指南。 例如,HPC 工作負載可能包含在工作流程中建立和刪除大量檔案。 這些作業可能會影響整體輸送量。
存取方法
請考慮您需要的用戶端存取通訊協定,並指定必要的功能。 有不同版本的網路文件系統 (NFS) 和伺服器消息塊 (SMB)。
請考慮下列需求:
- 是否需要 NFS 或 SMB 版本
- 您需要的通訊協定功能,例如訪問控制清單或加密
- 是否需要平行檔案系統解決方案
容量需求總計
Azure 中的記憶體容量會影響解決方案的整體成本。 如果您打算長時間儲存大量數據,您可能會想要考慮將階層處理視為記憶體解決方案的一部分。 階層儲存將低成本的儲存選項與高成本、高效能的熱層儲存結合起來。 請考慮下列容量需求:
- 所需容量總計
- 所需的熱層容量總計
- 所需的暖層容量總計
- 所需的冷層容量總計
驗證和授權方法
如需驗證和授權需求,例如使用輕量型目錄存取通訊協定 (LDAP) 伺服器或 Windows Server Active Directory,請務必在架構中包含必要的支持系統。 如果您需要支援使用者識別碼 (UID) 或群組識別碼 (GID) 對應至 Windows Server Active Directory 使用者等功能,請確認記憶體解決方案支援該功能。
請考慮下列網路需求:
- 本地要求(僅限檔案伺服器上的 UID 或 GID)
- 目錄需求 (LDAP 或 Windows Server Active Directory)
- 是否需要 UID 或 GID 對應至 Windows Server Active Directory 使用者
HPC 設計建議
選擇最適合您唯一 I/O 和容量需求的解決方案。
針對高輸送量、低延遲記憶體,請考慮使用 標準或進階 Azure Blob 記憶體。 標準或進階 Blob 記憶體提供下列優點:
提供 exabyte 規模、高輸送量、低延遲存取、熟悉的文件系統,以及多個通訊協定存取,包括 REST、HDFS 和 NFS。
藉由處理數 PB 的數據並採用可簡化數據封存和刪除的生命週期管理功能,將成本優化。 這種方法會隨著時間降低記憶體費用。
支援使用 BlobFuse將 Blob 儲存體掛接為檔案系統的功能。 這個方法可讓多個節點更容易針對唯讀案例掛接相同的容器。
在 Blob 服務端點支援 NFS 3.0,以進行高輸送量、大量讀取的工作負載。
可讓您將數據移至較冷的儲存層,以支援成本優化。 此優化可以透過生命週期管理來實現,其依據上次更新或存取的時間,並利用具有可自定義原則的智能分層策略。
針對 ReadWriteMany (unique) 或寫入一次、讀取一次的應用程式,請考慮使用 Azure NetApp Files。 Azure NetApp Files 提供下列優點:
各種檔案通訊協定,例如 NFSv3、NFSv4.1 和 SMB3
與內部部署效能相當且具有多層式的效能(Ultra、進階、標準版)
在幾分鐘內部署,並提供各種層級和彈性
彈性容量集區類型和效能,其中會根據集區層級和磁碟區配額自動指派每個磁碟區的服務品質
網路檔案系統 (NFS)
NFS 通常用來透過傳輸控制通訊協定或因特網通訊協定網路來存取共用儲存位置。 使用 NFS 的伺服器 VM 會共用其本機檔案系統。 在 Azure 中,此文件系統會儲存在 Azure 記憶體中裝載的一或多個虛擬硬碟上。 客戶端接著可以掛接伺服器的共享檔案,並直接存取共用位置。
NFS 通常用於需要存取所有節點的主目錄和專案空間。 它可以為共享數據的研究群組提供空間。 一般而言,輸送量工作負載可水平調整,且個別工作之間幾乎沒有相依性。 作業排程器會將工作分成多個節點,並協調活動。
NFS 很容易在 Linux 和 Windows 作業系統上設定、維護並支援。 您可以使用多個 NFS 伺服器將記憶體分散到網路,但個別檔案只能透過單一伺服器存取。
針對低規模工作負載,請考慮在前端節點上使用 儲存優化 VM,該 VM 擁有大型暫時性磁碟,或視需求使用搭載 Azure 進階儲存空間的 D 系列 VM 來執行 NFS。 此解決方案適用於具有 500 個核心或更少核心的工作負載。
在 HPC 案例中,文件伺服器通常可作為節流整體效能的瓶頸。 嘗試從單一 NFS 伺服器存取未快取的數據時,如果速率超過每個 VM 記錄的最大 IOPS 和最大輸送量,就會導致節流。
在多個客戶端嘗試處理儲存在單一 NFS 伺服器上的資料的情況下,您可以快速達到效能限制。 這些限制可能會導致整個應用程式的效能受到影響。 HPC 應用程式越像是一個單純的一對多的情境,就越容易早早遇到這些限制。
Azure 上的平行文件系統
平行檔案系統會將區塊層級記憶體分散到多個網路記憶體節點。 檔案數據會分散在這些節點之間,這表示數據會分散到多個存儲設備之間。 此分配機制匯集可透過共用命名空間存取的多個儲存節點上的各個儲存 I/O 請求。
使用多個儲存裝置和多個數據路徑來提供高平行性。 這種方法可以減少因一次只存取單一節點而造成的瓶頸數量。 不過,如果您直接在 API 或 POSIX I/O 介面層級工作,平行 I/O 可能很難協調和優化。 平行文件系統可讓應用程式開發人員透過中繼數據存取和協調層,在應用層與 I/O 層之間提供高階介面。
使用訊息傳遞介面 (MPI) 的緊密結合工作負載,對於節點之間的低延遲通訊,可能會有獨特的需求。 節點會透過高速互連進行連線,而且無法輕易地適應與其他工作負載共用。 MPI 應用程式會在虛擬化環境中,透過直通模式,使用整個高效能互連的功能。 MPI 節點的記憶體通常是平行文件系統,例如 Lustre,也可透過高速互連存取。
Lustre 這類平行文件系統用於需要存取大型檔案的 HPC 工作負載、同時從多個計算節點存取,以及大量數據。 平行檔案系統的實作可讓您輕鬆地調整功能與效能。 這些文件系統會利用具有大型頻寬和降低 CPU 使用量的遠端直接記憶體存取傳輸。 平行文件系統通常用來作為臨時空間,而且適用於需要優化 I/O 的工作。
自行構建的平行檔案系統
類似於 NFS,您可以建立多節點 BeeGFS 或 Lustre 文件系統。 這些系統的效能主要取決於您選擇的 VM 類型。 您可以使用位於 Azure Marketplace 的 BeeGFS 或由 DataDirect Networks 開發的 Lustre 實作 Whamcloud鏡像。 如果您使用來自廠商的非Microsoft映像,例如 BeeGFS 或 DataDirect Networks,您可以購買其支持服務。 除了機器和磁碟的成本之外,您可以在其一般公用授權授權下使用 BeeGFS 和 Lustre,而不會產生額外費用。 這些工具很容易推出,方法是使用 Azure HPC 腳本, 以短暫的本機磁碟做暫存或以 Azure Premium SSD 或 Azure Ultra Disk Storage 進行持久性儲存。
HPC 元件
Azure NetApp Files 和本機磁碟通常用來處理延遲敏感性和 IOPS 敏感性工作負載。 請考慮針對最多 4,000 個核心的工作負載使用 Azure NetApp Files,傳輸速度可以每秒達到 12.8 吉比位元組 (GiBps),適用於需要或可從 NFS 和 SMB 多重協議訪問相同數據來源受益的工作負載。
Azure 受控 Lustre 可為 HPC 工作負載提供更快且更高的容量記憶體。 此解決方案適用於中型到大型工作負載,且可支援 50,000 個以上的核心,輸送量高達每秒 500 GB(Gbps),記憶體容量最多可達 2.5 PB(PiB)。
標準或進階 Blob 記憶體符合成本效益,因為它提供成本最低的雲端解決方案。 此服務會在需要時提供exabyte規模、高輸送量、低延遲存取,以及熟悉的文件系統介面。 它也支援多個通訊協定存取,其中包括 REST、HDFS 和 NFS。 您可以在 Blob 服務端點使用 NFS v3.0,以處理高輸送量和偏重讀取的工作負載。 您可以移至較冷的儲存層來優化成本。 此方法可以根據上次更新或存取時間,透過可自定義的原則和生命週期管理,來啟用智慧分層。
可能需要在內部部署系統與雲端之間進行數據傳輸,才能為針對雲端中的計算實例執行的工作負載達到最佳效能。 離線移轉會使用裝置型服務,例如 Azure 資料箱。 在線移轉會使用網路型服務,例如 Azure ExpressRoute。
下表提供 Blob 儲存體、Azure 檔案儲存、受管控 Lustre 和 Azure NetApp Files 的比較。
類別 | Blob 存儲 | Azure Files | 管理 Lustre文件系統 | Azure NetApp Files(Azure 檔案儲存服務) |
---|---|---|---|---|
使用案例 | - 最適合用于大規模、以讀取為主的循序存取工作負載,其中數據將被一次性導入,並最少修改。 - 透過輕量維護提供低總擁有成本。 - 範例案例包括大規模分析數據、輸送量敏感的高效能運算、數據備份和封存、自主駕駛、媒體轉譯和基因排序。 |
- 最適合隨機存取工作負載的高可用性服務。 - 提供 NFS 共享的完整 POSIX 檔案系統支援。 內建的 CSI 驅動程式可讓您從 VM 型平臺和容器平台輕鬆使用,例如 Azure 容器實例和 Azure Kubernetes Service (AKS)。 - 範例案例包括共用檔案、資料庫、主目錄、傳統應用程式、企業資源規劃、內容管理系統,以及不需要進階管理的網路連接記憶體 (NAS) 移轉。 它也包含需要向外延展檔案記憶體的自定義應用程式。 |
- 完全受控的平行文件系統最適合中型至大型 HPC 工作負載。 - 藉由提供熟悉的 Lustre 平行檔案系統功能、行為和效能,在雲端中啟用 HPC 應用程式,而不會中斷應用程式相容性。 此服務可協助保護長期應用程式投資。 |
- 雲端中完全受控的檔案服務,由 NetApp 提供,具有進階管理功能。 - 專為需要隨機存取的工作負載所設計。 它提供廣泛的通訊協定支援和改良的數據保護。 - 範例案例包括需要豐富管理功能的內部部署企業 NAS 移轉、SAP HANA 等延遲敏感性工作負載、延遲敏感或需要大量 IOPS 的高效能計算,或需要同時存取多個通訊協定的工作負載。 |
可用的通訊協定 | - NFS 3.0 - REST(表現層狀態轉換) - Azure Data Lake Storage |
- SMB (中小型企業) - NFS 4.1 - (任一通訊協定之間沒有互作性) |
-光澤 | - NFS 3.0 和 4.1 - SMB (中小企業) |
主要功能 | - 整合式管理,包括生命週期管理、不可變的 Blob、數據故障轉移和元數據索引。 | - 提供區域冗餘支援以提升高可用性。 - 一致的個位數毫秒延遲。 - 可預測的效能和隨容量調整的成本。 |
- 最高 2.5 PB 的高儲存容量。 - 低延遲,約 2 毫秒。 - 在幾分鐘內建立新的叢集。 - 使用 AKS 支援容器化工作負載。 |
- 極低的延遲,甚至低至毫秒以下。 - 豐富的 NetApp ONTAP 管理功能,例如 SnapMirror Cloud。 - 一致的混合式雲端體驗。 |
效能(每單位體積) | - 最多 40,000 IOPS。 - 高達 60-Gbps 輸入帶寬和 200-Gbps 輸出帶寬。 |
- 高達 100,000 IOPS。 - 高達 80 GiBps 輸送量。 |
- 高達 100,000 IOPS。 - 高達 500 GiBps 輸送量。 |
- 高達 460,000 IOPS。 - 高達 12.8 GiBps 輸送量。 |
規模 | - 單一磁碟區最多可達 5 PiB。 單一檔案可以高達大約 4.75 tebibyte(TiB)。 - 沒有最小容量需求。 |
- 單一磁碟區高達 100 TiB。 - 單一檔案最多可達 4 TiB。 - 100-GiB 最小容量。 |
單一磁碟區最多可達 2.5 PiB。 - Managed Lustre 檔案系統會與 lustre 的檔案限制規格 一致,並支援高達 32 PB 的檔案大小上限。 - 4 TB 的最小容量。 |
- 單一磁碟區高達 1,024 TiB。 - 單一檔案可達 16 TiB。 - 一致的混合式雲端體驗。 |
定價 | - Blob 儲存定價 | - Azure 檔案服務定價 | - 管理型 Lustre 定價 | - Azure NetApp Files 定價 |
後續步驟
下列文章提供指引,協助您在雲端導入旅程的各個階段。
- Azure HPC 案例簡介
- 在 Azure HPC 中的身分識別和存取管理
- Azure HPC 的網路拓撲和連線能力
- 適用於 Azure HPC 的 資源組織
- 在 Azure VM 中計算大規模 HPC 應用程式工作負載
- Azure HPC 著陸區加速器