Cluster

HPC 集群 (SLURM):推薦的設置安全穩定係統的方法

  • July 25, 2014

我正在使用 SLURM 驅動的 HPC 集群,其中包含 1 個控制節點和 34 個計算節點,並且由於目前系統不太穩定,我正在尋找有關如何以某種方式建構此類集群的指南或最佳實踐它變得更加穩定和安全。需要明確的是,我不是在尋找有關資源管理或其他工具的詳細答案,而是尋找有關非常基本設置的建議(請參閱下面的“問題”)。

我目前的設置

  • 1個控制節點

這台機器在 /usr/local/slurm 上安裝了 slurm 並執行 slurmctld 守護程序。完整的 slurm 目錄(包括所有執行檔和 slurm.conf)被導出。

  • 34個計算節點

這些機器將導出的 slurm 目錄從控制節點掛載到 /usr/local/slurm 並執行 slurmd 守護程序。

我不使用任何備份控制節點。

如果我們的控制節點失去,目前正在執行的作業是否能夠存活似乎總是運氣問題,所以我正在尋找一種方法來創建更穩定的設置。

目前設置可能存在的問題

*1) 共享 slurm 目錄。*如果這是一個好的或壞的做法,我在網上找不到任何東西,但由於所有機器上的 slurm 配置文件必須相同,我想我不妨分享完整的 slurm 安裝。但是當然,如果計算節點失去,所有文件也將不可用。

*2) 缺少備份控制節點。*這需要一個可以保存目前狀態的共享 NFS 目錄。問題是,這個目錄應該放在哪裡?當然放在控制節點上是沒有意義的,但是是不是應該放在備用控制節點上呢?還是在完全不同的機器上?

問題

那麼,建構 HPC 集群是否需要遵循一些指導方針?問題是,涉及哪些不同類型的節點,它們的工作是什麼,應該通過 NFS 共享什麼樣的數據以及這些共享目錄應該在哪裡?我也會感謝任何類型的文獻或教程,它們為我指明了正確的方向。

自從我接觸 SLURM 以來已經有一段時間了,所以對以下內容持保留態度。此外,集群的設計將取決於您的工作負載。通常,您從一個頭節點和一些計算節點開始,然後從那裡開始建構。像 Rocks 這樣的包可能是一個很好的起點。

我可以看到共享目錄有問題。根據您的工作量,您可能已經有大量流量通過 NFS,因此我將在本地安裝 SLURM。您可以在 NFS 導出的捲上製作 slurm 配置的副本,並使用“fornodes”腳本或使用腳本化 scp 進行複制。如果您對 slurm 配置進行大量更改,您甚至可以將 slurmd restart 添加到腳本中。

關於備份控制節點,我不會擔心。您的頭節點可能是單點故障,因此如果您失去了該節點,您的工作就會出現問題。我也不確定如果啟用了 SLURM 記帳備份機制,它是如何工作的,因為它通常使用 MySQL 之類的數據庫。

對於導出,我通常在較小的集群上導出 /home 目錄和 /opt。根據您的數據需求,您可以考慮使用帶有額外儲存的單獨儲存節​​點來分配您的 NFS 負載。由於您提到您遇到穩定性問題,您可以考慮使用像 Ganglia 這樣的包,它將監控節點負載、記憶體使用率、網路吞吐量和其他值,並將它們呈現在一系列圖表中。您還可以使用命令行工具(例如在計算節點上執行的 top )學到很多東西。您還需要測試工作的擴展性。如果您的作業在跨節點(MPI?)時執行非常糟糕,您可能需要更快、更低延遲的互連,例如 Infiniband 或 10Gb 乙太網。

祝 SLURM 好運。我喜歡在換工作之前使用它,但因為它不像 Torque/Maui 或 Sun/Oracle Grid Engine 那樣受歡迎,所以我的奇怪問題的答案總是很難找到。

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