部署容錯移轉叢集的雲端見證

適用於:Windows Server 2022、Windows Server 2019、Windows Server 2016

雲端見證是一種容錯移轉叢集仲裁見證,會使用 Microsoft Azure 提供叢集仲裁投票功能。 本文包含雲端見證功能的概觀、其支援的案例,以及如何設定容錯移轉叢集之雲端見證的相關指示。 如需詳細資訊,請參閱設定叢集見證

什麼是雲端見證?

開始之前,您應該先閱讀了解叢集和集區仲裁,來重溫有關叢集仲裁與仲裁見證的相關記憶。

現在,讓我們從查看適用於 Windows Server 的多站台延伸容錯移轉叢集仲裁範例組態開始,如下圖所示。

A diagram depicting a cluster quorum with a site labeled file share witness connected to site one and site two.

此範例是簡化的設定,其中兩個現場資料中心有兩個節點。 在一般叢集中,每個節點都有一個投票,一個檔案共用見證會為仲裁見證提供一個額外的投票。 此額外投票可讓叢集繼續執行,即使其中一個資料中心關閉也一樣。 在此範例中,叢集仲裁有五個可能投票,而且只需要三票來繼續執行。

不過,您可能會注意到,除了兩個資料中心之外,還有第三個稱為檔案共用見證的資料中心。 此資料中心會與其他兩個站台分開,並裝載用來備份系統檔案部分的檔案伺服器。 檔案共用見證會作為此叢集仲裁組態中的仲裁見證,確保即使其中一個資料中心意外關閉,系統仍會執行。

擁有檔案共用見證可提供足夠的備援,讓您的檔案伺服器保持高可用性。 不過,您應該記住,將檔案共用見證裝載在獨立站台的另一個伺服器上,需要安裝設定、定期維護,以及與其他站台的獨立連線。

雲端見證與傳統叢集仲裁見證組態不同,因為它使用雲端中的 Azure VM 作為仲裁見證,而不是實體資料中心。 雲端見證會使用 Azure Blob 儲存體來讀取和寫入系統用來作為決定投票的 Blob 檔案,以達成仲裁。 下圖顯示使用雲端見證的範例組態。

A diagram depicting a failover cluster with Cloud Witness connected to site one and site two.

如您所見,雲端見證組態不需要第三個獨立的資料中心。 雲端見證,就像任何其他仲裁見證一樣,會取得一個額外的投票,並協助防止其他資料中心有一個關閉而帶來全體關閉。 不過,它不需要額外的站台來儲存仲裁見證。 雲端見證也不需要現場資料中心所需的一般實體維護。

除了備援之外,還有一些使用雲端見證功能的其他優點:

  • 您不需要使用獨立的額外資料中心來達成仲裁。

  • 使用 Azure Blob 儲存體可免除在公用雲端中裝載 VM 通常所需的額外維護負擔。

  • 您可以針對多個叢集使用相同的 Azure 儲存體帳戶。 唯一的需求是您每個叢集只使用一個 Blob,並根據叢集的唯一識別碼來命名 Blob 檔案名稱。

  • 降低儲存體帳戶的持續成本,因為除了叢集節點狀態變更之時,Blob 檔案不需要太多資料和更新。

  • Azure 隨附內建的雲端見證資源類型。

必要條件

您必須擁有具有作用中訂用帳戶的 Azure 帳戶和有效的 Azure 一般用途儲存體帳戶,才能設定雲端見證。 此儲存體帳戶是雲端見證建立msft-cloud-witness容器的位置,該容器要用來儲存投票仲裁所需的 Blob 檔案。

注意

雲端見證與下列類型的 Azure 儲存體帳戶不相容:

  • Blob 儲存體
  • Azure 進階儲存體

您也可以使用此帳戶和雲端見證自動建立的msft-cloud-witness容器,在多個不同叢集之間設定雲端見證。 每個叢集都有自己的 Blob 檔案,檔案會儲存在容器中。

建立您的 Azure 儲存體帳戶時,如果您要設定雲端見證的叢集是內部部署或位於相同 Azure 區域和可用性區域內的 Azure 中,請在設定 [複寫] 欄位時選取 [本地備援儲存體 (LRS)]。 如果您的叢集位於相同的 Azure 區域,但在不同的可用性區域中,請改為選取 [區域備援儲存體 (ZRS)]

您必須使用下列其中一個支援的案例:

  • 延伸多站台叢集的災害復原,如什麼是雲端見證所示。

  • 容錯移轉叢集沒有共用儲存體,例如 SQL Always On。

  • 容錯移轉叢集是在客體 OS 內執行,且裝載於 Microsoft Azure 虛擬機器角色或任何其他公用雲端。

  • 容錯移轉叢集是由裝載私人雲端中的 VM 所組成,且在客體 OS 內部執行。

  • 儲存體叢集具有或沒有共用儲存體,例如擴充檔案伺服器叢集。

  • 小型分公司叢集,甚至是雙節點叢集。

