NetApp Volumes 上電子設計自動化工作負載的架構模式

本頁說明在 Google Cloud NetApp Volumes 上,電子設計自動化 (EDA) 工作負載的架構模式。

NetApp Volumes 提供高度可擴充的 NFS 共用儲存空間,可支援 EDA 工作負載。這類工作負載會處理百萬兆位元組規模的資料集,其中包含數百萬個小型檔案、執行大量中繼資料的目錄作業,並在數千個運算核心中驅動突發的平行 I/O。NetApp Volumes 可從專案大小的磁碟區擴充至大容量磁碟區,並視需要搭配 FlexCache,讓設計程式庫、工具鍊和暫存資料保持可存取狀態,適用於混合式和扇出式設計。下列模式會將常見的 EDA 部署模型對應至這些功能。

如需 GitHub 參考實作 (例如 eda-all-on-cloud 和 eda-hybrid-cloud),請參閱 Cluster Toolkit EDA 範例。

架構模式

下表摘要說明 EDA 工作負載的常見模式。最適合您使用案例的模式,取決於主要資料的所在位置,以及您想如何擴充讀取效能和運算資源。

模式 用途 主要 NetApp Volumes 功能
運算叢集的大容量磁碟區 設計資料和工具鍊位於 Google Cloud ,且需要大規模的單一共用命名空間 大容量集區和磁碟區、多磁碟區版面配置,以及部署群組生命週期
將工作負載遷移至雲端 主要資料集位於地端部署環境或其他區域,您需要雲端運算資源來因應尖峰需求 來自地端部署 ONTAP 來源、預先填入和預先存在的磁碟區的 FlexCache
透過擴散傳遞功能快取擴充效能 讀取密集階段需要的匯總處理量或區域性,超過單一匯出作業可提供的量 每個大型磁碟區有多個 FlexCache 磁碟區或多個儲存空間端點

使用大容量磁碟區做為運算叢集的檔案儲存空間

當運算和永久資料都在 Google Cloud中執行時,請使用這個模式,例如綠地 EDA 農場、遷移的設計中心,或擁有資料集的專屬雲端爆發分割區。

大容量磁碟區解決的挑戰

大容量磁碟區可滿足大規模 EDA 工作負載的高容量、效能和並行需求。這項設定可解決下列問題:

  • 容量限制:可容納大型工作集,例如程式庫、IP 區塊和迴歸暫存資料。

  • 高負載的中繼資料和 I/O:處理密集的中繼資料路徑 (包括 readdir 和 stat 作業)、小型隨機 I/O,以及高循序頻寬。

請根據資料的生命週期和存取模式,將資料分割到多個磁碟區,而不是將所有資料都放在單一的大容量磁碟區中。

下表說明資料分割的建議版面配置:

磁碟區角色 常見的資料類型 存取模式和生命週期
工具 供應商二進位檔和授權 EDA 安裝項目 以讀取為主、保留時間長且匯出作業穩定
程式庫 PDK、標準單元和參考設計 以讀取為主、檔案數量龐大,且可透過用戶端屬性快取調整功能獲益
首頁 使用者點檔案和小型專案狀態 混合讀取/寫入和中等中繼資料速率
暫存 執行目錄和中繼結果 高流失率、最大容量和最高 IOPS 需求

Cluster Toolkit 藍圖 eda-all-on-cloud 會佈建這個版面配置,並透過 NFS 掛接 NetApp Volumes,在 Slurm 管理的 Compute Engine 分區中。

大容量磁碟區的使用時機

如要建立大於 4.8 TiB (Flex Unified) 或 15 TiB (Premium 和 Extreme) 的磁碟區,請建立大容量磁碟區。 這類磁碟區可擴充至非常大的容量,並提供更高的處理量和 IOPS 上限。超過單一端點限制的暫存和程式庫磁碟區,都適合採用這項設定。

大量資料的用戶端分配

大容量磁碟區會向同一個匯出作業公開多個儲存空間端點 (IP 位址)。將 NFS 用戶端分散至多個端點,以調度總處理量,並避免單一 IP 位址成為瓶頸。你可以使用下列任一選項:

  • 循環式 DNS (建議用於大規模部署):建立 Cloud DNS A 記錄,列出多個 IP 位址。使用 FQDN 掛接,讓每個用戶端在掛接時解析為一個位址。如果變更 DNS 記錄,請重新掛接。

  • 靜態分片:將用戶端分成多個群組,並將每個群組掛接到所選端點,以確定負載位置。

