Brevet FR3078799A1 — publié le 20190913

GESTION DES DONNEES DE CONFIGURATION POUR UN SERVEUR MULTIMODULE DOMAINE DE L'INVENTION La présente invention est relative à la gestion des données de configuration dans un système de traitement de l'information. En particulier, l'invention permet d'améliorer cette gestion dans le cadre d'un système multiprocesseur composé de plusieurs modules. CONTEXTE DE L'INVENTION Un serveur, ou plus généralement tout système de traitement de l'information, comprend un logiciel élément, BIOS (pour « Basic Input- Output System » en langue anglaise), stockée dans une mémoire de type flash, ou NVRAM (pour « Non Volatile RAM ») qui permet notamment la configuration de certains aspects du serveur lors de son démarrage, à partir de données de configuration, typiquement également stockée dans cette mémoire NVRAM. Lors du démarrage, l'utilisateur du serveur dispose en général de la possibilité d'accéder à une interface homme-machine lui permettant de modifier tout ou partie de ces données de configuration. Toutefois, certains serveurs sont multimodules, c'est-à-dire composés d'une pluralité de modules interconnectés de sorte à ne constituer qu'une unique plateforme pour un système d'exploitation déployé sur le serveur. Un tel serveur multimodule est notamment décrit dans la demande de brevet EP2998877. 2 Chacun des modules dispose nécessairement de son propre logiciel élémentaire BIOS lui permettant de démarrer. Toutefois, dans la mesure où l'ensemble des modules doit être vu comme une plateforme unique, l'unicité et la cohérence des données de configuration pour tous les modules est 5 primordial afin d'assurer un bon démarrage et un bon fonctionnement du serveur. En outre, les outils existants permettant d'accéder au contenu de la mémoire NVRAM ne permettent d'accéder aux données de configuration 10 stockées dans la mémoire du module dit « maître » au moment de l'accès. Dès lors, s'il modifie un paramètre de configuration, la cohérence entre les différents modules sera perdue. RE SUME DE L'INVENTION 15 Le but de la présente invention est de permettre d'atteindre une telle cohérence des données de configuration entre l'ensemble des modules, de sorte que chacun puisse démarrer avec les mêmes données de configuration, et également de permettre à un utilisateur de modifier facilement tout ou 20 partie des données de configuration tout en conservant cette cohérence entre l'ensemble des modules. A cette fin, la présente invention propose un serveur comprenant une pluralité de modules de traitement de l'information, de sorte à former une 25 plateforme unifiée pour un système d'exploitation déployé sur ledit serveur, chaque module possédant un logiciel élémentaire, BIOS, prévu pour utiliser des données de configuration lors du démarrage dudit module, ledit serveur étant en outre prévu pour permettre la modification d'au moins une donnée de configuration, et étant caractérisé 30 en ce qu'il comprend en outre un contrôleur de gestion, BMC, prévu pour mémoriser lesdites données de configuration dans un mémoire associée 3 et pour transmettre, lors de la modification d'au moins une donnée de configuration, lesdites données à des contrôleurs de gestion associés aux autres modules de ladite pluralité, et en ce que ledit logiciel élémentaire est prévu pour, lors d'un démarrage 5 dudit module, récupérer lesdites données de configuration auprès dudit contrôleur de gestion. Suivant des modes de réalisation préférés, l'invention comprend une ou plusieurs des caractéristiques suivantes qui peuvent être utilisées 10 séparément ou en combinaison partielle entre elles ou en combinaison totale entre elles : - lesdits contrôleurs de gestion de ladite pluralité de modules peuvent communiquer au moyen d'un réseau interne audit serveur ; 15 - lesdits contrôleurs de gestion transmettent lesdites données de configuration dans des messages conformes au standard IPMI ; - lesdites mémoires associées sont des cartes SD ; Un autre aspect de l'invention concerne un procédé pour la gestion 20 des données de configuration d'un module de traitement de l'information appartenant à un serveur comportant une pluralité de modules connectés de sorte à former une plateforme unifiée pour un système d'exploitation déployé sur ledit serveur, lesdites données étant utilisées pour le démarrage dudit module par le logiciel élémentaire, BIOS, dudit module, et ledit 25 procédé comportant la modification d'au moins une donnée de configuration; la transmission de ladite au moins une donnée de configuration à un contrôleur de gestion du module, BMC, la mémorisation par ledit contrôleur, BMC, de ladite au moins 30 une donnée de configuration dans une mémoire associée, et la 4 transmission de ladite donnée à des contrôleurs de gestion associés aux autres modules de ladite pluralité. Suivant des modes de réalisation préférés, le procédé selon l'invention 5 comprend une ou plusieurs des caractéristiques suivantes qui peuvent être utilisées séparément ou en combinaison partielle entre elles ou en combinaison totale entre elles : - ladite au moins une donnée de configuration est modifiée lors du démarrage dudit module par ledit logiciel élémentaire, en 10 affichant une interface homme machine sur un terminal connecté audit serveur permettant à un utilisateur de visualiser et opérer des modifications sur des données de configuration ; - ladite au moins une donnée de configuration est modifiée au moyen d'une interface externe de gestion dudit contrôleur ; 15 - les transmissions de ladite au moins une donnée de configuration vers ledit contrôleur de gestion, BMC, sont conformes à l'interface IPMI ; Un autre aspect de l'invention concerne un procédé de démarrage d'un 20 module de traitement de l'information appartenant à un serveur comportant une pluralité de modules connectés de sorte à former une plateforme unifiée pour un système d'exploitation déployé sur ledit serveur, comportant l'émission par le logiciel élémentaire, BIOS, dudit module d'une requête à un contrôleur de gestion, BMC, dudit module, 25 la récupération de données de configuration par ledit contrôleur dans une mémoire associée, et transmission desdites données audit logiciel élémentaire en réponse à ladite requête, démarrage dudit module en fonction desdites données de configuration. 30 5 Un autre aspect de l'invention concerne un programme d'ordinateur comprenant des instructions de programme pour l'exécution d'un procédé tel que précédemment décrit, lorsque ledit programme est exécuté sur un processeur. 5 D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui suit d'un mode de réalisation préféré de l'invention, donnée à titre d'exemple et en référence aux dessins annexés. 10 BREVE DESCRIPTION DES DESSINS La figure 1 représente schématiquement un exemple de serveur multimodule selon un mode de réalisation de l'invention. 15 DESCRIPTION DETAILLEE DE L'INVENTION La figure 1 représente un mode de réalisation d'un serveur 100 comportant une pluralité de modules 1, 2, 3. Trois modules sont représentés sur la figure, mais dans la pratique un plus grand nombre de modules 20 peuvent être mis en place, typiquement 8 ou 16. Les modules peuvent être identiques ou comporter des différences suffisamment minimes pour que la pluralité des modules puisse être considérée comme une plateforme unique par un système d'exploitation déployé sur le serveur 100. 25 Chacun des modules peut comporter plusieurs processeurs 10, 11, 20, 21, ou CPU (pour « Central Processing Unit » en anglais). Dans l'exemple de la figure 1, chaque module est « bi-socket », c'est-à-dire composé de deux processeurs. Les processeurs d'un même module sont interconnectés entre eux via 30 une liaison de type QPI (pour « QuickPath Interconnect ») ou UPI (« Ultra Path Interconnect »), etc. 6 Ce type de liaisons, connues en soi, permet d'interconnectés des processeurs partageant un même espace d'adressage. Elles sont par exemple décrites dans l'encyclopédie participative wikipedia https ://en. wikipedi a. org/wiki/Intel UltraPath Interconnect 5 Chacun des modules comporte également une mémoire 13, 23 permettant de stocker le logiciel élémentaire BIOS. Les deux processeurs 10, 11, 20, 21 d'un même module partagent donc un même logiciel élémentaire BIOS et se synchronise pour y accéder. 10 Lors du démarrage d'un module, le logiciel élémentaire stocké dans la mémoire 13, 23 est déclenché et utilise des données de configuration pour démarrer correctement le module. Chacun des modules comprend également un élément de 15 communication 16, 26 permettant d'établir une liaison entre les processeurs 10, 11, 20, 21 de l'ensemble des modules. L'interconnexion 27 entre les éléments de communication 16, 26 est typiquement un lien ou un ensemble de liens à haute vitesse. Il peut s'agir par exemple d'un réseau de type XQPI, pour « eXtended 20 QuickPath Interconnect », ou SCI (Scalable Coherent Interconnect), qui est une solution développée par la société Bull et disponible dans le commerce. Les éléments de communication 16, 26 peuvent être des BCS, pour « Bull Coherence Switch » ou tout autre XNC (pour « eXternal Node Controller ») disponible dans le commerce. Ces éléments de 25 communication, en collaboration avec l'interconnexion 27, permettent d'obtenir la cohérence souhaitée de mémoire et de « cache » (ou mémoire tampon), tout en atteignant des bonnes performances de débit et de latence. D'autres solutions sont également possibles. 30 Ainsi, cette interconnexion 27 et les éléments de communication 16, 26, permettent de donner au système d'exploitation et donc aux applications 7 déployées sur le serveur la vision d'une mémoire unique pour l'ensemble des modules 1, 2, 3. Autrement dit, du point du vue de ce système d'exploitation et des applications, les modules 1, 2, 3 forment une plateforme unique ; le fait que le serveur est composé d'une pluralité de modules est 5 fonctionnellement transparent pour eux. Par ailleurs, chaque module comprend un contrôleur de gestion 12, 22 ou BMC pour « Baseboard Management Controller » en langue anglaise. Le contrôleur de gestion 12, 22 est principalement un processeur spécialisé 10 permettant de superviser, et contrôler, l'état physique du module 1, 2 respectif auquel il appartient. Selon un mode de réalisation, les contrôleurs de gestion 12, 22 sont interconnectés par un réseau 28, afin d'échanger des informations de supervision et de contrôle, de sorte que chacun des contrôleurs de gestion ait 15 une vision globale de l'ensemble des modules du serveur 100. Ainsi, une application externe de gestion d'équipement peut interroger n'importe quel contrôleur de gestion 12, 22 et être à même de superviser et contrôler le serveur 100, en prenant en compte l'ensemble des modules le composant. 20 Typiquement, le contrôleur de gestion peut superviser, et éventuellement contrôler, différents éléments embarqués au sein du module : capteurs de température, ventilateurs, capteurs d'humidité, etc. Typiquement également, ce contrôleur de gestion est conforme au standard IPMI (« Intelligent Platform Management Interface »). Une application 25 externe de gestion d'équipement peut interagir avec le contrôleur de gestion, 12, 22 au moyen d'un accès, typiquement un accès Ethernet, 30 et de commandes conformes au standard IPMI. Les spécifications du standard IPMI sont notamment disponibles sur le site de la société Intel. 30 https://www.intel . com/content/www/us/en/servers/ipmi/ipmi- home. html 8 Selon l'invention, les contrôleurs de gestion, BMC, 12, 22, mémorisent les données de configuration dans des mémoires respectives, 14, 24, qui leur sont associés. Autrement dit, les données de configuration 5 ne sont pas stockées dans la mémoire NVRAM 13, 23 associée au logiciel élémentaire BIOS, mais « déportées » sur un élément distinct et hétérogène, par rapport à l'architecture typique d'un système multiprocesseur. Cette mémoire associée peut être une carte SD (pour « Secure Digital »), par exemple, dont le lecteur est directement connecté et piloté par 10 le contrôleur de gestion correspondant. En outre, les contrôleurs de gestion 12, 22 sont prévus pour transmettre, lors de la modification d'une ou plusieurs données de configuration, ces données aux contrôleurs de gestion des autres modules du 15 serveur. Les contrôleurs de gestion mémorisent alors les données reçus au sein de leur mémoires respectives, 14, 24. Ainsi, le contenu des mémoires (cartes SD) associées à chaque BMC est continuellement synchronisé et cohérent. 20 La transmission des données de configuration entre les contrôleurs de gestion des différents modules constitutifs d'un serveur se fait via le réseau 28. Ce réseau peut être un réseau Ethernet. Préférentiellement, les données de configuration sont transmises selon 25 le standard IPMI. L'interface de gestion intelligente du matérielle, IPMI, est un ensemble de spécifications d'interfaces entre le BMC, le BIOS et tout logiciel distant ou s'exécutant sur le serveur 100. IPMI n'est donc pas prévu pour des échanges entre BMC, ni pour la transmission de données de configurations propres au BIOS. Ces 30 spécifications ont donc été étendues afin de pouvoir répondre aux problèmes de la présente invention. 9 Les données de configuration peuvent être modifiées de deux façons principales. Selon une première façon, une ou plusieurs données de configuration 5 sont modifiées lors du démarrage dudit module par le logiciel élémentaire BIOS, en affichant une interface homme machine sur un terminal connecté au serveur qui permet à un utilisateur de visualiser et opérer des modifications sur des données de configuration. De façon classique, l'utilisateur peut modifier des valeurs en naviguant entre plusieurs pages de 10 l'interface homme-machine. Lorsqu'il choisit de sauvegarder ses choix, le logiciel élémentaire BIOS transmet une commande au contrôleur de gestion de son module. Cette commande contient les données de configuration modifiées et peut être conforme au standard IPMI. Selon une seconde façon, une ou plusieurs données de configuration 15 sont modifiées au moyen d'une interface externe de gestion 30 du contrôleur de gestion. Une application extérieure peut transmettre des commandes IPMI au contrôleur de gestion 12, 22 pour modifier une ou plusieurs données de configuration. Il est à noter que le logiciel élémentaire BIOS n'est pas impliqué dans 20 cette deuxième façon de faire. Dans les deux situations, le module de gestion 12, 22 sauvegarde les données de configuration modifiées dans la mémoire associée 14, 24, et transmet ces données modifiées aux autres modules de gestion via le réseau 25 28. Cette réplication entre BMC permet d'assurer l'unicité et la cohérence des données de configuration entre tous les modules du serveur et ainsi de pouvoir initialiser correctement le serveur lors de son démarrage. 30 10 Lors du démarrage du serveur 100, le logiciel élémentaire BIOS de chaque module émets une requête au contrôleur de gestion de son module respectif. À réception, celui-ci récupère l'ensemble des données de configuration dans la mémoire associée, puis les transmet au logiciel 5 élémentaire, en réponse à sa requête. Tant la requête que la réponse peuvent être conformes au standard IPMI. Le module peut alors démarrer en fonction de ces données de configuration. On comprend alors que, puisque les données de configuration sont 10 cohérentes sur l'ensemble des modules, ceux-ci démarrent selon une même configuration. Dès lors, du point de vue d'une application, le basculement d'un module à une autre sera totalement transparent, et aucun dysfonctionnement du serveur ne sera induit par des incohérences de configuration entre les différents modules constitutifs du serveur. 15 De la même façon que pour la modification, les données de configuration, peuvent être consultées d'au moins deux façons principales. Selon une première façon, lors du démarrage du module, le logiciel élément BIOS transmet une requête au contrôleur de gestion de son module 20 afin de récupérer les données de configuration stockées dans sa mémoire associée. Il peut ensuite afficher les données récupérer via une interface homme machine sur un terminal connecté au serveur. L'utilisateur peut alors visualiser les données de configuration, notamment en naviguant entre plusieurs pages de l'interface homme-machine. Les commandes échangées 25 entre le logiciel élémentaire et le contrôleur de gestion peuvent être conformes au standard IPMI. Selon une seconde façon, Une application extérieure peut transmettre des commandes IPMI au contrôleur de gestion 12, 22 via l'interface externe de gestion 30 afin de récupérer les données de configuration. Elle peut 30 transmettre une commande visant à récupérer une donnée de configuration particulière, en indiquant son identifiant, et en récupérant sa valeur en 11 retour. Elle peut également transmettre une commande visant à récupérer l'ensemble des données de configuration. Il est à noter que le logiciel élémentaire BIOS n'est pas impliqué dans cette deuxième façon de faire. 5 Encore une fois, la réplication entre les BMC permet à l'utilisateur de visualiser les données de configuration du module actif, en ayant la garantie que les mêmes valeurs de configuration sont également mises en place pour les autres modules du serveur. 10 Un utilisateur peut vouloir remettre les données de configuration à leur valeur par défaut. Ceci peut également être effectué de deux façons Selon une première façon, l'utilisateur peut accéder à une option de « réinitialisation » accessible sur l'interface homme-machine déclenchée par 15 l'élément logiciel BIOS. Selon une seconde façon, une application extérieure peur transmettre une commande (IPMI par exemple) au contrôleur de gestion via l'interface externe de gestion. Dans les deux cas, lorsque le contrôleur de gestion reçoit une commande de réinitialisation, il modifie les données de configuration pour 20 les remettre à leurs valeurs initiales. Pour ce faire, il peut par exemple détruire un fichier courant contenant les valeurs actuelles des données de configuration et copier à sa place un fichier « d'usine » contenant les valeurs initiales de l'ensemble des données de configuration, telles que fixées par le fabriquant du module. 25 Ces actions sont répliquées sur les autres modules en utilisant le réseau 28. Comme évoqué précédemment, le logiciel élémentaire BIOS des modules 1, 2, 3 est modifié afin que les accès vers la mémoire NVRAM où, 30 habituellement, sont stockées les données de configuration, sont remplacés par une interface (par exemple IPMI) vers le contrôleur de gestion BSC. 12 Le contrôleur de gestion, BMC, est également modifié pour prendre en charge des nouvelles commandes provenant du logiciel élémentaire BIOS ou d'une application extérieure. 5 Bien entendu, la présente invention n'est pas limitée aux exemples et au mode de réalisation décrits et représentés, mais elle est susceptible de nombreuses variantes accessibles à l'homme de l'art. REVENDICATIONS1. Serveur (100) comprenant une pluralité de modules de traitement de l'information (1, 2, 3), de sorte à former une plateforme unifiée pour un système d'exploitation déployé sur ledit serveur, chaque module possédant un logiciel élémentaire, BIOS (13, 23), prévu pour utiliser des données de configuration lors du démarrage dudit module, ledit serveur étant en outre prévu pour permettre la modification d'au moins une donnée de configuration, et étant caractérisé en ce qu'il comprend en outre un contrôleur de gestion, BMC (12, 22), prévu pour mémoriser lesdites données de configuration dans une mémoire associée (14, 24), et pour transmettre, lors de la modification d'au moins une donnée de configuration, lesdites données à des contrôleurs de gestion associés aux autres modules de ladite pluralité, et en ce que ledit logiciel élémentaire est prévu pour, lors d'un démarrage dudit module, récupérer lesdites données de configuration auprès dudit contrôleur de gestion. 2. Serveur (100) selon la revendication précédente, dans lequel lesdits contrôleurs de gestion (12, 22) de ladite pluralité de modules peuvent communiquer au moyen d'un réseau (28) interne audit serveur (100). 3. Serveur (100) selon l'une des revendications précédentes, dans lequel lesdits contrôleurs de gestion transmettent lesdites données de configuration dans des messages conformes au standard IPMI. 4. Serveur (100) selon l'une des revendications précédentes, dans lequel lesdites mémoires associées sont des cartes SD. 14 5. Procédé pour la gestion des données de configuration d'un module de traitement de l'information appartenant à un serveur comportant une pluralité de modules connectés de sorte à former une plateforme unifiée pour un système d'exploitation déployé sur ledit serveur, lesdites données 5 étant utilisées pour le démarrage dudit module par le logiciel élémentaire, BIOS, dudit module, et ledit procédé comportant la modification d'au moins une donnée de configuration; la transmission de ladite au moins une donnée de configuration à un contrôleur de gestion du module, BMC, 10 la mémorisation par ledit contrôleur, BMC, de ladite au moins une donnée de configuration dans une mémoire associée, et la transmission de ladite donnée à des contrôleurs de gestion associés aux autres modules de ladite pluralité. 15 6. Procédé selon la revendication précédente, dans lequel ladite au moins une donnée de configuration est modifiée lors du démarrage dudit module par ledit logiciel élémentaire, en affichant une interface homme machine sur un terminal connecté audit serveur permettant à un utilisateur de visualiser et opérer des modifications sur des données de configuration. 20 7. Procédé selon l'une des revendications précédentes, dans lequel ladite au moins une donnée de configuration est modifiée au moyen d'une interface externe de gestion (30) dudit contrôleur. 25 8. Procédé selon l'une des revendications précédentes, dans lequel les transmissions de ladite au moins une donnée de configuration vers ledit contrôleur de gestion, BMC, sont conformes à l'interface IPMI. 9. Procédé de démarrage d'un module de traitement de l'information 30 appartenant à un serveur comportant une pluralité de modules connectés de 15 sorte à former une plateforme unifiée pour un système d'exploitation déployé sur ledit serveur, comportant l'émission par le logiciel élémentaire, BIOS, dudit module d'une requête à un contrôleur de gestion, BMC, dudit module, 5 la récupération de données de configuration par ledit contrôleur dans une mémoire associée, et transmission desdites données audit logiciel élémentaire en réponse à ladite requête, démarrage dudit module en fonction desdites données de configuration. 10 10. Programme d'ordinateur comprenant des instructions de programme pour l'exécution d'un procédé selon l'une des revendications 5 à 9, lorsque ledit programme est exécuté sur un processeur.