martedì 16 gennaio 2018

vSAN check the Congestion...

A seguito di una problematica che ha portato ad un down di un host di un cluster VxRail (ESXi 6.0.0 build 4192238; problematica ancora sotto investigazione 😀 ), con il supporto EMC siamo stati costretti a re-installare da zero il nodo ed effettuare un re-join del nodo al cluster vSAN.

Terminato il processo di re-installazione ed effettuato di nuovo il join al cluster vSAN è tempo di ri-sincronizzare i dati.




Il processo di sincronizzazione potrebbe essere lungo e richiedere risorse computazionali e di I/O per un periodo eccessivamente prolungato tale da influire negativamente sulle prestazioni delle VMs che girano su cluster stesso. Per limitare/regolare il processo di sincronizzazione ed evitare di bloccare/congestionare i dischi per l'eccessivo I/O dovuto al re-sync, possiamo agire sul parametro "MaxNumResyncCopyInFlight"; che di default è impostato a 50 (ed è anche il valore massimo).

Come possiamo vedere se i dischi sono congestionati??
Di seguito il comando che possiamo lanciare su ogni host per verificare questo:


for ssd in $(localcli vsan storage list |grep "Group UUID"|awk '{print $5}'|sort -u);do echo $ssd;vsish -e get /vmkModules/lsom/disks/$ssd/info| grep Congestion;done





Valori tra:

    1-100 --> OK
101-150 --> NOT GOOD
                    Abbassare occorre abbassare il valore del parametro (Il valore deve essere lo stesso su tutti gli host che compongono il cluster)

151-250 --> VERY BAD
                    
C'è il rischio che le VMs vadano giù) abbassare il valore in tutti gli host del cluster




Come descritto in precedenza, per limitare il processo di ri-sincronizzazione possiamo andare ad agire sul valore "MaxNumResyncCopyInFlight" ed evitare di bloccare i dischi per l'eccessivo I/O.

Quando si va a modificare la variabile indicata sopra, occorre agire su ogni singolo host che fa parte del cluster/del processo di sincronizzazione.

Di default il valore di MaxNumResyncCopyInFlight è impostato a 50 e si può vedere lanciando il seguente comando su ogni singolo host:

vsish -e get /vmkModules/vsan/dom/MaxNumResyncCopyInFlight
Il comando per modificare le impostazioni correnti al volo è

vsish -e set /vmkModules/vsan/dom/MaxNumResyncCopyInFlight 25