使用 Cloud Storage FUSE 檔案快取

本頁面詳細說明 Cloud Storage FUSE 檔案快取,以及如何設定支援的屬性。

總覽

Cloud Storage FUSE 檔案快取是根據用戶端建立的讀取快取,可讓重複的檔案讀取作業從您選擇的較快快取儲存空間提供服務。本頁說明如何啟用及使用 Cloud Storage FUSE 檔案快取。

檔案快取的好處

檔案快取具有下列優點:

  • 提升小型和隨機 I/O 的效能:檔案快取可直接從快取媒體提供讀取作業,進而縮短延遲時間並提高總處理量。從快取提供服務時,小型隨機 I/O 作業的速度會顯著提升。

  • 運用平行下載:啟用檔案快取時,Cloud Storage FUSE 2.12 以上版本會自動啟用平行下載。平行下載會使用多個工作站平行下載檔案,並將檔案快取目錄做為預先擷取緩衝區,因此模型載入速度最多可提升九倍。如果單一執行緒讀取作業會載入大型檔案 (例如模型服務和檢查點還原),建議您使用平行下載。

  • 使用現有容量:檔案快取可使用快取目錄的現有佈建機器容量,無須支付額外儲存空間費用。這包括與 Cloud GPU 機型 (例如 a2-ultragpua3-highgpu) 搭配使用的本機 SSD、永久磁碟 (每個 VM 使用的開機磁碟) 或記憶體內 /tmpfs

  • 費用較低:快取命中時,系統會在本機提供內容,因此不會產生 Cloud Storage 作業或網路費用。

  • 降低 AI 和機器學習訓練的總持有成本:檔案快取功能可加快資料載入速度,進而提高 Cloud GPU 和 Cloud TPU 的使用率,縮短訓練時間,並提升人工智慧和機器學習 (AI/ML) 訓練工作負載的價格效能比。

平行下載

平行下載功能會使用多個工作站,平行下載檔案的多個部分,並將檔案快取目錄做為預先擷取緩衝區,藉此提升讀取效能。如果讀取作業會載入大型檔案 (例如模型服務、檢查點還原,以及大型物件訓練),建議使用平行下載。

啟用並行下載檔案快取的用途包括:

用途類型 說明
訓練 如果要存取的資料會多次讀取,請啟用檔案快取功能, 無論是多次讀取相同檔案,還是讀取相同檔案的不同位移量,都適用這項功能。 如果資料集大於檔案快取,檔案快取應維持停用狀態,並改用下列其中一種方法:
提供模型權重和檢查點讀取作業 啟用檔案快取和平行下載功能,即可使用平行下載功能,載入大型檔案的速度會比不使用檔案快取和平行下載功能時快得多。

注意事項

以下各節提供使用檔案快取的重要注意事項。

檔案大小和可用容量

讀取的檔案必須符合檔案快取目錄的可用容量,您可以使用 --file-cache-max-size-mb CLI 選項file-cache:max-size-mb 欄位控制可用容量。

隨機和部分讀取管理

如果第一次檔案讀取作業從檔案開頭開始,也就是偏移 0,Cloud Storage FUSE 檔案快取會擷取整個檔案並載入快取,即使您只讀取一小部分也是如此。這樣一來,後續從同一物件隨機或部分讀取資料時,系統就能直接從快取提供服務。

如果檔案的第一次讀取作業不是從偏移 0 開始,Cloud Storage FUSE 預設不會觸發非同步完整檔案擷取作業。如要變更這項行為,讓 Cloud Storage FUSE 在初始隨機讀取時將檔案擷取至快取,請使用下列其中一種方法將行為設為 true

如果對同一個物件執行許多不同的隨機或部分讀取作業,建議啟用這項屬性。

快取剔除情形

系統會根據最近最少使用 (LRU) 演算法,在達到每個 --file-cache-max-size-mb 限制設定的空間門檻後,開始清除快取的中繼資料和資料。如果項目是根據 TTL 到期,系統會先對 Cloud Storage 進行 GET 中繼資料呼叫,並受網路延遲影響。由於資料和中繼資料是分開管理的,因此您可能會遇到一個實體遭到逐出或失效,但另一個實體沒有。

快取持續性

在卸載和重新啟動時,Cloud Storage FUSE 快取不會保留。如果是檔案快取,雖然從快取提供檔案所需的元資料項目會在卸載和重新啟動時遭到清除,但檔案目錄中可能仍有檔案快取中的資料。建議您在卸載或重新啟動後,刪除檔案快取目錄中的資料。

資料安全性

啟用快取後,Cloud Storage FUSE 會使用您透過下列其中一種方法指定的快取目錄,做為快取的基礎目錄,以加密格式保存 Cloud Storage bucket 中的檔案:

任何有權存取這個快取目錄的使用者或程序,都能存取這些檔案。建議您限制這個目錄的存取權。

直接或多次存取檔案快取

如果使用 Cloud Storage FUSE 以外的程序存取或修改快取目錄中的檔案,可能會導致資料損毀。Cloud Storage FUSE 快取是專為每個 Cloud Storage FUSE 執行程序而設,不會感知在相同或不同機器上執行的不同 Cloud Storage FUSE 程序。因此,我們不建議為不同的 Cloud Storage FUSE 程序使用相同的快取目錄。

