使用地區永久磁碟的高可用性選項

本文藉由比較各種提高服務可用性的選項,以及比較不同服務架構的費用、效能和彈性,討論如何使用地區永久磁碟建立高可用性 (HA) 服務。此外,還會說明故障類型和復原動作,協助您判斷地區永久磁碟解決方案是否適用於您的高可用性服務。

地區永久磁碟可在同一地區內的兩個區域之間提供資料同步複製功能。當您在 Compute Engine 中實作高可用性服務時,極適合使用地區永久磁碟當做構成要素。

地區永久磁碟的優點是,當區域服務中斷並導致 VM 執行個體無法使用時,您就可以將地區永久磁碟強制連接至相同地區中次要區域內的 VM 執行個體。如要執行這項工作,您必須在與強制連接的地區永久磁碟相同的區域中啟動另一個 VM 執行個體,或維護該區域中的熱待命 VM 執行個體。「熱待命」是執行中的 VM 執行個體,與您使用的執行個體完全相同。這兩個執行個體具有相同的資料。

強制連接作業會在一分鐘內執行,在幾分鐘內即達成復原時間目標 (RTO)。總和的 RTO 不僅依據儲存空間容錯移轉 (強制連接地區永久磁碟),還取決於是否必須先建立次要 VM 執行個體、基礎檔案系統偵測熱連接磁碟的時間長度、相對應應用程式的復原時間以及其他因素。

設計上的注意事項

開始設計高可用性服務之前,請先瞭解應用程式、檔案系統和作業系統的特性。這些特性是設計的基礎,能夠排除許多種方法。比方說,如果應用程式不支援應用程式層級的複製作業,則某些對應的設計選項即不適用。

同樣地,如果應用程式、檔案系統或作業系統不具備容忍當機的能力,則可能無法使用地區永久磁碟或甚至區域永久磁碟快照。當機容忍度是指突然停止運作而後進行復原的能力,這種復原不會讓當機前提交至永久磁碟的資料遺失或損壞。

請把握以下幾項重點:

  1. 瞭解對應用程式和寫入效能的影響。
  2. 決定服務恢復時間目標。瞭解發生區域服務中斷時服務的復原速度要求,以及服務水準協議的相關規定。
  3. 瞭解建立彈性且可靠的服務架構所需的費用。應用程式同步複製和應用程式非同步複製的費用選項如下:

    使用資料庫和 VM 的兩個執行個體。在這種情況下,總費用會依下列項目而定:

    • VM 執行個體費用
    • 永久磁碟費用
    • 維護應用程式複製作業的費用

    如要透過地區永久磁碟獲得高可用性,請使用相同的 VM 執行個體和永久磁碟元件,並提供地區永久磁碟。地區永久磁碟會在兩個區域中複製,因此每位元組的成本是區域永久磁碟的兩倍。

    不過,使用地區永久磁碟可能會降低您的維護成本,原因是系統會自動將資料複製到兩個備用資源,因此不需要維護應用程式的複製作業。
    如果僅在容錯移轉期間依需求啟動備用 VM,而非將 VM 保持為熱待命,您還可以節省更多主機費用。

比較費用、效能和彈性

下表重點說明不同服務架構在成本、效能和彈性之間的權衡取捨。

高可用性服務
架構
區域永久磁碟
快照
應用程式層級
同步
應用程式層級
非同步
使用區域
永久磁碟的高可用性解決方案
防止應用程式、VM、區域故障1
緩解應用程式損壞的風險 (範例:無法容忍應用程式當機)2
費用 $ $$
執行資料庫/VM 的 2 個執行個體 + 維護及設定應用程式複製作業 + 跨區域網路的費用
$$
執行資料庫/VM 的 2 個執行個體 + 維護及設定應用程式複製作業 + 跨區域網路的費用
$1.5x - $$
如果您使用熱待命,則費用與應用程式複製作業相同。如要降低成本,您可以在容錯移轉期間依需求啟動備用 VM。
應用程式效能
沒有影響

具備同步複製功能但犧牲應用程式效能

沒有影響

對大多數應用程式沒有影響
適用於低 RPO 要求的應用程式 (不容許遺失資料)
資料是否遺失取決於拍攝快照的時間

不會導致資料遺失3

非同步複製作業導致資料遺失

不會導致資料遺失
儲存空間進行災難復原的時間4 O (分鐘) O (秒) O (秒) O (秒) — 將磁碟強制連接到待命 VM 執行個體

1 使用地區永久磁碟或快照不足以防範及緩解故障和損毀。您的應用程式、檔案系統和其他可能的軟體元件必須具有當機一致性,或是使用某種暫停動作

2 某些應用程式的複製功能確實可以緩解部分應用程式損壞的風險。例如,MySQL 主伺服器的應用程式毀損並不會導致其備用資源執行個體也毀損。詳情請參閱應用程式的說明文件。

3 資料遺失代表提交至永久儲存空間的資料遺失且無法復原。任何未提交的資料仍會遺失。

4 容錯移轉效能不包括檔案系統檢查和應用程式復原,以及容錯移轉後的載入。

使用地區永久磁碟建構高可用性資料庫服務

本節將說明使用地區永久磁碟和 Compute Engine 針對有狀態資料庫服務 (MySQL、Postgres 等) 建構高可用性解決方案的整體概念。

這項討論包含單一區域服務中斷的緩解措施;但如果發生更大型的服務中斷 (例如整個地區都無法使用),應用程式仍可能無法使用。建議您根據需求考慮使用跨地區複製技術來提高可用性。

資料庫高可用性設定通常至少有兩個 VM 執行個體。這些執行個體最好屬於下列一或多個代管執行個體群組

  • 主要區域中的主要 VM 執行個體
  • 次要區域中的待命 VM 執行個體

