共用方式為


設定和管理法定人數

本文提供有關設定和管理容錯移轉叢中的仲裁之背景資訊及步驟。

如需瞭解在 Azure 本機和 Windows Server 叢集上儲存空間直接存取技術中的叢集和儲存集區仲裁的相關信息,請參閱 瞭解叢集和集區仲裁

了解法定人數

叢集的仲裁由需要參與活躍叢集成員資格的投票元素數量決定,這些投票元素是使叢集能夠正常啟動或持續運行的必要條件。 如需更詳細的說明,請參閱了解叢集和集區仲裁文件

仲裁設定選項

Windows Server 中的仲裁模型具有彈性。 如果您需要修改叢集的仲裁設定,可以使用「設定叢集仲裁精靈」或 FailoverClusters 的 Windows PowerShell Cmdlet。 如需設定仲裁的步驟和考量,請參閱本主題之後會討論的 設定叢集仲裁

下表列出 [設定叢集仲裁精靈] 中提供的三個仲裁設定選項。

選項 描述
[使用一般設定] 叢集會自動指派投票給每個節點,並動態管理節點投票。 如果適合您的叢集,並且有叢集共用存放裝置可用,叢集就會選取一個磁碟見證。 建議您在大部分的情況下使用此選項,因為叢集軟體會自動選擇可為您的叢集提供最高可用性的仲裁與見證設定。
[新增或變更仲裁見證] 您可以新增、變更或移除見證資源。 您可以設定檔案共用或磁碟見證。 叢集會自動指派投票給每個節點,並動態管理節點投票。
進階法定人數設定與見證者選取 僅在您對設定仲裁有應用程式特定或網站特定需求時,才應選擇此選項。 您可以修改仲裁見證、 新增或移除節點投票,以及選擇叢集是否動態管理節點投票。 根據預設,會將投票指派給所有節點,並動態管理節點投票。

根據您選擇的仲裁設定選項及具體設定,叢集將會被設定為以下的一種仲裁模式:

模式 描述
節點多數 (不含見證人) 只有節點具有投票。 未配置任何法定仲裁見證。 叢集仲裁是在活動叢集成員資格中占多數的投票節點。
節點多數 (含見證) (磁碟或檔案共用) 節點有投票權。 此外,法定人數見證人也有投票權。 叢集仲裁由活躍叢集成員中的大多數投票節點加上一個見證投票組成。 仲裁見證可以是指定的磁碟見證或指定的檔案共用見證。
沒有多數 (只含磁碟見證) 沒有節點具有投票。 只有磁碟見證才有投票權。
叢集多數仲裁是由磁碟機見證的狀態來決定。 一般而言,不建議使用,也不應該選取這種模式,因為它會使得叢集中有單一失敗點。

下列各小節將提供進階仲裁組態設定的詳細資訊。

見證設定

做為設定仲裁時的一般規則,叢集中的投票元素應該是奇數。 因此,如果叢集包含偶數個投票節點,您應該設定磁碟見證或檔案共用見證。 叢集將可承受多一個節點停止運作。 此外,如果半數的叢集節點同時停止運作或中斷連線,新增見證投票可讓叢集繼續執行。

如果所有節點都可以看到該磁碟,通常建議使用磁碟見證。 當您需要考慮使用多站點的災害復原和複寫的儲存空間時,建議使用檔案共享見證器。 只有在存放裝置廠商支援從所有站台對複寫的存放裝置進行讀寫存取時,才可以使用複寫的存放裝置設定磁碟見證。 磁碟見證不支援儲存空間直接存取

下表提供有關法定參與見證類型的其他資訊和考量。

見證類型 描述 需求和建議
磁碟見證
  • 用於儲存叢集資料庫複本的專用 LUN
  • 最適合用於具有共用 (非複寫) 存放裝置的叢集
  • LUN 的大小必須至少為 512 MB
  • 必須專用於叢集且不可指派給叢集角色
  • 必須包含在叢集存放裝置中並通過存放裝置驗證測試
  • 不能是叢集共用磁碟區 (CSV) 的磁碟
  • 具有單一磁碟區的基本磁碟
  • 不需要有磁碟代號
  • 可以使用 NTFS 或 ReFS 格式化
  • 可選擇性設定硬體 RAID 以提供容錯功能
  • 應從備份及病毒掃描中排除
  • 儲存空間直接存取不支援磁碟見證功能
