關於維護作業

本頁說明 Memorystore for Valkey 如何維護執行個體。此外,這份指南也提供相關資訊和設定建議,讓用戶端應用程式瞭解如何善用 Memorystore for Valkey 的零停機維護設計。這些建議適用於高可用性執行個體和沒有備用資源的執行個體。不過,我們強烈建議您在所有生產用途使用案例中,採用高可用性設定。

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

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

  • Memorystore 功能。如要啟動部分功能,Memorystore 需要進行維護更新。
  • 作業系統修補程式。我們會持續監控作業系統中新發現的安全漏洞,發現後,我們會修補作業系統,保護您免於新風險。
  • 資料庫修補程式。維護作業可能包括更新 Valkey,以提升執行個體的安全性、效能和可靠性。這項功能超出 OSS Valkey 的範圍。

設定用戶端應用程式

如要設定用戶端應用程式,確保維護期間的效能和可用性不受影響,請按照下列步驟操作:

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

定期維護

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

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

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

預設維護期間

根據預設,Memorystore 會在下列時間範圍內更新執行個體 (以執行個體的時區為準):

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

逐步部署策略

Valkey 適用的 Memorystore 會逐步擴大部署範圍,並以適當的速率進行部署,以便及早偵測到失敗情形,進而減輕任何影響,並建立穩定性信心。烘烤時間 (套用及監控更新的時間,之後才會視為成功並繼續進行) 會整合至服務規模的 Memorystore 執行個體機群。此外,烘烤時間會整合至區域內各區域的執行個體 (多個容錯網域),以減少影響範圍 (如有)。

對於設為高可用性的執行個體,Memorystore for Valkey 最多會在任何時間更新一個容錯網域或可用區,確保執行個體分片 (包括主要和副本) 在更新期間維持高可用性。此外,Memorystore for Valkey 一次只會更新少數節點。更新作業會使用「先建立再刪除」的生命週期機制,盡可能確保執行個體的穩定性。更新含有大量分片的執行個體時,這項策略的優點最為顯著。隨時只將更新套用至整體使用者鍵空間的一小部分,可確保資料可用性達到最高水準。

先建立再銷毀的生命週期策略

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

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

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

步驟 1:新增副本

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

如要充分運用執行個體的水平擴充架構,建議您佈建更多分片,以縮減節點內的鍵空間大小。每個節點的資料集越小,完整同步作業對分叉延遲的影響就越小。還能加快節點間的資料複製速度。

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

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

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

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

步驟 3:移除複製品

建立前先刪除機制最後一步,是移除舊版軟體上的副本節點。如果節點突然移除,用戶端應用程式會受到影響,因為用戶端會快取端點資訊和執行個體拓撲。Memorystore for Valkey 移除 Valkey 副本時會採取優雅的方式,讓用戶端應用程式在節點硬體關機前重新整理拓撲。拓撲會經過自訂,讓用戶瞭解新副本,但也會提前忘記要移除的副本。

執行舊版軟體的副本節點會保留一段時間 (通常是幾分鐘),並開始將傳入的讀取要求重新導向至分片的主要節點。第三方用戶端可藉此重新整理節點拓撲,並瞭解新的副本端點。如果用戶端在排空期過後嘗試連線至已移除的節點,嘗試會失敗。這會在連線用戶端上觸發節點拓撲重新整理,以便瞭解副本變更。節點拓撲的新重新整理作業不會看到要移除的副本節點。

維護設定

您可以自訂 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 天內重新安排維護時間。 重新安排維護作業時,請選擇下列其中一個選項:

  • 立即更新:您可以立即將更新套用到執行個體,不必等待排定的維護期間
  • 自訂日期和時間:選擇原定維護時間兩週內的任何時間

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

  • 如果距離目前排定的維護時間不到一小時,就無法重新安排維護作業。
  • 成功重新安排維護時間後,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 通常會在時間範圍內完成更新,但有時可能無法如期完成。

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

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

後續步驟

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