如果您使用 Windows Server 2012 R2 和更新版本,建議您一律設定見證。 更新版本 Windows Server 中的叢集會自動管理見證投票,且其節點會使用動態仲裁進行投票。

您也必須確定容錯移轉叢集與 Azure 儲存體帳戶服務之間的所有防火牆,都允許來自連接埠 443 的流量,也稱為 HTTPS 連接埠。 雲端見證會使用 Azure 儲存體服務的 HTTPS REST 介面。 因此,您必須在容錯移轉叢集中的所有節點上開啟連接埠 443,雲端見證才能如預期般運作。

建立 Azure 儲存帳戶時,Azure 會將其與自動產生的主要和次要存取金鑰相關聯。 當您第一次設定雲端見證時,建議您使用主要存取金鑰。 之後,您可以使用主要或次要存取金鑰。

將雲端見證配置為叢集的仲裁見證

如要設定雲端見證,您可以使用 [容錯移轉叢集管理員] 應用程式內建的 [仲裁設定] 設定工作流程,或是使用 PowerShell。

若要使用 [仲裁組態] 設定工作流程來設定雲端見證:

  1. 開啟 [容錯移轉叢集管理員]。

  2. 以滑鼠右鍵按一下叢集的名稱。

  3. 移至 [其他動作]>[設定叢集仲裁設定],如下列螢幕擷取畫面所示,以啟動 [設定叢集仲裁] 工作流程。

    A screenshot of the drop-down menu in the Failover Cluster Manager UI that takes you to Configure Cluster Quorum Settings.

  4. 在 [選取仲裁設定] 頁面上,選取 [選取仲裁見證]。

  5. 在 [選取仲裁見證] 頁面上,選取 [設定雲端見證]。

  6. 在 [設定雲端見證] 頁面上,輸入下列資訊:

    • 您的 Azure 儲存體帳戶名稱。

    • 與儲存體帳戶相關聯的存取金鑰。

      • 如果您是首次建立雲端見證,請使用您的主要存取金鑰。

      • 如果您要輪替主要存取金鑰,請改用次要存取金鑰。

        注意

        您的容錯移轉叢集會產生共用存取安全性 (SAS) 權杖來安全地加以儲存,而不會直接儲存存取金鑰。 只要與權杖相關聯的存取金鑰保持有效,權杖就會有效。 輪替主要存取金鑰時,必須先使用次要存取金鑰在使用該儲存體帳戶的所有叢集上更新雲端見證,然後才能重新產生主要金鑰。

    • 或者,如果您打算針對雲端見證使用不同的 Azure 服務端點,您可以將另一部現有伺服器的名稱輸入 [端點伺服器名稱]名稱 欄位中,例如 Azure China。

  7. 如果設定成功,您應該能夠在 [容錯移轉叢集管理員] 摺疊式功能表中看到新的雲端見證,如下列螢幕擷取畫面所示。

    A screenshot of the Cluster Core Resources window in the Failover Cluster Manager application that shows the newly configured cloud witness highlighted with a red border.

使用雲端見證的 Proxy 考慮

雲端見證使用 HTTPS (預設連接埠 443) 建立與 Azure Blob 服務的輸出通訊。 Azure 會使用 .core.windows.net 當作端點。 您必須確定此端點包含在叢集與 Azure 儲存體之間使用的任何防火牆允許清單中。 如果需要 Proxy 才能連線到 Azure 儲存體,請使用必要的 Proxy 設定來設定 Windows HTTP 服務 (WinHTTP)。 容錯移轉叢集會利用 WinHTTP 進行 HTTPS 通訊。

若要使用 Netsh 命令來設定預設 Proxy 伺服器,請遵循下列步驟:

注意

  • 這會變更 WinHTTP 的預設 Proxy 組態。 任何使用 WinHTTP 的應用程式,包括 Windows 服務,都可能會受到影響。
  1. 開啟提高權限的命令列:

    1. 移至 [開始] 並輸入 cmd
    2. 以滑鼠右鍵按一下 [命令提示字元],然後選取 [以系統管理員身分執行]
  2. 輸入下列命令並按 Enter

    netsh winhttp set proxy proxy-server="<ProxyServerName>:<port>" bypass-list="<HostsList>"
    

    例如:netsh winhttp set proxy proxy-server="192.168.10.80:8080" bypass-list="<local>; *.contoso.com"

若要深入了解,請參閱 Netsh 命令語法、內容與格式