主要 VM 執行個體至少具有兩個永久磁碟:開機磁碟和地區永久磁碟。地區永久磁碟包含應保存至其他區域的資料庫資料以及其他任何可變動資料,以免發生服務中斷的情形。

待命 VM 執行個體需要擁有獨立的開機磁碟,才能從設定相關的服務中斷 (例如作業系統升級) 復原。您無法在容錯移轉期間將開機磁碟強制連接到另一個 VM。

系統會將主要和待命 VM 執行個體設定為使用負載平衡器,並且根據健康狀態檢查訊號將流量導向主要 VM。這項設定又稱為熱待命。資料的災難復原案例會說明其他可能更符合您使用情境的容錯移轉設定。

健康狀態檢查

健康狀態檢查是由健康狀態檢查代理程式實作,其具備兩種用途:

  1. 健康狀態檢查代理程式會駐留在主要和次要 VM 中,以監控執行個體並與負載平衡器通訊以引導流量。此用途特別適用於執行個體群組
  2. 健康狀態檢查代理程式會與應用程式專用地區控制層同步,並根據控制層行為做出容錯移轉決策。控制層必須和健康狀態受監控的執行個體位於不同區域。

    健康狀態檢查代理程式本身必須具備容錯性質。比方說,請注意下圖的控制層與主要執行個體各自獨立,主要執行個體位於 us-central1-a 區域,而待命 VM 位於 us-central1-f 區域。

VM 中的健康狀態檢查代理程式角色

主要和待命 VM 執行個體中的健康狀態檢查代理程式角色。

容錯移轉

當主要 VM 或資料庫中偵測到故障時,應用程式控制層即可啟動容錯移轉至次要區域的待命 VM。在容錯移轉期間,應用程式控制層會將同步複製到次要區域的地區永久磁碟強制連接到待命 VM,並根據健康狀態檢查訊號將所有流量導向該 VM。

整體容錯移轉延遲 (排除故障偵測時間) 是下列延遲的總和:

  • 將地區永久磁碟強制連接至待命 VM 的時間為零秒
  • 應用程式初始化和當機救援所需的時間

災難復原的構成要素頁面說明 Compute Engine 目前可用的構成要素。地區永久磁碟會提供磁碟式複製功能,為建置高可用性解決方案增添另一個重要的構成要素。

故障模式

下表列出使用地區永久磁碟的服務所發生的各種故障模式和建議動作。

故障類別和 (機率) 故障類型 動作
區域故障 (中) 只有本機區域中的磁碟發生故障。故障可能是暫時性,也可能持續很長一段時間。



Compute Engine 控制層
電源失效
網路連線失敗

地區磁碟作業的暫時性問題將由地區永久磁碟以透明化的方式處理,因此無須進行容錯移轉。地區永久磁碟會自動偵測錯誤和速度緩慢的情況、切換複製模式,並且補足僅複製到單一區域的資料。

如果主要區域發生儲存問題,地區永久磁碟會自動從次要區域執行讀取作業。這可能會導致讀取作業的延遲時間增加。在這類情況下,應用程式可能會根據效能影響選擇觸發容錯移轉。



應用程式控制層可根據健康狀態檢查門檻觸發容錯移轉。
應用程式故障 (高) 應用程式沒有回應
應用程式管理員動作 (例如升級) 人為錯誤
(例如 SSL 憑證、ACL 等參數設定錯誤)
應用程式控制層可根據健康狀態檢查門檻觸發容錯移轉。
VM 故障 (中) 基礎架構/硬體故障
CPU 爭用、中間網路中斷而導致 VM 無回應
VM 通常會自動修復。應用程式控制層可根據健康狀態檢查門檻觸發容錯移轉。
應用程式毀損 (低至中) 應用程式資料損毀
(例如,由於應用程式錯誤或無效的作業系統升級)
應用程式復原:

資料庫複製的挑戰

下表列出設定和管理應用程式的同步或半同步複製作業 (例如 MySQL) 的一些常見難題,以及與使用地區永久磁碟進行區塊複製的異同之處。

挑戰 應用程式同步
或半同步複製作業
使用地區永久磁碟
進行區塊複製作業
在主要執行個體和容錯移轉備用資源之間維護穩定的複製作業。 有許多情況都可能會發生錯誤,並導致執行個體退出高可用性模式:
  1. 複製參數設定錯誤 (例如 SSL 憑證不符),或主要執行個體缺少 ACL。
  2. 主要執行個體過大的工作負載導致容錯移轉備用資源無法跟上。
  3. 導致複製問題的錯誤,例如應用程式問題、作業系統設定錯誤或 Docker 故障。
  4. 基礎架構故障,例如 CPU 爭用,VM 凍結或中間網路中斷。
儲存空間故障是由地區永久磁碟處理。這對應用程式而言清晰可見,但無法察覺磁碟效能可能發生的波動。
系統必須執行使用者定義的健康狀態檢查,才能發現任何應用程式或 VM 問題並觸發容錯移轉。
端對端容錯移轉的時間比預期的時間長。 容錯移轉作業所需的時間沒有上限。等待重新進行所有交易 (上述步驟 2) 的時間無上限,實際情況視資料庫的結構定義和負載而定。 地區永久磁碟能夠提供同步複製功能,因此容錯移轉時間會受到下列延遲時間總計的限制:
  1. 建立次要 VM (除非已有可用的熱待命 VM 執行個體)。
  2. 強制連接地區永久磁碟。
  3. 進行應用程式初始化。
核心分裂 這兩種方式都需要佈建,以確保一次只能有一個主要執行個體,進而避免核心分裂

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件