Home Problème de dvSwitch, pensez à mkdir !
Post
Cancel

Problème de dvSwitch, pensez à mkdir !

Je suis certain que vous avez déjà été confronté à des problèmes de synchronisation de dvSwitchs. Certains ESXi partageant un même dvs apparaissent comme “out of sync”. voici une petite astuce entre ami(e)s pour tenter de résoudre le souci facilement, sans solliciter la hotline VMware.

J’ai récemment été confronté à des soucis similaires de synchronisation entre les inventaires dvs de certains de nos ESXi de production et l’inventaire central maintenu coté vCenter. Le fait est que l’intégration des dvSwitchs gérés au sein d’une même VCSA a toujours été un peu “laborieuse”, dans le sens ou vCenter en maintient une vision théoriquement complète et que les ESXi ne conservent finalement que les liaisons logiques des VM qu’ils exécutent à un instant T et les portgroups sur lesquels elles sont cablées (c’est pourquoi on vous demande de faire des sauvegarades de configurations dvSwitchs lorsque vous voulez migrer des clusters d’un vCenter à un autre).

Cela signifie que vCenter doit garder dynamiquement une synchronisation parfaite entre les configuration partielles des dvSwtichs sur les ESXi auxquels il est relié et sa base de données centrale. Dans la pratique, cela peut poser problème lors de certaines mises à jours de version de dvSwitch (notamment entre les versions majeures 5.5, 6.5, 6.6). J’ai eu l’occasion d’être confonté à certains de ces soucis de synchro. Pour le coup, j’ai contacté VMware et pris le temps de suivre les pistes suivies par l’ingénieur support pour pouvoir ensuite appliquer les hints & tips sur ce sujet en cas de récidive et dans le cas ou la remédiation était sans risques ^^.

Dans 80% des cas, la solution est relativement simple. D’après ce que j’ai compris, les ESXi gardent une synchronisation des port connectés à chaque VM via l’utilisation d’un répertoire “commun” partagé par la majortié des hyperviseurs en question (Si vous êtes en HCI, VSAN est un partenaire privilégié, forcément). Ce répertoire est, la encore en théorie, créé directement et automatiquement par vCenter, pour assurer cette synchro dans de bonnes conditions. Malheureusement, certains répertoires ne se sont pas tout le temps créé ou ne sont plus utilisables/partagés. Cela se traduit par l’impossibilité des ESXi de maintenir l’état partagés de leurs ports de VM connectés, et donc vous obtenez en général une alerte vCenter vous indiquant qu’il existe un souci de synchronisation sur votre dvs.

Pour résoudre ce problème, il suffit de scanner le fichier /var/log/hostd.log à la recherche du ou des répertoires manquants, puis simplement les recréer à la main, via un banal mkdir. Ce répertoire étant partagé sur un datastore commun, il suffit de le faire une seule fois et d’attendre un refresh coté vCenter, modulo quelques minutes. Utilisez une commande sur chaque ESXi présenté via l’appui sur le bouton “details” dans la page “Summary” de votre dvs posant problème (désolé, je n’ai pas gardé de screeenshot, honte sur moi), pour afficher ce ou ces répertoires inexistants :

1
2
3
4
5
6
esx-001 $ grep "failed to create dir" var/log/hostd.log | awk '{print $13}' | awk -F ".dvs" '{print $1}' | sort -u

/vmfs/volumes/vsan:5267fceb585ab76e-c2335d44a4353542/5a305260-9e47-5b16-21d6-e4434bce2540/
/vmfs/volumes/vsan:5267fceb585ab76e-c2335d44a4353542/937b5060-d057-7961-e139-e4434bce2540/
/vmfs/volumes/vsan:5267fceb585ab76e-c2335d44a4353542/aa53d35f-d092-3aa9-54b6-e4434bce2540/
/vmfs/volumes/vsan:5267fceb585ab76e-c2335d44a4353542/ff335260-fec0-c81a-b8bd-e4434bce2540/

Ensuite, pour chaque répertoire trouvé avec la commande grep “failed to create dir”, lancez un mkdir associé :

1
2
3
4
esx-001 $ mkdir /vmfs/volumes/vsan:5267fceb585ab76e-c2335d44a4353542/937b5060-d057-7961-e139-e4434bce2540/
esx-001 $ mkdir /vmfs/volumes/vsan:5267fceb585ab76e-c2335d44a4353542/aa53d35f-d092-3aa9-54b6-e4434bce2540/
esx-001 $ mkdir /vmfs/volumes/vsan:5267fceb585ab76e-c2335d44a4353542/5a305260-9e47-5b16-21d6-e4434bce2540/
esx-001 $ mkdir /vmfs/volumes/vsan:5267fceb585ab76e-c2335d44a4353542/ff335260-fec0-c81a-b8bd-e4434bce2540/

Laissez mijoter quelques minutes. Si vous n’avez qu’un souci de ce type, votre dvs redeviendra synchro comme par magie.

Bon, évidemment, il y a des cas ou c’est plus compliqué et surtout non résoluble coté ESXi. Typiquement, il peut s’avérer qu’il reste des traces de connexions de ports de vm non connectés réellement mais vus comme tel (un vmotion qui s’en mal terminé ou une mise à jours plus difficile). Dans ces cas là, l’opération doit être réalisée coté vCenter : il s’agit de purger totalement les enregistrements invalides encore présent dans la BDD postgreSQL de la VCSA. Là, nous n’avons plus vraiment d’échapatoire, il faut taper du SQL insert/delete/update. Dans ces cas de figure je ne peux que trop vous conseiller de vous rapprocher directement de VMware. Les ingénieurs support ont une procédure scriptée qui simplifie grandement la procédure, mais devra passer par un shutdown temporaire du VPXD.

J’espère que ces petits tips vous aiderons, bonne continuation à toutes et à tous, et à bientôt au VMware explore (j’y serai) !

This post is licensed under CC BY 4.0 by the author.