Guide d'administration du système Solaris Resource Manager 1.0 pour Solaris 2.6 (Édition plateforme SPARC)

Chapitre 1 Aperçu

Le logiciel Solaris Resource Manager assure la disponibilité des ressources pour les utilisateurs, les groupes et les applications. Il permet d'attribuer et de contrôler les principales ressources système telles que l'UC, la mémoire virtuelle et le nombre de processus. Il met également en oeuvre les politiques administratives régissant les ressources auxquelles les différents utilisateurs ont accès, et en particulier, le niveau de consommation de ces ressources permis à chaque utilisateur. Le logiciel Solaris Resource Manager est un outil clé pour le regroupement de serveurs et l'usage accru des ressources.

Le logiciel Solaris Resource Manager est basé sur la technologie ShareIITM développée par Softway Pty. Limited (Australie).

Introduction à Solaris Resource Manager

Atteinte des objectifs de l'organisation

Les entreprises exigent souvent que les organisations de technologie de l'information contrôlent les coûts et garantissent les niveaux de service des applications de l'entreprise. La gestion des ressources permet d'accroître la disponibilité des procédures, ce qui diminue le coût de propriété, et de contrôler avec plus de précision les utilisateurs et l'usage du système.

En utilisant le logiciel Solaris Resource Manager pour catégoriser et définir les priorités d'usage, les administrateurs peuvent employer efficacement la capacité de réserve durant les périodes hors-pointe, éliminant souvent le besoin d'augmenter la puissance de traitement.

En répartissant les charges de travail dans le système, Solaris Resource Manager permet à l'administrateur d'exécuter et de gérer différentes applications dans un même système, plutôt que d'allouer un système entier--et toute sa capacité de pointe--à chaque application. L'approche la plus couramment employée pour assurer un service et un temps de réponse prévisibles consiste à utiliser un système pour chaque fonction. Cette méthode fonctionne, mais la prolifération de systèmes dans le centre informatique est coûteuse et difficile à gérer.

Les gestionnaires de centre informatique veulent pouvoir regrouper de multiples applications sur un seul serveur UNIX afin d'utiliser au maximum toutes les ressources. En même temps, tous les utilisateurs doivent avoir accès à des ressources proportionnelles à leur niveau de service et à l'importance relative de leur travail.

Quand utiliser Solaris Resource Manager

Solaris Resource Manager peut fournir un contrôle efficace des ressources dans diverses situations, y compris le regroupement de serveurs, l'accueil de sites Web pour les fournisseurs de services Internet, l'administration de sites à population élevée ou variée, et l'établissement de politiques visant à assurer un temps de réponse approprié pour les applications cruciales.

Solaris Resource Manager est idéal pour les environnements regroupant de multiples applications sur un même serveur. Le coût et la complexité de la gestion de nombreux ordinateurs incitent les gestionnaires de système à regrouper les applications sur des systèmes plus puissants et évolutifs. Avec Solaris Resource Manager, il est facile de réaliser de telles économies d'échelle.

Par exemple, un seul serveur SunTM pourrait fournir les services d'applications, de fichiers et d'impression pour des clients hétérogènes, des services de messagerie/courrier, des services Web et des applications de base de données cruciales. Comme les serveurs Sun EnterpriseTM peuvent comporter de 1 à 64 processeurs, un serveur peut être partagé entre plusieurs services ou utilisé par toute l'entreprise. Dans d'autres systèmes regroupés, les environnements de développement, de prototypage et de production sont combinés sur un seul serveur puissant, par exemple un modèle Sun Enterprise 10000 ou Sun Enterprise 6500, plutôt que d'être répartis sur trois serveurs distincts. On peut également combiner des serveurs de base de données et d'applications sur une seule machine, ou encore des banques de données multiples. Quel que soit le type d'application ou la configuration, Solaris Resource Manager vous aide à répartir les ressources système entre tous les utilisateurs, toutes les applications et tous les groupes, en fonction des politiques de votre entreprise. Les applications cruciales sont protégées, car elles reçoivent leur part appropriée des ressources système.

De même, avec Solaris Resource Manager, un fournisseur de services Internet peut loger un grand nombre (voire des milliers) de serveurs Web sur une seule machine. Solaris Resource Manager permet aux administrateurs de contrôler la consommation des ressources associée à chaque site Web, en protégeant chacun d'eux contre les excès potentiels des autres. Solaris Resource Manager empêche également les scripts CGI erronés d'épuiser les ressources de l'UC, et les applications des utilisateurs de monopoliser toute la mémoire virtuelle disponible. Autrefois, les fournisseurs de services Internet devaient assigner des ordinateurs spécialisés à chaque client, ce qui augmentait considérablement les coûts et la complexité.