檔案共用見證
  • 在執行 Windows Server 的檔案伺服器上設定的 SMB 檔案共用
  • 不會儲存叢集資料庫的複本
  • 僅在 witness.log 檔案中維護叢集資訊
  • 最適合用於具備儲存複製功能的多站點叢集
  • 必須至少有 5 MB 的可用空間
  • 必須專用於單一叢集,且不用來儲存使用者或應用程式資料
  • 必須為叢集名稱的電腦物件啟用寫入權限

以下是代管檔案共享見證之檔案伺服器的其他考量:
  • 單一檔案伺服器可以設定檔案共用見證給多個叢集。
  • 檔案伺服器必須位於與叢集工作負載分開的站台上。 如果站台至站台之間網路通訊中斷時,這可讓任何叢集站台有相同的機會繼續運作。 如果檔案伺服器位於相同站台,該網站會成為主要的站台,而且是可連線檔案共用的唯一站台。
  • 如果虛擬機器不是位於使用檔案共用見證的同一叢集上,檔案伺服器就可以在虛擬機器上執行。
  • 為了獲得高可用性,可以在獨立的容錯移轉叢集上設定檔案伺服器。
雲端見證
  • 儲存在 Azure Blob 儲存體的見證檔案
  • 不會儲存叢集資料庫的複本
  • 建議在叢集中的所有伺服器都有可靠的網際網路連線時使用。
請參閱 部署仲裁投票者

注意

如果您設定檔案共用見證或雲端見證,然後為了維護或某些原因而關閉所有節點,您必須確定從最可靠的節點啟動叢集服務,因為最新的叢集資料庫不會儲存於這些見證中。 另請參閱此資訊

節點投票分配

身為進階仲裁設定選項之一,您可以選擇依據各個節點來指派或移除仲裁票數。 根據預設,所有節點都會被指派投票。 無論是否指派投票,叢集中的所有節點都會持續運作、接收叢集資料庫更新,以及可以代管應用程式。

您可能想要從特定災害復原設定中的節點移除投票。 例如,在多網站叢集裡,您可以將備用站台中節點的投票移除,使這些節點不會影響法定人數計算。 建議只針對跨站手動容錯移轉使用此設定。 如需詳細資訊,請參閱本主題之後會討論的 災害復原設定的仲裁考量

您可以使用 Get-ClusterNode Windows PowerShell Cmdlet,查閱叢集節點的 NodeWeight 常見屬性,以驗證節點設定的投票。 值 0 指示節點沒有設定仲裁投票。 值 1 表示節點的仲裁投票已被指派,並由叢集負責管理。 如需管理節點投票的相關詳細資訊,請參閱在本主題稍後部分的 動態仲裁管理

您可以使用 驗證叢集仲裁 驗證測試來確認所有叢集節點的投票指派。

節點投票指派的其他考量

  • 建議不要使用節點投票分配來強制設置奇數的投票節點。 而是應設定磁碟見證或檔案共用見證。 如需詳細資訊,請參閱本主題稍後所述的見證設定
  • 如果啟用動態仲裁管理,只有設定可指派節點投票的節點才能夠動態指派或移除其投票。 如需詳細資訊,請參閱本主題稍後討論的 動態仲裁管理

動態仲裁管理

在 Windows Server 2012 中,作為進階仲裁配置選項,您可以選擇啟用叢集動態仲裁管理。 如需了解動態仲裁運作原理的詳細資訊,請參閱此說明

使用動態仲裁管理時,叢集也可以在最後一個倖存的叢集節點上執行。 藉由動態調整仲裁多數需求,叢集能夠承受節點依序關閉至單一節點的狀況。

