Windows Failover Cluster: “unable to create cluster” – come risolvere l’errore “Error occurred while creating the cluster and the nodes will be cleaned up”

Durante la creazione di un Windows Failover Cluster può comparire l’errore “Error occurred while creating the cluster and the nodes will be cleaned up”. In questa guida trovi una procedura operativa, script e checklist per risolvere rapidamente la causa e completare la creazione del cluster.

Indice

Sintomi e messaggio di errore

Nel wizard di Failover Cluster Manager o via PowerShell (New-Cluster) la procedura si interrompe con il messaggio:

Error occurred while creating the cluster and the nodes will be cleaned up

Il processo esegue un rollback automatico: i nodi vengono rimossi dalla configurazione parziale e il cluster non viene creato. Questo errore è generico: indica che qualcosa tra validazione, connettività, permessi di dominio, DNS o stato dei nodi non è in ordine.

Perché accade: cosa c’è dietro quel messaggio

La creazione di un Windows Server Failover Clustering (WSFC) implica più passaggi coordinati:

  • Validazione hardware/OS/rete/storage dei nodi (Cluster Validation).
  • Creazione dell’oggetto computer del cluster in Active Directory (Cluster Name Object, CNO) e relativa registrazione DNS.
  • Assegnazione dell’indirizzo IP del cluster e inizializzazione del servizio di clustering.
  • Eventuale creazione di ruoli e Virtual Computer Object (VCO) per i servizi in alta disponibilità.

Se uno di questi punti fallisce (permessi insufficienti in AD, record DNS non aggiornati, porte bloccate, differenze di orario che rompono Kerberos, residui di una configurazione precedente sui nodi), il wizard interrompe la creazione e ripulisce quanto fatto, mostrando l’errore in oggetto.

Procedura di risoluzione consigliata (rapida)

  1. Esegui la convalida del cluster. Avvia il Cluster Validation Wizard da Failover Cluster Manager e analizza tutti i report. In PowerShell: Test-Cluster -Node NODO1,NODO2 -Include "Inventory","Network","Storage","System Configuration" Correggi ogni Warning/Error (dischi, rete, AD, sicurezza) prima di proseguire.
  2. Pulisci lo stato dei nodi. Su ciascun nodo, con PowerShell elevata: Clear-ClusterNode -Force Rimuove configurazioni parziali lasciate dal tentativo precedente e riporta i nodi a uno stato “pulito”.
  3. Verifica l’account di accesso. L’utente con cui stai creando il cluster deve essere un account di dominio con permessi adeguati (membro di Domain Admins o con delega specifica alla OU). Assicurati anche che la OU dove risiederà il CNO consenta la creazione dell’oggetto computer.
  4. Controlla DNS, firewall e orologio. Accertati che i record DNS siano corretti, le porte richieste non siano bloccate e che l’ora sia sincronizzata.
  5. Riesegui la creazione. Dopo i passaggi sopra, ripeti la creazione. Nel caso reale che ha ispirato questa guida, il cluster è stato creato con successo al secondo tentativo.

Prerequisiti: non saltarli

  • Feature installate: su tutti i nodi: Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools
  • Rete: connettività L2/L3 tra i nodi, DNS funzionante, latenza adeguata.
  • Storage (se usato): dischi condivisi visibili con identica firma a tutti i nodi (o CSV), senza partizioni “sporche”.
  • Account di dominio: credenziali con i diritti indicati qui sotto.

Validazione: come leggerla e cosa sistemare

La validazione (Test-Cluster) è il semaforo verde prima della creazione. Ecco come interpretarla:

  • Inventory: versioni OS, patching coerente, driver HBA/NIC allineati. Disallineamenti importanti → aggiornare.
  • Network: verifica routing, DNS, MTU, doppio NIC teaming. Errori su “Same Subnet” o “Misconfigured network” vanno risolti.
  • Storage: coerenza di visibilità dei LUN, supporto SCSI-3 PR, verifiche di latenza I/O.
  • System Configuration: servizi essenziali, firewall, ruoli e funzionalità richieste.

