將 Redis 和 Valkey 工作負載遷移至 Memorystore for Valkey

Memorystore 支援自動將自行管理的 Redis 和 Valkey 工作負載遷移至 Memorystore for Valkey。使用這項功能,即可輕鬆擺脫管理自有基礎架構的營運負擔,遷移至 Memorystore for Valkey 的全代管環境後,您就不必手動修補 OS、設定複寫和編寫自訂備份指令碼,還能享有自動容錯移轉和 VPC 原生安全防護功能,並以近乎零停機時間擴充至數百個節點。

將自行管理的工作負載遷移至 Memorystore for Valkey,即可享有下列優勢,免除營運手動作業,並讓資料庫基礎架構與時俱進:

  • 免除作業負擔:將手動和耗時的工作卸載至 Google Cloud,例如作業系統修補、基礎架構監控、備份指令碼和複寫管理。因此,您可以專注於應用程式開發,不必費心維護資料庫。
  • 實現企業級高可用性:享有全代管的 99.99% 服務水準協議。Memorystore for Valkey 提供自動容錯移轉功能,以及內建的備份和還原功能。這可保護應用程式免於節點故障,並確保快速完成災難復原。
  • 幾乎無須停機即可調度資源:視無法預測的流量高峰,動態擴充或縮減執行個體。您可以順暢地擴充至數百個節點 (最多 250 個分片),不必讓應用程式離線。
  • 提升安全性:以內建的虛擬私有雲連線能力和精細的身分與存取權管理 (IAM) 型存取控管,取代複雜的手動設定網路規則。確保Google Cloud的嚴格安全界線可保護您的資料。
  • 整合及升級執行個體:將分散、孤立且自行管理的執行個體,輕鬆合併至 Memorystore for Valkey 的單一高效能部署作業。您也可以在遷移過程中,將過時的 Redis 或 Valkey 版本自動升級至最新支援版本。
  • 使用進階即時分析和生成式 AI:轉換至最佳化環境,以微秒延遲時間進行快取和工作階段管理。您可立即取得向量搜尋等進階功能的管理存取權,為生成式 AI (GenAI) 應用程式提供支援。

版本支援

本節中的表格列出來源 Redis 和 Valkey 自行管理執行個體,以及 Memorystore for Valkey 中的目標執行個體,相關資訊如下:

  • 遷移作業支援的來源執行個體類型和版本
  • 可將工作負載遷移至的目標 Memorystore for Valkey 執行個體版本
來源執行個體類型 來源執行個體版本 目標執行個體版本
Redis 3.2.x - 7.2.x Valkey 7.2、8.0 和 9.0
Valkey 7.x、8.x 和 9.x Valkey 7.2、8.0 和 9.0

事前準備

開始遷移工作負載前,請先完成本節中的必要條件。

使用 Google Cloud 控制台、Google Cloud CLI 和 API

如要使用 Google Cloud 控制台、gcloud CLI 和 API,請按照下列步驟操作:

  1. 在 Google Cloud 控制台的專案選擇器頁面中,選取或建立 Google Cloud 專案

    前往專案選取器

  2. 請確認您已為專案啟用計費功能。瞭解如何檢查專案是否已啟用計費功能
  3. 安裝初始化 Google Cloud CLI。

    注意:如果您先前已安裝 gcloud CLI,請執行 gcloud components update,確認目前使用的是最新版本。如要存取 Memorystore for Valkey gcloud CLI 指令,您至少需要 gcloud CLI 版本 489.0.0

  4. 啟用 Memorystore for Valkey API。
    Memorystore for Valkey API
  5. 啟用 Network Connectivity API。
    Network Connectivity API
  6. 啟用 Service Consumer Management API。
    Service Consumer Management API
  7. 啟用 Compute Engine API。
    Compute Engine API

指派角色和權限

如要執行所有作業,將自行管理的 Redis 和 Valkey 執行個體工作負載遷移至 Memorystore for Valkey,請要求管理員在Google Cloud 專案中授予您「Memorystore 管理員」 (roles/memorystore.admin) IAM 角色。