Solaris Resource Manager peut vous aider à gérer les ressources dans les systèmes à utilisateurs nombreux. Les établissements d'enseignement sont des exemples représentatifs de sites desservant une base d'utilisateurs importante et diversifiée. (D'ailleurs, Solaris Resource Manager a été initialement conçu en tant qu'ordonnanceur de ressources d'UC dans les universités de Sydney et de Nouvelle-Galles du Sud.) Si les charges de travail sont diversifiées, Solaris Resource Manager peut être configuré de manière à favoriser certains utilisateurs. Dans les grandes maisons de courtage, les négociants ont occasionnellement besoin d'un accès rapide afin d'effectuer une interrogation ou un calcul. Les autres utilisateurs du système ont toutefois une charge de travail plus uniforme. Si les négociants doivent bénéficier d'une puissance de traitement proportionnellement plus élevée, Solaris Resource Manager fait en sorte qu'ils l'obtiennent.

Caractéristiques principales

Solaris Resource Manager permet de gérer la consommation de diverses ressources système importantes telles que le temps de processeur, la mémoire virtuelle, le nombre de processus, le nombre de connexions et le temps de connexion. Le modèle administratif de Solaris Resource Manager augmente la flexibilité en permettant la délégation de privilèges administratifs dans le cadre d'une hiérarchie, ce qui libère le personnel du centre informatique des transactions administratives intra-groupe. De plus, Solaris Resource Manager comporte des mécanismes de collecte de données sur l'usage des ressources pouvant servir à la planification de la capacité ou à des fins de contre-passation.

L'une des tâches fondamentales du système d'exploitation consiste à décider à quels processus attribuer l'accès aux ressources système. L'ordonnanceur par défaut de Solaris tente d'accorder à chaque processus environ le même temps d'accès aux ressources système. Une limitation de l'accès est appliquée aux processus sans ressources de mémoire physique dont l'exécution n'est pas autorisée, ainsi qu'aux processus ayant des requêtes d'E-S en suspens qui sont bloqués.

Cette méthode est à la base de la plupart des systèmes d'exploitation modernes ; elle donne de bons résultats à partir du moment où la politique "d'accès égal" convienne à l'entreprise. Cependant, des mécanismes plus perfectionnés sont requis pour mettre en oeuvre des politiques différentes. Par exemple, un service de fabrication peut posséder un système puissant, mais généralement peu utilisé en raison de la fluctuation de la demande saisonnière, tandis que le service de génie est presque toujours à cours de ressources informatiques. Bien que la sous-utilisation des capacités d'une machine constitue un gaspillage, il a toujours été problématique de partager le système de fabrication avec le service de génie. Avec une politique d'ordonnancement élémentaire, il est impossible de signifier au système d'exploitation que les utilisateurs du service de fabrication ont priorité sur ceux du service de génie dans le même système. Si le service de fabrication exécute un travail consommant 75 % des ressources système, ce travail ne pourra progresser normalement que si les autres travaux demandent 25 ou moins de 25 % des ressources. Toutefois, si un travail de génie demande 50 % des ressources système, le travail de fabrication crucial ne disposera pas des ressources dont il a besoin, car le système tentera de satisfaire les besoins des deux travaux, à parts égales.

Supposons maintenant que les administrateurs déterminent que les besoins de traitement normaux de la fabrication peuvent être satisfaits avec 80 % de la capacité du système. Grâce à Solaris Resource Manager, l'administrateur du système peut spécifier que les utilisateurs du service de fabrication peuvent recevoir jusqu'à 85 % de la puissance de traitement du système s'ils le demandent, et l'ordonnanceur répartira le reste parmi les autres utilisateurs éventuels. Une autre possibilité de configuration consisterait à spécifier que les utilisateurs du service de fabrication peuvent recevoir jusqu'à 100 % des ressources système au besoin, ce qui empêcherait les autres services d'utiliser le système lorsque la fabrication en a besoin.

Solaris Resource Manager comporte une nouvelle classe d'ordonnancement de l'UC qui remplace l'ordonnanceur de partage de temps standard. Cette classe, appelée classe d'ordonnancement SHR, permet d'effectuer un partage dit "équitable". Ce terme est toutefois imprécis, car c'est l'administrateur du système qui décide ce qui est "équitable" et ce qui ne l'est pas. Ainsi, dans l'exemple ci-dessus il est équitable que le service de fabrication reçoive 100 % des ressources système. L'ordonnanceur SHR est responsable de l'attribution des ressources en fonction du plan défini dans le profil administratif.

Solaris Resource Manager met à jour une base de données de la consommation des ressources et des limites associées.

L'ordonnanceur SHR tient compte des spécifications administratives relativement aux ressources garanties. Il peut gérer les ressources renouvelables (le temps machine, par exemple) ou fixes (telles que le nombre de connexions).

D'autres modules de Solaris Resource Manager mettent en oeuvre des restrictions de la consommation de diverses ressources. Par exemple, le temps de connexion et le nombre de sessions utilisateur sont gérés par un module PAM (module d'authentification enfichable). Le module PAM consulte la base de données de Solaris Resource Manager chaque fois qu'un utilisateur tente d'ouvrir une session. Lorsque le système authentifie l'utilisateur (généralement par mot de passe), le temps de connexion de l'utilisateur et le nombre de connexions actuel sont comparés aux limites. Si les limites sont dépassées, la session est refusée.

