VMWare ESX permet de virtualiser des serveurs. Il faut alors indiquer les ressources "matérielles" souhaitées. Dans notre cas, il fallait s'exprimer en "UO" où une UO correspond à 1 VCPU ("Virtual CPU") à 667 MHZ et 1Go de RAM. Les calculs nous ont amenés à demander 4UOs, soit: 4VCPU et 4Go de RAM. Puis les tests de performances ont commencés. Là, c'est simple, on fait une supervision standard de 10 serveurs de tests. Les serveurs sont correctement supervisés avec les indicateurs standards (CPU, RAM, partitions, processus, Swap, interfaces réseaux, matériels, ...) et les indicateurs spécifiques. Puis on multiplie ces serveurs en ajoutant un chiffre à la fin. À la fin on obtient 100 * 10 serveurs pour un total d'environs 10 000 indicateurs. On lance Nagios et on regarde.

Bon, le premier résultat est loin d'être positif. Donc on améliore ici ou là. De mon côté, j'avais peu d'espoir d'améliorations car j'ai l'habitude de faire une configuration de base performante, avec toutes les bonnes pratiques. Deux jours dessus, on améliore un peu les choses mais pas de quoi crier victoire. Les VCPUs sont tous à fond, la load grimpe, la latence de Nagios explose et le NTP disjoncte. Et c'est là le problème: le temps n'est plus une donnée fiable. En effet, VMWare a beaucoup de mal à synchroniser les horloges des serveurs invités. Il semblerait que ce ne soit pas un problème lié spécifiquement à VMWare mais à tous les outils de virtualisation. Je n'ai pas d'informations précises, je suis très loin d'être un expert là dessus. Comme le temps n'est plus une donnée fiable, Nagios s'emmêle les pinceaux. Comme il se base sur le temps pour effectuer tous ces tests, dès que le temps n'est plus une donnée fiable, Nagios perd les pédales. En même temps, il ne faut pas lui en vouloir, c'est son travail: ordonnancer tous les tests, les lisser dans le temps pour éviter la surcharge de la machine de supervision et de toutes les machines supervisées. L'horloge de la machine invitée perdait 30 secondes toutes les minutes. Voyant cela, Nagios essaye de plus en plus de lancer de tests, d'où une surcharge. Ce qui entraîne une perte de temps plus importante de la part de Nagios... qui doit compenser en lançant plus de tests en simultané... donc une plus grande surcharge... qui aboutit à une perte de temps plus importante... que Nagios doit compenser ... surcharge.. perte de temps... compensation ... ... ... Rien n'y a fait: obliger NTP à se synchroniser toutes les minutes, sélection de plugins Nagios plus rapides, augmentation au maximum du reaper_frequency, ... Rien! "Donnez moi une machine physique!!!". Ha non, ce n'est pas possible...

Puis une idée de génie de la personne qui s'occupe de VMWare. On va passer de 4VCPUs à un seul CPU mais plus rapide. Et... ça marche! Nagios est beaucoup plus à l'aise. La synchronisation temporelle se fait entre les serveurs NTP même si des décalages peuvent apparaître ici ou là. Cependant, ce n'est en rien comparable avec la configuration précédente. Ça marche donc! Hourra! Mais je ne sais pas pourquoi, je ne suis pas totalement convaincu par la virtualisation. Je ne lui confierais pas ma vie pour le moment... À suivre!