FR 3031200 A1 20160701 FR 1463444 A 20141230 1 Procédé de gestion automatique de la consommation électrique d'une grappe de serveurs DOMAINE TECHNIQUE DE L'INVENTION [0001] L'invention se rapporte à procédé de gestion de la consommation électrique d'une grappe de serveurs. [0002] On entendra par grappe de serveurs dans le cadre de la présente demande tout ensemble de serveurs gérés de manière centralisée. Sont en particulier visés les calculateurs hautes performances aussi appelés calculateur 10 HPC. ETAT DE LA TECHNIQUE ANTERIEURE [0003] Dans un environnement d'un calculateur haute performance (HPC) la consommation énergétique est un critère prépondérant pour au moins trois 15 raisons : - il faut prendre en compte la puissance disponible pour ne pas faire s'écrouler la structure d'alimentation et donc le calculateur ; - il faut prendre en compte les capacités de dissipation thermique pour ne pas risquer d'endommager le calculateur par échauffement ; 20 - enfin le coût associé peut dépasser le million d'euros annuel (métrique actuelle basée sur une puissance de calcul d'environ 1 MW/PFlops). [0004] Dans ce contexte il est important de s'assurer que la consommation énergétique maximale tolérée (i.e. par le calculateur en place limitant le nombre de MWs utilisables, ou encore pour limiter et contrôler la facture énergétique) soit 25 respectée. [0005] Pour ce faire, des mécanismes existent afin de positionner des serveurs de calcul en arrêt (power-off), en mode de suspension (suspend) ou encore réduire son utilisation d'énergie (mode idle ou réduction de la fréquence CPU...). Cependant, ces arrêts ou ces changements d'états doivent être gérés 30 afin d'assurer le fonctionnement optimal du calculateur (performance maximale dans l'enveloppe énergétique donnée). [0006] Ce souci de ne pas dépasser la puissance maximale « autorisée » (soit par une contrainte physique soit par une contrainte économique) doit pouvoir être 3031200 2 géré de manière très réactive (réaction de l'ordre de la milliseconde) et ne peut donc pas être facilement traitée au niveau logiciel (i.e. plusieurs milliers d'équipements à traiter en parallèle). Il est donc nécessaire de traiter (du moins en partie) les pics de consommation via un mécanisme de type « disjoncteur ». 5 [0007] Les disjoncteurs sont très rapides et coupent l'alimentation d'un groupe de noeuds. Il s'agit cependant d'une démarche réactive, la sur consommation d'énergie a déjà commencé, De plus pour la remise en ligne des noeuds disjonctés, il faut effectuer un réarmement bien souvent manuel. [0008] Les solutions de l'état de la technique ne permettent donc pas une gestion fine de la consommation d'un calculateur et en particulier pas le suivie d'une valeur de consigne de consommation. EXPOSE DE L'INVENTION [0009] L'invention vise à remédier à tout ou partie des inconvénients de l'état de la technique identifiés ci-dessus, et notamment à proposer des moyens pour permettre de suivre une valeur de consigne de consommation sans la dépasser. [0010] Dans ce dessein, un aspect de l'invention se rapporte à un procédé de gestion automatique de la consommation électrique d'une grappe de serveurs comportant une pluralité de noeuds caractérisé en ce que le procédé comporte les étapes suivantes : - mesure d'une consommation instantanée de la grappe de serveurs ; - acquisition d'une limite instantanée de consommation ; - prédiction d'une consommation future selon une fonction d'au moins la mesure de consommation instantanée; - si la prédiction est supérieure à la limite instantanée acquise alors : - sélection d'au moins un noeud - arrêt électrique du au moins un noeud sélectionné. [0011] Outre les caractéristiques principales qui viennent d'être mentionnées dans le paragraphe précédent, le procédé/dispositif selon l'invention peut présenter une ou plusieurs caractéristiques complémentaires parmi les suivantes, considérées individuellement ou selon les combinaisons techniquement possibles: - le nombre de noeuds sélectionnés est fonction de de l'écart entre la consommation prédite et la limite instantanée de consommation ; 3031200 3 - le procédé est mis en oeuvre avant une allocation de ressources, les ressources devant être allouées étant utilisées comme un paramètre de la fonction de prédiction de la consommation future ; - le procédé est mis en oeuvre en fonction d'une planification ; 5 - les noeuds sont affectés à des traitements, les traitements étant classés selon au moins deux catégories, le au moins un noeud étant sélectionné selon la catégorie de traitement qu'il exécute ; - les noeuds sont pré-classés en au moins deux groupes ; - le au moins un noeud est sélectionné dans un groupe prédéterminé ; 10 - pour sélectionner le au moins un noeud on sélectionne l'intégralité d'un groupe prédéterminé ; - le au moins un noeud est sélectionnée parmi les noeuds ayant un statut prédéterminé. [0012] L'invention se rapporte également à un dispositif de stockage 15 numérique comportant un fichier correspondant à des codes instructions mettant en oeuvre le procédé selon une combinaison possible des caractéristiques précédentes. [0013] L'invention se rapporte également à un dispositif mettant en oeuvre le procédé selon une combinaison possible des caractéristiques précédentes. 20 BREVE DESCRIPTION DES FIGURES [0014] D'autres caractéristiques et avantages de l'invention ressortiront à la lecture de la description qui suit, en référence aux figures annexées, qui illustrent : - la figure 1 : une illustration de moyen permettant la mise en oeuvre de 25 l'invention ; - la figure 2 : une illustration d'étapes du procédé selon l'invention. [0015] Pour plus de clarté, les éléments identiques ou similaires sont repérés par des signes de référence identiques sur l'ensemble des figures. [0016] L'invention sera mieux comprise la lecture de la description qui suit et à 30 l'examen des figures qui l'accompagnent. Celles-ci sont présentées à titre indicatif et nullement limitatif de l'invention. DESCRIPTION DETAILLEE D'UN MODE DE REALISATION 3031200 4 [0017] La figure 1 montre un dispositif serveur 100 de supervision. Le serveur de supervision comporte : - un microprocesseur 110 ; - des moyens de stockage 120, par exemple un disque dur qu'il soit local 5 ou distant, qu'il soit simple ou en grille (par exemple RAID) ; - une interface 130 de communication, par exemple une carte de communication selon le protocole Ethernet. D'autres protocoles sont envisageables comme « Fibre Channel » ou InfiniBand. [0018] Le microprocesseur 110 du serveur de supervision, les moyens 120 de 10 stockage du serveur de supervision et l'interface 130 de communication du serveur de supervision sont interconnectés par un bus 150. [0019] Lorsque l'on prête une action à un dispositif celle-ci est en fait effectuée par un microprocesseur du dispositif commandé par des codes instructions enregistrés dans une mémoire du dispositif. Si l'on prête une action à une 15 application, celle-ci est en fait effectuée par un microprocesseur du dispositif dans une mémoire duquel les codes instructions correspondant à l'application sont enregistrés. Lorsqu'un dispositif, ou une application émet un message, ce message est émis via une interface de communication dudit dispositif ou de la dite application. 20 [0020] La figure 1 montre que les moyens 120 de stockage du serveur 100 de supervision comportent : - une zone 120.1 comportant des codes instructions correspondant à la mise en oeuvre de l'invention ; - une zone 120.2 base de données de grappe, ou base de données de 25 gestion de noeuds, qui comporte les informations sur les noeuds que comporte la grappe de serveurs supervisée par le serveur 100 de supervision ; - une zone 120.3 comportant une description de groupes de noeuds. Une telle description comporte au moins un ensemble d'identifiant de noeud. 30 Un identifiant de noeud est, par exemple, une adresse sur un réseau auquel est connecté le noeud, ou un identifiant dans une base de données de gestion de noeuds. 3031200 5 [0021] La figure 1 montre une grappe 200 de serveurs. La grappe 200 de serveurs comportant un nombre Z de noeuds. Dans cette description la grappe 200 de serveur est supervisée par le serveur 100 de supervision. [0022] La figure 1 montre un bloc 300 d'alimentation correspondant à une 5 armoire 300 électrique à partir de laquelle la puissance est distribuée dans la grappe 200 de serveurs. [0023] La figure 1 montre un réseau 400 permettant d'interconnecter le serveur 100 de supervision, la grappe 200 de serveurs et l'armoire 300 d'alimentation. 10 [0024] Dans la pratique c'est également l'armoire 300 électrique qui alimente le serveur 100 de supervision et le réseau 400. [0025] La figure 1 montre un serveur 500 de calendrier, le serveur 500 de calendrier étant interconnecté avec le serveur 100 de supervision via au moins le réseau 400. Le serveur 500 de calendrier délivre, lorsqu'il est interrogé une limite 15 de puissante, c'est-à-dire une valeur représentant une consommation maximale. Cette valeur peut être associée à une ou plusieurs dates de manière à spécifier durant quel intervalle de temps la limite délivrée est valable. [0026] Dans une variante, le serveur de calendrier peut être remplacé par une zone dans les moyens de stockage du serveur 100 de supervision. Une telle zone 20 est, par exemple, structurée comme une table pour associer des intervalles de temps et des limites de puissance. [0027] La figure 2 montre une étape 1100 d'évaluation de la nécessité d'une adaptation de la consommation de la grappe 200 de serveur. Cette étape peut survenir dans au moins deux circonstances : 25 - premier cas : le serveur de supervision alloue des ressources en vue de l'exécution d'un nouveau travail, - deuxième cas : une planification de l'évaluation pour suivre au mieux des évolutions d'une consigne de limite de puissance. [0028] La figure 2 montre que l'étape 1100 comporte une sous-étape 1110 de 30 mesure d'une consommation instantanée de la grappe 200 de serveurs. Dans la sous-étape 1110 de mesure d'une consommation instantanée, le serveur 100 de supervision interroge l'armoire 300 d'alimentation pour connaître la puissance qu'elle est en train de délivrer. 3031200 6 [0029] La figure 2 montre que l'étape 1100 comporte une sous-étape 1120 d'acquisition d'une limite de consommation instantanée. Dans la sous-étape 1120 d'acquisition d'une limite de consommation instantanée le serveur 100 de supervision interroge le serveur 500 de calendrier pour connaître la limite 5 courante, c'est-à-dire à la date de la question, de la puissance que peut consommer la grappe 200 de serveurs. Dans une variante le mode d'acquisition de la limite inclut la possibilité de spécifier une date. On obtient alors une limite correspondant à la date spécifiée. [0030] A la fin de l'étape 1110 de mesure d'une consommation instantanée et 10 de l'étape 1120 d'acquisition d'une limite de consommation instantanée le serveur 100 de supervision passe à une sous-étape 1130 de prédiction d'une consommation future. L'étape 1130 dépend du cas qui a provoqué l'exécution de l'étape 1100 d'évaluation de la nécessité d'une adaptation de consommation. [0031] Dans le premier cas le serveur 100 de supervision est en train d'allouer 15 des ressources en vue de l'exécution d'un nouveau travail. Le serveur 100 de supervision connaît les caractéristiques de ce nouveau travail, et en particulier le nombre de noeuds requis pour ladite exécution. Le serveur est donc capable de calculer quelle sera la consommation de la grappe une fois le nouveau travail en cours d'exécution. Il s'agit de la somme de la consommation instantanée et de la 20 consommation estimée pour l'exécution du nouveau travail. Le serveur 100 de supervision obtient ainsi une consommation prédite correspondant au premier cas. [0032] Le premier cas peut être un peu plus complexe en prenant en compte, par exemple, les travaux qui vont se terminer. [0033] Dans le deuxième cas il n'y a pas de nouveau travail à planifier. Dans 25 ce cas la consommation prédite est la consommation instantanée mesurée. [0034] Dans les premier est deuxième cas l'acquisition de limite peut se faire à une date légèrement dans le futur. Dans le deuxième cas, ce légèrement dans le futur peut être, par exemple, la demi-période de planification. [0035] A la fin de la sous-étape 1130 de prédiction, le serveur 100 de 30 supervision a donc produit une prédiction de consommation. [0036] De la sous-étape 1130 de prédiction le serveur 100 de supervision passe à une sous-étape 1140 de confrontation de la prédiction à la limite acquise. Si la prédiction est inférieure à la limite acquise, alors on passe à une étape X de 3031200 7 fin de la gestion de l'alimentation. Si la prédiction est supérieure à la limite acquise, alors on passe à une étape 1200 de limitation de la consommation de la grappe. [0037] L'étape 1200 comporte une sous-étape 1210 de calcul du nombre de 5 noeuds à arrêter pour ne pas dépasser la limite acquise. Ce nombre de noeuds est fonction de la différence entre la prédiction et la limite acquise. [0038] Une fois le nombre de noeuds à éteindre connu on passe à une étape 1220 de sélection d'un nombre de noeuds correspondant au nombre calculé à l'étape précédente. Il existe plusieurs stratégies pour cette sélection. 10 [0039] Une première stratégie consiste à choisir un groupe de noeuds parmi les groupes de noeuds décrit dans la zone 120.3 de description de groupes de noeuds. Le groupe choisit doit remplir au moins deux critères : comporter un nombre de noeuds au moins égal au nombre de noeuds calculé dans la sous-étape 1210 de calcul du nombre de noeuds, 15 correspondre à des noeuds alimentés. [0040] Dans cette première stratégie, une fois le groupe sélectionné on peut, dans une variante, ne choisir que le nombre de noeuds requis et pas le groupe en entier. [0041] Une deuxième stratégie consiste à choisir des noeuds parmi ceux décrit 20 par la base de données de gestion de noeuds comme étant en statut « idle » (repos ou attente), c'est-à-dire en attente d'être alloué. On note ici que dans une grappe de serveur à vocation haute performance, les noeuds, et leurs composants, ne sont jamais en sommeil pour garantir le démarrage le plus rapide possible. Il en résulte une consommation au repos significative. 25 [0042] Une troisième stratégie consiste à choisir des noeuds parmi ceux exécutant des travaux ayant été identifiés comme non prioritaires. Cette troisième stratégie est mise en oeuvre efficacement en utilisant plusieurs files de gestion de travaux, en particulier en utilisant une file gestion dédiée aux travaux non prioritaires. La sélection des noeuds correspondant est alors facilitée. 30 [0043] II est possible d'utiliser plusieurs de ces stratégies en même temps, en fonction du nombre de noeuds à sélectionner ou d'une programmation prédéterminée. 3031200 8 [0044] Une fois les noeuds sélectionné, on passe à une étape 1300 de d'extinction des noeuds sélectionnés. Cette mise à hors tension est réalisée, par l'émission d'un message, par exemple IPMI, vers les noeuds sélectionnés. [0045] II est ainsi possible, avec l'invention, de prévenir les dépassements 5 d'une consigne de limite de consommation. L'invention permet également de suivre au plus près une telle consigne. REVENDICATIONS1. Procédé de gestion automatique de la consommation électrique d'une grappe (200) de serveurs comportant une pluralité de noeuds caractérisé en ce 5 que le procédé comporte les étapes suivantes : - mesure (1110) d'une consommation instantanée de la grappe de serveurs ; - acquisition (1120) d'une limite instantanée de consommation ; - prédiction (1130) d'une consommation future selon une fonction d'au 10 moins la mesure de consommation instantanée; - si (1140) la prédiction est supérieure à la limite instantanée acquise alors : - sélection (1210-1220) d'au moins un noeud - arrêt (1300) électrique du au moins un noeud sélectionné. 15 2. Procédé de gestion automatique selon la revendication 1, caractérisé en ce que le nombre de noeuds sélectionnés est fonction (1210) de de l'écart entre la consommation prédite et la limite instantanée de consommation. 3. Procédé de gestion automatique selon l'une des revendications précédentes, caractérisé en ce qu'il est mis en oeuvre avant une allocation de ressources, les 20 ressources devant être allouées étant utilisées comme un paramètre de la fonction de prédiction de la consommation future. 4. Procédé de gestion automatique selon l'une des revendications précédentes, caractérisé en ce qu'il est mis en oeuvre en fonction d'une planification. 5. Procédé de gestion automatique selon l'une des revendications précédentes, 25 caractérisé en ce que les noeuds sont affectés à des traitements, les traitements étant classés selon au moins deux catégories, le au moins un noeud étant sélectionné selon la catégorie de traitement qu'il exécute. 6. Procédé de gestion automatique selon l'une des revendications précédentes, caractérisé en ce que les noeuds sont pré-classés en au moins deux groupes. 30 7. Procédé de gestion automatique selon la revendication 4, caractérisé en ce que le au moins un noeud est sélectionné dans un groupe prédéterminé. 3031200 10 8. Procédé de gestion automatique selon la revendication 4, caractérisé en ce que le pour sélectionner le au moins un noeud on sélectionne l'intégralité d'un groupe prédéterminé. 9. Procédé de gestion automatique selon l'une des revendications précédentes, caractérisé en ce que le au moins un noeud est sélectionnée parmi les noeuds ayant un statut prédéterminé. 10. Dispositif de stockage numérique comportant un fichier correspondant à des codes instructions mettant en oeuvre le procédé selon l'une des revendications précédentes. 11. Dispositif mettant en oeuvre le procédé selon l'une des revendications 1 à 9.