Lien avec les autres fonctions de contrôle des ressources de Solaris

L'environnement d'exploitation Solaris comporte plusieurs autres fonctions permettant de contrôler certains types de ressources. Certaines fonctions telles que l'ordonnancement en temps réel, nice(1), les quotas et les groupes de processeurs, font partie du système d'exploitation Solaris de base.

Bandwidth Allocator est un progiciel offert en option, les domaines de système dynamiques sont des fonctions de la plateforme du système Sun Enterprise 10000, et la reconfiguration dynamique est une fonction de la plateforme du système Sun Enterprise.

Toutes ces composantes permettent une certaine gestion des ressources, mais elles diffèrent des fonctions de Solaris Resource Manager.

Le système d'exploitation Solaris standard utilise la classe d'ordonnancement de partage de temps (TS) pour la plupart des tâches ordinaires. Cependant, il offre également l'ordonnancement en temps réel (RT) aux utilisateurs détenant des privilèges suffisants. La classe d'ordonnancement RT met en oeuvre une politique d'ordonnancement très différente (et intentionnellement très pondérée) afin d'assurer que des charges de travail particulières aient immédiatement accès au processeur. Solaris Resource Manager peut coexister sur le même système que la classe d'ordonnancement RT, mais n'a alors aucun contrôle sur les processus exécutés dans la classe RT. L'ordonnanceur à partage équitable de Solaris Resource Manager peut gérer les ressources de l'UC uniquement pour les processus exécutés dans la classe RT. Par exemple, dans le cas d'un système à 4 processeurs, un processus à une unité d'exécution peut utiliser toutes les ressources d'un processeur; c'est exactement ce qui se produit si le processus demandeur est lié à l'UC. Si ce système exécute aussi Solaris Resource Manager, les processus utilisateur ordinaires vont se disputer les 3 UC non accaparés par le processus en temps réel. (Il faut noter que les processus RT n'utilisent pas nécessairement l'UC continuellement. Lorsque l'UC se libère, Solaris Resource Manager commande les 4 processeurs.)

La commande nice(1) permet aux utilisateurs de définir leur priorité d'exécution. Sans privilèges de superutilisateur, cette commande ne permet à l'utilisateur que de diminuer sa priorité. Dans certains cas, cette commande peut s'avérer utile (par exemple lorsqu'un utilisateur lance un travail par lots à basse priorité dans sa session de connexion interactive), mais elle exige la coopération de l'utilisateur. Solaris Resource Manager met en oeuvre les politiques administratives même sans la coopération de l'utilisateur.

Les systèmes de fichiers Solaris sont dotés de mécanismes de quota permettant à l'administrateur de limiter l'usage du disque par des utilisateurs individuels. Cette fonctionnalité est indépendante de Solaris Resource Manager.

Les groupes de processeurs ont été instaurés dans Solaris 2.6. Cette caractéristique permet à l'administrateur de diviser les systèmes multiprocesseurs en groupes logiques, et aux utilisateurs de lancer des processus dans ces groupes. L'avantage de cette méthode est que les charges de travail exécutées dans un groupe de processeurs sont protégées contre les actions de l'UC effectuées dans tout autre groupe de processeurs. D'une certaine manière, cette méthode est comparable à celle utilisée par Solaris Resource Manager, mais les deux fonctions ont des bases complètement différentes. Les groupes de processeurs ne contrôlent que l'activité de l'UC. Le contrôle s'effectue à un niveau matériel bas, car les processeurs ne peuvent appartenir qu'à un groupe de processeurs à la fois. Particulièrement dans le cas des petits systèmes, la granularité peut être très élevée. Dans un système à 4 processeurs, la ressource minimale pouvant être attribuée équivaut à 25 % du système.

