Brevet FR3008808A1 — publié le 20150123

L'invention concerne les équipements de réseau modulaires, en particulier les équipements tels que ceux utilisés dans les installations à grande échelle telles que grappes de serveurs, réseaux de télécommunications, routeurs... mises en oeuvre par les hébergeurs web, les fournisseurs d'ac- cès Internet, les centres de stockage et de traitement de données de type datacenter, etc. Ces équipements modulaires se présentent souvent sous la forme de châssis installés dans des baies, chaque châssis comportant une pluralité de modules ou "lames" amovibles insérées et juxtaposées dans autant d'emplacements ou s/ots du châssis. L'un des aspects importants de ces équipements est leur alimentation électrique, qui doit être conçue pour garantir en toutes circonstances la continuité du service rendu aux clients et utilisateurs. Dans le cas d'une machine traditionnelle avec serveur unique, celui-ci dispose de son alimentation propre, qui est dimensionnée en fonction de la puissance maximale susceptible d'être appelée par ce serveur. La situation est en revanche très différente lorsqu'un équipement regroupe sur un même ensemble (ci-après "plateforme de calcul"), par exemple sur une même lame de châssis, sur un même châssis ou dans une même baie, un nombre important de serveurs desservis par une alimentation électrique commune - cette alimentation pouvant être commune à la lame, au châssis ou à la baie, selon le cas. Tel est par exemple le cas des architectures de type "microserveur", où chaque lame comporte sur une même carte de circuit un nombre impor- tant de serveurs semblables, typiquement jusqu'à vingt serveurs regrou- pés sur une même lame. On notera incidemment que, bien que l'on fasse référence, ici et dans la suite, à des "serveurs" dans la mesure où il s'agit de l'application la plus immédiate de l'invention, ce terme ne doit pas être entendu de façon res- trictive, l'invention pouvant être aussi bien mise en oeuvre avec d'autres types d'éléments modulaires présents en grand nombre dans une installation informatique. Chaque serveur (ou élément modulaire semblable) consomme individuel- lement une puissance variable à tout moment, et dans une large mesure, en fonction de sa charge instantanée de travail. Les serveurs opérant indépendamment les uns des autres, il est nécessaire de dimensionner l'alimentation de manière qu'elle puisse en toutes circonstances fournir la puissance maximale que peut appeler chacun des serveurs qu'elle alimente. Ainsi, dans l'exemple ci-dessus d'une plate- forme constituée d'une lame de vingt microserveurs susceptibles de consommer chacun entre 2 et 10 watts selon les circonstances, l'alimentation devra être calculée pour fournir une puissance de 200 watts. Il en est de même pour le châssis et pour la baie, qui sont protégés chacun à leur niveau par un disjoncteur de sécurité destiné à parer à tout ris- que de surcharge électrique, et qui est calibré en fonction de la puissance maximale correspondante. La puissance maximale disponible (ci-après "puissance nominale") n'est cependant presque jamais appelée dans la mesure où, statistiquement, les différents serveurs présentent à un instant donné des niveaux d'activi- té très différents, et qu'il est rarissime que les serveurs soient tous en ac- tivité maximale au même moment. Toutefois, si cette dernière hypothèse se présente, une alimentation sous-dimensionnée ne serait plus suffisante pour couvrir les besoins, ce qui conduirait à un arrêt immédiat de la plateforme dans son ensemble, et donc une coupure de tous les serveurs du fait de la surcharge de l'alimen- tation. Comme il n'est pas envisageable de courir un tel risque, l'alimentation de la plateforme est toujours dimensionnée de manière que sa puissance nominale soit au moins égale à la puissance maximale théoriquement susceptible d'être consommée par l'ensemble des serveurs alimentés. À l'échelle de la plateforme, et au-delà à l'échelle d'un châssis, d'une baie et d'un centre informatique, cela représente une puissance électrique installée disponible considérable, rarement ou jamais appelée, avec une incidence évidente sur divers facteurs tels que le coût de l'équipement, sa taille, les pertes énergétiques, le dimensionnement de l'installation électri- que du site, etc. Le but de l'invention est de résoudre ce problème en proposant une nouvelle configuration d'alimentation permettant, sans aucun compromis sur la sécurité de fonctionnement, de sous-dimensionner l'alimentation élec- trique de la plateforme, c'est-à-dire de prévoir une alimentation dont la puissance nominale soit notablement inférieure au produit de la puissance unitaire maximale d'un serveur par le nombre de serveurs de la plate-forme. L'idée de base de l'invention consiste à analyser la consommation instan- tanée de la plateforme, et délivrer aux différents serveurs de cette plate- forme une valeur de consigne variable, commune, reflétant l'écart constaté entre la puissance instantanée appelée et la puissance nominale, réellement disponible. Cette consigne pourra être par exemple formulée en termes de pourcen- tage indiquant aux serveurs qu'ils ne pourront pas fonctionner à plus de x % de leur capacité, c'est-à-dire en leur imposant un bridage éventuel de cette capacité par une action sur divers paramètres de fonctionnement du processeur du serveur (qui est le composant le plus consommateur de puissance) tels que réduction de la fréquence d'horloge, diminution du nombre de coeurs actifs, etc., ou éventuellement sur des paramètres non directement liés au processeur mais qui sont susceptibles de réduire sa charge de calcul, tels que limitation de l'utilisation des disques durs, réduction du trafic réseau, etc. Si le niveau de la puissance instantanée appelée est faible, ce pourcen- tage sera élevé (donc les serveurs ne seront pas ou peu bridés). En re- vanche, dans le cas - assez rare - où la charge de calcul sera importante pour tous les serveurs, ce pourcentage sera réduit, ce qui aura pour conséquence de brider le fonctionnement de l'ensemble des processeurs de la plateforme de manière qu'ils consomment moins, permettant ainsi de respecter le "budget énergétique" imposé du fait de la puissance no- minale relativement limitée de l'alimentation. On notera que ce bridage se fait sans interruption du fonctionnement des serveurs, ceux-ci étant simplement ralentis : en d'autres termes, la charge de travail des processeurs n'est pas modifiée, elle est simplement étalée dans le temps de manière à éviter des pics simultanés de consommation énergétique qui conduiraient à dépasser la puissance nominale de l'alimentation. Plus précisément, l'invention propose une plateforme de calcul de type multiserveur comportant de manière en elle-même connue : une pluralité d'unités de calcul individuelles, chacune comprenant au moins un proces- seur et étant susceptible de consommer une puissance individuelle courante, variable à tout instant en fonction d'un niveau d'activité du au moins un processeur; et un bloc d'alimentation commun à la pluralité d'unités de calcul, ce bloc d'alimentation étant apte à délivrer une puissance au plus égale à une puissance nominale donnée. De façon caractéristique de l'invention, la puissance nominale du bloc d'alimentation est inférieure au produit de la puissance individuelle maximale que chaque unité de calcul est susceptible de consommer par le nombre d'unités de calcul de la plateforme. La plateforme comprend par ailleurs : une unité de mesure d'une puissance courante délivrée globale- ment à la pluralité d'unités de calcul par le bloc d'alimentation, et une unité de gestion, apte à déterminer au moins une valeur de consigne fonction de l'écart entre la puissance courante délivrée et la puissance nominale du bloc d'alimentation, et à transmettre cette consigne aux unités de cal- cul. Elle comprend également, pour chaque unité de calcul, des moyens individuels de régulation, qui sont des moyens aptes à modifier au moins un paramètre de fonctionnement du au moins un processeur en fonction de la consigne dans le sens d'une réduction de la puissance individuelle consommée par l'unité de calcul. Le(s) paramètre(s) de fonctionnement modifiable(s) peu(ven)t être le nombre de coeurs actifs du au moins un processeur, la fréquence d'horloge du CPU du au moins un processeur, et/ou la tension d'alimentation du CPU du au moins un processeur. Très avantageusement, l'unité de calcul de la consigne est également apte à estimer par anticipation, à partir de la puissance globale mesurée, une valeur de puissance délivrée globalement et à calculer la consigne également en fonction de cette valeur de puissance estimée par anticipation. De préférence, par sécurité chaque unité de calcul comprend en outre des moyens de détection de la réception effective de la consigne en prove- nance de l'unité de gestion, et des moyens aptes, en l'absence de consigne reçue, à forcer le niveau de fonctionnement du au moins un processeur à une valeur prédéterminée de façon que la puissance appelée par l'ensemble des unités de calcul de la plateforme ne puisse dépasser la puissance nominale de l'alimentation. Les moyens individuels de régulation peuvent être des moyens logiciels implémentés sous forme d'un pilote du système d'exploitation du processeur de l'unité de calcul, ou bien des moyens implémentés sous forme micrologicielle au sein d'un processeur complémentaire de gestion couplé au processeur de l'unité de calcul. 0 On va maintenant décrire un exemple de l'invention, en référence au des- sin annexé. La Figure 1 est une vue d'ensemble simplifiée, sous forme de schéma par blocs, d'une plateforme de calcul mettant en oeuvre la présente invention. 0 Sur la Figure 1, la référence 10 désigne une plateforme de calcul au sens indiqué en introduction, c'est-à-dire un équipement comportant une pluralité d'unités de calcul 12 semblables desservies par un bloc d'alimentation électrique commun 14. La plateforme de calcul 10 est par exemple une lame productive d'un équipement informatique modulaire, chaque unité de calcul étant un microserveur disposant de son propre processeur, une même lame pouvant regrouper jusqu'à N = 20 microserveurs semblables de ce type. Chacune des unités de calcul alimentées par le bloc 14 appelle à un ins- tant donné une puissance individuelle courante, par exemple comprise entre 2 et 5 watts, principalement en fonction du niveau d'activité du processeur du serveur. De façon caractéristique, il est prévu une unité de mesure 16 de la puissance courante délivrée, à un instant donné, à l'ensemble des unités de calcul 12. Une unité de gestion 18, typiquement implémentée au sein d'un microcontrôleur avec l'unité de mesure 16, compare la puissance courante mesurée avec la puissance maximale susceptible d'être fournie par l'alimentation (puissance nominale), établit éventuellement une tendance (extrapolation à court terme à partir de la courbe de consommation) et cal- cule une consigne variable, fonction de l'écart ou "marge de puissance" entre la puissance courante mesurée et la puissance nominale du bloc d'alimentation 14. Cette consigne est avantageusement exprimée en termes de pourcentage autorisé de niveau individuel d'activité des unités de calcul, par rapport à une activité correspondant aux performances maximales de cette unité de calcul (avec la totalité des coeurs actifs, la fréquence d'horloge maximale et la tension maximale d'alimentation du CPU du processeur, etc.). En d'autres termes, cette consigne indique aux unités de calcul qu'elles ne devront pas fonctionner à plus de x % de leur activité maximale. Chaque unité de calcul 12 est pourvue d'un moyen de régulation individuel ou limiteur 20 qui reçoit la consigne délivrée par l'unité de gestion 18 et effectue les ajustements éventuels nécessaires sur l'unité de calcul de manière à respecter cette consigne. Si la marge de puissance disponible est élevée, la consigne pourra être de 100 % ou d'un niveau proche (par exemple 95 %), par sécurité, de sorte que les serveurs seront autorisés si nécessaire à opérer au maximum de leurs performances. En revanche, dans les périodes où la marge de puissance se restreint, le pourcentage sera abaissé (à 80 %, 70 % etc.) et le limiteur 20 de chaque processeur imposera une réduction des performances, par exemple par action : - sur le fonctionnement du processeur, par désactivation temporaire de certains coeurs (mesure la plus efficace du point de vue énergétique), réduction de la fréquence d'horloge du CPU, diminution de la tension d'alimentation du CPU, etc. - et subsidiairement sur d'autres facteurs ayant une incidence sur la consommation de l'unité de calcul, tels que limitation de l'utilisation des disques durs, réduction du trafic réseau, etc. Il est prévu une sécurité telle que, si le limiteur 20 ne reçoit pas de mise à jour de sa consigne, il se mette dans un mode par défaut forçant l'activité de l'unité de calcul 12 à un fonctionnement où sa consommation maxi- male sera impérativement limitée à la puissance nominale de l'alimentation divisée par le nombre de processeurs présents actifs, par exemple à 1120e de la puissance nominale dans le cas de figure indiqué plus haut. Concrètement, les moyens de régulation individuelle 26 peuvent être im- plémentés sous forme logicielle, en tant que pilote (driver) d'un système d'exploitation du processeur, ou bien sous forme micrologicielle (firmware) au sein d'un processeur complémentaire de gestion tel qu'un companion processor, qui est un petit processeur de gestion des tâches embarqué associé à chaque processeur principal de la plateforme de calcul. On notera enfin que, bien que dans ce qui précède on ait décrit un exem- ple de réalisation comprenant N unités de calcul semblables avec chacune un processeur et un limiteur propre, et avec une consigne identique pour tous les limiteurs, cette configuration n'est pas limitative de l'invention. On peut en effet prévoir des unités de calcul comprenant chacune une pluralité de processeurs pilotés en commun par un même limiteur. Une autre possibilité consiste à générer plusieurs consignes différentes, appliquées respectivement à des unités de calcul différentes ou à des groupes d'unités de calcul différents, de manière à établir des classes ou des priorités entre ces unités de calcul. REVENDICATIONS1. Une plateforme de calcul (10) de type multiserveur, comportant : - une pluralité d'unités de calcul (12) individuelles, chacune comprenant au moins un processeur et étant susceptible de consommer une puissance individuelle courante, variable à tout instant en fonction d'un ni- veau d'activité du au moins un processeur ; et - un bloc d'alimentation (14) commun à la pluralité d'unités de calcul, ce bloc d'alimentation étant apte à délivrer une puissance au plus égale à une puissance nominale donnée, cette plateforme étant caractérisée en ce que la puissance nominale du bloc d'alimentation est inférieure au produit de la puissance individuelle maximale que chaque unité de calcul est susceptible de consommer par le nombre d'unités de calcul de la plateforme, et en ce qu'elle comporte en outre : - une unité de mesure (16) d'une puissance courante délivrée globale- ment à la pluralité d'unités de calcul par le bloc d'alimentation ; - une unité de gestion (18), apte à déterminer au moins une valeur de consigne fonction de l'écart entre la puissance courante délivrée et la puissance nominale du bloc d'alimentation, et à transmettre cette consigne aux unités de calcul ; et - pour chaque unité de calcul, des moyens individuels de régulation (20) aptes à modifier au moins un paramètre de fonctionnement du au moins un processeur en fonction de la consigne dans le sens d'une réduction de la puissance individuelle consommée par l'unité de calcul. 2. La plateforme de la revendication 1, dans laquelle la consigne est ex- primée sous forme d'un pourcentage autorisé de niveau d'activité du au moins un processeur. 3. La plateforme de la revendication 1, dans laquelle ledit au moins un pa- ramètre de fonctionnement comprend : le nombre de coeurs actifs du au moins un processeur, la fréquence d'horloge du CPU du au moins un processeur, et la tension d'alimentation du CPU du au moins un processeur. 4. La plateforme de la revendication 1, dans laquelle l'unité de calcul de la consigne est également apte à estimer par anticipation, à partir de la puissance globale mesurée, une valeur de puissance délivrée globalement et à calculer la consigne également en fonction de cette valeur de puissance estimée par anticipation. 5. La plateforme de la revendication 1, dans laquelle chaque unité de calcul comprend en outre : - des moyens de détection de la réception effective de la consigne en provenance de l'unité de gestion ; et - des moyens aptes, en l'absence de consigne reçue, à forcer le niveau de fonctionnement du au moins un processeur à une valeur prédéterminée de façon que la puissance appelée par l'ensemble des unités de calcul de la plateforme ne puisse dépasser la puissance nominale de l'alimentation. 6. La plateforme de la revendication 1, dans laquelle les moyens individuels de régulation (20) sont des moyens logiciels implémentés sous forme d'un pilote du système d'exploitation du processeur de l'unité de calcul. 7. La plateforme de la revendication 1, dans laquelle les moyens individuels de régulation (20) sont des moyens implémentés sous forme micro-logicielle au sein d'un processeur complémentaire de gestion couplé au processeur de l'unité de calcul.