您可以使用 Get-ClusterNode Windows PowerShell cmdlet,透過叢集節點的 DynamicWeight 常見屬性來驗證節點的叢集指派動態投票。 值 0 表示節點沒有仲裁投票。 值 1 表示節點具有仲裁投票。

您可以使用 [驗證叢集仲裁] 測試來確認所有叢集節點的投票指派。

動態法定人數管理的其他考量

  • 動態仲裁管理不允許叢集承受大部分投票成員同時失敗。 若要繼續執行,叢集必須一律在節點關機或失敗時具有仲裁多數。

  • 如果您已經明確移除節點的投票,叢集就無法動態新增或移除該投票。

  • 啟用儲存空間直接存取時,叢集只能支援兩個節點故障。 這會在集區仲裁一節中進一步說明

法定人數配置的一般建議

叢集軟體會根據已設定的節點數目及共用存放裝置的可用性,自動為新叢集設定仲裁。 這通常是該叢集最適當的仲裁配置。 不過,最好在建立叢集之後先檢閱仲裁設定,然後再將叢集置入實際執行環境。 若要檢視詳細的叢集仲裁設定,您可以使用驗證設定精靈或 Test-Cluster Windows PowerShell Cmdlet 來執行驗證仲裁設定測試。 在 [容錯移轉叢集管理員] 中,基本的仲裁設定會顯示於所選叢集的摘要資訊中,或者您可以檢閱透過執行 Get-ClusterQuorum Windows PowerShell cmdlet 時返回的仲裁資源資訊。

您可以隨時執行 驗證仲裁設定 測試,以驗證仲裁設定是否為叢集的最佳化配置。 測試輸出會指出是否建議變更仲裁設定,以及最佳的設定選項。 如果建議變更,您可以使用 [設定叢集仲裁精靈] 來套用建議的設定。

叢集進入實際執行環境之後,請不要變更仲裁組態,除非您已確定變更適用於您的叢集。 您可能會想要考慮在下列情況下變更多數決設定:

  • 新增或收回節點
  • 新增或移除存放裝置
  • 長期節點故障或見證失敗
  • 在多站點災害復原情境中復原叢集

如需驗證容錯移轉叢集的詳細資訊,請參閱 驗證容錯移轉叢集的硬體

設定叢集仲裁

您可以使用 [容錯移轉叢集管理員] 或 FailoverClusters Windows PowerShell Cmdlet 來設定叢集仲裁設定。

重要

通常最好使用「設定叢集仲裁精靈」所建議的仲裁設定。 只有在您判定變更適用於您的叢集時,才建議您自訂仲裁設定。 如需詳細資訊,請參閱本主題中的 仲裁設定的一般建議

設定叢集仲裁設定

若要完成此程序,您至少必須在每部叢集伺服器上的本機 Administrators 群組中具備成員資格,或具備相等的權限。 此外,您所使用的帳戶也必須是網域使用者帳戶。

備註

您可以在不中斷叢集運行或不使叢集資源離線的情況下更改叢集仲裁設定。

