如果你的工作流程包含將資料移到 Azure Blob 儲存,務必採用有效率的策略。 你應該建立快取,將 blob 容器加入儲存目標,然後用 Azure HPC 快取複製資料。
本文說明將資料移至blob儲存以配合Azure HPC Cache的最佳方法。
Tip
本文不適用於 NFS 掛載的 blob 儲存(ADLS-NFS 儲存目標)。 你可以使用任何基於 NFS 的方法,在加入 HPC 快取前後填充 ADLS-NFS blob 容器。 閱讀 NFS 協議的預載資料 以了解更多。
請記住以下事實:
Azure HPC 快取使用專門的儲存格式來組織 Blob 儲存中的資料。 這就是為什麼 blob 儲存目標必須是新的空容器,或是先前用於 Azure HPC 快取資料的 blob 容器。
當你使用多個客戶端和平行運算時,透過 Azure HPC 快取將資料複製到後端儲存目標會更有效率。 從一個客戶端執行簡單的複製指令會讓資料移動變慢。
本文所述策略適用於填充空的 blob 容器,或將檔案加入先前使用的儲存目標。
透過 Azure HPC 快取複製資料
Azure HPC 快取設計成同時服務多個用戶端,因此要透過快取複製資料,應該使用多個用戶端的平行寫入。
cp 或 copy 指令是你通常用來將資料從一個儲存系統傳輸到另一個的單執行緒程序,一次只會複製一個檔案。 這表示檔案伺服器一次只接收一個檔案——這浪費了快取的資源。
本節說明如何建立多客戶端、多執行緒的檔案複製系統,並利用 Azure HPC 快取將資料移至 blob 儲存。 它闡述了檔案傳輸的概念和一些關鍵決策點,這些可以在多個客戶端中使用簡單的複製指令來進行有效的資料複製。
書中也說明了一些可以幫忙的公用事業。 此 msrsync 工具可用來部分自動化將資料集劃分為桶的過程,並使用 rsync 指令。 腳 parallelcp 本是另一種工具,能讀取來源目錄並自動發出複製指令。
策略性規劃
在建立平行複製資料的策略時,你應該了解檔案大小、檔案數量和目錄深度之間的權衡。
- 當檔案較小時,關注的指標是每秒檔案數。
- 當檔案很大(10MiBi 或以上)時,關注的指標是每秒位元組數。
每個複製程序都有一個吞吐量率和一個檔案傳輸速率,這可以透過計時複製指令的長度、檔案大小和檔案數量來衡量。 說明如何衡量費率超出本文件範圍,但了解你處理的是小型還是大型檔案是非常重要的。
使用 Azure HPC 快取進行平行資料匯入的策略包括:
手動複製——你可以在客戶端手動建立多執行緒複製,方法是同時在背景執行多個複製指令,針對預先定義的檔案或路徑。 詳情請閱讀 Azure HPC 快取資料匯入 - 手動複製方法。
部分自動化的複製是一個
msrsync-msrsync包裝工具,可執行多個平行rsync程序。 詳情請閱讀 Azure HPC 快取資料導入 - msrsync 方法。腳本複製
parallelcp- 學習如何在 Azure HPC 快取資料匯入中建立並執行平行複製腳本方法 平行複製腳本。
下一步
在你設定好儲存空間後,學習客戶端如何掛載快取。