如要建立及查看網路連結,請要求管理員授予您專案的「Compute 網路管理員」( roles/compute.networkAdmin) IAM 角色。

遷移工作負載的工作流程

如要將自行管理的 Redis 和 Valkey 執行個體工作負載遷移至 Memorystore for Valkey,請執行下列動作:

  1. 準備來源執行個體:設定自行管理的 Redis 或 Valkey 執行個體,允許安全連線和對 Memorystore for Valkey 的輸出複寫。
  2. 準備目標執行個體:決定所需的執行個體規格,例如分片數量和節點類型。
  3. 建立目標執行個體:佈建接收遷移資料的 Memorystore for Valkey 執行個體。
  4. 設定網路連結:設定網路連結。透過這個附件,生產者虛擬私有雲網路中的目標執行個體,可以啟動與消費者虛擬私有雲網路中來源執行個體的連線。因此,複製作業已建立。
  5. 開始遷移:啟動同步程序。目標執行個體會自動連線至來源執行個體,並持續以唯讀備用資源的形式複製資料。
  6. 監控遷移作業:確認遷移作業順利進行,且狀態為「良好」
  7. 完成遷移:將應用程式流量切換至目標執行個體。

準備來源執行個體

您必須準備自行管理的 Redis 或 Valkey 執行個體,才能將工作負載遷移至目標 Memorystore for Valkey 執行個體。

如要允許從目標執行個體的節點連線至來源執行個體的節點,請按照下列步驟操作:

  • 如果來源節點已啟用 protected-mode,請停用。
  • 如果您使用明確的 bind 指令設定來源節點,請更新節點,允許來自目標節點的連入連線。目標節點會從網路附件子網路中的 IP 位址啟動連線。
  • 更新可能會封鎖來自目標節點傳入連線的防火牆規則。
  • 如果來源節點已啟用驗證和傳輸層安全標準 (TLS),請停用這些功能。

如要啟用從目標執行個體的節點到來源執行個體的節點的複寫功能,請執行下列操作:

  • 請勿重新命名遷移或資料修改所需的任何 Valkey 或 Redis 指令 (例如 PINGPSYNCHSET)。
  • 請確保來源執行個體具備充足的記憶體和 CPU 容量,可管理來自目標執行個體節點的額外複寫負載。

準備目標執行個體

為確保複製程序順利進行,您必須適當調整目標 Memorystore for Valkey 執行個體的大小,以處理來源執行個體傳入的工作負載。如要這麼做,您必須判斷目標執行個體的確切規格。這些規格包括與來源執行個體的相容性、叢集模式類型、資料庫數量、分片數量、版本,以及目標執行個體的節點類型。

如要準備目標執行個體,請遵守下列規範:

  • 與來源執行個體的相容性:來源和目標執行個體必須位於相同專案和區域。
  • 叢集模式:目標執行個體的叢集模式必須與來源執行個體的叢集模式相符。如果來源執行個體已停用叢集模式,目標執行個體也必須停用叢集模式。否則,目標執行個體必須啟用叢集模式。
  • 資料庫數量:如果目標執行個體已停用叢集模式,則執行個體上的邏輯資料庫數量必須大於或等於來源執行個體上的資料庫數量。
  • 分片數量:如果目標執行個體已啟用叢集模式,目標執行個體上的分片數量必須與來源執行個體上的分片數量相同。不過,來源和目標執行個體上的副本數量可能不同。
  • 執行個體版本:目標執行個體的版本必須與來源執行個體的版本相容。詳情請參閱「版本支援」。
  • 維護版本:目標執行個體的維護版本必須為 MEMORYSTORE_20260313_01_00 以上。詳情請參閱「關於維護作業」。
  • 節點類型:目標執行個體的節點類型必須夠大,才能處理從來源執行個體節點接收的資料。如要進一步瞭解可為目標執行個體選取的節點類型,以及各節點類型對應的鍵空間容量,請參閱「節點類型規格」。

建立目標執行個體

如果沒有符合資料接收條件的目標執行個體,請務必建立執行個體,才能接收從來源執行個體遷移的資料。

您可以使用 Google Cloud 控制台或 gcloud CLI 建立這個執行個體。

