Ho letto un interessante post sul blog Yellow Bricks: un loro cliente possiede due blade chassis HP C7000, ognuno equipaggiato con 16 blade servers, per un totale di 32 ESX hosts. Con il tutto configurato in un unico grande HA cluster ci si aspetterebbe una ridondanza totale.
Pochi giorni fa uno degli chassis si è rotto; beh diremmo tutti, il sistema HA prende in carico tutte le virtual machine dei 16 nodi andati in fail e li riavvia sui nodi del secondo chassis…. Beh, a questo cliente non è ripartito nulla! E la cosa più divertente è che, dopo aver aperto un caso con VMware, si è sentito rispondere dai tecnici VMware che “HA sta lavorando come progettato”…
Capito cosa è successo? Beh, se ripensiamo a un mio precedente post la risposta dovrebbe risultare immediata: tutti i 5 host primari del cluster HA si trovavano sul primo chassis e quindi non c’era nessun failover coordinator per riavviare le VM sugli altri host. Probabilmente questo cliente ha fatto le cose con metodo e ha installato i vari host seguendo l’ordine dei blade, prima tutti quelli di uno chassis e poi quelli del secondo. Si può discutere per ore se non sia il caso in futuro di avere la possibilità di designare manualmente i nodi primari in modo da distribuirli, ma fintanto che questa è la modalità operativa queste situazioni possono essere evitate in due modi:
1. “giocare” col posizionamento dei nodi primari
Riprendiamo lo schema di prima con 32 blades in due chassis con 16 nodi cadauno. Avremo una discreta possibilità agendo come questo cliente di avere tutti i nodi primari in esecuzione sullo stesso chassis. Sebbene non sia progettabile a priori, possiamo modificarlo con dei “trucchi”: se mettiamo un nodo primaio in maintenance mode un nodo secondario viene promosso. Stessa cosa se rimuoviamo un primario dal cluster. E siccome la promozione di un secondario è casuale (o meglio, credo esista un algoritmo a noi ignoto), dovremo a ogni passaggio verificare quali sono i nodi primari:
cat /var/log/vmware/aam/aam_config_util_listnodes.log
Node Type State
——————- ———— ————–
esx001 Secondary Agent Running
esx002 Primary Agent Running
esx003 Primary Agent Running
esx004 Primary Agent Running
esx005 Primary Agent Running
esx006 Secondary Agent Running
esx007 Secondary Agent Running
esx008 Primary Agent Running
2. modificare il disegno del Cluster Ha
Sempre seguendo l’esempio originale, potremmo creare 4 cluster da 8 nodi ciascuno, con 4 host in ogni chassis. In questo modo almeno uno dei 5 primari sarà in uno chassis diverso dagli altri 4.
Ovviamente la soluzione 2 è di gran lunga da preferire, in quanto la sua gestione è migliore, più semplice e meno dipendente da numerose attività manuali. E’ meglio quindi preferire la creazione di tanti piccoli cluster piuttosto che uno unico di grosse dimensioni.