Se il report contiene errori di Active Directory (impossibilità di creare il CNO) o di DNS (record non aggiornati), correggili prima di proseguire.

Pulizia completa con Clear-ClusterNode

Quando un tentativo fallisce, su ciascun nodo esegui:

Clear-ClusterNode -Force

Questo cmdlet rimuove servizi, chiavi di registro e metadata del clustering lasciati in stato intermedio. È sicuro se il cluster non è stato creato. In scenari misti (alcuni nodi dentro, altri fuori) verifica sempre lo stato complessivo con:

Get-Service -Name ClusSvc
Get-Cluster -ErrorAction SilentlyContinue

Permessi in Active Directory: cosa serve davvero

Per creare un cluster è necessario che l’utente o la OU alvo dispongano dei diritti per creare l’oggetto computer del cluster (CNO) e che il CNO, a sua volta, possa creare i VCO (computer virtuali) per i ruoli in HA.

OggettoDiritto minimoDoveNote operative
Account che crea il clusterCreate/Delete Computer ObjectsOU target del CNOIn alternativa, usa un account Domain Admin.
CNO (computer del cluster)Create Computer ObjectsOU dei VCONecessario per creare i nomi client dei ruoli (file server, ecc.).
DNSAggiornamento dinamicoZona DNS del dominioVerifica che i record A/AAAA possano essere creati o aggiornati.

Se preferisci il pre-staging, puoi creare manualmente l’oggetto computer del cluster (CNO) in AD, disabilitarlo, quindi assegnare all’account che crea il cluster il controllo necessario su tale oggetto e sulla OU dei VCO. Dopo la creazione, il CNO verrà abilitato automaticamente e registrerà i record DNS.

DNS e sincronizzazione oraria

Gli errori più subdoli arrivano spesso da DNS e orario.

  • DNS: controlla la risoluzione forward/reverse dei nodi e l’eventuale record del nome cluster (se preesistente, valuta l’eliminazione). Esempi rapidi: Resolve-DnsName NODO1 Resolve-DnsName NODO2 Resolve-DnsName NOMECLUSTER
  • Orario (Kerberos): differenze superiori a pochi minuti tra nodi e controller di dominio causano fallimenti di autenticazione. Comandi utili: w32tm /query /status w32tm /query /configuration w32tm /resync

Firewall e porte richieste

Assicurati che le seguenti porte/protocolli siano consentiti tra i nodi (e verso DC/DNS/file share witness):

ServizioPorte/ProtocolliDirezioneUsoVerifica rapida
Cluster service/HeartbeatTCP/UDP 3343Tra nodiComunicazione interna clusterTest-NetConnection <nodo> -Port 3343
RPC Endpoint MapperTCP 135Tra nodi e verso DCWMI/DCOM, gestione remotaTest-NetConnection <dc> -Port 135
RPC dinamicheTCP 49152–65535Tra nodi e verso DCChiamate DCOM/WMIValuta regole firewall dedicate
SMBTCP 445Verso file share/DCFile Share Witness, accessiTest-NetConnection <server> -Port 445
KerberosTCP/UDP 88Verso DCAutenticazioneControlla tempi e SPN
LDAP/LDAPSTCP 389/636Verso DCQuery a ADTest-NetConnection <dc> -Port 389
DNSUDP/TCP 53Verso DNSRisoluzione nomiTest-NetConnection <dns> -Port 53
NTPUDP 123Verso time sourceSincronizzazione orariaw32tm /resync

Se sei in cloud, verifica anche le regole dei network security group o firewall virtuali.

Rieseguire la creazione del cluster in modo pulito

Dopo validazione, pulizia e verifiche, crea il cluster con PowerShell (consigliato per trasparenza e ripetibilità):

$ClusterName = "NOMECLUSTER"
$ClusterIP   = "10.10.10.50"   # opzionale, se usi IP statico
$Nodes       = "NODO1","NODO2"

