使用 Azure 受控 Redis 的高可用性和災害復原 (預覽)
如同任何雲端系統,可能會發生非計劃性中斷,導致虛擬機器 (VM) 執行個體、可用性區域或完整的 Azure 區域停止運作。 我們建議客戶具備適當的方案來處理區域或區域性中斷。
本文提供客戶為其 Azure 受控 Redis 實作建立 商務持續性和災害復原計劃 的資訊。
高可用性選項:
選項 | 描述 | 可用性 |
---|---|---|
標準複寫 | 單一資料中心內具有自動容錯移轉的雙節點複寫設定 | 99.9% (請參閱詳細資料) |
區域備援 | 跨可用性區域的多節點複寫設定,具有自動容錯移轉 | 99.99% (請參閱 詳細資料) |
異地複寫 | 兩個區域中的連結快取執行個體,具有使用者控制的容錯移轉 | 使用中 (請參閱 詳細資料) |
匯入/匯出 | 快取中資料的時間點快照集。 | 99.9% (請參閱詳細資料) |
持續性 | 定期將資料儲存至儲存體帳戶。 | 99.9% (請參閱詳細資料) |
高可用性的標準複寫
建議:高可用性
Azure 受控 Redis 具有高可用性架構,可確保受控實例正常運作,即使中斷會影響基礎虛擬機(VM)。 無論中斷是計劃性還是非計劃性中斷,Azure 受控 Redis 都提供比在單一 VM 上裝載 Redis 所能達到的更高百分比可用性率。 根據預設,Azure 受控 Redis 安裝程式會在一對 Redis 伺服器上執行。 這兩部伺服器裝載於專用 VM 上。
使用 Azure 受控 Redis 時,一部伺服器是主要節點,另一部則是複本。 在布建伺服器節點之後,Azure 受控 Redis 會將主要角色和複本角色指派給他們。 主要節點通常負責為來自用戶端的寫入和讀取要求提供服務。 在寫入作業上,其會將新的金鑰和金鑰更新認可至內部記憶體,並立即回覆用戶端。 其會以非同步方式將作業轉送至「複本」。
如果快取中的「主要」節點無法使用,「複本」會將自己升階以成為新的主要節點。 此流程稱為「容錯移轉」。 容錯移轉只是兩個節點:主要/複本、交易角色、複本/主要節點,其中一個節點可能離線幾分鐘。 在大部分的容錯移轉中,主要和複本節點會協調交接,因此您沒有主要節點的時間幾乎為零。
先前的主要節點會短暫離線,以接收來自新主要節點的更新。 然後,現在複本會重新上線,並重新加入完全同步處理的快取。 關鍵是當節點無法使用時,這是暫時性狀況,而且節點會重新上線。
當主要節點需要關閉以進行維護時,典型的容錯移轉順序看起來會像這樣:
- 主要和複本節點會交涉協調的容錯移轉和交易角色。
- 複本 (先前的主要) 節點會離線以重新開機。
- 幾秒鐘或幾分鐘後,複本節點會重新上線。
- 複本節點會同步處理主要節點中的資料。
作為計劃性維護活動 (例如更新 Redis 軟體或作業系統) 的一部分,主要節點可以停止服務。 其也可能由於基礎硬體、軟體或網路失敗等非計劃性事件而停止運作。 Azure 受控 Redis 的故障轉移和修補提供故障轉移類型的詳細說明。 Azure 受控 Redis 在其存留期內會經歷許多故障轉移。 高可用性架構的設計使快取內的這些變更對其用戶端儘可能透明。
區域備援
建議:高可用性、災害復原 - 區域內部
Azure 受控 Redis 預設支援區域備援設定。 區域備援快取會自動將其節點放在相同區域中的不同 Azure 可用性區域。 當區域停止運作時,可以使用其他區域中的快取節點,讓快取如往常運作。 其會排除資料中心或可用性區域中斷作為單一失敗點,並增加快取的整體可用性。
區域關閉體驗
當資料節點變成無法使用或網路發生分割時,類似於標準複寫中所述的容錯移轉就會發生。 叢集會使用仲裁型模型來判斷哪些倖存節點會參與新的仲裁。 其也會視需要將這些節點內的複本分割區升階為主要分割區。
區域可用性
區域備援快取可在下列區域中使用:
美洲 | 歐洲 | 中東 | 非洲 | 亞太地區 |
---|---|---|---|---|
加拿大中部* | 北歐 | 澳大利亞東部 | ||
美國中部* | 英國南部 | 印度中部 | ||
美國東部 | 西歐 | 東南亞 | ||
美國東部 2 | 日本東部* | |||
美國中南部 | 東亞* | |||
美國西部 2 | ||||
美國西部 3 | ||||
巴西南部 |
持續性
建議:資料持久性
因為您的快取資料儲存在記憶體中,所以多個節點若發生罕見且非計劃性失敗,可能會導致所有資料遭到卸除。 為了避免完全遺失數據, Redis 持續性 可讓您定期擷取記憶體內部數據的快照集,並將它儲存在直接連結至快取實例的受控磁碟上。 萬一遺失數據,快取數據就會使用受控磁碟上的快照集自動還原。 如需詳細資訊,請參閱 設定 Azure 受控 Redis 實例的數據持續性。
匯入/匯出
建議:災害復原
Azure 受控 Redis 支持匯入和匯出 Redis 資料庫 (RDB) 檔案的選項,以提供數據可移植性。 它可讓您將數據匯入 Azure 受控 Redis,或使用 RDB 快照集從 Azure 受控 Redis 導出數據。 快取中的 RDB 快照集會導出至 Azure 儲存體 帳戶中的 Blob。 您可以建立指令碼來觸發定期匯出至儲存體帳戶。 如需詳細資訊,請參閱 在 Azure 受控 Redis 中匯入和匯出數據。
用於匯出的儲存體帳戶
請考慮選擇異地備援儲存體帳戶,以確保所匯出資料的高可用性。 如需詳細資訊,請參閱 Azure 儲存體備援 \(部分機器翻譯\)。
作用中異地複寫
建議:高可用性、災害復原 - 多重區域
異地復寫是跨多個 Azure 區域連結 Azure 受控 Redis 實例的機制。 Azure 受控 Redis 支援稱為 主動式異地複 寫的進階複寫形式,可跨多個區域提供更高的可用性和跨區域災害復原。 Azure Managed Redis 軟體使用無衝突復寫的數據類型來支援寫入多個快取實例、合併變更,以及解決衝突。 您可以在不同的 Azure 區域中加入最多五個快取實例,以形成異地復寫群組。
使用這類快取的應用程式可以透過其對應端點,讀取和寫入至任何異地分散式快取執行個體。 應用程式應該使用最接近每個應用程式執行個體的快取,為您提供最低的延遲。 如需詳細資訊,請參閱 設定 Azure 受控 Redis 實例的作用中異地複寫。
如果複寫群組中其中一個快取的區域停止運作,您的應用程式必須切換到另一個可用的區域。
當複寫群組中的快取無法使用時,建議您監視相同複寫群組中其他快取的記憶體使用量。 當其中一個快取停止運作時,複寫群組中的其他所有快取都會開始儲存無法與停止運作的快取共用的中繼資料。 如果在其中一個快取停止運作之後,可用快取的記憶體使用量開始高速成長,請考慮取消連結無法從複寫群組使用的快取。
如需強制取消連結的詳細資訊,請參閱發生區域中斷時強制取消連結。
刪除並重新建立快取
如果您遇到區域性中斷,請考慮在不同的區域中重新建立快取,並更新應用程式以改為連線到新的快取。 請務必了解數據會在區域性中斷期間遺失,除非您使用主動式異地複寫。 您的應用程式碼應該能夠復原流失的資料。
還原受影響的區域之後,系統會自動還原無法使用的 Azure 受控 Redis,並可供再次使用。 如需將快取移至不同區域的詳細資訊,請參閱 將 Azure 受控 Redis 實例移至不同的區域。