本頁面提供 Memorystore for Redis 的手動容錯移轉總覽。如要瞭解如何執行容錯移轉,請參閱「啟動手動容錯移轉」。
什麼是手動容錯移轉?
標準級 Memorystore for Redis 執行個體會使用備用節點來備份主要節點。當主要節點的健康狀態變得不良時會發生正常容錯移轉,將備用節點指定為主要節點。手動容錯移轉與正常容錯移轉的不同之處在於您自行啟動這項作業。如要進一步瞭解 Memorystore for Redis 複製作業的運作方式,請參閱「高可用性」。
為何要啟動手動容錯移轉
啟動手動容錯移轉可讓您測試應用程式如何回應容錯移轉。如果日後發生未預期的容錯移轉,這項資訊可確保更順暢的容錯移轉程序。
(選用) 資料保護模式
系統提供下列兩種資料保護模式:
limited-data-loss
模式 (預設)。force-data-loss
模式。
如要設定資料保護模式,請使用下列其中一個指令:
gcloud redis instances failover INSTANCE_NAME --data-protection-mode=limited-data-loss
或
gcloud redis instances failover INSTANCE_NAME --data-protection-mode=force-data-loss
資料保護模式的運作方式
limited-data-loss
模式會在啟動容錯移轉之前,驗證主要執行個體和備用資源之間的資料差異是否小於 30 MB,藉此將資料遺失量降到最低。對於必須同步至備援機制的每個資料位元組,主要機制的偏移量會遞增。在 limited-data-loss
模式中,如果主執行個體和每個備用資源之間的最大偏移差異為 30 MB 以上,容錯移轉作業就會中止。如果您可以容忍更多資料遺失,且想積極執行容錯移轉,請嘗試將資料保護模式設為 force-data-loss
。
force-data-loss
模式會採用一連串的容錯移轉策略,積極執行容錯移轉。在啟動容錯移轉之前,不會檢查主要執行個體和備用資源之間的偏移差異,因此可能會遺失超過 30 MB 的資料變更。
待複製的位元組指標
待複製的位元組指標會顯示備用資源還需要複製多少位元組,主要執行個體才會全部備份完成。在容錯期間,主要資源會複製至備用資源,因此待傳輸的位元組數量可能會增加。如果備援機制是因硬體錯誤而觸發,您可能會看到待複製的位元組為空白,因為新副本必須先從主機錯誤中修復,才能取得偏移值。
您可以在執行個體詳細資料頁面的 Google Cloud 主控台中查看這個指標。如要查看執行個體詳細資料頁面,請在專案的「Instances list」(執行個體清單) 頁面上按一下執行個體 ID。
或者,您也可以使用專案的 Metrics Explorer,並搜尋 redis.googlapis.com/replication/offset_diff 指標。
執行手動容錯移轉作業的時機
只有當待複製的位元組指標小於 30 MB 時,採用預設 limited-data-loss
保護模式的手動容錯移轉作業才會成功。如果您想執行手動容錯移轉作業,且待複製的位元組大於 30 MB,請使用 force-data-loss
保護模式。
如果您希望能儘量保留資料,請讓應用程式暫時停止寫入 Redis 執行個體,並等到待複製的位元組指標低到您可以接受的範圍後,再執行手動容錯移轉作業。
封鎖手動容錯移轉的潛在問題
無法在基本級執行個體上執行手動容錯移轉,因為基本級執行個體沒有備用資源,主要執行個體無法容錯移轉。
如果 Redis 執行個體的健康狀態不良,則手動容錯移轉作業會失敗,因為系統會為了減少資料遺失而封鎖這項作業。
如果您執行的 Lua 指令碼會無限期執行,則必須使用
force-data-loss
來啟動備援機制。在這種情況下,限制資料遺失的容錯移轉作業將無法順利完成。如果執行個體含有待處理的未完成作業 (例如資源調度或更新),則手動容錯移轉作業會遭到封鎖。您必須等到執行個體處於
READY
狀態時才能執行手動容錯移轉。
用戶端應用程式連線
當主要節點容錯移轉到備用資源時,所有連到 Memorystore for Redis 的現有連線都會遭到捨棄。不過在重新連線時,系統會使用相同的連線字串或 IP 位址,將您的應用程式自動重新導向到新的主要節點。
驗證手動容錯移轉
您可以使用Google Cloud 主控台或 gcloud
驗證手動容錯移轉作業是否成功。
Google Cloud 控制台驗證
開始執行手動容錯移轉作業之前,請先前往 Memorystore for Redis 「Instances list」(執行個體清單) 頁面,然後按一下執行個體名稱。
接著,在「Configuration」分頁中,查看「Primary Location」旁邊的區域,瞭解主要節點位於哪個區域。請記下這個區域。當您完成手動容錯移轉作業後,請再次查看本頁面,確認主要節點已切換區域。
Cloud Monitoring 驗證
如要使用 Metrics Explorer 查看受控資源的指標,請按照下列步驟操作:
-
前往 Google Cloud 控制台的 leaderboard「Metrics Explorer」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 在 Google Cloud 控制台的工具列中,選取您的 Google Cloud 專案。 如要設定 App Hub,請選取 App Hub 主機專案或已啟用應用程式的資料夾管理專案。
- 在「指標」元素中,展開「選取指標」選單,在篩選列中輸入
Node role
,然後使用子選單選取特定資源類型和指標:- 在「Active resources」選單中,選取「Cloud Memorystore Redis」。
- 在「Active metric categories」(使用中的指標類別) 選單中,選取「replication」(複製)。
- 在「Active metrics」選單中,選取「Node role」。
- 按一下 [套用]。
如要從顯示畫面中移除時間序列,請使用 Filter 元素。
如要合併時間序列,請使用「Aggregation」元素上的選單。舉例來說,如要根據區域顯示 VM 的 CPU 使用率,請將第一個選單設為「平均」,並將第二個選單設為「區域」。
當「Aggregation」元素的第一個選單設為「Unaggregated」時,系統會顯示所有時序資料。Aggregation 元素的預設設定取決於您選取的指標類型。
- 針對每天回報一個樣本的配額和其他指標,請執行下列操作:
- 在「顯示」窗格中,將「小工具類型」設為「堆疊長條圖」。
- 將時間範圍設為至少一週。
Cloud Monitoring 圖表會以兩行顯示主要節點和備用節點。當圖表上的節點行顯示的值為 0 時,代表這是備用節點。當圖表上的節點行顯示的值為 1 時,代表這是主要節點。圖表透過顯示行的值如何分別從 1 切換為 0,以及從 0 切換為 1 來表示容錯移轉作業。
gcloud
驗證
啟動手動容錯移轉作業之前,請先使用下列指令檢查主要節點的所在區域:
gcloud redis instances describe [INSTANCE_ID] --region=[REGION]
您的主要節點位於標示為 currentLocationId
的區域。記下這個區域。
完成手動容錯移轉作業後,您可以再次執行 gcloud redis instances describe
指令並檢查 currentLocationId
的區域是否已變更,藉此確認主要節點已切換到新區域。
此外,locationId
標籤也會顯示您原先佈建主要節點的區域。alternativeLocationId
標籤會顯示原先系統為您佈建備用節點的區域。每次發生容錯移轉時,主要節點和備用節點就會在這兩個區域中切換。不過,與 locationId
和 alternativeLocationId
相關的區域不會變更。