(opzionale) Se usi una specifica rete per il cluster:

New-Cluster -Name $ClusterName -Node $Nodes -StaticAddress $ClusterIP -NoStorage -AdministrativeAccessPoint ActiveDirectoryAndDNS

New-Cluster -Name $ClusterName -Node $Nodes -StaticAddress $ClusterIP
Start-ClusterGroup -Name "Cluster Group"
Get-ClusterNetwork | Format-Table Name, Role, Address

Se aggiungi nodi successivamente:

Add-ClusterNode -Name NODO3

Per generare i log in caso di nuovo errore:

Get-ClusterLog -UseLocalTime -Destination C:\Temp\ClusterLogs

Script di pre-check automatico (puoi incollarlo così com’è)

Questo script esegue i controlli più comuni: DNS, tempo, porte chiave tra nodi e un Test-Cluster senza storage.

param(
  [Parameter(Mandatory=$true)][string[]]$Nodes,
  [Parameter(Mandatory=$true)][string]$ClusterName,
  [string]$WitnessShare
)

Write-Host "== Pre-check per Failover Cluster =="

1) DNS

$targets = $Nodes + $ClusterName
foreach ($t in $targets) {
Write-Host "DNS: $t"
try { Resolve-DnsName -Name $t -ErrorAction Stop | Out-Null; Write-Host "  OK - Risoluzione riuscita" }
catch { Write-Warning "  FAIL - Impossibile risolvere $t" }
}

2) Tempo

Write-Host "Sincronizzazione oraria (w32tm)"
w32tm /query /status

3) Porte tra nodi

$ports = 3343,135,445
foreach ($src in $Nodes) {
foreach ($dst in $Nodes) {
if ($src -ne $dst) {
foreach ($p in $ports) {
Write-Host "Test porta $p da $src verso $dst"
Invoke-Command -ComputerName $src -ScriptBlock {
param($d,$port)
$r = Test-NetConnection -ComputerName $d -Port $port -WarningAction SilentlyContinue
if ($r.TcpTestSucceeded) { Write-Host "  OK" } else { Write-Warning "  FAIL" }
} -ArgumentList $dst,$p
}
}
}
}

4) Test-Cluster (senza storage, per rapidità)

try {
Test-Cluster -Node $Nodes -Include "Inventory","Network","System Configuration" -ErrorAction Stop
Write-Host "== VALIDAZIONE OK =="
} catch {
Write-Warning "== VALIDAZIONE CON ERRORI: verifica il report in C:\Windows\Cluster\Reports =="
}

5) Witness (opzionale)

if ($WitnessShare) {
Write-Host "Verifica accesso alla share witness: $WitnessShare"
Test-Path $WitnessShare | ForEach-Object { if ($_){ Write-Host "  OK" } else { Write-Warning "  FAIL" } }
}

Note pratiche su AD e DNS

  • Oggetti duplicati: se la creazione è fallita dopo aver parzialmente creato il CNO, in AD potresti trovare l’oggetto disabilitato. Eliminalo (o correggi i permessi) prima di riprovare.
  • Protezione da eliminazione accidentale: se abilitata sulla OU, può bloccare la creazione o la rimozione del CNO/VCO. Verifica le proprietà della OU.
  • Record DNS residui: un record A/AAAA del nome cluster preesistente con IP errato può impedire l’aggiornamento. Rimuovilo o correggilo.

Storage e quorum: verifiche essenziali

Se usi dischi condivisi, esegui questi controlli prima della creazione:

  • Visibilità: ogni LUN deve essere presentato a tutti i nodi con la stessa firma disco.
  • Sanità: nessun disco “offline” o con errori nel Visualizzatore eventi.
  • CSV: se pianifichi i Cluster Shared Volumes, verifica che i nodi supportino e abbiano i driver aggiornati.

