高可用性和災害復原

如同任何雲端系統,可能會發生非計劃性中斷,導致虛擬機器 (VM) 執行個體、可用性區域或完整的 Azure 區域停止運作。 我們建議客戶有一個計劃來處理區域或區域性中斷。

本文提供客戶為其 Azure Cache for Redis 或 Azure Cache for Redis 企業實作建立 商務持續性和災害復原計劃 的資訊。

標準、進階版 和企業層提供各種高可用性選項:

選項 描述 可用性 標準 Premium Enterprise
標準複寫 單一數據中心內具有自動故障轉移的雙節點複寫組態 99.9% (請參閱 詳細資料
區域備援 跨 可用性區域 的多節點複寫組態,具有自動故障轉移 進階版 中的 99.9%;企業版 99.99%(請參閱詳細數據 -
異地複寫 兩個區域中的連結快取實例,具有使用者控制的故障轉移 進階版;企業 (請參閱詳細資料 - 被動 使用中
匯入/匯出 快取中數據的時間點快照集。 99.9% (請參閱 詳細資料 -
持續性 定期將數據儲存至記憶體帳戶。 99.9% (請參閱 詳細資料 - 預覽

高可用性的標準複寫

適用層:標準、進階版、企業版、企業版 Flash

建議使用: 高可用性

Azure Cache for Redis 具有高可用性架構,可確保受控實例正常運作,即使中斷會影響基礎虛擬機(VM)。 無論中斷是計劃性還是非計劃性中斷,Azure Cache for Redis 都提供比在單一 VM 上裝載 Redis 所能達到的更高百分比可用性率。

適用層中的 Azure Cache for Redis 預設會在一對 Redis 伺服器上執行。 這兩部伺服器裝載在專用 VM 上。 開放原始碼 Redis 只允許一部伺服器處理數據寫入要求。

使用 Azure Cache for Redis 時,一部伺服器是主要節點,另一部則是複。 布建伺服器節點之後,Azure Cache for Redis 會將主要和複本角色指派給他們。 主要節點通常負責維護用戶端的寫入和讀取要求。 在寫入作業上,它會將新的密鑰和金鑰更新認可至其內部記憶體,並立即回復至用戶端。 它會以異步方式將作業轉送至複本

Data replication setup

注意

一般而言,Azure Cache for Redis 用戶端應用程式會與快取中主要節點通訊,以取得所有讀取和寫入要求。 某些客戶端可以設定為從復本節點讀取。

如果快取中的主要節點無法使用,複本會自動升級為成為新的主要節點。 此程式稱為 故障轉移。 故障轉移只是兩個節點,主要/複本,交易角色,複本/主要,其中一個節點可能會脫機幾分鐘。 在大部分的故障轉移中,主要和復本節點會協調交接,讓您沒有主要複本的時間接近零。

先前的主要復本會短暫離線,以接收新主要複本的更新。 然後,現在的複本會重新上線,並重新加入快取完全同步處理。 索引鍵是當節點無法使用時,它是暫時性條件,而且會回到在線。

當主要復本需要關閉以進行維護時,一般故障轉移順序看起來會像這樣:

  1. 主要和復本節點會交涉協調的故障轉移和貿易角色。
  2. 複本(先前為主要複本)離線進行重新啟動。
  3. 幾秒鐘或幾分鐘后,複本會重新上線。
  4. 複本會從主要複本同步處理數據。

主要節點可以在計劃性維護活動中退出服務,例如 Redis 軟體或作業系統的更新。 它也可能會因為非計劃性事件而停止運作,例如基礎硬體、軟體或網路失敗。 Azure Cache for Redis 的故障轉移和修補提供故障轉移類型的詳細說明。 Azure Cache for Redis 在其存留期內會經歷許多故障轉移。 高可用性架構的設計會盡可能讓快取內的這些變更對其用戶端透明。

此外,Azure Cache for Redis 會在 進階版 層中提供更多的復本節點。 多復本快取可以設定最多三個復本節點。 擁有更多復本通常會改善復原能力,因為您有節點備份主要複本。 即使有更多複本,Azure Cache for Redis 實例仍可能會受到數據中心或可用性區域中斷的嚴重影響。 您可以使用具有區域備援的多個復本來增加快取可用性。

區域備援

適用的層:進階版企業版、企業版 Flash

建議使用: 高可用性災害復原 - 區域內

Azure Cache for Redis 支援 進階版 和企業層中的區域備援設定。 區域備援快取可以將節點放在相同區域中的不同 Azure 可用性區域。 它可消除數據中心或 AZ 中斷作為單一失敗點,並增加快取的整體可用性。 如需如何設定它的資訊,請參閱這篇文章。

如果快取設定為使用兩個或多個區域,如本文稍早所述,快取節點會在不同的區域中建立。 當區域關閉時,其他區域中的快取節點可以正常運作。

Azure Cache for Redis 支援 進階版 和企業層中的區域備援設定。 區域備援快取可以將節點放在相同區域中的不同 Azure 可用性區域。 它可消除數據中心或可用性區域中斷作為單一失敗點,並增加快取的整體可用性。

進階層

下圖說明 進階版 層的區域備援組態:

Zone redundancy setup

Azure Cache for Redis 會透過選取的 可用性區域,以迴圈配置資源方式,將節點分散在區域備援快取中。 它也會決定一開始做為主要節點的節點。

進階版 層的區域關閉體驗

區域備援快取提供自動故障轉移。 當目前的主要節點無法使用時,其中一個複本會接管。 如果新的主要節點位於不同的 AZ 中,您的應用程式可能會有較高的快取響應時間。 可用性區域 會以地理位置分隔。 從某個 AZ 切換至另一個 AZ 會改變應用程式與快取裝載位置之間的實體距離。 這項變更會影響從您的應用程式到快取的來回網路等待時間。 預期額外延遲會落在大部分應用程式可接受的範圍內。 建議您測試您的應用程式,以確保其能與區域備援快取搭配使用。

企業和企業 Flash 層

任一企業層中的快取會在 Redis Enterprise 叢集上執行。 它一律需要奇數的伺服器節點才能形成仲裁。 根據預設,它有三個節點,每個節點都裝載在專用 VM 上。

  • 企業快取有兩個相同大小的 數據節點 和一個較小的 仲裁節點
  • 企業快取有三個相同大小的數據節點。

企業叢集會將 Azure Cache for Redis 數據分割成內部的數據分割。 每個分割區都有一個主要和至少一個本。 每個數據節點都會保存一或多個分割區。 企業叢集可確保任何數據分割的主要和複本永遠不會共置在同一個數據節點上。 分割區會以異步方式將數據從主要複本複寫到其對應的複本。

企業層的區域關閉體驗

當數據節點變成無法使用或發生網路分割時,會發生類似標準複寫中所述的故障轉移。 企業叢集會使用仲裁型模型來判斷哪些倖存節點會參與新的仲裁。 它也會視需要將這些節點內的複本分割升級為主要複本。

區域可用性

區域備援 進階版 層快取可在下列區域中使用:

美洲 歐洲 中東 非洲 亞太地區
巴西南部 法國中部 卡達中部 南非北部 澳大利亞東部
加拿大中部 德國中西部 印度中部
美國中部 北歐 日本東部
美國東部 挪威東部 南韓中部
美國東部 2 英國南部 東南亞
美國中南部 西歐 東亞
US Gov 維吉尼亞州 瑞典中部 中國北部 3
美國西部 2 瑞士北部
美國西部 3

區域備援企業和企業快取可在下列區域中使用:

美洲 歐洲 中東 非洲 亞太地區
加拿大中部* 歐洲北部 澳大利亞東部
美國中部* 英國南部 印度中部
美國東部 西歐 東南亞
美國東部 2 日本東部*
美國中南部 東亞*
美國西部 2
美國西部 3
巴西南部

* 此區域中無法使用企業 Flash 層。

可用性區域重新部署和移轉

目前,將快取從非 AZ 組態轉換成 AZ 組態的唯一方法是重新部署快取。 若要瞭解如何重新部署目前的快取,請參閱 將 Azure Cache for Redis 實例遷移至可用性區域支援

持續性

適用層:進階版企業版(預覽版)企業 Flash(預覽)

建議使用: 數據持久性

因為您的快取數據會儲存在記憶體中,因此多個節點的罕見且非計劃性失敗可能會導致所有數據卸除。 為了避免完全遺失數據, Redis 持續性 可讓您定期擷取記憶體內部數據的快照集,並將其儲存至記憶體帳戶。 如果您在多個節點之間發生失敗而導致數據遺失,則快取會從記憶體帳戶載入快照集。 如需詳細資訊,請參閱設定 進階版 Azure Cache for Redis 實例的數據持續性。

持續性 儲存體 帳戶

請考慮選擇異地備援記憶體帳戶,以確保保存數據的高可用性。 如需詳細資訊,請參閱 Azure 儲存體備援 \(部分機器翻譯\)。

匯入/匯出

適用的層:進階版Enterprise、Enterprise Flash

建議使用: 災害復原

Azure Cache for Redis 支援匯入和匯出 Redis 資料庫 (RDB) 檔案的選項,以提供數據可移植性。 它可讓您將數據匯入 Azure Cache for Redis,或使用 RDB 快照集從 Azure Cache for Redis 導出數據。 進階快取中的 RDB 快照集會導出至 Azure 儲存體 帳戶中的 Blob。 您可以建立腳本,以定期觸發導出至記憶體帳戶。 如需詳細資訊,請參閱 在 Azure Cache for Redis 中匯入和導出數據。

匯出 儲存體 帳戶

請考慮選擇異地備援記憶體帳戶,以確保匯出數據的高可用性。 如需詳細資訊,請參閱 Azure 儲存體備援 \(部分機器翻譯\)。

被動異地復寫

適用的階層:進階版

建議使用: 災害復原 - 單一區域

異地復 寫是連結兩個或多個 Azure Cache for Redis 實例的機制,通常跨越兩個 Azure 區域。 異地復寫主要是針對跨區域災害復原所設計。 兩個 進階版 層快取實例會透過異地複寫連線,以提供主要快取的讀取和寫入,並將該數據復寫至次要快取。

如需如何設定的詳細資訊,請參閱設定 azure Cache for Redis 實例 進階版 異地複寫。

如果載入主要快取的區域關閉,您必須先啟動故障轉移,先取消連結次要快取,然後更新應用程式以指向次要快取以進行讀取和寫入。

作用中異地複寫

適用層: 企業企業 Flash

建議使用: 高可用性災害復原 - 多區域

企業層支援更進階的異地複寫形式,稱為 主動式異地復 寫,可在多個區域之間提供更高的可用性和跨區域災害復原。 Azure Cache for Redis Enterprise 軟體會使用無衝突的復寫數據類型來支援寫入多個快取實例、合併變更,以及解決衝突。 您可以加入不同 Azure 區域中最多五個企業層快取實例,以形成異地復寫群組。

使用這類快取的應用程式可以透過其對應的端點,讀取和寫入任何異地分散式快取實例。 應用程式應該使用最接近每個應用程式實例的內容,讓您獲得最低的延遲。 如需詳細資訊,請參閱 設定企業 Azure Cache for Redis 實例的作用中異地複寫。

如果復寫群組中其中一個快取的區域關閉,您的應用程式必須切換至另一個可用的區域。

當復寫群組中的快取無法使用時,建議您監視相同復寫群組中其他快取的記憶體使用量。 當其中一個快取關閉時,復寫群組中的所有其他快取都會開始儲存無法與已關閉快取共用的元數據。 如果在其中一個快取關閉之後,可用快取的記憶體使用量開始以高速率成長,請考慮取消從復寫群組無法使用的快取連結。

如需強制取消連結的詳細資訊,請參閱 發生區域中斷時強制取消連結。

刪除並重新建立快取

適用層:標準進階版企業版、企業 Flash

如果您遇到區域性中斷,請考慮在不同的區域中重新建立快取,並更新應用程式以改為連線到新的快取。 請務必了解數據在區域性中斷期間遺失。 您的應用程式程式代碼應該能夠復原資料遺失。

還原受影響的區域之後,系統會自動還原無法使用的 Azure Cache for Redis,並再次可供使用。 如需將快取移至不同區域的更多策略,請參閱 將 Azure Cache for Redis 實例移至不同的區域

下一步

深入瞭解如何設定 Azure Cache for Redis 高可用性選項。