控制台

如要建立目標執行個體,請參閱「建立執行個體」。

gcloud

如要建立目標執行個體,請參閱「建立執行個體」。

設定網路連結

如要將來源執行個體的工作負載遷移至目標執行個體,目標執行個體的節點必須與來源執行個體的節點建立連線。因此,來源執行個體中的資料可以複製到目標執行個體。

如要建立這個連線並進行複製,您必須使用網路連結。目標節點的連線嘗試來自來源執行個體虛擬私有雲網路中,連結至網路附件的子網路。

你可以使用符合下列規定的網路附加裝置:

  • 必須與目標執行個體位於相同專案和區域。
  • 子網路必須與來源執行個體位於同一個虛擬私有雲網路。
  • 來源執行個體中的子網路必須有足夠的 IP CIDR 範圍,至少支援 N+1 個可用 IP 位址 (其中 N 是目標執行個體中的節點數)。舉例來說,如果目標執行個體有三個分片和一個副本,則會有六個節點:主要執行個體的三個節點和副本的三個節點。因此,您至少需要七個 IP 位址。
  • 子網路範圍不得與 10.0.0.0/23 重疊,因為這個範圍保留給 Memorystore for Valkey 使用。

如果網路連結不符合這些規定,或您沒有網路連結,就必須建立一個。

開始遷移

啟動遷移作業後,目標執行個體會與來源執行個體建立複製作業。寫入來源執行個體的任何資料都會自動複製到目標執行個體。目標執行個體會成為來源執行個體的唯讀副本。

您可以使用 Google Cloud 控制台或 gcloud CLI 啟動遷移作業。

控制台

  1. 前往 Google Cloud 控制台的「Memorystore for Valkey」頁面。

    Memorystore for Valkey

  2. 按一下目標執行個體的 ID。

  3. 在「執行個體一覽」頁面,按一下「開始遷移」

  4. 在「Migrate Self Managed Redis and Valkey Instances」(遷移自行管理的 Redis 和 Valkey 執行個體) 視窗中,執行下列操作:

  5. 在「準備」分頁中,請詳閱來源執行個體先決條件網路連結指南。然後按一下「繼續」

  6. 在「連結」分頁中,執行下列操作:

    1. 輸入來源執行個體的 IP 位址通訊埠。您在「準備來源執行個體」中已記下這項資訊。
    2. 選取要用來遷移資料的網路附加元件。
    3. 按一下「繼續」
  7. 在「檢閱」分頁中,查看與遷移程序相關的資訊。這項資訊包括目標執行個體的 ID、來源執行個體的 IP 位址和通訊埠,以及網路附件的名稱。看完之後,請按一下「開始遷移」

  8. 在「執行個體一覽」頁面上,確認顯示「正在遷移」狀態。

如果目標執行個體的節點無法連線至來源執行個體的節點,或是來源執行個體的資料無法複製到目標執行個體,遷移作業就會失敗。

發生這種情況時,Memorystore for Valkey 會將目標執行個體還原至遷移程序開始前的狀態。目標執行個體的狀態會還原為「就緒」Ready,且執行個體會再次具備讀取和寫入功能。

解決遷移失敗的問題後,即可再次啟動遷移作業。

gcloud

如要開始遷移,請使用 gcloud beta memorystore instances start-migration 指令。

gcloud beta memorystore instances start-migration INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION \
--source-ip=SOURCE_IP_ADDRESS \
--source-port=SOURCE_PORT \
--network-attachment=projects/NETWORK_ATTACHMENT_PROJECT_ID/locations/NETWORK_ATTACHMENT_REGION/networkAttachments/NETWORK_ATTACHMENT_ID

請將下列項目改為對應的值:

  • INSTANCE_ID:目標執行個體的 ID。
  • PROJECT_ID:包含目標執行個體的 Google Cloud 專案 ID 或專案編號
  • REGION:目標執行個體所在的區域。
  • SOURCE_IP_ADDRESS:來源執行個體的 IP 位址。您在「準備來源執行個體」中記下這個 IP 位址。
  • SOURCE_PORT:來源執行個體的通訊埠編號。您在「準備來源執行個體」中記下這個連接埠。
  • NETWORK_ATTACHMENT_PROJECT_ID:Google Cloud 專案的 ID 或專案編號,其中包含您要用於遷移資料的網路附件。
  • NETWORK_ATTACHMENT_REGION:網路附件所在的區域。
  • NETWORK_ATTACHMENT_ID:網路附件的 ID。

