Ce chapitre explique ce que sont les conteneurs et les projets et comment démarrer le produit.
Les rubriques traitées sont les suivantes :
Un projet est un conteneur associé à un hôte qui facilite l'organisation et la gestion des ensembles de ressources système physiques. Un projet est utile lorsque vous mettez en oeuvre un plan global de consolidation des serveurs. Les projets offrent les fonctionnalités suivantes :
Définition de réservations minimum de CPU et de capital de mémoire pour les applications facilitant l'équilibrage des ressources système
Chaque application est assurée de disposer de la réservation minimum de CPU, un capital de mémoire facultatif étant défini pour le projet qui lui est associé. Par exemple, un projet de type Application permet de configurer une réservation minimum de CPU et un capital mémoire pour toute application exécutée sur un réseau. Lorsque plusieurs projets sont actifs sur le même hôte, chaque application ayant son projet spécifique, les conflits d'utilisation des ressources système sont réduits. En effet, dans ce cas, les limites de ressources définies pour chaque projet sont mises en oeuvre par le noyau Solaris de l'hôte en question.
Contrôle de l'utilisation des ressources à l'échelle d'un centre de données
La quantité totale des ressources utilisées par le projet est contrôlée, en partie, grâce aux assignations du projet. Chaque utilisateur UNIX doit être associé à un projet par défaut, les utilisateurs et les groupes pouvant appartenir à un ou plusieurs projets. Il est possible de lier les processus exécutés par un utilisateur UNIX à tout projet auquel ce dernier est associé. Les projets utilisent à la fois les assignations de projet et les pools de ressources pour surveiller et contrôler l'utilisation des ressources par l'application.
Pour plus d'informations sur le fonctionnement des projets et les outils de gestion des ressources utilisés, reportez-vous au Chapitre 1, Présentation de Solaris Container Manager 1.1.
Une fois le logiciel installé et configuré, plusieurs projets par défaut sont disponibles pour une utilisation immédiate. Vous pouvez également créer des projets personnalisés à l'aide d'un assistant qui vous guide pas à pas tout au long du processus. Chaque projet est associé à un conteneur. Ce conteneur peut être réutilisé pour créer de nouveaux projets. Les projets offrent les avantages suivants :
Possibilité de créer plusieurs instances de projet en utilisant les mêmes limites de ressources de CPU et de mémoire.
Déploiement de plusieurs instances de projet sur différents hôtes. Bien qu'un même projet actif ne puisse pas être déployé sur plusieurs hôtes, il est possible d'utiliser des instances de projet supplémentaires associées au même conteneur sur différents hôtes.
Réduction du temps nécessaire à la création d'une nouvelle instance de projet, ce qui permet d'ajuster rapidement la répartition des ressources en fonction des besoins.
L'IG du gestionnaire de conteneur se présente sous la forme d'un navigateur doté de trois vues (onglets) de gestion : une vue de l'hôte, une autre spécifique au conteneur et une vue distincte pour les alarmes déclenchées. Vous pouvez adapter la vue de l'hôte et la vue du conteneur en créant des groupes et en sélectionnant les éléments devant figurer dans ces groupes.
De plus, les processus exécutés dans le conteneur, ainsi que les ressources utilisées, peuvent être contrôlés en temps réel via le logiciel. Plusieurs options graphiques sont également disponibles pour évaluer le niveau d'utilisation des ressources par conteneur ou par hôte, avec possibilité d'exporter les données obtenues dans un fichier. Ces fonctions vous permettent de contrôler et d'évaluer l'utilisation des ressources afin de procéder aux ajustements nécessaires.
Grâce à la fonction d'alarme du logiciel, vous pouvez recevoir une notification par courrier électronique lorsque le seuil d'utilisation des ressources que vous avez défini est dépassé par un conteneur donné. Les icônes d'alarme sont également affichées dans l'IG du logiciel pour les hôtes et les conteneurs.
Avec la fonction Tâche Changement de ressources, il est possible de programmer des changements de limites de ressources pour un ou plusieurs conteneurs à partir d'une même requête. À cet effet, un assistant vous guide tout au long du processus de création ou de modification des tâches Changement de ressources.
Un conteneur est associé aux propriétés suivantes :
Nom
Description (facultative)
Type du projet
Nom du projet associé au conteneur
Utilisateurs et groupes UNIX associés à l'application du conteneur
Expression à rechercher (si elle existe)
Le nom assigné à un conteneur est définitif et ne peut pas être modifié. Cela s'applique également au nom d'un projet. Les autres informations d'identification d'un conteneur peuvent être modifiées.
Le conteneur est enregistré par le logiciel et peut être utilisé et réutilisé jusqu'à sa suppression. Un projet est un conteneur qui a été associé à un hôte. Il est actif dès lors qu'il est associé à un hôte et que ses réservations de ressources ont été définies.
Plusieurs projets, utilisant la même définition et les mêmes réservations de ressources, pouvant être actifs simultanément sur différents hôtes, le conteneur est capable de gérer efficacement les projets définis à l'échelle d'un centre de données. Une fois le conteneur enregistré, il peut être utilisé à tout moment pour activer un projet sur n'importe quel hôte. Ainsi, le conteneur peut être utilisé comme modèle pour créer un nouveau projet.
Le conteneur peut servir de modèle pour différents projets. Il stocke les propriétés de base des projets en un point centralisé. Les propriétés de base des projets sont les suivantes :
Le nom du projet.
La méthode utilisée par le projet pour identifier les processus qu'il doit inclure (par exemple, les utilisateurs et les groupes UNIX associés au conteneur ou une expression à rechercher).
Les autres propriétés, telles que les parts de CPU et la limite de mémoire, sont spécifiques à l'hôte sur lequel le projet est activé. Dans Solaris Container Manager 1.1, cet ensemble de propriétés de base, qui est stocké de façon centralisée, est appelé le conteneur. Lorsque le conteneur est activé sur un hôte spécifique, il est instancié sous la forme d'un projet Solaris et stocké dans /etc/project.
Par exemple, si une société crée un conteneur pour ses applications de messagerie, les propriétés de base du projet sont les suivantes :
Le nom du projet : services_messagerie.
La méthode utilisée par le projet pour identifier les processus qu'il doit inclure peut être une expression à rechercher comportant le nom “mozilla.”
Lorsque le conteneur est activé sur un hôte spécifique, la société crée une instance du projet et peut alors spécifier un pool de ressources, des parts de CPU et des limites de mémoire.
Vous pouvez utiliser un conteneur pour créer plusieurs projets dans différentes zones et sur une grande variété d'hôtes. Par exemple, si vous utilisez un conteneur pour créer trois projets actifs sur trois hôtes différents, vous disposez alors d'un conteneur comportant trois projets. La modification des informations de base du conteneur se répercute sur tous les projets basés sur ce conteneur.
L'assistant de création de projet vous permet de créer des projets qui sont activés une fois toutes les étapes de l'assistant exécutées. Un conteneur est créé parallèlement et son nom est enregistré dans l'IG du logiciel. Vous pouvez également vous contenter de créer le conteneur et activer le projet associé à une date ultérieure à l'aide d'un assistant conçu à cet effet.
Les tâches suivantes peuvent être exécutées via l'IG du logiciel pour un conteneur :
Création d'un conteneur
Création d'un groupe
Déplacement du conteneur dans et hors d'un ou plusieurs groupes
Modification des propriétés
Création d'un projet sur un hôte
Suppression du conteneur
Les tâches suivantes peuvent être exécutées via l'IG du logiciel pour un projet :
Création d'un groupe
Déplacement du projet
Modification des propriétés
Modification des réservations de ressources
Création d'une tâche Changement de ressources
Suivi de l'état des processus exécutés dans le projet
Demande de rapport d'utilisation des ressources et exportation des données dans un fichier
Activation/Désactivation du projet
Définition d'une alarme
Suppression du projet
Un projet ne met pas en oeuvre les limites d'utilisation des ressources que vous définissez pour une application. C'est le noyau Solaris qui met en oeuvre ces limites une fois la réservation minimum de CPU et le capital de mémoire spécifiés et après l'activation du projet. Avant de commencer à utiliser les projets, vous devez connaître les différents états pouvant leur être associés. Un projet peut être associé à l'un des trois états suivants : défini, actif et inactif.
Pendant toute sa durée de vie, un projet peut passer d'un de ces états à l'autre.
Le conteneur est créé au tout début du processus, avant même que le projet ne soit complètement défini. Chaque projet doit être doté d'un nom unique et peut être enregistré indéfiniment dans la base de données.
Figure 3–2 illustre le passe du projet à l'état actif après l'association du conteneur dont il dépend à un hôte. Un projet inactif peut revenir à l'état Défini après avoir été désactivé et une fois qu'il n'est plus associé à aucun hôte.
La première étape de la procédure d'activation d'un projet consiste à associer le conteneur dont il dépend à un hôte. seconde étape consiste à définir les limites de ressources, autrement dit, à définir la réservation minimum de CPU et le capital de mémoire pour le projet. Le projet doit être associé à un hôte capable de prendre en charge ces limites de ressources. Un projet actif peut également être décrit comme étant déployé, ce qui signifie qu'il a été transféré et qu'il se trouve sur un hôte.
Lors de la création d'un projet de type Application via l'assistant Nouveau projet, il est possible de spécifier une expression à rechercher pour identifier les processus associés à l'application. Dans ce cas, tous les processus correspondant à l'expression à rechercher sont automatiquement transférés dans le conteneur. Lorsque le projet est activé, une entrée est créée dans la base de données /etc/project sur l'hôte auquel le conteneur est associé. De la même façon, les processus associés sont alors transférés et associés au nom du projet pour le conteneur. Une fois tous les processus transférés, toutes les données d'utilisation des ressources sont collectées et enregistrées pour le projet en question.
Lors de la désactivation d'un conteneur, les limites de ressources correspondantes ne sont plus mises en oeuvre. L'état d'un projet désactivé devient Inactif et celui-ci est supprimé du fichier /etc/project de l'hôte. Bien qu'inactif, le projet existe toujours dans la base de données du logiciel et est conservé dans l'attente d'une utilisation ultérieure. Lors de la réactivation d'un projet, les limites de ressources du conteneur associé sont à nouveau mises en oeuvre.
Toutes les données collectées relatives à l'utilisation des ressources par le projet pendant sa période d'activation sont conservées dans la base de données. Il est possible de demander des rapports d'utilisation des ressources pour un projet inactif jusqu'à 30 jours suivant sa désactivation.
Les commandes standard de la ligne de commande pour la gestion des ressources du logiciel Solaris ne sont pas prises en charge par le gestionnaire de conteneurs. La gestion des conteneurs doit s'effectuer à partir de l'interface graphique (IG) du gestionnaire de conteneurs. Le démarrage de l'IG du gestionnaire de conteneurs est possible à partir de la Java Web Console via l'utilisation d'un navigateur. Les navigateurs suivants sont pris en charge :
Netscape NavigatorTM 4.7x, 6.2x et 7.x avec les versions 8 et 9 de Solaris
Netscape Navigator 4.7x, 6.2x et 7.x sous Windows (98/2000/XP)
MozillaTM 1.4 et supérieur
Internet Explorer 5.0 et supérieur (6.x compris) sous Windows (98/2000/XP)
Si votre ID utilisateur UNIX ne figure pas dans le fichier /var/opt/SUNWsymon/cfg/esusers, créez l'entrée correspondante.
Vous devez également être membre d'un groupe esadm ou esdomadm.
Pour des instructions concernant la création d'une entrée et l'assignation à un groupe, reportez-vous à la section Setting Up Users du Sun Management Center 3.5 Installation and Configuration Guide.
Démarrez un navigateur.
Pour obtenir la liste des navigateurs pris en charge, reportez-vous à la section IG du gestionnaire de conteneurs.
Pour accéder à l'IG du gestionnaire de conteneurs, tapez :
https://sunmc-server_machine_name:6789/containers |
La page de connexion à la Java Web Console s'affiche.
Si la page de connexion ne s'affiche pas, vous devez redémarrer la Java Web Console. Pour des instructions détaillées, reportez-vous à la section Redémarrage de la Java Web Console.
Si la page Console s'affiche, cliquez sur le lien Solaris Container Manager 1.1 affiché sous la section Systems (Systèmes) pour accéder à l'IG.
Connectez-vous à la Java Web Console en utilisant votre ID et votre mot de passe d'utilisateur UNIX.
L'IG du gestionnaire de conteneurs s'affiche. L'écran comporte trois onglets : Hôtes, Conteneurs, Alarmes ouvertes.
Si vous ne parvenez pas à accéder à la Java Web Console, utilisez cette commande pour la redémarrer.
En tant que superutilisateur (su -), redémarrez la Java Web Console en tapant :
# /usr/sbin/smcwebserver restart |
Le tableau ci-dessous fournit des informations sur les onglets affichés dans le volet droit de l'IG du gestionnaire de conteneurs.
Tableau 3–1 Onglets de l'IG du gestionnaire de conteneurs
Onglet |
Nom de l'onglet |
Contenu |
---|---|---|
Hôte (vue) |
Contenu |
Fournit des informations sur les pools de ressources de l'hôte sélectionné. |
Propriétés |
Fournit des informations sur les propriétés de l'hôte, de la zone, du projet ou du pool de ressources sélectionné. |
|
Utilisation |
Fournit des informations sur l'utilisation des ressources quotidienne, hebdomadaire ou mensuelle pour un hôte, une zone, un projet ou un pool. Des données d'utilisation en temps réel sont disponibles pour les projets actifs. Cet onglet s'affiche uniquement si le logiciel Performance Reporting Manager est installé. |
|
Projets |
Fournit des informations sur les projets associés à un hôte. |
|
Zones |
Fournit des informations sur les zones associées à un hôte. |
|
Conteneurs (vue) |
Contenu |
Fournit des informations sur les projets. |
Propriétés |
Fournit des informations sur les propriétés de l'hôte, du conteneur, du projet ou du pool de ressources sélectionné. |
|
Utilisation |
Fournit des informations sur l'utilisation des ressources quotidienne, hebdomadaire ou mensuelle pour un hôte, une zone, un projet ou un pool. Des données d'utilisation en temps réel sont disponibles pour les projets actifs. Cet onglet s'affiche uniquement si le logiciel Performance Reporting Manager est installé. |
|
Tâches (Tâches Changement de ressources) |
Fournit des informations sur les tâches Changement de ressources programmées. Vous pouvez également créer une nouvelle tâche Changement de ressources à partir de cet onglet. Notez que les conteneurs par défaut ne peuvent pas être associés à des tâches Changement de ressources. |
|
Alarmes ouvertes |
Fournit des informations sur les alarmes déclenchées, y compris la gravité, le message, l'objet géré, l'heure de déclenchement et la notification de réception. |
|
Pool de ressources (navigation descendante) |
Contenu |
Fournit des informations sur les zones associées au pool de ressources sélectionné. |
Propriétés |
Fournit des informations sur les propriétés associées au pool de ressources sélectionné. |
|
Utilisation |
Fournit des informations sur l'utilisation des ressources quotidienne, hebdomadaire ou mensuelle d'un pool. Cet onglet s'affiche uniquement si le logiciel Performance Reporting Manager est installé. |
|
Projets |
Fournit des informations sur les projets associés au pool de ressources sélectionné. |
|
Zone (navigation descendante) |
Contenu |
Fournit des informations sur les projets associés à la zone sélectionnée. |
Propriétés |
Fournit des informations sur les propriétés associées à la zone sélectionnée. |
|
Utilisation |
Fournit des informations sur l'utilisation des ressources quotidienne, hebdomadaire ou mensuelle d'une zone. Cet onglet s'affiche uniquement si le logiciel Performance Reporting Manager est installé. |
|
Projet (navigation descendante) |
Propriétés |
Fournit des informations sur les propriétés associées au projet sélectionné. |
Utilisation |
Fournit des informations sur l'utilisation des ressources quotidienne, hebdomadaire ou mensuelle d'un projet. Cet onglet s'affiche uniquement si le logiciel Performance Reporting Manager est installé. |
|
Processus |
Fournit des informations sur les processus associés au projet sélectionné. |
|
Seuils d'alarme |
Permet de définir ou supprimer des seuils d'alarme. |
La vue Hôte organise les informations du point de vue de l'hôte. Toutes les machines agent gérées s'affichent dans la fenêtre de navigation. Les pools de ressources disponibles pour chaque hôte s'affichent lorsque vous cliquez sur le triangle de développement affiché en regard du nom de l'hôte. Vous pouvez également gérer les conteneurs associés à l'hôte à partir de cette vue.
Tous les hôtes agent sur lesquels est installé le logiciel sont automatiquement détectés et ajoutés dans la vue Hôte. Cette vue est accessible à partir de l'onglet de gauche dans la fenêtre de navigation. Tous les hôtes agent détectés sont initialement placés dans un groupe par défaut appelé Hôtes. Par la suite, vous pouvez organiser cette vue en créant de nouveaux groupes et en transférant les hôtes dans les groupes appropriés.
Seules les machines agent situées dans le contexte serveur de Sun Management Center et sur lesquelles le logiciel Solaris Container Manager 1.1 est installé sont chargées dans la vue Hôte. Pour plus d'informations sur le contexte serveur, reportez-vous à la section Architecture de Sun Management Center du Guide de l’utilisateur de Sun Management Center 3.5.
Les onglets et les informations disponibles dans la vue Hôte sont répertoriés dans le Tableau 3–1.
Les informations relatives à toutes les instances de projet associées à un hôte sont fournies dans la table Projets.
L'illustration suivante présente la vue Hôte et la table Projets associée au pool par défaut.
La table Projets fournit des informations sur chaque projet existant, à chaque ligne correspondant un projet. La table Projets fournit les informations suivantes :
Nom du projet
Nom du conteneur
État du projet : actif ou inactif
Pool de ressources auquel le projet est rattaché.
Nom de la zone dans laquelle se trouve le projet. Pour les hôtes Solaris 8 et 9, le nom de la zone est toujours "global".
Parts minimum de CPU définies pour le projet
Nombre de CPU utilisées par le projet
Limite de mémoire maximale en méga-octets
Mémoire utilisée par le projet en méga-octets
Quantité totale de mémoire en méga-octets pouvant être utilisée par les processus exécutés dans le cadre du projet.
La table Pools de ressources fournit des informations sur chaque pool de ressources. Elle comporte les données suivantes :
Nom du pool de ressources
Nombre de CPU définies pour le pool de ressources
Parts de CPU qui ne sont pas assignées à des zones ou des projets dans le pool de ressources
Ordonnanceur défini pour le pool de ressources : ordonnanceur temporel ou ordonnanceur équitable
Parts de CPU définies pour le pool de ressources
Nombre minimum de CPU défini pour le pool de ressources
Nombre maximum de CPU défini pour le pool de ressources
La table Zones fournit des informations sur les différentes zones. Elle comporte les données suivantes :
Nom de la zone
État de la zone : configuré, incomplet, installé, prêt, en cours d'exécution, arrêt en cours ou arrêté
Nom unique de la zone en tant qu'hôte virtuel
Chemin absolu commençant au niveau du répertoire racine (/)
Adresse IP de la zone
Nombre de parts de CPU allouées aux projets de la zone
Nombre de parts de CPU disponibles et pouvant être allouées aux projets associés à la zone
Nombre de parts de CPU allouées à la zone dans le pool de ressources
Pool de ressources de la zone
La vue Conteneurs organise les informations du point de vue du conteneur. Tous les conteneurs et les projets sont affichés dans la fenêtre de navigation. Les conteneurs pouvant être réutilisés pour créer de nouveaux projets, vous pouvez accéder instantanément aux différents conteneurs à partir de cette vue et effectuer d'autres tâches de gestion.
Après avoir installé et configuré le logiciel, le groupe Conteneurs est automatiquement ajouté dans la vue Conteneurs. Vous pouvez gérer les conteneurs dans la vue Conteneurs.
L'illustration suivante reproduit la vue Conteneurs.
Les informations affichées dans la vue Conteneurs sont répertoriées dans le Tableau 3–1.
La vue Hôte affiche le groupe par défaut Hôtes. Tous les hôtes détectés après l'installation du logiciel sont placés dans ce groupe. De la même façon, la vue Conteneurs contient un groupe par défaut appelé Par défaut dans lequel sont placés tous les conteneurs par défaut d'un hôte. Vous pouvez créer d'autres groupes dans chaque vue afin d'organiser les hôtes et les conteneurs.
Vous pouvez créer des groupes pour organiser les dizaines ou centaines de systèmes présents dans un centre de données. Par exemple, vous pouvez regrouper tous les hôtes dans un groupe ou encore rassembler les conteneurs créés par le même client (interne ou externe) ou service dans un même groupe. De même, les conteneurs basés sur la même application peuvent être placés dans un même groupe.
Si l'IG du gestionnaire de conteneurs n'est pas déjà ouverte, ouvrez-la conformément aux instructions fournies à la section Démarrage de l'interface graphique du gestionnaire de conteneurs.
Sélectionnez la vue appropriée dans la fenêtre de navigation.
Pour créer un groupe de conteneurs, sélectionnez la vue Conteneurs. La table Conteneurs s'affiche dans le volet droit.
Pour créer un groupe d'hôtes, sélectionnez la vue Hôte. La table Hôtes et groupes s'affiche dans le volet droit.
Cliquez sur le bouton Nouveau groupe.
Une boîte de dialogue s'affiche.
Entrez le nom du groupe et cliquez sur OK.
Ce nom ne doit pas dépasser 32 caractères.
Le nouveau groupe apparaît dans la vue sélectionnée.
Si l'IG du gestionnaire de conteneurs n'est pas déjà ouverte, ouvrez-la conformément aux instructions fournies à la section Démarrage de l'interface graphique du gestionnaire de conteneurs.
Sélectionnez la vue appropriée dans la fenêtre de navigation.
Pour déplacer un conteneur dans un autre groupe, sélectionnez la vue Conteneurs. La table Conteneurs s'affiche dans le volet droit.
Pour déplacer un hôte dans un autre groupe, sélectionnez la vue Hôte. La table Hôtes et groupes s'affiche dans le volet droit.
Pour activer le bouton Déplacer de la table, sélectionnez la case à cocher associée au conteneur ou à l'hôte à déplacer.
Dans le volet droit, cliquez sur le bouton Déplacer.
Une boîte de dialogue affiche la liste des groupes disponibles.
Sélectionnez le groupe dans lequel le conteneur ou l'hôte doit être déplacé.
Cliquez sur OK.
Le conteneur ou l'hôte est déplacé dans le groupe sélectionné.
Une fois le logiciel configuré, la vue Conteneurs initiale affiche un groupe appelé Par défaut. Ce groupe comporte les cinq conteneurs par défaut sur un hôte qui utilise la version 9 ou 10 du système d'exploitation Solaris :
Par défaut
Processus sans projet
Utilisateur root
Processus système
Utilisateurs avec personnel de groupe
Chacun de ces cinq conteneurs par défaut est associé à une entrée correspondante dans le fichier /etc/project. Ces cinq entrées correspondent à default, noproject, user.root, system et group.staff.
Sur un hôte qui utilise Solaris 8, le conteneur Utilisateurs avec personnel de groupe (group.staff) n'existe pas. Sinon, les autres conteneurs par défaut sont les mêmes.
L'état de chaque conteneur par défaut est Actif et les limites sont définies pour une réservation minimum de 1 CPU (parts de CPU, sans capital de mémoire. Un conteneur par défaut est toujours rattaché au pool de ressources par défaut (pool_default ) de l'hôte. Vous pouvez contrôler l'utilisation des ressources et générer des rapports correspondants pour chaque conteneur par défaut, sous réserve que le logiciel Performance Reporting Manager soit installé.
Les conteneurs par défaut ne peuvent pas être désactivés, modifiés ou supprimés. Chaque conteneur est affiché en Lecture seule, suivant sa configuration.
Chaque utilisateur UNIX est assigné à un projet et, par conséquent, à un conteneur par défaut. Initialement, les conteneurs par défaut contiennent tous les processus exécutés sur le système. À mesure que vous créez des projets, les processus sont transférés du conteneur par défaut correspondant au projet créé approprié.
La définition de chaque projet commence par la création d'un conteneur. Un projet peut être de trois types différents, suivant la sélection effectuée lors de sa création. Le type du projet détermine la façon dont les processus associés sont contrôlés.
Lors de la création d'un nouveau conteneur, vous devez spécifier le type du projet. Un projet fournit un identificateur administratif réseau pour tous les travaux associés. Tous les processus exécutés dans un conteneur ont le même ID de projet et un conteneur contrôle l'utilisation des ressources en fonction de cet ID de projet. Le type du conteneur est fonction du type de projet sélectionné lors de la création du conteneur.
À chaque conteneur correspond un nom de projet conservé de façon permanente dans les informations qui s'y rapportent. Lorsqu'un conteneur est activé sur un hôte, le nom de projet associé est ajouté dans le fichier /etc/project de cet hôte. Cette entrée est conservée tant que le conteneur reste actif sur l'hôte.
Deux projets différents ne peuvent pas avoir le même nom de projet actif simultanément sur un hôte. En effet, le contrôle des processus exécutés dans un conteneur s'effectuant en fonction de l'ID de projet, chaque nom de projet doit être unique sur un hôte.
Lorsque vous créez des projets de type Utilisateur et Groupe, le nom de l'utilisateur ou du groupe est intégré au nom du projet. Pour les conteneurs de type Utilisateur, le nom du projet correspond au nom de l'utilisateur.nomutilisateur. Pour les conteneurs de type Groupe, le nom du projet correspond au nom du groupe.nomgroupe. Pour cette raison, lorsque vous créez des projets de type Utilisateur ou Groupe, vous ne pouvez pas utiliser un nom d'utilisateur ou de groupe correspondant à une entrée du fichier /etc/project pour les conteneurs par défaut. Pour plus d'informations à ce sujet, reportez-vous à la section Conteneurs par défaut .
Dans le cadre de la création de conteneurs de type Application, vous pouvez utiliser un nom de projet de votre choix. L'assistant de création de projet autorise l'utilisation de noms de projets dupliqués pour différents projets de type Application. En revanche, deux projets de type Application qui utilisent le même nom de projet ne peuvent pas être actifs simultanément sur le même hôte. Ne réutilisez les noms de projets lors de la création de projets de type Application que si vous envisagez d'activer ces conteneurs sur des hôtes différents. Si vous tentez d'activer un deuxième projet sur un hôte associé à un projet doté du même nom de projet, l'activation n'aboutira pas.
Le tableau ci-dessous fournit des informations détaillées sur les trois types de projet disponibles et sur les différences observées en fonction de la sélection.
Tableau 3–2 Détails des types de projet
Type de projet |
Version du SE |
Détails |
---|---|---|
Utilisateur |
Solaris 8 |
Seul type de projet pris en charge par Solaris 8. Le nom du projet dans le fichier /etc/project correspond au nom de l'utilisateur.nomutilisateur. Le projet devient le projet par défaut principal de l'utilisateur. |
|
Solaris 9 et Solaris 10 |
Le nom du projet dans le fichier /etc/project correspond au nom de l'utilisateur.nomutilisateur, avec la liste des utilisateurs UNIX autorisés à participer au projet. Le format valide est nomutilisateur. |
Groupe |
Solaris 9 et Solaris 10 |
Le nom du projet dans le fichier /etc/project correspond au nom du groupe.nomgroupe. Le format valide est nomgroupe. |
Application |
Solaris 9 et Solaris 10 |
Le nom du projet peut être le nom de l'application ou tout autre nom. Le nom spécifié est ajouté au fichier /etc/project. Une expression à rechercher peut être spécifiée afin de transférer automatiquement les processus correspondants sous le nom du projet. Cette expression est sensible à la casse. Le nomutilisateur ou nomgroupe correspondant sous lequel les processus sont exécutés doit être indiqué. |
Avant de commencer à utiliser les projets pour gérer les ressources d'une application, vous devez d'abord connaître les tendances d'utilisation de ressources pour cette application. Les performances de certaines applications, comme ORACLE®, risquent d'être considérablement affectées si la valeur de capital de mémoire utilisée est inappropriée. Pour chaque projet, un ensemble de réservations de ressources doit être configuré : une part de CPU minimale et, facultativement, une réservation maximum de mémoire (capital de mémoire). Il est recommandé de ne commencer à utiliser les projets pour gérer ces réservations qu'une fois les besoins en ressources définis pour les applications.
Ne définissez pas pour un projet un capital de mémoire physique inférieur aux ressources habituellement utilisées par l'application. Cela risque de nuire aux performances de l'application et peut se traduire par des délais importants en raison du niveau de pagination et d'échange plus élevé dans la mesure où l'application doit utiliser davantage de mémoire virtuelle.
Votre plan de consolidation des serveurs doit être finalisé avant de commencer à utiliser les projets pour gérer les ressources système. Une autre tâche importante consiste à identifier les tendances d'utilisation des ressources par les applications intégrées à votre plan de consolidation. Le scénario idéal est celui où vous pouvez identifier les tendances d'utilisation des ressources par l'application pendant une période minimale d'un mois dans votre environnement de test avant de procéder à la mise en oeuvre de votre plan dans votre environnement de production. Après avoir identifié les tendances d'utilisation des CPU et de la mémoire, vous pouvez spécifier un pourcentage légèrement supérieur aux besoins typiques de mémoire.
Lorsque vous réservez les parts de CPU requises par un projet, vous assignez un nombre de CPU sous la forme d'un entier. Par exemple, 25, 1 et 37 sont des valeurs possibles. Le terme part est utilisé pour définir une partie des ressources de CPU du système allouée à un projet. Si vous assignez un nombre de parts de CPU élevé à un projet, par rapport aux autres projets, l'ordonnanceur équitable (FSS) alloue plus de ressources de CPU à ce projet.
Les parts de CPU ne doivent pas être considérées comme un pourcentage des ressources de CPU. Elles servent à définir l'importance relative d'une charge par rapport à une autre charge. Par exemple, si le projet Ventes est deux fois plus important que le projet Marketing, il doit se voir allouer deux fois plus de parts que ce dernier. Le nombre de parts assignées ne convient pas : 2 parts pour le projet Ventes et 1 part pour le projet Marketing est équivalent à 18 parts pour le projet Ventes et 9 parts pour le projet Marketing. Dans les deux cas, le projet Ventes bénéficie de deux fois plus de CPU que le projet Marketing.
Les parts de CPU peuvent être divisées en deux catégories :
Parts de CPU
(Solaris 10 uniquement) Parts de CPU de projet (dans une zone spécifique)
Sur les hôtes Solaris 8, un seul pool de ressources, pool_default, est disponible. Le pool pool_default est associé à une valeur de 100 parts de CPU.
Sur les hôtes Solaris 9 et 10, lorsque vous créez un pool de ressources, c'est vous qui définissez la valeur des parts de CPU pour le pool. Solaris Container Manager fournit une valeur par défaut que vous pouvez remplacez par l'entier de votre choix. Certains administrateurs système utilisent une formule de 100 parts de 100 CPU par CPU disponible pour le pool de ressources. Par exemple, vous pouvez assigner 100 parts de CPU à un pool associé à 1 CPU.
Si ce pool est rattaché à trois projets (Project X, Project Y et Project Z), vous pouvez assigner au projet le plus important, le Project X, 50 parts de CPU, 10 parts au Project Y et 40 parts au Project Z.
Les parts de CPU sont allouées au projet lors de la création de celui-ci via l'assistant Nouveau projet. Cet assistant indique les parts de CPU non réservées pour le pool ce qui vous permet de déterminer les parts de CPU disponibles et d'allouer la valeur appropriée au projet.
Si l'hôte utilise le système d'exploitation Solaris 10, vous pouvez créer des zones et assigner des parts de CPU à la zone globale et des parts de CPU de projet pour les projets de la zone. Il s'agit d'entités associées.
L'assignation des parts de CPU et des parts de CPU de projet s'effectue lors de la création de la zone via l'assistant Nouvelle zone. À l'étape 4 de l'assistant Nouvelle zone, vous devez sélectionner un pool de ressources. L'assistant indique le nombre total de parts de CPU du pool, ainsi que les parts de CPU disponibles pour celui-ci.
Vous devez spécifier une valeur correspondant aux parts de CPU à allouer à cette zone à partir du pool de ressources. Cette valeur (un entier) doit être inférieure ou égale au nombre total de parts de CPU disponibles pour le pool.
Si le nombre total de parts de CPU disponibles du pool est de 100, vous pouvez allouer la totalité ou une partie de ces 100 parts à la zone. Dans cet exemple, 20 parts de CPU du pool sont assignées à la zone.
À l'étape 4 de l'assistant Nouvelle zone, vous avez également la possibilité de spécifier le nombre de parts de CPU de projet. Le champ correspondant définit le nombre de parts de CPU allouées aux projets de la zone. Lorsque vous définissez cette valeur, vous paramétrez la valeur des parts de CPU de projet pour la zone. Vous pouvez spécifier l'entier de votre choix. Cet entier détermine la granularité ciblée.
Par exemple, si vous définissez une valeur de 1000 parts de CPU de projet pour une Zone A, sur le plan physique, 1000 parts de CPU de projet correspondent à 20 parts de CPU, héritées du pool de ressources, divisées en 1000 parts. La formule ci-dessous explique le rapport entre 1 part de CPU de projet et les parts de CPU de cet exemple :
1 part de CPU de projet = 20 (nombre de parts de CPU allouées à la zone)/1000 (nombre de parts de CPU de projet) = 0,02 parts de CPU
Lorsque vous créez un projet, Project 1, dans la Zone A, celui-ci se voit allouer des parts par la zone et non directement par le pool de ressources. Si 300 parts sont allouées au Projet 1 dans la Zone A, 300 parts de CPU de projet ou 300/1000 x 20/100 = 0,06 parts de CPU lui sont ensuite encore assignées.
L'assignation des parts de CPU de projet à un projet s'effectue à partir de l'assistant Nouveau projet. À l'étape 7 de cet assistant où vous spécifiez les réservations de ressources pour le projet, vous devez spécifier les parts de CPU de projet dans le champ Réservations de CPU (Parts de CPU). Cela ne s'applique que lors de la création d'un projet dans une zone sur un hôte Solaris 10 uniquement.
Lorsque vous créez un projet sur un hôte Solaris 8 ou 9, le champ Parts de CPU non réservées est destiné à la saisie des parts de CPU (non des parts de CPU de projet).
N'utilisez pas la ligne de commande (commande zonecfg) pour modifier manuellement les parts de CPU. Cela risque de gêner les calculs du logiciel Solaris Container Manager.
La zone globale est la seule zone qui ne soit pas rattachée à un seul pool de ressources. Elle peut donc utiliser les ressources de CPU de n'importe quel pool. Les projets de la zone globale peuvent utiliser les ressources de CPU de tout pool de ressources situé sur l'hôte car une zone globale masquée existe dans chaque pool de ressources de l'hôte.
Par exemple, le pool de ressources Pool_default est associé à 4 CPU et aux zones zone_1 et zone_2. Il dispose de 10 parts de 10 CPU. Zone_1 a 5 parts de CPU, zone_2 en a 4 et la zone globale en a 1.
Un autre pool de ressources, Pool_1, est associé à 2 CPU et a 10 parts de CPU. Une seule zone, zone_3, est déployée pour Pool_1. Zone_3 a 9 parts de CPU. La zone globale a 1 part de CPU.
Les projets de la zone globale bénéficient des ressources de CPU issues de la part de CPU du pool sur lesquels ils sont déployés.
Dans Solaris Container Manager, les projets de la zone globale doivent être déployés dans le pool pool_default.
Le gestionnaire de conteneurs utilise l'ordonnanceur équitable pour garantir les parts minimums de CPU que vous définissez. L'ordonnanceur équitable est l'ordonnanceur par défaut. Il calcule la proportion de CPU allouée à un projet en divisant les parts du projet par le nombre total des parts des projets actifs. Un projet actif est un projet dont au moins l'un des processus utilise la CPU. Les parts des projets inactifs, à savoir les projets sans processus actif, ne sont pas prises en compte dans les calculs.
Par exemple, trois projets sont créés : ventes, marketing et base de données. Deux, une et quatre parts leur sont allouées respectivement. Ces trois projets sont actifs. Les ressources de CPU pour le pool de ressources se répartissent comme suit : le projet ventes reçoit 2/7 des ressources de CPU, le projet marketing 1/7 et le projet base de données 4/7. Lorsque le projet ventes est inactif, le projet marketing reçoit 1/5 des ressources de CPU et le projet base de données 4/5.
Notez que l'ordonnanceur équitable ne limite l'utilisation des CPU qu'en cas de conflit. Un projet qui est le seul à être actif sur le système peut utiliser 100 % de la CPU, indépendamment du nombre de parts qui lui est alloué. Ainsi, aucun cycle de CPU n'est perdu. Si un projet n'utilise pas toutes les parts de CPU qui lui sont allouées car aucune tâche ne lui est associée, les ressources de CPU restantes sont réparties entre les autres processus actifs. Si aucune part de CPU n'est spécifiée pour un projet, le système lui en alloue une. Les processus associés à des projets disposant de zéro (0) parts sont exécutés suivant la priorité la plus basse du système. Ces processus sont uniquement exécutés lorsque les projets dotés de parts supérieures à zéro n'utilisent pas les ressources de CPU.
L'ordonnanceur temporel tente de fournir à chaque processus un accès relativement équitable aux CPU disponibles, en allouant de CPU en fonction de la priorité. Cet ordonnanceur ne nécessitant aucune gestion, il est particulièrement simple à utiliser. Toutefois, il ne permet de garantir les performances d'une application donnée. Son utilisation convient lorsque l'allocation des CPU n'est pas nécessaire.
Par exemple, si un pool de ressources FSS est assigné à deux projets, chacun doté de deux parts, le nombre de processus exécutés dans ces projets n'est pas important. Un projet peut uniquement utiliser 50 % de la CPU disponible. Par conséquent, si un processus est exécuté dans le projet Ventes et 99 dans le projet Marketing, celui du projet Ventes peut utiliser 50 % de la CPU disponible. Les 99 processus du projet Marketing doivent se partager 50 % des ressources de CPU disponibles.
Dans un pool de ressources TS, les parts de CPU sont allouées par processus. Le processus du projet Ventes n'a accès qu'à 1 % de la CPU, alors que les 99 processus du projet Marketing peuvent utiliser 99 % des ressources de CPU disponibles.
Pour plus d'informations sur l'ordonnanceur équitable ou l'ordonnanceur temporel, reportez-vous au System Administration Guide: Network Services.
Vous pouvez utiliser le gestionnaire de conteneurs dans votre environnement de test comme outil d'identification des tendances d'utilisation des ressources d'une application en procédant comme suit :
Installez et configurez le gestionnaire de conteneurs, ainsi que tout autre logiciel requis.
Pour plus d'informations à ce sujet, reportez-vous au Chapitre 2, Installation et configuration du gestionnaire de conteneurs.
Installez le logiciel Performance Reporting Manager sur toutes les machines agent à contrôler.
Pour plus d'informations à ce sujet, reportez-vous au Chapitre 2, Installation et configuration du gestionnaire de conteneurs et au Guide de l’utilisateur de Sun Management Center 3.5 Performance Reporting Manager.
Créez un conteneur de type Application pour l'application dont vous souhaitez connaître les tendances d'utilisation des ressources. Dans l'assistant Nouveau projet, spécifiez uniquement une réservation minimum de CPU. N'indiquez pas de capital de mémoire.
Pour plus d'informations à ce sujet, reportez-vous aux sections Création d'un projet de type Application et Création d'un projet de type Application.
Contrôlez l'utilisation des ressources pendant quelques semaines en vous servant des graphes quotidien, hebdomadaire ou en temps réel. Vous disposez de deux graphes, un pour les ressources de CPU et un pour la mémoire utilisée, sont disponibles pour le conteneur exécuté sur un hôte individuel. Vous pouvez également afficher la table Processus pour surveiller les processus exécutés dans l'application.
Pour plus d'informations à ce sujet, reportez-vous aux sections Demande de rapport d'utilisation des ressources pour un projet actif et Visualisation des processus d'un projet .
Après avoir spécifié les besoins maximums de mémoire physique pour l'application, modifiez les propriétés du conteneur de façon à ajouter un capital de mémoire. Ne configurez pas un capital de mémoire inférieur à la quantité de mémoire maximum utilisée par l'application.
Pour plus d'informations à ce sujet, reportez-vous à la section Modification d'un projet via une page de propriétés.
Définissez une alarme de façon à être informé dès que la mémoire utilisée dépasse le capital de mémoire spécifié. Ajustez le capital de mémoire via la page de propriétés.
Pour plus d'informations à ce sujet, reportez-vous aux sections Configuration d'un seuil d'alarme et Modification d'un projet via une page de propriétés.
Après avoir identifié les tendances d'utilisation des ressources via le gestionnaire de conteneurs, vous pouvez utiliser les conteneurs pour procéder à la consolidation des serveurs dans votre environnement de production.
Pour plus d'informations sur la planification et la mise en oeuvre de la consolidation de serveurs, reportez-vous au manule Blueprints Sun, Consolidation in the Data Center de David Hornby et Ken Pepple. Pour plus d'informations sur la consolidation des serveurs sur des systèmes utilisant une base de données ORACLE, reportez-vous au livre blanc Sun intitulé Consolidating Oracle RDBMS Instances Using Solaris Resource Manager Software.