在全雲端架構中,您可以在一個 Google Cloud 區域中為工具、程式庫和暫存空間佈建個別的 NetApp Volumes 匯出項目。工具和程式庫會保存主要用於讀取的參考資料;暫存空間則會保存執行目錄和檢查點,通常是容量很大的磁碟區。相同 VPC 中的 Slurm 管理 Compute Engine 節點會使用 NFS 掛接每個匯出項目。儲存空間部署在 base 部署群組中,而運算資源則部署在 cluster 群組中,因此您可以在不刪除磁碟區的情況下,擴充或刪除叢集。

爆量至雲端

如果授權設計資料保留在內部部署或遠端 ONTAP 系統中,且您想在 Google Cloud 運算資源上執行迴歸、特徵化或尖峰容量工作,但不想先複製整個程式庫,請使用這個模式。

運用 FlexCache 解決混合雲儲存空間的挑戰

FlexCache 磁碟區 可提供下列優點,解決 EDA 環境中常見的混合雲儲存空間難題:

  • 類似 LAN 的存取效能:WAN 延遲和頻寬會限制雲端運算核心讀取內部部署資料集的速。為解決這個問題,FlexCache 會在工作集快取至本機後,在本機提供讀取負擔大的階段和中繼資料作業。

  • 隨選區塊層級快取:在每個工作開始前將完整程式庫複製到雲端,會導致啟動延遲並重複儲存。FlexCache 只會快取存取的資料區塊,因此可縮短啟動時間,並減少整體雲端儲存空間用量。

  • 一致的來源:您不必管理不相連的資料副本,而是可以在雲端使用本機 NFS 匯出功能,同時在地端部署來源磁碟區中維護單一一致的副本。

FlexCache 行為和特性

您可以在 NetApp Volumes 中建立 FlexCache 磁碟區,指向現有的 ONTAP 來源磁碟區。快取資料的讀取作業由 Google Cloud提供服務。冷讀取會從 ONTAP 來源磁碟區擷取區塊一次,然後在本機提供這些區塊。根據預設,寫入作業會使用寫入迴避:快取會將寫入作業轉送至來源,並使受影響的快取資料失效,藉此確保各快取之間的一致性。

以下是 EDA 環境的 FlexCache 主要特徵:

  • 僅限提取的區塊層級快取:只有存取的資料會耗用快取容量。對於每次執行時只會部分存取的大型程式庫,稀疏磁碟區的效率很高。

  • 一致的最新讀取內容:從快取或來源讀取的資料一致。如果寫入模式符合 FlexCache 指南,這個方法就適合用於共用參照程式庫。

  • 暖機後讀取延遲時間與 LAN 類似:中繼資料密集和處理量密集的讀取階段 (例如程式庫遍歷和重複參照檔案) 在工作集快取後,效能會有所提升。

  • 預先填入:為避免首次存取時受到冷讀處罰,請先為已知執行清單預先填入目錄,再開始工作。

混合式參考藍圖

eda-hybrid-cloud 會使用 pre-existing-network-storage 掛接現有磁碟區,例如工具、程式庫、主目錄和暫存。磁碟區可以是標準 NetApp Volumes 匯出內容、大容量磁碟區或 FlexCache 磁碟區。在叢集藍圖外佈建儲存空間,可避免在拆除運算資源時意外刪除儲存空間,並支援您在 ONTAP 中管理的 FlexCache 來源。

請參考下列作業準則:

  • 快取磁碟區的大小應根據工作集設定,而非原始磁碟區的完整容量。

  • 停用或限制來源磁碟區 (ONTAP 中) 的存取時間更新,避免不必要的快取失效。-atime-update 詳情請參閱「FlexCache 總覽」。

  • 只有在流程需要嚴格的跨快取拒絕讀取語意時,才啟用全域檔案鎖定。這種做法會增加延遲時間,並將可用性與原始連結配對。

  • 規劃來源與Google Cloud之間的網路連線和頻寬。使用寫入迴避時,寫入量大的階段仍會受到來源或網路連結的限制。

