Brevet FR2773239A1 — publié le 19990702

Titre: Configuration d'un système informatique multinodal. Description. Domaine technique. L'invention a pour objets un procédé de configuration d'un système informatique multinodal et un système mettant en oeuvre ce procédé. État de la technique. On connaît aujourd'hui deux types principaux de systèmes informatiques multiprocesseurs. Un système du premier type est appelé système multiprocesseur symétrique et, plus couramment, système SMP (Symmetric Multi-Processor). I1 comprend un nombre n de processeurs reliés à une mémoire partagée par les processeurs et perçue par eux comme une mémoire unique. Les processeurs et la mémoire sont aussi connectés à un sous-système d'entrée-sortie pour la communication du système avec l'extérieur. Ce type de système inclut une variante selon laquelle les processeurs sont physiquement reliés à des mémoires respectives qui communiquent avec les autres processeurs pour constituer une mémoire partagée. La communication se fait par l'intermédiaire d'un réseau d'interconnexion rapide pour que les transferts entre processeurs et mémoires se fassent de façon satisfaisante pour les processeurs. Un système multiprocesseur symétrique selon cette variante est appelé système à mémoire partagée distribuée ou système DSM (Distributed Shared Memory). Les systèmes DSM incluent les systèmes CCNUMA (Cache Coherent, Non Uniform Memory Access). Un système de ce premier type est géré par un seul système d'exploitation. Un système du second type est appelé système multiprocesseur multinodal ou système à grappe de processeurs. Chaque noeud comprend un ou plusieurs processeurs connectés à une mémoire et à un sous-ensemble d'entrée-sortie. Les noeuds du système sont gérés par des systèmes d'exploitation indépendants les uns des autres, et fréquemment identiques. L'ensemble des noeuds forme une grappe, appelée aussi par sa désignation anglo-saxonne "cluster". Chacun des deux types a ses propres avantages et ses propres inconvénients. Un système du premier type est puissant et rapide, grâce à la gestion du traitement des données par un seul système d'exploitation, à une liaison intime entre processeurs et la mémoire et à l'utilisation de la mémoire pour la communication entre processeurs. Les systèmes ouverts UNIX (marque déposée) ont fait l'effort de s'adapter à ce type de systèmes et continuent d'évoluer dans ce sens. Un tel système ouvert peut avoir actuellement jusqu'à plus de soixante-quatre processeurs. Par contre, un système du premier type a l'inconvénient d'avoir un réseau d'interconnexion interne cher, du fait que la mémoire partagée exige une performance qui augmente sensiblement plus vite que le nombre de processeurs. En outre, le fait de n'avoir qu'un seul système d'exploitation le rend très vulnérable à une défaillance de ce système et ne permet pas d'assurer une disponibilité à tout instant. Un système du second type offre une bonne disponibilité, du fait que si un système d'exploitation est défaillant, les autres systèmes d'exploitation peuvent gérer la défaillance et maintenir le service aux utilisateurs. Un autre avantage réside dans les systèmes d'exploitation euxmêmes. Par exemple, le système d'exploitation NT (marque déposée) évolue de façon à bien former un système multinodal. Actuellement, il convient bien à un système multinodal, dont les noeuds ont peu de processeurs, de l'ordre de quatre par exemple. Dans ces conditions, ce système d'exploitation peut s'étendre à de nombreux noeuds, à seize actuellement en ajoutant des logiciels spécialisés appropriés, dits de "clustering", proposés par certains constructeurs. À ces avantages s'ajoute aussi celui de nécessiter un réseau d'interconnexion aujourd'hui sensiblement moins cher que celui des systèmes du premier type. Néanmoins, les systèmes du second type présentent plusieurs inconvénients. D'abord, ils sont moins efficaces que les systèmes du premier type à nombre total égal de processeurs. Cela est dû au fait que les communications internodales se font par des interconnexions plus lentes et que les processeurs communiquent par messages. Une telle liaison nécessite en effet, en plus de la durée de transmission des données, l'usage de protocoles d'ouverture et de fermeture de la liaison. Un autre inconvénient majeur possible pour certains systèmes d'exploitation est de ne pas pouvoir actuellement s'adapter à des noeuds ayant un nombre relativement élevé de processeurs. Un problème très important se rapporte à l'évolution d'un système informatique. Supposons par exemple un client ayant investi dans un système du second type, approprié à un logiciel de gestion d'entreprise ordinairement appelé sous la désignation anglo-saxonne ERP (Enterprise Resource Planning). Ce système inclut ordinairement un noeud puissant, appelé serveur de base de données, et des noeuds moins puissants, appelés serveurs d'application. Par exemple, le système du client comprend un serveur de base de données formé d'un noeud de six processeurs, extensible à huit processeurs au maximum, et de trois serveurs d'application chacun incluant un processeur et extensible à deux processeurs au maximum. Ce système est donc formé au total de neuf processeurs. Supposons maintenant que le client a actuellement besoin d'un système formé d'un serveur de base de données de dix processeurs et de quatre machines d'application de trois processeurs chacune. Pour former ce système de vingt-deux processeurs, le client ne peut donc récupérer de son investissement initial que le noeud de six processeurs ayant servi de serveur de base de données, pour en faire un serveur d'application ne nécessitant que trois processeurs. Compte tenu de la forte croissance dans le temps des performances des systèmes et des besoins des clients, on comprend qu'un problème de ce genre se pose souvent. Les conséquences financières sont donc très importantes. Un autre problème très important concerne l'amélioration de l'efficacité de la disponibilité du système utilisé. La solution actuelle à ce problème est lourde et coûteuse. Actuellement, la disponibilité du système utilisé est obtenue en exploitant deux machines à peu près équivalentes qui se répartissent la charge de travail de façon que la défaillance d'une machine soit prise en charge par l'autre machine. Dans ce cas, l'autre machine ne dispose plus que la moitié environ de la capacité normale du système, alors que la défaillance de l'autre machine peut n'être due qu'à la défaillance de l'un de ses processeurs. On comprend qu'il serait beaucoup plus profitable pouvoir configurer le système en rapport avec une défaillance possible de ce système. Ceci n'est à présent pas du tout envisageable. La présente invention résout tous ces problèmes. Sommaire de l'invention Un premier but de l'invention est de pouvoir configurer de façon flexible un système afin de satisfaire à des demandes d'utilisation différentes du système, ces demandes pouvant être différentes à cause de clients différents qui ont des besoins différents, ou à cause de besoins différents dans le temps d'un même client. Un second but est de pouvoir faire évoluer la configuration tout en lui donnant les meilleures performances pour le nombre accru de ses processeurs et pour les tâches qu'il doit exécuter. Un troisième but est de pouvoir configurer le système en fonction du degré de défaillance qu'il peut présenter, afin d'assurer une haute disponibilité du système. Un quatrième but est d'atteindre l'un des trois buts précédents avec un coût réduit. L'invention a pour objet un procédé de configuration d'un système informatique, comprenant la détermination d'au moins un groupe de processeurs pour correspondre à une puissance de traitement désirée, caractérisé en ce qu'il consiste à déterminer le nombre et/ou la taille de noeuds à former avec les processeurs du groupe en fonction de tâches attribuées au groupe, de façon à optimiser les performances du groupe pour l'exécution des tâches. L'invention a aussi pour objet corollaire un système informatique comprenant au moins un groupe de processeurs correspondant à une puissance de traitement désirée, caractérisé en ce que le groupe est fait d'un nombre de cellules élémentaires faites chacune d'un nombre donné de processeurs, d'une mémoire et d'une interface d'entrée-sortie et connectées entre elles pour former et ajuster le nombre et/ou la taille de noeuds dans le groupe en fonction de tâches attribuées au groupe, de façon à optimiser les performances du groupe pour l'exécution des tâches. Les caractéristiques et avantages de l'invention ressortent de la description qui suit, donnée à titre d'exemple et faite en référence aux dessins annexés. Dans les dessins: - la figure 1 est une vue de principe illustrant schématiquement des processeurs d'un système multiprocesseur multinodal conforme à l'invention; - la figure 2 est un graphe illustrant un exemple de mise en oeuvre du procédé de l'invention pour la configuration du système représenté sur la figure 1 ; et - la figure 3 est une vue schématique d'un exemple de réalisation d'un système multiprocesseur multinodal conforme à l'invention. Description détaillée d'exemples illustrant l'invention. La figure lA représente les processeurs P d'un système informatique multinodal S configuré selon le procédé illustré dans la figure 2. Le système illustré comprend initialement un groupe prédéterminé G1 de vingt-quatre processeurs P correspondant à la puissance désirée par un client. On suppose maintenant que le client destine ce groupe de processeurs à l'exécution d'un ou plusieurs ensembles de tâches. Par exemple, les tâches choisies se rapportent à l'exploitation d'un logiciel ERP. Ce logiciel nécessite un serveur de base de données relatif à un premier ensemble de tâches, et un ou plusieurs serveurs d'application relatifs à d'autres ensembles respectifs de tâches. La figure 2 est un graphe ayant pour abscisses P/N représentatives du nombre de processeurs par noeud et pour ordonnées le nombre de noeuds N du système. Ce graphe illustre avec la figure 1A un exemple du procédé conforme à l'invention de configuration du système S. Le procédé consiste à déterminer le nombre et/ou la taille de noeuds N à former avec les processeurs P du groupe Gl, de façon à optimiser les performances du groupe de processeurs pour l'exécution des ensembles de tâches relatives au logiciel ERP. Dans la figure 2, chaque noeud N est suivi par un premier chiffre relatif au groupe auquel il appartient et par un second chiffre en indice relatif au nombre de processeurs P qu'il contient. En référence aux figures lA et 2, le client disposant des vingt-quatre processeurs P du groupe G1 les a réparti en un noeud de dix processeurs Nllo comme serveur de base de données, et en un noeud biprocesseur N12 et trois noeuds quadriprocesseurs Nl4 comme serveurs d'application. La figure 1B illustre un exemple d'évolution de la configuration du groupe G1. Selon cet exemple, on suppose que le client doit avoir, avec le même nombre de processeurs P du groupe G1, un serveur de base de données un peu plus puissant, conserver deux des trois serveurs quadriprocesseurs d'application et avoir deux autres serveurs d'application au lieu du troisième serveur quadriprocesseur de la configuration précédente. Selon l'exemple illustré dans les figures lB et 2, la connexion des vingt-quatre processeurs P du groupe G1 est modifiée pour avoir un noeud de douze processeurs Ni12 comme serveur de base de données et, comme serveurs d'application, un noeud monoprocesseur N11, un noeud triprocesseur Ni3 et deux noeuds quadriprocesseurs N'14. La figure 1C illustre avec la figure 2 un autre d'exemple d'évolution possible de la configuration du système S conforme à l'invention. Selon cet exemple, le client doit encore accroître la puissance du serveur de base de données et accroître le nombre de serveurs d'application. Selon un avantage de l'invention, le nombre total de processeurs peut inclure tout nombre additionnel désiré pour faire évoluer le système. Dans l'exemple illustré dans les figures 1C et 2, le client ayant le logiciel ERP a simplement à ajouter au groupe précédent Gl un nombre de huit processeurs P représentés symboliquement dans une colonne additionnelle. En utilisant le procédé de l'invention, le client dispose ainsi d'un nouveau groupe G2 de trente-deux processeurs et peut les répartir à volonté de façon à optimiser les performances du logiciel ERP. La nouvelle configuration choisie comprend un noeud de seize processeurs N216 comme serveur de base, trois noeuds biprocesseurs N22, deux noeuds triprocesseurs N23 et un noeud quadriprocesseur N24. Cependant, on comprend qu'il pourrait définir toute autre configuration et qu'il peut la faire évoluer en une nouvelle configuration. Le client pourrait aussi diminuer le nombre de processeurs pour le logiciel ERP et disposer des autres processeurs pour faire une configuration variable adaptée à d'autres tâches, optionnellement avec des processeurs additionnels disponibles du système ou ajoutés au système. Suivant cette logique, dans le cas d'une défaillance d'un noeud il est maintenant possible d'envisager une configuration supplétive adaptée à la défaillance. Par exemple, si un processeur P tombe en panne dans un noeud N24, il devient possible d'adapter la configuration du groupe G2 de façon à isoler le processeur défaillant des noeuds du système. Par exemple, le noeud N24 peut être configuré en un noeud triprocesseur. Si cette configuration est insuffisante pour l'application dont il a la charge, le noeud N24 pourrait être reconfiguré en un noeud quadriprocesseur en empruntant temporairement un processeur d'un autre noeud du groupe ou d'un autre groupe pouvant supporter la suppression d'un seul processeur. La figure 1D illustre avec la figure 2 deux configurations extrêmes pouvant être obtenues du procédé de l'invention à partir d'un groupe G3 de trente-deux processeurs P destinés à diverses tâches autres que le logiciel ERP. Ces processeurs peuvent être contenus dans un seul noeud N332 ou dans trente deux noeuds monoprocesseurs N31. Entre ces deux cas limites, toute configuration est possible. Parmi les configurations illustrées dans la figure 2 seulement, les trente-deux processeurs P peuvent être répartis en deux noeuds de seize processeurs N316, ou en quatre noeuds octoprocesseurs N3s, ou encore en huit noeuds quadriprocesseurs N34. La figure 3 illustre un exemple de mise en oeuvre du procédé de l'invention. Cette mise en oeuvre consiste à former le nombre et/ou la taille des noeuds en utilisant des cellules élémentaires C faites chacune d'un nombre donné de processeurs. La figure 3 illustre un groupe de huit cellules biprocesseurs interconnectées pour former trois noeuds Na, Nb et Nc dans un système S conforme à l'invention. Chaque cellule C comprend deux processeurs P connectés entre eux ainsi qu'à une mémoire M et à une interface d'entrée-sortie I par l'intermédiaire d'une liaison formée par un bus B dans l'exemple illustré. Chaque cellule C peut former à elle seule un noeud, tel que le noeud Na illustré. La cellule fonctionne alors avec un système d'exploitation autonome, c'est-à-dire indépendant de tous les systèmes d'exploitation qui gèrent les autres noeuds. Les noeuds illustrés sont délimités par une ligne en trait fantôme. Les cellules sont interconnectées entre elles par un réseau K de liaisons L, de préférence des liaisons de transmission de données à haut débit. Pour des raisons de clarté des dessins, seules les liaisons L relatives à la cellule C constitutive du noeud Na ont été représentées. Grâce aux liaisons L intercellulaires, le groupe de huit processeurs système S peut former un système autonome dont les noeuds sont faits chacun d'une seule cellule C. Ce système peut être aisément configuré en fonction des besoins de chaque client d'un tel système. Dans l'exemple illustré dans la figure 3, on a supposé que le client dispose d'un système S à seize processeurs et a besoin d'un noeud biprocesseur Na, d'un noeud hexaprocesseur Nb et d'un noeud octoprocesseur Nc. L'invention consiste donc à faire fonctionner trois cellules C de façon à former le noeud Nb et quatre autres cellules de façon à former le noeud Nc. En pratique, comme les liaisons L relient chaque cellule à chacune des autres cellules, l'assemblage de cellules pour former un noeud consiste donc simplement à inclure dans chaque cellule, de préférence dans l'interface I de la cellule comme illustré, un bloc de communication U, câblé ou programmable, pour identifier les autres cellules et faire fonctionner la cellule avec un nombre donné de cellules déterminées. Un but essentiel du bloc de communication U consiste à permettre l'accès partagé aux mémoires M des cellules du noeud par tous les processeurs de ce noeud et à gérer la cohérence de ces mémoires. Les blocs de communication U fonctionnent donc de façon à former un ou plusieurs systèmes du premier type qui a été défini en introduction de la présente demande. Ce sont des systèmes DSM dès qu'un noeud a plus d'une cellule. En outre, le bloc de communication U permet d'identifier les autres noeuds du système de façon à gérer les transmissions internodales selon le second type. Selon une autre approche de l'invention, on peut dire qu'une configuration variable peut donc être facilement obtenue d'un système S du type DSM, en isolant entre eux des ensemble-s de processeurs avec leurs mémoires respectives pour en faire des noeuds différents. Pour un système du premier type, il suffit de former des groupes de processeurs avec des sousensembles de la mémoire du système, et de faire communiquer ces groupes entre eux par l'intermédiaire de messages. Si les groupes de processeurs ne pouvaient pas communiquer entre eux, on reviendrait alors à une fonctionnalité bien connue de partitionnement des systèmes, que l'invention permet donc de traiter également. Les exemples relatifs aux figures 1 et 2 supposent l'emploi de cellules monoprocesseurs, qui offre l'avantage de donner une souplesse maximale de la configuration d'un système. Cependant, cette configuration nécessiterait l'insertion d'un bloc de communication U dans chacune des cellules et serait donc très coûteuse. Les cellules multiprocesseurs sont un compromis entre la souplesse de configuration et le coût du système. Le nombre de processeurs par cellule dépend aussi du nombre maximal admissible de processeurs du système. Les cellules biprocesseurs de la figure 3 sont plutôt appropriées à des petits systèmes, alors qu'un bon compromis actuel pour les grands systèmes serait des cellules quadriprocesseurs. L'invention offre aussi l'avantage de pouvoir tirer parti des avantages spécifiques des systèmes d'exploitation disponibles sur le marché au moment du choix de la configuration pour faire fonctionner les noeuds. Actuellement par exemple, on choisirait le système d'exploitation NT pour gérer plusieurs noeuds ayant un faible nombre de processeurs et le système d'exploitation UNIX pour les autres noeuds. Lors d'une prochaine configuration faite quelques années plus tard, par exemple, il serait possible de choisir les systèmes d'exploitation les mieux adaptés à la nouvelle configuration. I1 ressort donc des exemples précédents que l'invention a pour objet général un procédé de configuration d'un système informatique consistant à déterminer au moins un groupe G1-G3 de processeurs P pour correspondre à une puissance de traitement désirée et à déterminer le nombre et/ou la taille de noeuds N à former avec les processeurs du groupe en fonction de tâches attribuées au groupe, de façon à optimiser les performances du groupe pour l'exécution des tâches. En bref, un groupe a un nombre de processeurs P correspondant à la puissance désirée par le client et est partagé en noeuds N en fonction des tâches attribuées au groupe par le client, de façon à optimiser les performances de ce groupe. Le nombre et la taille des noeuds peuvent ainsi varier en fonction des tâches attribuées au groupe et du changement de nombre de processeurs dans le groupe. Par conséquent, il est possible de livrer à tout client un système informatique multiprocesseur non configuré ayant un nombre de processeurs suffisant pour répondre aux besoins de ce client. Le critère de départ est donc la puissance que le système doit avoir pour répondre aux besoins d'un client, indépendamment de la nature de ces besoins. Par exemple, un système octoprocesseur non configuré peut servir à de multiples fonctions. Le client peut alors disposer à tout moment de ce système pour le configurer de façon à optimiser les performances du système en fonction de la nature des besoins du moment. Quand le client aura besoin d'une puissance supérieure, par exemple d'environ la moitié dont il dispose actuellement, il lui suffira d'acheter le nombre de processeurs correspondant à la moitié de puissance additionnelle désirée et de faire la configuration de l'ensemble des processeurs dont il dispose. Cette configuration peut être une amélioration du système existant, ou être adaptée à d'autres tâches. Par exemple, il est possible de transformer une configuration existante, adaptée à des calculs scientifiques, en une configuration servant par exemple à des services ERP. Dans ce cas, les processeurs du système seront divisés en deux groupes destinés à des tâches distinctes, telles que les tâches de serveur de base de données et celles de serveur d'application qui ont été illustrées en référence aux figures lA-lC. La notion de groupe est donc très souple et peut être tout ou partie des processeurs d'un système. On a vu aussi qu'un avantage important de l'invention consiste à faire varier le nombre et/ou la taille de noeuds dans un groupe en fonction d'un nombre de processeurs défaillants de ce groupe. On peut aussi disposer d'autres processeurs disponibles du système en dehors du groupe. On a vu aussi que ce procédé consiste, pour sa mise oeuvre, à former le nombre et/ou la taille des noeuds dans le groupe en utilisant des cellules élémentaires faites chacune d'un nombre donné de processeurs. Pour la formation d'un noeud à partir d'une cellule, il suffit que la cellule ait au moins un processeur, une mémoire et une interface d'entréesortie. Pour la formation d'un noeud à partir d'au moins deux cellules, on inclut un bloc de communication U dans les cellules du noeud. En d'autres termes, toutes les cellules doivent inclure un bloc de communication U si on veut que chacune des cellules puisse former un noeud avec une autre cellule. Ce bloc permet l'accès partagé aux mémoires M des cellules du noeud par tous les processeurs de ce noeud et gère la cohérence de ces mémoires. I1 en résulte que l'invention a aussi pour objet un système informatique S comprenant au moins un groupe G1-G3 de processeurs P correspondant à une puissance de traitement désirée, le groupe étant fait d'un nombre de cellules élémentaires C faites chacune d'un nombre donné de processeurs P, d'une mémoire M et d'une interface d'entrée-sortie I et connectées entre elles pour former et ajuster le nombre et/ou la taille de noeuds N dans le groupe en fonction de tâches attribuées au groupe, de façon à optimiser les performances du groupe pour l'exécution des tâches. L'interface d'entrée-sortie inclut un bloc de communication U permettant l'accès partagé aux mémoires M des cellules du noeud par tous les processeurs de ce noeud et la gestion de la cohérence de ces mémoires. De préférence, ce bloc identifie les cellules du noeud et/ou les autres noeuds, bien que cette identification puisse être localisée ailleurs. De préférence aussi, le système comporte des moyens V pour faire varier le nombre et/ou la taille de noeuds dans un groupe en fonction d'un nombre de processeurs défaillants de ce groupe. De préférence, ces moyens de reconfiguration dynamique V seraient inclus dans un logiciel de gestion de serveur ou de plate-forme et placés dans un processeur de service Ps du système S, tel que représenté sur la figure 3. Le processeur de service d'un système sert notamment à l'initialisation du système et de préférence à l'analyse des pannes. Revendications: 1. Procédé de configuration d'un système informatique (S), comprenant la détermination d'au moins un groupe (G1-G3) de processeurs (P) pour correspondre à une puissance de traitement désirée, caractérisé en ce qu'il consiste à déterminer le nombre et/ou la taille de noeuds (N) à former avec les processeurs du groupe en fonction de tâches attribuées au groupe, de façon à optimiser les performances du groupe pour l'exécution des tâches. 2. Procédé selon la revendication 1, caractérisé en ce que le nombre de processeurs du groupe étant modifié, il consiste à déterminer à nouveau le nombre et/ou la taille des noeuds du groupe en fonction de tâches attribuées au groupe. 3. Procédé selon la revendication 2, caractérisé en ce qu'il consiste à faire varier le nombre et/ou la taille de noeuds dans un groupe en fonction d'un nombre de processeurs défaillants de ce groupe. 4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce qu'il consiste à former le nombre et/ou la taille des noeuds dans le groupe en utilisant des cellules élémentaires (C) faites chacune d'un nombre donné de processeurs. 5. Procédé selon la revendication 4, caractérisé en ce que la formation d'un noeud à partir d'au moins deux cellules consiste à insérer dans chacune des cellules du noeud un bloc de communication (U) permettant l'accès partagé aux mémoires (M) des cellules du noeud par tous les processeurs de ce noeud et la gestion de la cohérence de ces mémoires. 6. Système informatique (S) comprenant au moins un groupe (G1-G3) de processeurs (P) correspondant à une puissance de traitement désirée, caractérisé en ce que le groupe est fait d'un nombre de cellules élémentaires (C) faites chacune d'un nombre donné de processeurs (P), d'une mémoire (M) et d'une interface d'entrée-sortie (1) et connectées entre elles pour former et ajuster le nombre et/ou la taille de noeuds (N) dans le groupe en fonction de tâches attribuées au groupe, de façon à optimiser les performances du groupe pour l'exécution des tâches. 7. Système selon la revendication 6, caractérisé en ce que l'interface d'entrée-sortie d'une cellule destinée à former un noeud avec une autre cellule inclut un bloc de communication (U) permettant l'accès partagé aux mémoires (M) des cellules du noeud par tous les processeurs de ce noeud et la gestion de la cohérence de ces mémoires. 8. Système selon la revendication 6 ou 7, caractérisé en ce qu'il comporte des moyens (V) pour faire varier le nombre et/ou la taille de noeuds dans un groupe en fonction d'un nombre de processeurs défaillants de ce groupe. 9. Système selon la revendication 8, caractérisé en ce que lesdits moyens (V) sont placés dans un processeur de service (Ps) du système pour analyser dans le système les disponibilités potentielles de processeurs hors du groupe et ajouter à ce groupe au moins un des processeurs disponibles.