使用 [容錯移轉叢集管理員] 變更容錯移轉叢集中的仲裁設定

  1. 在 [容錯移轉叢集管理員] 中,選取或指定您想要變更的叢集。

  2. 選取叢集之後,於 [動作] 中選取 [其他動作] ,然後選取 [設定叢集仲裁設定] 。 就會顯示 [設定叢集仲裁精靈]。 選取 [下一步]

  3. 選取仲裁設定選項 頁面上,選擇三個選項之一,然後完成該選項的步驟。 在您設定法定人數設定之前,您可以檢閱您的選擇。 如需選項的詳細資訊,請參閱本主題前述的了解仲裁

    • 若要允許叢集自動重設最適合您目前叢集設定的仲裁設定,請選取 [使用預設仲裁設定],然後完成精靈。

    • 若要新增或變更仲裁見證,請選取 [選取仲裁見證],然後完成下列步驟。 如需設定仲裁見證的相關資訊與考量,請參閱本主題前面部分的見證設定

      1. 在 [選取仲裁見證] 頁面上,選擇設定磁碟見證或檔案共用見證的選項。 精靈會指示針對您的叢集所建議的見證選擇選項。

        注意

        您也可以選取[不設定仲裁見證],然後結束精靈。 如果叢集中的投票節點數目為偶數,可能不建議使用此設定。

      2. 如果您選取設定磁碟見證的選項,在 [設定存放裝置見證] 頁面上,選取您要指派為磁碟見證的存放磁碟區,然後完成精靈。

      3. 如果您選擇設定檔案共用見證的選項,請在 [設定檔案共用見證] 頁面上,輸入或選擇要用作見證資源的檔案共用,然後完成精靈的步驟。

      4. 如果您選取設定雲端見證的選項,請在 [設定雲端見證] 頁面上,請輸入 Azure 儲存體帳戶名稱、Azure 儲存體帳戶金鑰和 Azure 服務端點,然後完成精靈。

        注意

        此選項可在 Windows Server 2016 和更新版本中使用。

    • 若要設定仲裁管理設定以及新增或變更仲裁見證,請選取 [進階仲裁設定],然後完成下列步驟。 如需進階仲裁組態設定的相關資訊與考量,請參閱本主題中之前討論的 節點投票指派動態仲裁管理

      1. 在 [選取投票設定] 頁面上,選取一個選項來指派投票給節點。 根據預設,所有節點都會被指派投票。 不過,在某些情況中,您只能指派投票給部分節點。

        注意

        您也可以選取 [無節點] 。 通常不建議這個選項,因為它不允許節點參與仲裁投票,而且需要設定磁碟見證。 這個磁碟目擊者會成為叢集的單一故障點。

      2. 在 [設定仲裁管理] 頁面上,您可以啟用或停用 [允許叢集動態地管理節點投票分配] 選項。 選取這個選項通常會提高叢集的可用性。 預設會啟用此選項,並強烈建議您不要停用此選項。 此選項可讓叢集在失敗的情況下繼續執行,而停用此選項時叢集就無法繼續執行。

        注意

        此選項不存在於 Windows Server 2016 和更新版本之中。

      3. 在 [選取仲裁見證] 頁面上,選取一個選項來設定磁碟見證、檔案共用見證或雲端見證。 精靈會指示針對您的叢集所建議的見證選擇選項。

        注意

        您也可以選取 [不設定仲裁見證] ,然後完成設定精靈。 如果叢集中的投票節點數目為偶數,可能不建議使用此設定。

      4. 如果您選取設定磁碟見證的選項,在 [設定存放裝置見證] 頁面上,選取您要指派為磁碟見證的存放磁碟區,然後完成精靈。

      5. 如果您選取設定檔案共用見證的選項,請在 設定檔案共用見證 頁面上,輸入或瀏覽至要做為見證資源的檔案共用,然後完成設定嚮導。

      6. 如果您選取設定雲端見證的選項,請在 [設定雲端見證] 頁面上,請輸入 Azure 儲存體帳戶名稱、Azure 儲存體帳戶金鑰和 Azure 服務端點,然後完成精靈。

        注意

        此選項可在 Windows Server 2016 和更新版本中使用。

  4. 選取 [下一步]。 在顯示的確認頁面上確認您選擇的項目,然後選取 [下一步]

在精靈執行且出現 [摘要] 頁面之後,如果您要檢視精靈所執行工作的報告,請選取 [檢視報告]。 最新的報告將保留在 systemroot\Cluster\Reports 資料夾內,名稱為 QuorumConfiguration.mht

注意

在您設定叢集仲裁之後,我們建議您執行 [驗證仲裁設定] 測試,以確認更新的仲裁設定。

Windows PowerShell 對應的命令

下列範例顯示如何使用 Set-ClusterQuorum cmdlet 和其他 Windows PowerShell cmdlet 來設定叢集仲裁。

以下範例會將叢集 CONTOSO-FC1 上的仲裁設定變更為不含仲裁見證的簡單節點多數設定。

Set-ClusterQuorum –Cluster CONTOSO-FC1 -NodeMajority