在混合式讀取爆量架構中,權威工具和程式庫資料位於內部部署的 ONTAP 系統。NetApp Volumes 會在 Google Cloud 中透過 WAN 或私人連結參照這些來源,主機 FlexCache 磁碟區。Slurm 節點會 Google Cloud 掛接 FlexCache 匯出內容。資料處於「溫暖」狀態時,系統會從快取提供讀取作業;冷讀取作業則會從地端部署來源擷取區塊。對於從雲端運算接收大量寫入流量的暫存和檢查點,請在與叢集相同的區域中建立獨立的雲端原生暫存磁碟區,將寫入作業保留在本地,而不是透過 FlexCache 將持續寫入流量傳送至地端部署來源。

透過擴散傳遞功能快取調整效能

如果單一匯出作業 (即使是容量很大的磁碟區) 無法為流程階段提供足夠的匯總讀取總處理量或用戶端扇出,請使用這個模式。

您可以透過下列兩種方式實作擴散傳遞功能:

扇出 FlexCache 磁碟區

建立多個由相同來源磁碟區支援的 FlexCache 磁碟區,並在不同快取上掛接不同的運算集區 (或工作類型)。每個快取都會獨立升溫,在不同的 NetApp Volumes 端點之間擴充讀取 I/O,並隔離工作負載之間的資源爭用,例如程式庫預先處理與長期迴歸。

下表比較單一和多個 FlexCache 部署方法。

做法 秤量裝備 缺點
單一 FlexCache 簡單易用,一個掛接路徑 一個快取容量和處理量上限
多個 FlexCache (擴散傳遞功能) 匯總快取讀取處理量;每個集區的隔離 要管理的磁碟區變多;工作集分散在各個快取中
僅限來源 (無快取) 單一網站最強大的寫入一致性 雲端運算的 WAN 延遲

如果事先知道工作輸入內容,請在每個擴散傳遞功能快取上使用預先填入功能。

透過多個端點在大型磁碟區上擴散傳遞功能

大規模的大容量磁碟區和 FlexCache 磁碟區會為每個磁碟區公開多個 IP 位址。將每個 IP 視為儲存端點,並各自擁有連線時段預算。

如果您有數百或數千個 NFS 用戶端,請考慮下列事項:

  • 降低每個用戶端 RPC 時段資料表項目:例如,NFSv3 上每個用戶端 8 個時段,因此每個端點的待處理作業總數會維持在建議限制內 (整個伺服器陣列中每個端點約 10,000 個時段)。詳情請參閱「Linux NFS 並行」。

  • 在端點之間分散掛接:使用 Cloud DNS 循環配置或靜態分片。

如要實作 FlexCache 擴散傳遞功能,請使用一個來源磁碟區 (地端部署 ONTAP 或 Cloud ONTAP 模式磁碟區),備份 NetApp Volumes 中的多個 FlexCache 磁碟區。使用不同的消費者 (例如 Slurm 分區或工作類別) 掛接每個快取,以隔離工作集,並在匯出作業中讀取負載。

如要實作多端點擴散傳遞功能,請使用一個大容量磁碟區,在多個 IP 位址上公開相同的 NFS 匯出項目。將用戶端分配到這些端點,方法是為每個 IP 位址指派固定用戶端群組,或是掛接 DNS 名稱,每個掛接點會解析為一個位址。每個端點都有自己的連線預算,分散用戶端有助於避免將整個伺服器陣列的 I/O 集中在單一 IP 位址。

合併模式

在正式版 EDA 環境中,您可以結合這些架構模式,進一步提升效能:

  • 全雲端:使用大容量暫存磁碟區,以及較小的標準磁碟區,供工具和住家使用。

  • 混合式:使用 FlexCache 處理程式庫和工具,並透過雲端佈建的暫存磁碟區處理工作輸出內容。

  • 扇出:每個網站或排程器佇列使用 FlexCache,加上多端點 DNS,適用於雲端原生大型暫存磁碟區。

根據各層級的容量和效能需求,選擇相應的磁碟區服務等級和集區類型 (Flex 統合式一般容量或大容量)。詳情請參閱「服務等級」。

後續步驟