關於維護作業

本頁說明 Memorystore for Valkey 如何對執行個體執行維護作業。此外,這份指南也提供資訊和設定建議,協助用戶端應用程式充分運用 Memorystore for Valkey 的零停機時間維護設計。這些建議適用於高可用性執行個體和沒有副本的執行個體。不過,對於所有正式環境用途,強烈建議您使用高可用性設定。

Memorystore for Valkey 會定期更新執行個體,確保服務安全可靠、效能卓越,而且是最新版本。這些更新稱為維護。維護作業完全由服務管理,不會造成停機。

維護作業通常分為以下幾類:

  • Memorystore 功能。如要推出某些功能,Memorystore 必須進行維護更新。
  • 作業系統修補程式。我們會持續監控作業系統中新發現的安全漏洞。一旦發現,我們會修補作業系統,保護您免受新風險的影響。
  • 資料庫修補程式。維護作業可能包括 Valkey 更新,以提升執行個體的安全性、效能和可靠性。這項功能超越 OSS Valkey 提供的服務。

設定用戶端應用程式

如要設定用戶端應用程式,在維護期間達到最佳效能和可用性,請按照下列步驟操作:

  1. 請按照「Valkey 用戶端最佳做法」中的指引使用及設定第三方用戶端,確保排定的維護作業不會影響用戶端應用程式。建議您採用我們的用戶端設定,透過定期內嵌拓撲重新整理和背景連線輪替,避免連線重設。
  2. 在主要和副本節點上執行代表性工作負載,並監控對用戶端的影響,同時透過一系列更新作業 (例如縮減或擴充,或變更副本數量) 測試用戶端應用程式。這些更新會測試用戶端的內嵌拓撲重新整理邏輯、完整同步影響、新節點探索,以及現有節點移除功能。測試有助於確保第三方用戶端設定正確,避免對應用程式造成任何負面影響。

已停用叢集模式的執行個體

維護期間,停用叢集模式的執行個體會進行容錯移轉,重設連線。這項容錯移轉作業通常會持續 15 秒。如要在容錯移轉後將用戶端應用程式重新連線至執行個體,建議您建立指數輪詢重試機制。收到即將進行維護作業的電子郵件通知後,您可以在非正式環境執行模擬維護作業,測試維護作業對執行個體的影響。詳情請參閱「對執行個體執行維護模擬」。

我們也建議您在排定維護作業開始時,將 /instance/memory/maximum_utilization 指標維持在 50% 以下。這項指標的指引是指記憶體管理的 80% 門檻。不過,建議您在維護期間將比率設為 50% 以下。如要進一步瞭解指標,請參閱「Cloud Monitoring 指標」。

您可以透過下列任一方式確保這個比例:

  • 在執行個體流量偏低時安排維護作業。
  • 在維護期間暫時擴大執行個體。

定期維護

Memorystore for Valkey 採用逐步部署和先建立再刪除的生命週期策略,以免 Memorystore 排定維護作業導致 Valkey 執行個體停機。Memorystore for Valkey 採用 OSS Valkey 執行個體通訊協定的要求重新導向功能,並搭配下列 Memorystore 機制,實現零停機維護:

  1. 協調容錯移轉,不會遺失任何資料。
  2. 正常移除節點,讓用戶端能跟上節點拓撲更新,且不會影響可用性。
  3. 執行個體的 Private Service Connect 端點,不受維護作業影響。如要進一步瞭解這些端點,請參閱「執行個體端點」。

下列各節說明的服務行為僅適用於排定的維護作業。如要進一步瞭解硬體故障等非預期事件的影響,請參閱「非預期容錯移轉期間的用戶端行為」。

預設維護期間

根據預設,Memorystore 會依據執行個體所在時區,在下列時段更新執行個體:

  • 平日時段 (週一至週五):晚上 10 點至凌晨 6 點
  • 週末時段:週五晚上 10 點至週一上午 6 點