如要確認遷移作業是否已順利啟動,請使用 gcloud memorystore instances describe 指令。

gcloud memorystore instances describe INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION_ID

確認 state 參數旁是否顯示 MIGRATING 狀態。

如果目標執行個體的節點無法連線至來源執行個體的節點,或是來源執行個體的資料無法複製到目標執行個體,遷移作業就會失敗。

發生這種情況時,Memorystore for Valkey 會將目標執行個體還原至遷移程序開始前的狀態。目標執行個體的狀態會還原為 ACTIVE,且執行個體會再次具備讀取和寫入功能。

解決遷移失敗的問題後,即可再次啟動遷移作業。

監控遷移作業

為確保遷移作業順利進行,您可以在來源和目標執行個體上監控遷移作業。

監控來源執行個體

在來源執行個體上,確認來源節點的用戶端輸出緩衝區用量維持在低點。持續低用量表示延遲時間極短,且資料已從來源執行個體成功同步至目標執行個體。

監控目標執行個體

針對目標執行個體上的每個主要節點,確認「節點遷移狀態」指標的狀態為「HEALTHY」。這個狀態表示來源和目標執行個體的分片之間的複寫連結正常運作。

您可以使用Google Cloud 控制台監控目標執行個體的遷移作業。如要驗證目標執行個體每個主要節點的「節點遷移狀態」指標值,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「指標探索器」頁面。

    指標探索工具

  2. 在「指標」選單中,選取「節點遷移狀態」指標。如要這麼做,請依序選取「Memorystore Instance Node」 >「Instance」 >「Node migration status」,然後點選「Apply」

  3. 在「篩選器」欄位中,新增下列篩選器:

    • instance_id = (equals) INSTANCE_ID
    • role = (equals) primary
    • status != (does not equal) HEALTHY

    INSTANCE_ID 替換為目標執行個體的 ID。

    新增這些篩選器後,您就能監控目標執行個體的主要節點,查看是否有任何節點不正常。如果沒有顯示任何節點,表示所有節點都正常運作,您可以完成遷移作業。

完成遷移作業

準備好將應用程式流量切換至目標執行個體時,請完成遷移作業。這樣做之後,目標執行個體的節點就不會再與來源執行個體的節點進行複製。目標執行個體允許所有讀取和寫入作業。

您可以使用 Google Cloud 控制台或 gcloud CLI 完成遷移作業。

控制台

  1. 前往 Google Cloud 控制台的「Memorystore for Valkey」頁面。

    Memorystore for Valkey

  2. 按一下目標執行個體的 ID。

  3. 在「執行個體一覽」頁面上,按一下「完成遷移」

  4. 在「完成遷移」對話方塊中,執行下列操作:

    1. 如要確保來源執行個體上的所有資料都複製到目標執行個體,請選取「標準」

    2. 在「Instance ID」(執行個體 ID) 文字欄位中,輸入目標執行個體的 ID。

    3. 按一下「完成遷移」

  5. 在「Instance at a glance」(執行個體一覽) 頁面上,確認顯示「Migrated」(已遷移) 狀態。

gcloud

如要完成遷移作業,請使用 gcloud beta memorystore instances finish-migration 指令。

gcloud beta memorystore instances finish-migration INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION

請將下列項目改為對應的值:

  • INSTANCE_ID:目標執行個體的 ID
  • PROJECT_ID:包含目標執行個體的 Google Cloud 專案 ID 或專案編號
  • REGION:目標執行個體所在的區域

如要確認遷移作業是否順利完成,請使用 gcloud memorystore instances describe 指令。

gcloud memorystore instances describe INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION_ID

確認 state 參數旁是否顯示 MIGRATED 狀態。