Performance

HPC 數據訪問和儲存設計

  • November 18, 2009

我目前正在使用一個集群配置的應用程序,該應用程序在本地儲存每個子節點的所有數據。我們遇到了正確擴展的問題,並且正在研究傳統的 SAN 和基於消息的集群配置。

我對如何正確配置子/工作節點和單個 SAN 的數據訪問感興趣。我的管理器節點會一次限制對一個子節點的數據訪問,還是所有子節點都能夠以高性能方式同時讀取/寫入 SAN 上的同一卷?似乎最好的選擇是通過管理器節點一次限制對一台機器的訪問,但這會限制一次從單個子節點訪問數據;這很難擴展。

這個想法是能夠啟動一個管理節點會提醒所有子節點執行的作業。每個節點都會從 SAN 中抓取一部分數據進行處理。

我對這個領域相當陌生,非常感謝任何和所有可能的回饋/響應。

謝謝你。

$$ SideNote: This is a Windows based server setup. We’re thinking of trying out Windows Server 2008 HPC specifically, but are not currently using it. $$

從長遠來看,擁有可以直接訪問 SAN 和某種集群文件系統的工作節點不會擴展。根據所討論的文件系統,您可能最多可以獲得十幾個或幾十個節點,但最終您將達到限制並被卡住。

在更典型的場景中,節點將擁有某種本地儲存,它們將在其中暫存需要處理的數據。然後,您將擁有 f 個儲存節點,它們使用某種形式的網路文件系統(NFS、CIFS 或其他更奇特的東西)與工作人員共享數據。然後,工作人員將他們需要處理的數據子集複製到本地儲存中,無論是在工作開始時還是在他們需要時,並在工作結束時或者他們正在創建它時寫回他們的輸出。

您會注意到我的回答非常籠統,因為這種類型的東西是非常特定於應用程序的。您可能有一個執行很少 I/O 的分佈式應用程序,每隔幾分鐘就會將一些數據寫入共享文件系統。在這種情況下,您可以從所有節點直接寫入共享文件系統,而不必擔心性能。另一方面,如果節點每秒產生 10 兆字節的輸出,您肯定不希望(或能夠)讓它們一次全部寫入共享文件系統。

設置 HPC 集群是非常特定於域的,這里肯定沒有一刀切的答案。

引用自:https://serverfault.com/questions/71447