漸進式部署策略

Memorystore for Valkey 會逐步擴大部署範圍,並以適當的速度進行,以便及早偵測到故障,降低影響並確保穩定性。在服務規模上,Memorystore 執行個體群組會整合烘焙時間 (套用及監控更新的時間,之後才會判定更新成功並繼續進行)。此外,在區域內跨可用區 (多個容錯網域) 的執行個體中,也整合了烘焙時間,以減少影響範圍 (如有)。

如果執行個體設為高可用性,Memorystore for Valkey 一次最多只會更新一個容錯網域或可用區,確保執行個體 shard (包括主要和副本) 在更新期間仍具備高可用性。此外,Memorystore for Valkey 一次只會更新幾個節點。更新作業會採用「先建立再刪除」的生命週期機制,盡可能提高執行個體的穩定性。更新具有多個 shard 的執行個體時,這項策略最能發揮效益。不論何時,都只將更新套用至整體使用者鍵空間的一小部分,盡可能提高資料可用性。

「先建立再刪除」生命週期策略

Valkey 執行個體有多個 shard。每個 shard 都有一個主要節點和零或多個副本節點。Memorystore 會使用下列程序,更新 shard 中任何現有的主要或副本 Valkey 節點:

  1. Memorystore for Valkey 會在 shard 中新增副本,並套用最新軟體更新。Memorystore 會建立新節點,而非更新現有節點,確保在發生非預期的啟動失敗時,仍能保留佈建的容量。
  2. 如果待更新 shard 內的節點是主要節點,系統會先透過協調容錯移轉,將主要節點轉換為副本,再移除該節點。
  3. Memorystore 會移除使用舊版軟體的副本。
  4. Memorystore 會對執行個體中的每個節點重複這個程序。

與一般就地更新的滾動式部署相比,先建立後刪除策略有助於保留執行個體的佈建容量,但會導致用戶端應用程式發生可用性中斷 (有時會遺失資料)。如果 shard 沒有副本,Memorystore for Valkey 仍會先佈建新的副本、協調容錯移轉,最後取代 shard 現有的主要節點。

步驟 1:新增副本

「先建立後刪除」機制的第一步,是使用完整同步 OSS Valkey 機制,新增搭載最新軟體的副本節點,將資料從主要節點複製到副本節點。方法是建立子項程序,並利用無磁碟複製功能啟動副本。Memorystore for Valkey 支援無磁碟複製。除非啟用持續性,否則 Memorystore for Valkey 在複製期間不會使用磁碟。

您可以佈建更多 shard,減少節點內的鍵空間大小,充分發揮執行個體的水平擴充架構優勢。每個節點的資料集較小,有助於減少完整同步作業的分叉延遲影響。此外,還能加快節點間的資料複製速度。

步驟 2:執行協調的主要容錯移轉

如果需要更新的 Valkey 節點是主要節點,Memorystore 會執行協調式容錯移轉,切換至新加入的副本節點。接著,Memorystore 會移除節點。在協調容錯移轉期間,用戶端和 Valkey 節點會搭配運作,並採用下列策略,避免應用程式停機:

  1. 系統會暫時封鎖傳入主要節點的用戶端要求,確保現有副本與主要節點完全同步。
  2. 副本會完成選舉程序,接管主要角色。
  3. 先前的主要節點 (現在是副本節點) 會解除封鎖現有要求,並使用 OSS Valkey 執行個體通訊協定,將要求重新導向至新的主要節點。傳送至先前副本節點的所有新要求,都會繼續重新導向至新的主要節點。
  4. 支援 Valkey 的用戶端會重新整理記憶體內拓撲。它會學習新的主要端點位址,不再需要重新導向。

協調式容錯移轉通常需要數十毫秒。不過,如果傳輸中的資料尚未排清至副本,且執行個體總大小增加,容錯移轉延遲時間可能會增加。執行個體大小可能會影響主要節點之間的收斂,進而影響選取新主要節點的決策。

