Skip to main content
Version: Next

Task 02: Cluster Quorum Configuration

Implementation Cluster Deployment

DOCUMENT CATEGORY: Implementation Runbook SCOPE: Azure Local, WSFC (S2D / SAN), and standalone Hyper-V clusters PURPOSE: Validate the witness storage account exists (create if absent), then configure cluster quorum

Status: Active Applies To: Azure Local clusters following Phase 05 cluster deployment Last Updated: 2026-03-10

Configure cluster quorum for high availability and split-brain prevention. Cloud Witness is the recommended type for all cluster scenarios — the orchestrated and standalone scripts validate the witness storage account in Azure and create it automatically when missing before configuring quorum.


Quorum Options

Quorum TypeBest ForRequirements
Cloud WitnessAzure Local, WSFC (S2D/SAN), Hyper-V — recommendedAzure Storage Account, internet access
File Share WitnessAir-gapped or on-premises environmentsDomain-joined file server — not a cluster node
Disk WitnessLegacy WSFC/SAN onlyShared disk visible to all nodes; incompatible with S2D and Azure Local
Recommended Configuration

Cloud Witness is the recommended quorum type for all cluster scenarios. It requires an Azure Storage Account — the scripts below validate the account exists and create it automatically if missing before setting quorum.


Variables from variables.yml

PathTypeDescription
storage_accounts.storage_accounts.cluster_witness.namestringWitness storage account name
storage_accounts.storage_accounts.cluster_witness.resource_groupstringWitness resource group
storage_accounts.storage_accounts.cluster_witness.skustringStorage SKU (ZRS/LRS)
azure_platform.regionstringAzure region
compute.cluster_nodes[].management_ipstringNode management IPs

Execution Options

Failover Cluster Manager

When to use: Single cluster, prefer GUI-based configuration, or verifying an existing quorum setting

Step 1 — Verify or Create the Cloud Witness Storage Account

Before configuring quorum, ensure the storage account exists in Azure.

  1. Open Azure Portal → search for Storage accounts

  2. Verify storage_accounts.storage_accounts.cluster_witness.name exists in the correct resource group

  3. If absent, create it: | Field | Value | Source | |-------|-------|--------| | Subscription | (deployment subscription) | storage_accounts.storage_accounts.cluster_witness.subscription | | Resource group | (cluster resource group) | storage_accounts.storage_accounts.cluster_witness.resource_group | | Name | (witness SA name) | storage_accounts.storage_accounts.cluster_witness.name | | Region | (cluster region) | azure_platform.region | | Redundancy | Standard ZRS or LRS | storage_accounts.storage_accounts.cluster_witness.sku |

  4. After creation, navigate to the storage account → Security + networkingAccess keys

  5. Copy key1 — you will need it for the quorum configuration below

Step 2 — Configure Quorum via Failover Cluster Manager

Cloud Witness (recommended):

  1. Open Failover Cluster Manager on a management server or cluster node
  2. Connect to the cluster
  3. Right-click the cluster name → More ActionsConfigure Cluster Quorum Settings...
  4. Click Next on the wizard welcome screen
  5. Select Select the quorum witnessNext
  6. Select Configure a cloud witnessNext
  7. Enter:
  • Azure storage account name: <cluster_witness.name from variables.yml>
  • Azure storage account key: (key1 from Azure Portal)
  • Azure service endpoint: leave default (core.windows.net)
  1. Click NextNextFinish

File Share Witness (air-gapped / alternative):

  1. On a domain-joined file server (not a cluster node), create a shared folder
  2. Grant the cluster computer account Full Control on the share
  3. In Failover Cluster Manager: More ActionsConfigure Cluster Quorum Settings...
  4. Select Configure a file share witness
  5. Enter the UNC path: \\<file-server>\<share-name>
  6. Click NextFinish

Validation

  • Quorum witness shown in Failover Cluster Manager under the cluster summary
  • Cluster Events show no quorum-related warnings or errors
  • Get-ClusterQuorum returns expected QuorumType and QuorumResource

Validation Summary

CheckCommandExpected Result
Quorum typeGet-ClusterQuorum | Select QuorumTypeNodeAndCloudWitness or NodeAndFileShareMajority
Quorum state(Get-Cluster).QuorumStateNormal
Witness resourceGet-ClusterResource | Where-Object ResourceType -match "Witness"State: Online
Storage accountGet-AzStorageAccount -Name <name> -ResourceGroupName <rg>ProvisioningState: Succeeded

Troubleshooting

IssueCauseResolution
Set-ClusterQuorum fails with access deniedInsufficient permissions on cluster or storage accountRun as cluster administrator; verify SPN has Storage Account Key Operator Service Role on the witness storage account
Quorum state shows NotConfiguredCloud witness storage account key is incorrect or rotatedRe-configure with fresh key: Set-ClusterQuorum -CloudWitness -AccountName <name> -AccessKey <newkey>
Witness resource shows FailedStorage account firewall blocking cluster node IPsAdd cluster node public IPs to the storage account firewall allow list or enable Allow trusted Microsoft services

PreviousUpNext
Task 01: Deploy SDNPhase 06 IndexTask 03: Security Groups