如果需要在同一部機器上執行多個 Cloud Storage FUSE 程序,每個 Cloud Storage FUSE 程序都應取得專屬的快取目錄,或使用下列其中一種方法,確保資料不會損毀:

  • 使用共用快取掛接所有 buckets:使用動態掛接,在單一程序中掛接您有權存取的所有 buckets,並使用共用快取。詳情請參閱「Cloud Storage FUSE 動態掛接」。

  • 在特定 bucket 上啟用快取:使用靜態掛接,僅在指定 bucket 上啟用快取。詳情請參閱「Cloud Storage FUSE 靜態掛接」。

  • 僅快取特定資料夾或目錄:只掛接及快取特定 bucket 層級的資料夾,而非掛接整個 bucket。詳情請參閱「掛接值區內的目錄」。

事前準備

檔案快取需要目錄路徑,才能快取檔案。您可以在現有檔案系統上建立新目錄,也可以在佈建的儲存空間上建立新檔案系統。如要佈建新的儲存空間,請按照下列操作說明建立新的檔案系統:

  1. 如要瞭解 Google Cloud Hyperdisk,請參閱建立新的 Google Cloud Hyperdisk 磁碟區

  2. 如果是永久磁碟,請參閱「建立新的永久磁碟磁碟區」。

  3. 如要瞭解本機 SSD,請參閱「將本機 SSD 新增至 VM」。

  4. 如要瞭解記憶體內 RAM 磁碟,請參閱「建立記憶體內 RAM 磁碟」。

啟用及設定檔案快取行為

使用下列任一方式啟用及設定檔案快取:

  1. 請使用下列任一方法指定要使用的快取目錄。這樣一來,您就能為非 Google Kubernetes Engine 部署啟用檔案快取:

    如果您使用 Google Kubernetes Engine 部署,並搭配 Google Kubernetes Engine 適用的 Cloud Storage FUSE CSI 驅動程式,請指定下列其中一個選項:

  2. 選用:如果系統未自動啟用平行下載功能,請將下列其中一個選項設為 true,啟用平行下載功能:

  3. 調整下列其中一個選項,即可限制 Cloud Storage FUSE 快取在掛接目錄中可使用的總容量。指定快取目錄時,系統會自動將這些選項設為 -1 值:

    你也可以指定 MiB 或 GiB 的值,限制快取大小。

  4. 選用:略過快取項目的 TTL 到期時間,並使用下列其中一種方法和設定 -1 值,從快取提供檔案中繼資料 (如有):

    預設值為 60 秒,值為 -1 則表示不設上限。您也可以根據需求指定較高的值。建議您將 ttl-secs 值設為工作負載允許的最高值。如要進一步瞭解如何為快取項目設定 TTL,請參閱「存留時間」。

  5. 選用:如果檔案的首次讀取作業不是從 offset 0 開始,您可以啟用檔案快取的非同步載入功能,將整個檔案載入快取,這樣後續從同一檔案讀取不同位移時,也能從快取提供資料。使用下列其中一種方法,並將選項設為 true

  6. 選用:設定統計資料快取和型別快取。如要進一步瞭解 stat 和型別快取,請參閱型別快取總覽stat 快取總覽

  7. 執行工作負載前,請先在已掛接的值區中手動執行 ls -R 指令,預先填入中繼資料,確保類型快取會以更快速的批次方法,在第一次讀取前填入資料。如要進一步瞭解如何提升首次讀取效能,請參閱「提升首次讀取效能」。

啟用檔案快取後,系統會自動在 Cloud Storage FUSE 2.12 以上版本啟用平行下載功能。如果您使用的是舊版 Cloud Storage FUSE,請將 enable-parallel-downloads 選項設為 true,啟用平行下載。

設定平行下載的支援屬性

您可以使用 Cloud Storage FUSE CLI 或 Cloud Storage FUSE 設定檔,選擇性地為平行下載設定下列支援屬性:

房源說明 CLI 選項 設定檔欄位
每個檔案可產生的工作站數量上限,用於將物件從 Cloud Storage 下載至檔案快取。 --file-cache-parallel-downloads-per-file file-cache:parallel-downloads-per-file
所有檔案下載工作在任何時間點可產生的工作站數量上限。預設值為機器上 CPU 核心數的兩倍。如要指定沒有限制,請輸入 `-1` 值。 --file-cache-max-parallel-downloads file-cache:max-parallel-downloads
每個工作站將物件下載至檔案快取時,向 Cloud Storage 發出的讀取要求大小 (以 MiB 為單位)。請注意,只有在讀取的檔案達到指定大小時,才會觸發平行下載。 --file-cache-download-chunk-size-mb file-cache:download-chunk-size-mb

停用平行下載

如要停用平行下載,請將下列其中一個選項設為 false

  • --file-cache-enable-parallel-downloads CLI 選項
  • file-cache:enable-parallel-downloads 欄位

後續步驟