步驟 3:移除副本

「先建立後刪除」機制的最後一個步驟,是移除舊版軟體上的副本節點。移除節點會影響用戶端應用程式,因為 Memorystore for Valkey 會捨棄用戶端。由於拓撲重新整理不適用於停用叢集模式的執行個體,建議您使用指數輪詢重試機制,在新的副本端點可用後,將應用程式重新連線至這些端點。

如果是已啟用叢集模式的執行個體,Memorystore for Valkey 會以平穩的方式移除 Valkey 副本,讓用戶端應用程式在節點硬關機前重新整理拓撲。拓撲經過自訂,可讓用戶端瞭解新的副本,但也會提前忘記要移除的副本。

Memorystore for Valkey 會在特定耗盡期間 (通常為幾分鐘) 內,讓執行舊版軟體的副本節點保持運作,並開始將傳入的讀取要求重新導向至其 shard 的主要節點。這個程序可讓第三方用戶端重新整理節點拓撲,並瞭解新的副本端點。如果用戶端在排除期間過後嘗試連線至已移除的節點,則會失敗。這項失敗會觸發連線用戶端的節點拓撲重新整理,以便瞭解副本變更。重新整理節點拓撲時,不會看到要移除的副本節點。

維護作業設定

Memorystore for Valkey 可讓您自訂維護排程,配合應用程式需求,盡可能減少服務中斷情形。如要自訂維護排程,請為執行個體設定維護期間。

您可以為每個 Memorystore for Valkey 執行個體設定維護期間,並有下列設定選項:

  • 星期幾:執行維護作業的日子
  • 開始時間:維護作業開始的時間

維護期間為一小時。在某些情況下,維護作業可能會超過您選取的時間範圍。

為執行個體設定維護期間後,Memorystore for Valkey 會根據您設定的維護期間偏好,排定日後的自動維護作業。

預設維護期間

如未設定維護期間,Memorystore for Valkey 會根據執行個體的時區,在下列其中一個時段更新執行個體:

  • 平日時段 (週一至週五):晚上 10:00 至凌晨 6:00
  • 週末時段:週五晚上 10:00 到週一上午 6:00

維護範例

身為零售商購物車服務的開發人員,您負責管理正式環境,其中包含 Memorystore for Valkey 執行個體。為確保維護期間的效能最佳,您會將維護作業安排在執行個體流量最低的時段。這項作業通常會在週日午夜前後進行。

在這種情況下,請將正式環境執行個體的維護期間設為下列日期和時間:

  • 星期幾:星期日
  • 開始小時:凌晨 1 點

即將進行維護作業的通知

為確保您能隨時掌握執行個體的維護事件,請在排定維護作業前至少一週,設定即將進行維護的電子郵件通知。這類通知的主旨行會顯示「"Upcoming maintenance for your Cloud Memorystore instance [your-instance-name]"」。

執行個體開始維護時,Memorystore for Valkey 也會傳送通知。電子郵件的主旨為「"Maintenance is undergoing for your Cloud Memorystore instance [your-instance-name]"」。

Memorystore for Valkey 完成維護後,會傳送完成通知。電子郵件的主旨為「"Completed Maintenance for your Cloud Memorystore instance [your-instance-name]"」。

如果 Memorystore for Valkey 重新排定維護作業,您會收到電子郵件,通知您維護作業已取消。這封電子郵件的主旨為「"Canceled maintenance for your Cloud Memorystore instance [your-instance-name]"」。

如要接收維護通知,您必須選擇加入。如要註冊維護通知,請按照下列步驟操作:

  1. 設定維護期間。
  2. 選擇加入以接收維護通知。

如要接收 Memorystore for Valkey 的維護通知,請在執行個體排定的維護更新前至少一週,完成下列步驟。否則 Memorystore for Valkey 沒有足夠時間通知您即將進行維護。