以下範例會將本機叢集上的仲裁設定變更為包含見證設定的節點多數。 名稱為 Cluster Disk 2 的磁碟資源會設定為磁碟見證。

Set-ClusterQuorum -NodeAndDiskMajority "Cluster Disk 2"

以下範例會將本機叢集上的法定人數設定變更為具備見證設定的節點多數。 名為 \\CONTOSO-FS\fsw 的檔案共用資源設定為檔案共用見證。

Set-ClusterQuorum -NodeAndFileShareMajority "\\fileserver\fsw"

以下範例會從本機叢集上的 ContosoFCNode1 節點移除仲裁投票。

(Get-ClusterNode ContosoFCNode1).NodeWeight=0

以下範例將仲裁投票新增至本機叢集上的 ContosoFCNode1 節點。

(Get-ClusterNode ContosoFCNode1).NodeWeight=1

以下範例會啟用 CONTOSO-FC1 叢集的 DynamicQuorum 屬性 (如果之前已停用):

(Get-Cluster CONTOSO-FC1).DynamicQuorum=1

在沒有仲裁的情況下啟動以復原叢集

沒有足夠仲裁投票的叢集將不會啟動。 您應該一律在第一個步驟中確認叢集仲裁設定,並調查為什麼叢集不再有仲裁。 如果有節點停止回應,或如果無法連線多站台叢集中的主要站台,就可能會發生這個問題。 識別叢集失敗的根本原因之後,您可以使用本節中所述的修復步驟。

注意

  • 如果叢集服務因仲裁失效而停止,則系統記錄檔會出現事件識別碼 1177。
  • 始終需要調查為何叢集仲裁遭到遺失。
  • 最好是讓節點或仲裁見證處於健康狀態並加入叢集,而不是在沒有仲裁的情況下啟動叢集。

強制啟動叢集節點

在判定無法透過讓節點或仲裁見證變成健康狀態的方式來復原叢集之後,就必須強制叢集啟動。 強制叢集啟動會覆寫您的叢集仲裁組態設定,並在 ForceQuorum 模式下啟動叢集。

當叢集沒有仲裁時強制它啟動對於多站台叢集而言可能特別有用。 考慮一個災害復原情境,其中叢集包含位於不同地點的主要站台和備份站台 SiteASiteB。 如果 SiteA出現真正的災害,站台需要花費大量時間來重新上線。 您可能想強制 SiteB 上線,即使它沒有法定人數。

當叢集以 ForceQuorum 模式啟動,而且重新取得足夠的仲裁投票之後,它會自動離開強制狀態,然後恢復正常狀態運作。 因此,不需要再次正常啟動叢集。 如果叢集失去節點且失去仲裁,叢集就會再次離線,因為它不再處於強制狀態。 若要讓叢集在沒有仲裁的時候恢復上線,需要強制叢集在沒有仲裁的情況下啟動。

重要

  • 強制啟動叢集之後,系統管理員可以完全控制叢集。
  • 叢集會使用強制啟動叢集之節點上的叢集設定,並將它複製到所有其他可用節點。
  • 如果您強制叢集在沒有仲裁的情況下啟動,則會忽略所有仲裁組態設定,同時叢集會維持在 ForceQuorum 模式。 這包括特定的節點投票分配和動態的仲裁管理設定。

防止剩餘叢集節點達成仲裁數

在您已經在某個節點上強制啟動叢集之後,接下來應使用能防止仲裁的設定來啟動叢集中其餘的節點。 使用防止仲裁之設定啟動的節點,會指示叢集服務加入現有的執行中叢集,而不會形成新的叢集執行個體。 這可以防止其他節點形成包含兩個競爭之執行個體的分割叢集。

當您在一些多站台災害復原案例中需要在備份網站 SiteB上強制啟動叢集來復原叢集時,這是必要的做法。 若要加入在 SiteB 中啟動的強制叢集,主要網站 SiteA 中的節點需要以阻止仲裁的方式啟動。

重要

在節點上強制啟動叢集後,我們建議您,啟動其餘節點時,務必使用防止達成法定人數的方式。