Solaris Resource Manager exerce toutefois un contrôle beaucoup plus subtil ; en effet, chaque utilisateur dispose d'une part du système. Les parts peuvent être distribuées arbitrairement avec une fine granularité, et l'ordonnanceur attribue les ressources en conséquence. Par exemple, si 50 parts sont accordées et qu'un utilisateur en détient 40, cet utilisateur disposera de 40 / 50 = 80 % de la ressource. De même, si un total de 67 parts est accordé, un utilisateur en possédant 57 disposera de 85 % de la ressource. En outre, Solaris Resource Manager peut contrôler d'autres ressources que l'UC.

Sun Enterprise 10000 est doté d'une caractéristique appelée domaines de systèmes dynamiques, qui permet à l'administrateur de diviser logiquement une baie système en un ou plusieurs systèmes indépendants exécutant chacun sa propre copie de Solaris. Par exemple, un système comportant 32 UC réparties sur 8 cartes système pourrait être exploité comme un système à 16 UC et deux autres systèmes à 8 UC chacun. Avec une telle configuration, trois copies de Solaris seraient exécutées. Les domaines de systèmes dynamiques permettent également l'entrée et la sortie contrôlées de ressources dans chaque image de Solaris, créant ainsi un système à granularité assez élevée de gestion des ressources physiques. (L'unité minimale d'attribution inter-domaine est une carte système entière.) Solaris Resource Manager est semblable aux domaines de systèmes dynamiques en ce sens qu'il fournit à l'administrateur des mécanismes d'attribution des ressources, mais de manière tout à fait différente. Solaris Resource Manager fonctionne avec une seule instance de Solaris, et permet de gérer les ressources du système avec une haute granularité. Les domaines de systèmes dynamiques divisent une même unité matérielle en instances multiples de Solaris ; ils fournissent des outils de gestion du transfert des ressources entre instances de Solaris exécutées dans le même bâti Sun Enterprise 10000. Solaris Resource Manager est perpendiculaire aux domaines de systèmes dynamiques et peut être utilisé conjointement avec eux. Solaris Resource Manager peut tourner sous chaque instance de Solaris dans un système Sun Enterprise 10000.

La caractéristique de reconfiguration dynamique des serveurs Sun Enterprise permet aux utilisateurs d'ajouter et de supprimer dynamiquement des cartes système contenant des ressources matérielles telles que des processeurs, de la mémoire et des périphériques d'E-S. La reconfiguration dynamique de la mémoire n'a aucun effet sur la vérification de limite de mémoire effectuée par Solaris Resource Manager.

Le progiciel optionnel Bandwidth Allocator fonctionne conjointement avec le noyau Solaris afin de mettre en oeuvre les limites de consommation de largeur de bande réseau. Bandwidth Allocator est un logiciel effectuant la gestion d'une classe de ressources différente. Solaris Resource Manager et Bandwidth Allocator ont des domaines de gestion différents : Solaris Resource Manager fonctionne sur une base "par utilisateur" ou "par application", tandis que Bandwidth Allocator gère sur une base "par port", "par service" ou "par protocole".

Différences entre Solaris Resource Manager et les produits similaires

Solaris Resource Manager est relié à plusieurs autres composants logiciels pouvant être présents dans le système, mais sans toutefois les remplacer. Comme nous l'avons vu, Bandwidth Allocator gère un type de ressources différent. Bien que Solaris Resource Manager possède certaines fonctions de gestion et de surveillance de système, il n'est pas un logiciel de surveillance de système tel que Sun Enterprise SyMONTM 2.0. De même, Solaris Resource Manager n'est pas un outil de planification de capacité. Il aide l'administrateur à gérer la capacité, et ses fonctions de comptabilité génèrent des registres d'usage pouvant être utilisés par le personnel de gestion pour effectuer des analyses de tendances, mais il n'effectue pas la planification de capacité en tant que telle. Solaris Resource Manager n'est pas non plus un ordonnanceur de travaux ; il contrôle l'exécution d'un processus sur son système hôte, mais non l'endroit et le moment où celui-ci est exécuté. Enfin, étant donné que Solaris Resource Manager fonctionne sur un seul système, il ne s'agit pas d'un mécanisme d'équilibrage des charges parmi les membres d'un groupe. Solaris Resource Manager peut toutefois être utilisé efficacement pour gérer les charges de travail individuelles de chaque membre d'un groupe. Par exemple, vous pouvez donner priorité au travail d'un membre défaillant d'un groupe à haute disponibilité par rapport à une charge de travail d'arrière plan d'un membre de relève.