Suite à notre migration vCenter 6, nous avons été confronté à des soucis de stabilité pendant quelques jours. Lors de l’arrivée de nos équipes de MCO à 6h le matin, ils retrouvaient systématiquement le vCenter dans un état instable, leur interdisant de créer ou modifier des VMs. De plus, la plupart des tâches planifiées ne fonctionnaient plus correctement.
Nous avons donc contacté rapidement le support VMWare. Nous suspections au départ un bug au niveau des fonctions “Storage” et en particulier StorageDRS que nous utilisons sur tous nos ensemble de datastore. Mais après escalade chez VMWare, il s’est avéré qu’en fait, le problème ne venait pas spécialement de vCenter mais d’un bridage par défaut du stack IP de notre Windows Server. En effet, par défaut, un Windows limite artificiellement le nombre de ports TCP user (>1024) capables d’être utilisés pour ouvrir des sessions TCP à “seulement” 5000. De plus, le TimeWait associé à chaque port fermé est réglé à 240 Secondes. Or, lors des phases de sauvegardes de VM (en début de soirée jusqu’au milieu de la nuit chez nous), visiblement, ces 5000 ports combinés au TimeWait, qui suffisaient sous vCenter 5.5, sont désormais insuffisants sur vCenter 6.
Résultat, pendant ces phases – intenses – de backup, vCenter 6 finissait par ne plus disposer de port de libre pour assurer la communication avec tous les composants de l’infra et entrait dans un mode dégradé lui interdisant de fonctionner correctement. On pouvait toujours se connecter, mais rien de plus ou presque.
Il a suffit que nous modifions ces deux paramètres, dans la base de registre Windows pour que notre nouveau vCenter se comporte à nouveau parfaitement et retrouve la stabilité (pour l’instant en tout cas :D) de la version précédente. Pour se faire, il vous suffit d’aller créer/modifier (suivant que les entrées en question existent déjà ou non dans votre machine) deux entrées de la base de registre Windows sous le chemin HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
:
– Passez l’entrée MaxUserPort
, de type REG_DWORD de 5000 par défaut à 65534 (décimal) – on autorise donc tous les ports supérieurs à 1024 à être utilisés par les process Windows.
– Passez l’entrée TcpTimedWaitDelay
, de type REG_DWORD de 240 par défaut à 30 (décimal) – lors de la fermeture d’une session TCP, le kernel verrouille le port pendant seulement 30 secondes.
Une fois ceci fait, rebootez votre machine …. et profitez de votre vCenter 6 !
Bonjour,
A quoi sert le Windows server causant ce dysfonctionnement ?
Le Windows est celui qui héberge l’instance vCenter, justement. Si vous travaillez avec une VCSA vous n’êtes pas concerné ;)