以下說明如何使用容錯移轉叢集管理員復原叢集:

  1. 在 [容錯移轉叢集管理員] 中,選取或指定您想要復原的叢集。

  2. 選取叢集之後,選取 [動作] 下面的 [強制叢集啟動]

    容錯移轉叢集管理員會強制啟動所有可連線節點上的叢集。 叢集將使用目前的叢集設定來啟動。

注意

  • 若要強制啟動特定節點 (包含要使用的叢集設定) 上的叢集, 您必須使用本程序之後所提供的 Windows PowerShell Cmdlet 或對等的命令列工具。
  • 如果您使用容錯移轉叢集管理員連線到強制啟動的叢集,而且您使用 [啟動叢集服務] 動作來啟動節點,該節點會自動使用防止仲裁的設定來啟動。

Windows PowerShell 對應命令 (Start-Clusternode)

以下範例示範如何使用 Start-ClusterNode Cmdlet 來強制啟動節點 ContosoFCNode1上的叢集。

Start-ClusterNode –Node ContosoFCNode1 –FQ

或者,您可以在本機節點上輸入以下命令:

Net Start ClusSvc /FQ

以下範例示範如何使用 Start-ClusterNode cmdlet 來啟動避免在節點 ContosoFCNode1 上達成仲裁的叢集服務。

Start-ClusterNode –Node ContosoFCNode1 –PQ

或者,您可以在本機節點上輸入以下命令:

Net Start ClusSvc /PQ

災害復原配置的仲裁考量

本節摘要說明災害復原部署中兩個多站台叢集設定的特性及仲裁設定。 法定人數組態指導方針會根據您是否需要在站點之間的工作負載進行自動容錯移轉或手動容錯移轉而有所差異。 您的設定通常取決於組織中現有的服務等級協定 (SLA),以提供及支援站台上失敗或災害事件中的叢集工作負載。

自動故障轉移

在此設定中,叢集包含兩個或多個可以代管叢集角色的站台。 如果任何站點發生故障,叢集角色預期會自動移轉至其他站點。 因此必須設定叢集仲裁,以確保任何站點都能夠承受整個站點的故障。

下表摘要說明這項設定的考量與建議。

項目 描述
每個站台的節點投票數 應該相等
節點投票分配 因為所有節點都一樣重要,所以不應該移除節點投票
動態仲裁管理 應該啟用
見證設定 建議將檔案共用見證設定在與叢集站台分開的站台。
工作負載 任何站台上均可設定工作負載

自動容錯移轉的其他考量

  • 必須在個別站台上設定檔案共用見證,來讓每個站台有相等的存活機會。 如需詳細資訊,請參閱本主題之前討論的 見證設定

手動切換

在此設定中,叢集包含一個主要站台 SiteA和一個備份 (復原) 站台 SiteB。 叢集的角色代管於 SiteA。 因為叢集仲裁設定的緣故,所以當 SiteA上的所有節點發生失敗時,叢集會停止運作。 在此案例中,系統管理員必須手動將叢集服務切換至 SiteB,並執行其他必要步驟來復原叢集。

下表摘要說明這項設定的考量與建議。

項目 描述
每個站台的節點投票數
  • 不應從主要站台 SiteA 的節點移除節點投票
  • 應將節點投票從備份網站 SiteB 的節點中移除。
  • 如果在 SiteA 發生長期中斷,則必須將投票指派給 SiteB 的節點,以便於該站點達成仲裁多數的一部分復原。
動態仲裁管理 應該啟用
見證設定
  • 請在 SiteA 節點數為偶數時設定見證。
  • 如果需要設置見證,請設定檔案共用見證或僅限於SiteA中節點可存取的磁碟見證(有時稱為非對稱磁碟見證)
工作負載 使用優先的擁有者來保持工作負載在 SiteA 的節點上執行

手動故障切換的其他考量

  • 一開始只有 SiteA 的節點被設定為仲裁投票。 這是為了確保 SiteB 的節點狀態不會影響叢集仲裁。
  • 復原步驟會視 SiteA 是否可以承受暫時失敗或長期失敗而改變。

其他相關資訊