Per il quorum, scegli il witness appropriato:

  • File Share Witness: una share altamente disponibile e raggiungibile da tutti i nodi.
  • Cloud Witness: pratico in ambienti con siti geografici diversi.
  • Disk Witness: se disponi di storage condiviso dedicato.

Checklist rapida di risoluzione

  • Failover Clustering installato su tutti i nodi.
  • Validazione completata senza errori bloccanti.
  • Clear-ClusterNode -Force eseguito su tutti i nodi dopo un tentativo fallito.
  • Account con diritti in AD sulla OU target; CNO con permessi per creare VCO.
  • DNS pulito e aggiornamenti dinamici funzionanti.
  • Firewall: 3343, 135, 49152–65535, 445, 88, 389/636, 53, 123 aperti secondo necessità.
  • Tempo sincronizzato tra nodi e DC.
  • Storage condiviso coerente (se usato).

Domande frequenti

Il wizard dice che non può creare il nome del cluster.
Quasi sempre è un problema di permessi in AD oppure di record DNS preesistente. Delega “Create Computer Objects” alla OU e verifica che non esistano oggetti/record col medesimo nome.

Il cluster si crea ma l’IP resta “Failed”.
Il record DNS non si aggiorna o l’IP è già in uso. Controlla DHCP/IP statico, eventuale ARP caching e la reachability della subnet.

La validazione segnala differenze di driver di rete.
Allinea i driver/firmware delle NIC e verifica le impostazioni (VLAN, jumbo frame, RSS/VMQ) in modo coerente su tutti i nodi.

Non ho storage condiviso.
Puoi creare un cluster senza storage e usare un File Share o Cloud Witness per il quorum; abilita i ruoli che non richiedono dischi condivisi.

Esempio end‑to‑end: dalla verifica alla creazione

  1. Su tutti i nodi: installa la feature e riavvia se richiesto. Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools
  2. Esegui la validazione: Test-Cluster -Node NODO1,NODO2 -Include "Inventory","Network","Storage","System Configuration"
  3. Se fallisce, correggi i punti evidenziati e riprova. Se la creazione è già stata tentata, pulisci: Clear-ClusterNode -Force
  4. Verifica permessi in AD (OU corretta, nessun oggetto duplicato), DNS e orario.
  5. Crea il cluster: New-Cluster -Name "NOMECLUSTER" -Node "NODO1","NODO2" -StaticAddress "10.10.10.50"
  6. Imposta il witness (esempio: file share): Set-ClusterQuorum -FileShareWitness "\\server\witness$"
  7. Verifica lo stato: Get-ClusterGroup | Format-Table Name, State, OwnerNode Get-ClusterNetwork | Format-Table Name, Role, Address

Conclusione

Il messaggio “Error occurred while creating the cluster and the nodes will be cleaned up” indica un fallimento in fase di inizializzazione dovuto quasi sempre a validazione non superata, residui di configurazioni sui nodi, permessi AD/DNS insufficienti o problemi di rete/tempo. Seguendo l’ordine validazione → pulizia → permessi di dominio → DNS/porte/tempo → nuova creazione la situazione si risolve nella stragrande maggioranza dei casi. Nel caso reale da cui nasce questo articolo, dopo Clear-ClusterNode, il controllo degli account di dominio e la sistemazione di DNS, il cluster è stato creato correttamente al secondo tentativo, con feedback finale: “Thank you, now it’s working”.

Riferimenti operativi veloci

  • Validazione: Test-Cluster
  • Pulizia: Clear-ClusterNode -Force
  • Creazione: New-Cluster
  • Log: Get-ClusterLog -UseLocalTime -Destination C:\Temp
  • DNS: Resolve-DnsName <host>
  • Tempo: w32tm /query /status
  • Porte: Test-NetConnection <host> -Port <n>

Suggerimento: conserva uno script di provisioning con tutti i parametri (nome cluster, IP, nodi, OU, witness). La ripetibilità è fondamentale: se devi rifare l’operazione avrai un’unica fonte di verità e ridurrai drasticamente gli errori.

Indice