本頁面說明 Memorystore for Valkey 如何維護執行個體。另外,這份文件也提供資訊和設定建議,讓用戶端應用程式瞭解如何充分利用 Memorystore for Valkey 的零停機維護設計。這些最佳化建議適用於高可用性執行個體和沒有備用資源的執行個體。不過,對於所有實際用途,我們強烈建議您使用高可用性設定。
Memorystore for Valkey 會定期更新執行個體,確保服務安全可靠、效能卓越,而且是最新版本。這類更新稱為「維護作業」。維護作業由服務完全管理,且設計上不會影響停機時間。
維護作業通常分為以下幾類:
- Memorystore 功能。如要啟用部分功能,Memorystore 需要進行維護更新。
- 作業系統修補程式。我們會持續監控作業系統中新發現的安全漏洞。一旦發現,我們就會修補作業系統,保護您免受新風險威脅。
- 資料庫修正程式:維護作業可能會包含 Valkey 更新,以改善執行個體的安全性、效能和可靠性。這項功能超越了 OSS Valkey 提供的功能。
設定用戶端應用程式
如要設定用戶端應用程式,以便在維護期間享有最佳效能和可用性,請按照下列步驟操作:
- 請按照 Valkey 用戶端最佳做法的說明使用及設定第三方用戶端,確保任何預定的維護作業不會影響用戶端應用程式。我們建議的用戶端設定可透過定期的內嵌拓撲重新整理和背景連線輪替,避免連線重設。
- 在主要和複本節點上執行代表性工作負載,並監控用戶端影響,同時使用一系列更新作業 (例如縮放或複本數量變更) 測試用戶端應用程式。這些更新會測試用戶端的內嵌拓撲重新整理邏輯、完整同步影響、新節點探索和現有節點移除功能。測試有助於確保第三方用戶端設定正確無誤,避免對應用程式造成任何負面影響。
定期維護
Memorystore for Valkey 會運用漸進式部署和先建立再刪除生命週期策略,避免 Memorystore 排定的維護作業對 Valkey 執行個體造成任何停機影響。Memorystore for Valkey 會使用 OSS Valkey 執行個體通訊協定的要求重新導向功能,搭配下列 Memorystore 機制,實現零停機維護:
- 協調容錯移轉,不會遺失任何資料。
- 妥善移除節點,讓用戶端能追上節點拓樸結構的更新,且不會影響可用性。
- 執行個體的 Private Service Connect 端點,不會受到維護作業的影響。如要進一步瞭解這些端點,請參閱「執行個體端點」。
以下各節所述的服務行為僅適用於預定的維護作業。如要進一步瞭解硬體故障等非預期事件的影響,請參閱「非預期容錯期間的用戶端行為」。
預設維護期間
根據預設,Memorystore 會根據執行個體的時區,在下列時段更新執行個體:
- 平日 (週一至週五):晚上 10 點至隔天凌晨 6 點
- 週末時段:週五晚間 10 點至週一凌晨 6 點
逐步部署策略
Memorystore for Valkey 會以逐漸增加的範圍執行部署作業,並以足以及早偵測失敗情況的速度,藉此減輕任何影響並建立穩定性信心。在服務規模上,會在 Memorystore 的大量執行個體中整合烘焙時間 (在系統判定更新成功並繼續進行之前,系統會在這個時間內套用及監控更新)。此外,在區域 (多個故障區域) 的各區域內,執行個體會整合烘焙時間,以減少影響範圍 (如有)。
如果執行個體已設定為高可用性,Memorystore for Valokey 最多會在任何時間更新一個錯誤領域或可用區,確保執行個體區塊 (包括主要和備援資源) 在更新期間維持高可用性。此外,Memorystore for Valkey 每次只會更新少數節點。更新會使用「先建立再刪除」生命週期機制,盡可能提高執行個體的穩定性。更新包含許多分割區的執行個體時,這項策略可帶來最多效益。只要在任何時間點將更新套用至整體使用者鍵值空間的一小部分,即可盡可能提高資料可用性。
先建立再銷毀生命週期策略
Valkey 執行個體含有多個分片。每個分片都有一個主要節點和零個或多個備用節點。Memorystore 會使用下列程序,更新分割區中任何現有的 Valkey 主要或備用節點:
- Memorystore for Valkey 會在分片中新增副本,並套用最新的軟體更新。Memorystore 會建立新節點,而不是更新現有節點,以確保在發生意外的啟動失敗時,保留已配置的容量。
- 如果要更新的分片中的節點是主要節點,系統會先將主要節點轉換為副本,然後再使用協調容錯移轉移除節點。
- Memorystore 會移除使用舊版軟體的副本。
- 針對執行個體中的每個節點,Memorystore 都會重複這個程序。
與典型的逐步部署作業相比,建立前刪除策略有助於保留已佈建執行個體的可用容量,但會導致用戶端應用程式出現可用性中斷 (有時還會導致資料遺失)。對於沒有副本的區塊,Memorystore for Valkey 仍會先佈建新的副本、協調容錯機制,最後再取代區塊的現有主要節點。
步驟 1:新增複本
建立前銷毀機制的首要步驟,是使用最新軟體新增複本節點,並透過完整同步 OSS Valkey 機制,將資料從主要節點複製到複本節點。這項操作是透過分支子程序,並利用無磁碟複製功能啟動複本。
如要充分利用執行個體的水平資源調度架構,請配置更多分片,以便減少節點內的鍵空間大小。每個節點的資料集較小,有助於減少完整同步處理作業的分支延遲影響。這項功能還能加快跨節點複製資料的速度。
步驟 2:執行協調的初始容錯移轉
如果需要更新的 Valkey 節點是主要節點,Memorystore 就會執行新新增備用節點的協調容錯移轉作業。接著,Memorystore 會移除節點。在協調容錯期間,用戶端和 Valkey 節點會共同運作,並採用下列策略避免應用程式停機:
- 主要節點會暫時封鎖傳入的用戶端要求,提供一段時間,確保現有備援節點與主要節點同步 100%。
- 備用資源完成選舉程序,接替主要資料庫的角色。
- 先前的主節點 (現在是副本節點) 會使用 OSS Valkey 例項通訊協定,解除封鎖現有要求,並將要求重新導向至新的主節點。任何傳送至先前副本節點的新要求,都會繼續重新導向至新的主節點。
- Valkey 相容的用戶端會重新整理記憶體內拓撲圖。它會學習新的主要端點的地址,不再需要重新導向。
協調的 failover 作業通常需要數十毫秒。不過,如果有待寫入複本的資料正在傳輸,且執行個體的總大小會增加備援延遲時間。執行個體大小可能會影響主節點的收斂情形,進而影響選出新主節點的決策。
步驟 3:移除複本
建立-摧毀前機制最後一個步驟,是移除舊版軟體上的複本節點。由於用戶端會快取端點資訊和執行個體拓撲,因此突然移除節點會對用戶端應用程式造成影響。Memorystore for Valkey 的設計可讓您順利移除 Valkey 複本,讓用戶端應用程式在遇到硬性節點關閉事件前,先更新其拓樸圖。您可以自訂拓樸,讓用戶端能夠瞭解新副本,但也能忘記要提前移除的副本。
執行舊版軟體的複本節點會保留一段時間 (通常為數分鐘),然後開始將傳入的讀取要求重新導向至其分割區的主節點。這可讓第三方用戶端重新整理節點拓撲,並瞭解新的複本端點。如果用戶端在排空期間後嘗試存取已移除的節點,則嘗試會失敗。這會在連線用戶端上觸發節點拓樸重新整理,讓用戶端瞭解備援資源的變更。重新整理節點拓樸結構後,系統不會顯示要移除的複本節點。
維護設定
您可以根據應用程式需求自訂 Memorystore for Valkey 的維護時間表,盡量減少服務中斷時間。如要自訂維護時間表,請為執行個體設定維護期間。
您可以為每個 Memorystore for Valkey 執行個體設定維護期間,並使用下列設定選項:
- 星期幾:維護作業的日期
- 開始小時:維護作業開始的時間
維護期間為一小時。在某些情況下,維護作業可能會延長至您所選的時間範圍以外。
為執行個體設定維護期間後,Memorystore for Valoice 會根據您為維護期間設定的偏好設定,排定日後的自動維護作業。
預設維護期間
如果未設定維護期間,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 Valokey 重新安排維護作業,系統會傳送電子郵件通知您維護作業已取消。這封電子郵件的主旨行是 "Canceled maintenance for your Cloud Memorystore instance [your-instance-name]"
。
如要接收維護通知,你必須選擇接收。如要訂閱維護通知,請按照下列步驟操作:
如要接收 Memorystore for Valkey 的維護通知,請在例項的預定維護更新時間前至少一週完成這些步驟。否則,Memorystore for Valkey 將來不及通知您即將進行的維護作業。
Memorystore for Valkey 會將通知傳送至與 Google 帳戶相關聯的電子郵件地址。您無法設定自訂電子郵件別名 (例如團隊電子郵件別名)。此外,我們不支援將通知傳送至其他電子郵件地址。
訂閱維護通知後,您就會收到警示,說明 Google Cloud 專案中所有已排定維護作業的 Memorystore for Valkey 執行個體。您會收到每個執行個體的個別通知。
如要進一步瞭解如何查看已排定的維護作業,請參閱「查看已排定的維護作業」。
重新安排維護時間
本節將說明如何重新安排維護時間。舉例來說,如果新服務的啟動時間是在目前的維護期間,您可能會將維護期間延後到啟動後的幾天。
您可以在原訂維護時間的 14 天內重新安排維護作業。 重新安排維護作業時,請選擇下列其中一個選項:
- 立即更新:您可以立即將更新套用至執行個體,而無須等待預定的維護期間
- 自訂日期和時間:選擇兩週內的任何時間,以取代原先排定的維護時間
重新安排維護作業時,請注意下列限制:
- 如果目前的預定維護時間前剩餘時間少於一小時,就無法重新安排維護作業。
- 成功重新安排維護作業後,Memorystore for Valokey 會傳送電子郵件通知,確認取消先前的維護作業。此外,您會收到新的維護通知,其中包含更新後的時間表。
如要進一步瞭解如何重新安排維護作業,請參閱「重新安排維護作業」。
常見問題
本節包含 Memorystore for Valkey 維護作業的常見問題。
如何得知執行個體的維護作業時間?
如要瞭解執行個體的維護作業預定時間,建議您訂閱通知並設定維護期間。您也可以手動檢查執行個體,看看回應中是否出現 maintenanceSchedule
參數。
Memorystore for Valkey 會在何時通知你即將進行維護作業?
如果您訂閱維護通知並設定維護期間,Memorystore for Valkey 會在維護事件發生前至少一週,透過電子郵件通知您。
您可以延後維護多久?
為執行個體安排維護作業後,您可以立即開始執行個體的更新作業,也可以延後更新,最多可延遲兩週,延遲時間從原先排定的維護日期和時間開始計算。
舉例來說,如果您將維護作業排定在 10 月 11 日晚上 11 點 15 分,則可以將維護作業延後至 10 月 25 日晚上 11 點 15 分。如果您沒有採取任何行動,系統會在排定的日期和時間執行維護作業。
詳情請參閱「重新排定維護時間」。
哪些最佳做法可帶來順暢的維護更新體驗?
為確保維護更新作業順利進行,建議您採取下列做法:
- 按照操作說明設定用戶端應用程式。
- 設定維護期間,指定執行個體流量最少的日期和時間 (例如星期天的午夜)。
- 選擇接收維護通知。因此,Memorystore for Valokey 會在例項預定維護更新前至少七天,透過電子郵件通知您。
- 如果應用程式使用量沒有低影響或無影響的時段,請使用逐步推出服務的預設值。這個預設值包含維護更新的最佳做法。詳情請參閱定期維護一文。
何時可以立即套用維護作業?
您可以在測試用例中立即套用維護更新,瞭解更新對應用程式的影響。您可以觀察這項更新所造成的影響。如果更新發生問題,您可以將正式版執行個體的維護作業延後,直到解決問題為止。
如果目前的日期和時間對執行個體來說是合適的,且您預期執行個體未來會出現高負載,那麼您可以立即執行維護更新。
維護更新是否一律會在維護期間內完成?
Memorystore for Valkey 會在您指定的維護期間內啟動維護更新。Memorystore for Valkey 通常會在回溯期內完成更新,但不一定會這樣。
您可以先選擇不進行維護作業,或為特定執行個體安排維護作業嗎?
您無法選擇不進行維護,也無法控制執行個體的維護順序。不過,收到初始維護通知後,您可以重新安排維護作業,最多可延後兩週。
後續步驟
- 查看管理執行個體維護期間所需的權限。