本頁說明 Anywhere Cache,這項功能可為 Cloud Storage 值區提供 SSD 支援的區域讀取快取。Anywhere Cache 會自動調整快取大小和可用頻寬,以滿足您的需求,提供隨選快取容量。由於具備上述優點,「任何位置」快取特別有助於減少與讀取密集型工作負載相關的網路費用。
如要瞭解如何在 Anywhere Cache 中建立及管理快取,請參閱「建立及管理快取」。
總覽
您可以使用 Anywhere Cache,在與工作負載相同的區域中建立快取。 在可用區中建立快取後,系統會透過快取處理來自該可用區的資料讀取要求,而非透過 bucket。每個快取都會為與快取位於同一區域的用戶端提供服務。只有當與快取位於相同可用區的 VM 讀取資料時,系統才會將資料從值區擷取到快取。中繼資料不會快取,且物件中繼資料要求是由值區處理,而非快取。
為值區建立快取時,快取必須在值區所在位置的區域內建立。舉例來說,如果 bucket 位於 us-east1 地區,您可以在 us-east1-b 中建立快取,但無法在 us-central1-c 中建立。如果值區位於 ASIA 雙區域,您可以在組成 asia-east1 和 asia-southeast1 區域的任何可用區中建立快取。如需區域清單,請參閱 Compute Engine 說明文件中的「地區和區域」一文。
每個值區在每個可用區中,最多可建立一個快取。舉例來說,如果您的 bucket 位於 US 多地區,而 Compute Engine VM 在 us-east1-b 和 us-central1-a 區域中執行,您可以在 us-east1-b 建立一個快取,在 us-central1-a 建立另一個快取。
Anywhere Cache 是全代管服務,一律會傳回一致的資料。
優點
使用 Anywhere Cache 快取資料時,可享有下列優點:
- 加快資料存取速度:Anywhere Cache 會將資料與運算資源放在同一可用區,並完全由 SSD 支援,這項功能可讓工作負載獲得高達 2.5 TB/s 的處理量,並縮短延遲時間,加快讀取速度。 
- 減少多區域資料移轉費用:與直接從多區域 bucket 讀取的資料不同,從快取讀取的資料不會產生資料移轉費用。在初始快取擷取作業中讀取資料時,仍須支付一般網路費用。 
- 降低擷取費用:從快取讀取資料時,系統不會收取 Nearline Storage、Coldline Storage 和 Archive Storage 值區的擷取費用。 
- 讀取作業的費用較低:從 Anywhere Cache 執行的讀取作業,費用低於從 Standard 儲存空間的 Bucket 執行的 B 級作業。 
- 自動調整快取大小:Anywhere Cache 的動態 SSD 快取會根據用量自動調整大小,您不必指定快取大小。 
- 有效運用快取:您可以在現有 bucket 中啟用 Anywhere Cache,不必變更現有應用程式或 API。「任何位置」快取中儲存的資料具有同步一致性。 
如需定價詳細資料,請參閱「Anywhere Cache 定價」。如要瞭解配額,請參閱「Anywhere Cache 配額」。
何時應使用 Anywhere Cache?
「任何位置」快取最適合用於快取不常變更但經常讀取的資料,例如用於訓練機器學習模型或執行分析工作負載的資料。
假設您要跨多個 Google Kubernetes Engine 節點訓練 AI 模型,所有節點都會重複讀取儲存在 Cloud Storage 值區中的資料,且都在同一區域中執行。在工作負載執行的可用區中建立快取時,快取會提供額外頻寬,並協助您減少讀取多區域 bucket 中的資料所產生的資料移轉費用,讓您更有效率地執行規模較大的工作負載。
定價
如要瞭解 Anywhere Cache 的定價,請參閱 Anywhere Cache 定價。
支援的地區
只要有可用容量,即可在特定區域建立快取。如果建立快取的容量不足,Anywhere Cache 服務會持續嘗試建立快取,直到容量足夠或使用者中止建立程序為止。容量可能長期無法使用。
每個值區最多可為每個 bucket 建立一個快取。舉例來說,如果值區位於 us-east1 地區,您可以在 us-east1-b 和 us-east1-c 中建立快取。如果值區位於涵蓋 us-central1 和 us-east1 的多重區域,您可以在 us-central1-a 中建立快取,並在 us-east1-b 中建立另一個快取。
您可以在下列區域使用 Anywhere Cache。這些區域可根據儲存空間的所在位置類型使用。
| 地理區域 | 位置 | ||||
|---|---|---|---|---|---|
| 區域名稱 | 區域 | 雙區域 | 多區域 | 自訂雙區域 | |
| 亞洲 | |||||
| asia-east1-a | |||||
| asia-east1-b | |||||
| asia-east1-c | |||||
| asia-northeast1-a | |||||
| asia-northeast1-b | |||||
| asia-northeast1-c | |||||
| asia-south1-a | |||||
| asia-south1-b | |||||
| asia-south1-c | |||||
| asia-southeast1-a | |||||
| asia-southeast1-b | |||||
| asia-southeast1-c | |||||
| 歐洲 | |||||
| europe-north1-a | |||||
| europe-north1-b | |||||
| europe-north1-c | |||||
| europe-west1-b | |||||
| europe-west1-c | |||||
| europe-west1-d | |||||
| europe-west4-a | |||||
| europe-west4-b | |||||
| europe-west4-c | |||||
| europe-west6-a | |||||
| europe-west6-b | |||||
| 美國 | |||||
| us-central1-a | |||||
| us-central1-b | |||||
| us-central1-c | |||||
| us-central1-f | |||||
| us-east1-a | |||||
| us-east1-b | |||||
| us-east1-c | |||||
| us-east1-d | |||||
| us-east4-a | |||||
| us-east4-b | |||||
| us-east4-c | |||||
| us-east5-a | |||||
| us-east5-b | |||||
| us-east5-c | |||||
| us-south1-a | |||||
| us-south1-b | |||||
| us-south1-c | |||||
| us-west1-a | |||||
| us-west1-b | |||||
| us-west1-c | |||||
| us-west3-a | |||||
| us-west3-b | |||||
| us-west3-c | |||||
| us-west4-a | |||||
| us-west4-b | |||||
| us-west4-c | |||||
Anywhere Cache 建議工具
Anywhere Cache 建議工具會分析您的資料用量和儲存空間,提供在 bucket-zone 配對中建立快取的建議和洞察資訊。如需 Anywhere Cache 建議工具的總覽資訊和使用說明,請參閱「Anywhere Cache 建議工具」。
快取作業
本節說明可對「任何位置」快取執行的作業。部分作業為非同步,並會傳回長時間執行的作業,其他作業則為同步,作業會立即完成並傳回 AnywhereCache 資源。
建立快取
建立快取時,可以設定下列屬性:
- 存留時間 (TTL) 是指從上次讀取資料區塊到將其從快取剔除之間的時間長度上限。舉例來說,如果 TTL 設為 24 小時,且最後一次讀取資料區塊的時間是週一上午 11 點,之後沒有再讀取,則該資料區塊會在週二上午 11 點從快取中清除。 - 您可以設定 1 小時到 7 天的存留時間。如未指定,TTL 預設為 24 小時。 
- 准入政策會決定快取是在第一次或第二次未命中時擷取資料。如果是在第二次未命中時擷取資料,只有在您指定的存留時間內第二次讀取資料時,系統才會將資料擷取至快取。在第二次未命中時擷取資料,可確保只快取讀取超過一次的物件,藉此降低使用 Anywhere Cache 的成本,但也會降低快取命中率。 - 如未指定,預設的准入政策為「首次錯過時擷取」。 
建立快取時,快取會進入 CREATING 狀態,並在開始運作時進入 RUNNING 狀態。建立快取作業最多可能需要 48 小時,之後作業就會逾時。
AnywhereCaches Create API 為非同步,建立作業會導致系統傳回長時間執行的作業。長時間執行的作業會提供建立作業的狀態,並讓您在作業完成前取消作業。
更新快取
您可以更新處於「執行中」狀態的快取存留時間或許可政策。快取更新期間,pending_update 欄位會評估為 true。pending_update 欄位評估結果為 true 時,快取就無法再次更新。
快取處於「建立中」、「已暫停」或「已停用」狀態時,無法更新。AnywhereCaches Update API 為非同步,且會傳回長時間執行的作業。
快取存留時間更新完畢後,系統會立即將新的存留時間套用至新擷取的資料,並在讀取現有資料時套用。也就是說,快取中的現有資料會保留舊的 TTL,直到該資料遭到讀取,或因 TTL 到期而遭到清除為止。
取得快取
取得快取時,Anywhere Cache 會傳回快取執行個體的狀態和設定。AnywhereCaches Get API 是同步 API,會傳回 AnywhereCache 資源。
列出快取
您可以傳回指定 bucket 的相關聯快取清單。AnywhereCaches List API 是同步 API,支援分頁。
暫停快取
您可以暫停快取,停止擷取處於 RUNNING 狀態的快取資料。快取處於 PAUSED 狀態時,您仍可從快取讀取現有資料,但無法將新資料擷取至快取。從快取讀取現有資料會重設快取中資料的存留時間。
當您繼續處於「已暫停」狀態的快取時,快取會進入「執行中」狀態。
AnywhereCaches Pause API 是同步 API,會傳回 AnywhereCache 資源。
恢復快取
只要停用的快取仍在 1 小時的寬限期內,您就可以繼續使用處於「已暫停」或「已停用」狀態的快取。1 小時寬限期過後,系統會盡量執行續傳作業,因為寬限期過後,快取隨時可能遭到刪除。快取恢復後,就會進入「RUNNING」狀態。
AnywhereCaches Resume API 是同步 API,會傳回 AnywhereCache 資源。
停用快取
您可以停用快取,從值區的設定中永久移除快取。停用快取後,快取會進入「已停用」狀態。在此狀態下,您仍可從快取讀取現有資料,但無法將新資料擷取到快取中。
停用快取後,您有 1 小時的寬限期,可以透過恢復快取取消停用。超過 1 小時的寬限期後,快取就會遭到刪除。刪除快取時,快取中的所有資料都會遭到清除,且快取會從 bucket 中移除。
在快取遭到刪除前 1 小時內,您可以恢復快取,藉此還原 DISABLED 狀態,此時快取會恢復為 RUNNING 狀態。
AnywhereCaches Disable API 是同步 API,會傳回 AnywhereCache 資源。
自動調度快取大小和頻寬限制
Anywhere Cache 提供暫時的快取儲存空間和頻寬,可視需求調度資源。如要進一步瞭解 Anywhere Cache 的大小和頻寬限制,請參閱「Cloud Storage 配額與限制」。
控制成本
以下提供幾項訣竅,協助您盡量降低快取執行成本:
- 選取值區:您應只為包含要快取資料的值區建立快取。 
- 選取區域:您應只在工作負載可從快取獲益的區域中建立快取。 
- 在第二次讀取時擷取:您可以指定只在第二次讀取時擷取資料,而非第一次讀取時,確保快取只儲存讀取超過一次的資料。 
- 存留時間設定:您應指定儲存快取資料所需的最低存留時間。存留時間可變更,不會造成中斷。 
- 暫停快取:您可以暫停快取,停止擷取資料並停止收取相關的快取擷取費用。暫停快取會立即生效。您可以暫停快取,直到指定存留時間結束後,所有資料都遭到清除為止。所有資料遭到逐出後,您就不必再支付資料儲存空間費用。 
- 停用快取:您可以停用快取,從服務中永久移除快取,並停止產生所有相關快取費用。 
限制和規定
- 如要刪除 bucket,必須先刪除所有相關聯的快取。但使用 Google Cloud 控制台刪除 bucket 時,系統會一併刪除所有相關聯的快取。 
- 執行快取建立、停用、暫停、繼續或更新作業時,請將作業速率限制為每秒最多一項作業。每秒執行超過一項作業可能會導致失敗。 
- Anywhere Cache 不是永久儲存空間,在各種情況下,資料可能會從快取中清除。其中一種情況是快取會自動調整大小,確保工作負載有足夠的資源可用。在這種情況下,直到 Anywhere Cache 服務完成增加快取大小之前,部分資料可能會根據最近最少使用的 (LRU) 演算法遭到清除。 - 無論如何,您的資料仍會安全地儲存在來源 bucket 中。如果資料因 TTL 到期以外的原因從快取中捨棄,Anywhere Cache 服務會嘗試將資料重新擷取到快取中,這項作業不會產生任何費用,而且對您來說是透明的。如果資料無法以透明方式重新擷取,或因 TTL 到期而遭捨棄,Anywhere Cache 服務會在第一次或第二次讀取時重新擷取資料。 
- Anywhere Cache 無法用於處理 BigQuery 發出的物件讀取要求。使用 BigQuery 查詢 Cloud Storage 值區中的資料時,系統會將該值區視為外部資料表,並從該值區提供資料,不會將資料擷取到快取中 (即使值區已啟用快取功能)。 
- 您無法使用 BigQuery 讀取 Anywhere Cache 建議工具產生的建議和洞察資訊。 
排解暫時性資源短缺問題
下列各節說明發生暫時性資源短缺時如何進行疑難排解。如果指定區域的 SSD 容量或服務容量不足,無法建立快取、增加快取大小或提高快取頻寬限制,就會發生這種情況。
無法建立新快取
如果 SSD 容量或輸送量服務資源不足,Anywhere Cache 可能無法在特定區域建立新快取,導致資源暫時短缺。在此期間,Anywhere Cache 最多會嘗試建立新快取 48 小時。如果在 48 小時內有可用資源,Anywhere Cache 就會成功完成快取建立要求。如果資源未在 48 小時內可用,快取建立要求就會失敗。
如何排解問題:為避免快取作業中斷,您可以手動取消快取建立作業,並在可能還有容量的不同區域建立新快取。如要監控或取消快取建立作業,請參閱使用長時間執行的作業。
無法增加快取大小
如果快取所在區域沒有足夠的 SSD 容量,Anywhere Cache 可能無法增加快取大小。
雖然 Anywhere Cache 可視需求自動增加快取大小,但快取大小的增加取決於 SSD 容量是否足夠。如果系統提出自動增加快取大小的要求時,SSD 容量不足,Anywhere Cache 會持續提交要求,直到暫時性資源短缺結束,或不再需要增加快取大小為止。
資源暫時短缺時,系統會根據最久未使用原則,擷取新資料並逐出快取中的現有資料。如果快取空間夠大,可儲存大部分的熱門資料,快取指標幾乎不會受到影響。如果快取容量小於熱門資料量,可能會比不受資源短缺影響的快取更常逐出資料並重新擷取相同資料。如果快取實際大小遠小於所需容量,可能會發生下列資源不足相關行為:
- 快取頻寬上限較低、快取總處理量較低、資料傳輸頻寬配額用量較高,以及可能影響其他指標
- 帳單費用可能會受到以下影響:
  - 快取擷取費用增加
- 快取儲存空間費用降低
- 快取資料傳輸輸出費用降低
- 減少快取資料傳輸作業費用
- 多區域資料移轉費用增加
- 使用 B 級作業導致費用增加
 
如要瞭解這些費用,請參閱 Anywhere Cache 定價。
如何排解問題:為在資源暫時短缺期間獲得最佳結果,建議您監控快取,並視需要暫停不必要的快取或工作負載。
無法提高快取的頻寬上限
快取大小增加時,如果特定區域的資源輸送量不足以將現有快取的快取頻寬上限擴充至每 TiB 20 Gbps,就可能會暫時發生快取頻寬上限不足的情況。快取頻寬不足時,Anywhere Cache 不會允許快取頻寬限制以每 TiB 資料 20 Gbps 的速度擴充,但快取仍會繼續處理讀取要求。我們會根據個別要求評估是否增加快取頻寬限制。如果可用的快取頻寬不足,您可能會發現儲存空間的資料輸出頻寬用量增加。
如何排解問題:為在資源暫時短缺期間獲得最佳結果,建議您監控快取,並視需要暫停不必要的快取或工作負載。