Memorystore for Valkey 會傳送通知到與您 Google 帳戶相關聯的電子郵件地址。您無法設定自訂電子郵件別名 (例如團隊電子郵件別名)。此外,我們不支援將通知傳送至其他電子郵件地址。

訂閱維護通知後,只要 Google Cloud 專案中的 Memorystore for Valkey 執行個體有排定的維護作業,您就會收到快訊。每個執行個體都會收到個別通知。

如要進一步瞭解如何查看排定的維護作業,請參閱「查看排定的維護作業」。

重新排定維護時間

本節提供重新安排維護時間的指南。舉例來說,如果新服務預定在目前的維護期間推出,您可能需要將維護期間延後到推出後的幾天。

您可以在原定時間的 14 天內重新安排維護作業。重新安排維護作業時,請選擇下列其中一個選項:

  • 立即更新:您可以立即將更新套用至執行個體,不必等待排定的維護期間。
  • 「Custom day and time」(自訂日期和時間):選擇原定維護時間後 14 天內的任何時間。

重新安排維護作業時,請注意下列限制:

  • 如果距離目前排定的維護時間不到一小時,則無法重新排程。
  • 成功重新安排維護作業後,Memorystore for Valkey 會傳送電子郵件通知,確認取消先前的維護作業。此外,您也會收到新的維護通知,其中包含更新後的時程。

如要進一步瞭解如何重新排定維護作業,請參閱「重新排定維護作業」。

常見問題

本節提供 Memorystore for Valkey 維護作業的常見問題。

如何得知執行個體的維護作業排程?

如要瞭解執行個體的維護排程,建議您訂閱通知並設定維護期間。您也可以手動檢查執行個體,看看回應中是否顯示 maintenanceSchedule 參數。

Memorystore for Valkey 何時會通知您即將進行維護作業?

如果您訂閱維護通知並設定維護期間,Memorystore for Valkey 會在維護事件發生前至少一週,透過電子郵件通知您。

維護作業最長可延後多久?

為執行個體排定維護作業後,您可以立即開始更新執行個體,也可以將更新作業延後,最多可延後至原定維護日期和時間後的兩週。

舉例來說,如果您排定在 10 月 11 日晚上 11:15 進行維護,則可將維護作業延後至 10 月 25 日晚上 11:15。如未採取任何行動,系統會在排定的日期和時間執行維護作業。

詳情請參閱「重新安排維護作業」。

哪些最佳做法可確保維護更新作業順利進行?

為確保維護更新作業順利進行,建議您採取下列做法:

  1. 按照操作說明設定用戶端應用程式。
  2. 將維護期間設為執行個體流量最低的日期和時間 (例如星期日午夜)。
  3. 開啟維護通知。因此,Memorystore for Valkey 會在執行個體排定維護更新前,至少提前七天透過電子郵件通知您。
  4. 如果應用程式使用量沒有影響較低或無影響的時段,請使用逐步推出的服務預設值。這個預設值包含維護更新的最佳做法。詳情請參閱定期維護一文。

建議您立即套用維護更新的情況

您可以立即在測試執行個體上套用維護更新,瞭解更新對應用程式的影響。您可以觀察這項更新帶來的影響。如果更新有問題,您可以延後正式環境執行個體的維護作業,直到問題解決為止。

如果目前日期和時間適合執行個體,且您預期執行個體日後會承受高負載,則可立即執行維護更新。

維護更新作業是否一律會在維護期間內完成?

Memorystore for Valkey 會在您指定的維護期間內,啟動維護更新作業。Memorystore for Valkey 通常會在時間範圍內完成更新,但並非總是如此。

可以選擇不進行維護,或先安排特定執行個體的維護作業嗎?

您無法選擇不進行維護,也無法控管執行個體的維護順序。不過,收到初始維護通知後,您可以重新安排維護時間,最多可延後兩週。

後續步驟

  • 查看管理執行個體維護期間所需的權限。