HPC 快取使用者可透過 flush_file.py 工具請求快取將特定個別檔案寫入後端儲存。 這個工具是一個獨立下載的軟體套件,你可以安裝並在 Linux 用戶端機器上使用。
此功能設計用於希望快取檔案變更能盡快提供給未掛載快取的系統。
例如,你可以使用 Azure HPC 快取來擴展雲端運算工作,但將資料集永久存放在本地資料中心。 如果資料中心的運算任務依賴 Azure HPC 快取所產生的變更,你可以使用這個工具將雲端任務產生的輸出或變更「推回」本地的 NAS 儲存裝置。 這讓新檔案幾乎能立即被本地運算資源使用。
在自訂寫回和清除之間選擇
你可以用 Azure HPC 快取內建的「儲存目標清除」選項強制資料寫回,但這種方法不一定適用於所有情況。
將所有修改過的檔案寫回儲存系統可能需要數分鐘甚至數小時,視資料量及網路連線回傳至本地系統的速度而定。 此外,你不能只選擇已完成的檔案來寫入;仍在持續修改的檔案會被包含在計算中。
快取可能會在清機過程中阻擋該儲存目標的某些請求。 如果有其他運算用戶端使用同一儲存目標上的檔案,這可能會延遲處理。
觸發此操作需要貢獻者存取 Azure 資源管理員,而最終使用者可能沒有權限。
例如,你可以有多個平行(但不重疊)的計算工作,這些工作會消耗位於同一 HPC 快取儲存裝置上的資料。 當一個工作完成時,你要立即將該工作的輸出內容從快取寫入後端的長期儲存。
您有三個選項:
等快取檔案自動從快取寫回來——但檔案可能會在快取中停留超過一小時才會完全寫回。 時間點取決於快取使用模型的寫回延遲,以及網路連線效能和檔案大小等其他因素。 (閱讀 「了解快取使用模型 」以了解更多關於寫回延遲的資訊。)
立即清除 整個儲存目標的快取檔案 ,但這會干擾其他同時使用該儲存目標資料的運算工作。
使用這個自訂的回寫工具,向快取發送特殊的 NFS 請求,只寫回你想要的特定檔案。 此情境不會干擾其他用戶端的存取,且可在計算任務的任何階段觸發。
關於寫回工具
寫回工具有一個腳本,你可以用來指定將從快取寫入到長期儲存系統的個別檔案。
腳本會接收需要寫入的檔案的輸入流、快取命名空間路徑到你的儲存目標匯出,以及 HPC 快取掛載的 IP 位址。
腳本使用 NFSv3 的「提交」呼叫,並啟用特殊參數。 Linux 的 nfs-common 用戶端無法正確傳遞這些參數,因此 flush_file.py 工具使用 Python 函式庫中的 NFS 用戶端模擬器與 HPC 快取 NFS 服務溝通。 函式庫包含所有必要功能,繞過了你計算客戶端基於 Linux 核心的 NFS 客戶端可能存在的任何限制。
要使用此功能,您需要完成以下步驟:
從 https://github.com/microsoft/hpc-cache-nfsv3-client GitHub Microsoft HPC-Cache-NFSv3-client 倉庫安裝
hpc-cache-nfsv3-client。 在一個或多個運算用戶端上。 倉庫的 README 檔案中包含了前置資訊與說明。使用附帶的「flush_file.py」腳本,指示快取將你需要的檔案精確地寫回至長期儲存系統。
在 GitHub 倉庫了解更多關於安裝和使用 flush_file.py 腳本的資訊。