共用方式為


在 Azure HPC Cache 中自訂檔案回寫

HPC Cache 使用者可以使用 flush_file.py 公用程式,要求快取將特定個別檔案寫入後端儲存體。 此公用程式是您在 Linux 用戶端電腦上安裝及使用的個別下載軟體套件。

如果您希望快取檔案的變更能儘快提供給未掛接快取的系統,這項功能正是專為此而設計。

例如,您可以使用 Azure HPC Cache 調整雲端中的計算作業,但將資料集永久儲存在內部部署資料中心。 如果計算工作發生在相依於使用 Azure HPC Cache 建立的變更的資料中心,您可以使用此公用程式將雲端工作產生的輸出或變更「推送」回內部部署 NAS 儲存體。 如此一來,內部部署計算資源幾乎能立即使用新檔案。

選擇自訂回寫或排清

您可以使用 Azure HPC Cache 內建的「儲存目標排清」選項來強制執行回寫資料,但此方法可能不適用於所有情況。

  • 視資料數量和網路連結回到內部部署系統的速度而定,將所有已修改的檔案回寫至儲存系統可能需要幾分鐘或甚至數小時的時間。 此外,您無法選擇只回寫已完成的檔案;仍在進行修改的檔案也會包含在此計算中。

  • 在排清程序期間,快取可能會封鎖向該儲存目標的一些要求提供服務。 如果有其他運算用戶端使用位於相同儲存目標的檔案,則可能會延遲處理。

  • 觸發此動作需要 Azure Resource Manager 的參與者存取權,而終端使用者可能沒有該存取權。

例如,您可以有多個平行 (但不能重疊) 計算作業,這些作業會取用位於相同 HPC Cache 儲存目標上的資料。 當某個作業完成時,您會想要立即將該作業的輸出從快取寫入後端的長期儲存體。

您有三個選項:

  • 等候快取檔案從快取中自動回寫,但檔案可能會在快取中等待超過一小時,才能完全寫回。 等候時間取決於快取使用模型的回寫延遲,以及網路連結效能和檔案大小等其他因素。 (閱讀了解快取使用模型以深入了解回寫延遲。)

  • 立即排清整個儲存目標的快取檔案,但這會中斷正在使用相同儲存目標資料的其他計算作業。

  • 使用此自訂回寫公用程式,向快取傳送特殊的 NFS 要求,以便只寫回您想要的特定檔案。 此案例不會中斷其他用戶端的存取,並且能在計算工作的任何時間點觸發。

關於回寫公用程式

回寫公用程式有一個指令碼,可用於指定將從快取寫入長期儲存系統的個別檔案。

指令碼會接受要寫入檔案的輸入資料流、儲存目標匯出的快取命名空間路徑,以及 HPC Cache 掛接 IP 位址。

指令碼會使用已啟用特殊引數的 NFSv3「認可」呼叫。 Linux nfs-common 用戶端無法適當地傳遞這些引數,因此 flush_file.py 公用程式會使用 Python 程式庫中的 NFS 用戶端模擬器,與 HPC Cache NFS 服務通訊。 程式庫包含所有必需內容,會略過計算用戶端的 Linux 核心型 NFS 用戶端中可能存在的任何限制。

若要使用此功能,您必須執行下列操作:

深入了解如何在 GitHub 存放庫中安裝及使用 flush_file.py 指令碼。