Configurare un site-aware failover cluster e la node fairness in Windows Server 2016
Il Site-Aware failover è una novità relativa alla funzionalità di Failover Clustering che è stata introdotta in Windows Server 2016. Anche se in realtà già in Windows Server 2012 R2 era possibile realizzare un cluster i cui nodi erano funzionanti in due regioni geografiche diverse, non c’era modo per indicare in quale di queste regioni si trovassero i diversi nodi, in modo tale da poterli gestire in maniera diversa e poter indicare ai diversi servizi di poter fare “failover” nella stessa area geografica.
Con Windows Server 2016 è stata invece introdotta la possibilità di raggruppare i nodi in base alla loro posizione fisica in modo tale da poter, ad esempio, permettere alle risorse del cluster di poter essere trasferite su un nodo nello stesso sito in caso di manutenzione o draining di un altro nodo.
Per poter implementare la site awareness è possibile procedere in due modi, uno automatico ed uno manuale.
Se si utilizza il modo automatico è possibile utilizzare i Site di Active Directory. Quindi se avete già definito dei Site dentro i quali avete messo i vostri Domain Controller e a cui avete associato delle subnet, vi basterà digitare il comando PowerShell (lanciato con privilegi elevati):
1 |
(Get-Cluster).AutoAssignNodeSite = 1 |
Se volete utilizzare la modalità manuale sarà invece prima necessario definire quali sono i Site e successivamente aggiungervi i nodi, utilizzando i comandi PowerShell (lanciati con privilegi elevati):
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#Creazione dei Site New-ClusterFaultDomain –Name Roma –Type Site –Description "Datacenter Primario" –Location "Datacenter Roma" New-ClusterFaultDomain –Name Milano –Type Site –Description "Datacenter Secondario" –Location "Datacenter Milano" #Assegnazione dei nodi ai Site Set-ClusterFaultDomain –Name Nodo1 –Parent Roma Set-ClusterFaultDomain –Name Nodo2 –Parent Roma Set-ClusterFaultDomain –Name Nodo3 –Parent Milano Set-ClusterFaultDomain –Name Nodo4 –Parent Milano |
Questo tipo di configurazione permette di migliorare notevolmente il failover, il placement delle macchine virtuali, gli heartbeat tra i nodi e il quorum.
Ad esempio la Failover Affinity permette che le risorse vengano spostate su un nodo dello stesso sito, prima di tentare di spostarle in un sito differente. Inoltre durante la Node Drain le macchine virtuali vengano spostate localmente, su un nodo vicino.
Il Cross-Site Heartbeat da’ la possibilità di configurare in maniera accurata alcuni parametri come ad esempio il CrossSiteDelay (il tempo tra due heartbeat inviati tra nodi in siti diversi) e il CrossSiteThreshold (il numero di heartbeat persi tra due nodi in site diversi). Entrambi i valori sono configurabili con i comandi PowerShell (lanciati con privilegi elevati)
1 2 3 |
(Get-Cluster).CrossSiteDelay = 1000 #valore di default (Get-Cluster).CrossSiteThreshold = 20 #valore di default |
Un’altra interessante novità di Windows Server 2016 riguarda la Virtual Machine Node Fairness, che è già abilitata di default ma che viene disabilitata se utilizzate la funzionalità Dynamic Optimization di System Center Virtual Machine Manager. La VM Node Fairness permette di bilanciare le macchine virtuali tra i diversi nodi del cluster: dopo aver valutato l’utilizzo del processore e della memoria, le macchine vengono automaticamente migrate (utilizzando la Live Migration) da un nodo più carico ad un nodo scarico. Il bilanciamento può essere configurato per ottenere le migliori performance nel cluster, utilizzando il comando PowerShell (eseguito con privilegi elevati) per configurare la percentuale di utilizzo del nodo:
1 |
(Get-Cluster).AutoBalancerLevel = 2 |
riprendendo i valori dalla seguente tabella:
AutoBalancerLevel |
Aggressiveness |
Host load percentage |
1 (default) |
Low |
80% |
2 |
Medium |
70% |
3 |
High |
60% |
Oppure è possibile configurare ogni quanto tempo deve essere utilizzata la node fairness, utilizzando il comando PowerShell (eseguito con privilegi elevati):
1 |
(Get-Cluster).AutoBalancerMode = 2 |
riprendendo i valori dalla seguente tabella:
AutoBalancerMode |
Behavior |
0 |
Disabled |
1 |
Balance on node join only |
2 (default) |
Balance on node join and every 30 minutes |
Conclusioni
Queste due importanti novità relativa al cluster di Windows Server 2016 sono pensate sia per la gestione del Disaster Recovery geografico tra diversi siti della nostra infrastruttura, sia per l’ottimizzazione delle performance dei nodi, senza dover ricorrere a prodotti a pagamento come SCVMM. Sicuramente un grosso passo in avanti per rendere i nostri datacenter più performanti ed avere lo stesso livello di funzionalità offerte dal Cloud pubblico.