Guide d'administration système : Gestion des ressources des conteneurs et des zones Oracle Solaris

Fonctionnement des zones

Une zone non globale peut être considérée comme une boîte dans laquelle vous pouvez exécuter une ou plusieurs applications sans interférer avec le reste du système. Les zones Solaris isolent les applications et les services à l'aide de limites flexibles, définies à l'échelle logicielle. Les applications exécutées dans une même instance du système d'exploitation Solaris peuvent être gérées indépendamment les unes des autres. Vous pouvez donc exécuter différentes versions d'une même application dans différentes zones, en fonction des exigences de la configuration.

Tout processus assigné à une zone peut manipuler, contrôler et communiquer directement avec les autres processus assignés à cette même zone. Cela est toutefois impossible si ces processus sont assignés à d'autres zones du système ou ne sont assignés à aucune zone. Les processus assignés à différentes zones peuvent uniquement communiquer via les API du réseau.

À partir de la version Solaris 10 8/07, le réseau IP peut être configuré de deux façons, selon que la zone possède sa propre instance IP ou partage l'état et la configuration de la couche IP avec la zone globale. Pour plus d'informations sur les types d'IP dans les zones, reportez-vous à la section Interfaces réseau de zones. Pour en savoir plus sur la configuration, reportez-vous à la section Configuration d'une zone.

Tout système Solaris contient une zone globale. La zone globale a deux fonctions principales. La zone globale est à la fois la zone par défaut pour le système et la zone utilisée pour le contrôle administratif au niveau du système. En l'absence de zones non globales (nommées tout simplement zones), tous les processus exécutés dans la zone globale sont créés par l'administrateur global.

C'est la seule zone à partir de laquelle il est possible de configurer, d'installer, de gérer ou de désinstaller une zone non globale. Seule la zone globale peut être initialisée à partir du matériel système. L'administration de l'infrastructure du système, notamment les périphériques physiques, le routage dans une zone en mode IP partagé et la reconfiguration dynamique, n'est réalisable qu'à partir de la zone globale. Les processus auxquels sont affectés les privilèges adéquats et s'exécutant dans la zone globale peuvent accéder à des objets associés à d'autres zones.

Dans certains cas, les processus ne disposant pas de privilèges dans une zone globale peuvent exécuter des opérations non permises aux processus dotés de privilèges dans une zone non globale. Par exemple, les utilisateurs travaillant dans la zone globale peuvent consulter les informations relatives à tous les processus existant sur le système. Si cette capacité pose un problème pour votre site, vous pouvez limiter l'accès à la zone globale.

Chaque zone, y compris la zone globale, se voit assigner un nom. Celui de la zone globale est toujours global. Chaque zone possède également un identificateur numérique unique, qui lui est assigné par le système lors de son initialisation. L'ID de la zone globale est toujours 0. Vous trouverez des explications détaillées sur les noms et les ID de zones à la section Utilisation de la commande zonecfg.

Chaque zone possède aussi un nom de nœud, indépendant du nom de zone et assigné par l'administrateur de la zone. Pour plus d'informations, reportez-vous à la section Nom de nœud dans une zone non globale.

Le chemin du répertoire racine de chaque zone est lié au répertoire racine de la zone globale. Pour plus d'informations, reportez-vous à la section Utilisation de la commande zonecfg.

La classe de programmation des zones non globales est définie sur celle du système par défaut. Pour une explication détaillée des méthodes utilisées pour définir la classe de programmation dans une zone, reportez-vous à la section Classe de programmation dans une zone.

La commande priocntl décrite dans la page de manuel priocntl(1) permet de placer les processus en cours d'exécution dans une autre classe de programmation sans changer la classe de programmation par défaut et sans réinitialiser.

Résumé des caractéristiques des zones

Vous trouverez, dans le tableau ci-dessous, un résumé des caractéristiques des zones globales et non globales.

Type de zone 

Caractéristique 

Globale 

 

  • Se voit assigner l'ID 0 par le système

  • Fournit une instance unique du noyau Solaris initialisable et exécuté sur le système

  • Contient une installation complète des packages des logiciels système Solaris

  • Peut contenir des packages logiciels ou des logiciels supplémentaires, des répertoires, des fichiers et d'autres données non installées par l'intermédiaire de packages

  • Fournit une base de données de produits complète et cohérente contenant les informations relatives à tous les composants logiciels installés dans la zone globale

  • Détient les informations de configuration spécifiques à la zone globale uniquement, par exemple le nom d'hôte de la zone globale et la table du système de fichiers

  • Est la seule zone ayant connaissance de tous les périphériques et systèmes de fichiers

  • Est la seule zone ayant connaissance de l'existence et de la configuration d'une zone non globale

  • Est la seule zone à partir de laquelle il est possible de configurer, d'installer, de gérer ou de désinstaller une zone non globale

Non globale 

 

  • Se voit assigner un ID de zone lors de son initialisation (ID assigné par le système)

  • Partage les opérations au-dessous du noyau Solaris initialisé à partir de la zone globale

  • Contient un sous-ensemble installé de l'ensemble des packages des logiciels système Solaris

  • Contient des packages logiciels Solaris partagés à partir de la zone globale

  • Peut contenir des packages logiciels supplémentaires installés, non partagés à partir de la zone globale

  • Peut contenir d'autres logiciels, répertoires, fichiers et données créés dans la zone non globale et non installés par l'intermédiaire de packages ni partagés à partir de la zone globale

  • Détient une base de données de produits complète et cohérente contenant des informations sur tous les composants logiciel installés dans la zone, qu'ils soient présents dans la zone non globale ou partagés en lecture seule à partir de la zone globale

  • N'a pas connaissance de l'existence d'autres zones

  • Ne peut ni installer, ni gérer, ni désinstaller des zones, y compris elle-même

  • Détient des informations de configuration spécifiques à cette zone non globale uniquement, par exemple le nom d'hôte de la zone non globale et la table du système de fichiers

  • Peut posséder son propre paramètre de fuseau horaire

Administration de zones non globales

L'administrateur global possède des privilèges de superutilisateur ou joue le rôle d'administrateur principal. Lorsqu'il est connecté à une zone globale, l'administrateur global peut contrôler le système comme un tout.

Les zones non globales peuvent être administrées par un administrateur de zone. Le profil de gestion de zone correspondant lui est assigné par l'administrateur global. Les privilèges d'un administrateur de zone sont limités à une zone non globale.

Création de zones non globales

Pour configurer une zone, l'administrateur global utilise la commande zonecfg et spécifie différents paramètres concernant la plate-forme virtuelle et l'environnement applicatif. Il utilise ensuite la commande d'administration de zone zoneadm pour installer les logiciels au niveau du package dans l'arborescence de système de fichiers définie pour la zone. Il peut se connecter à la zone installée à l'aide de la commande zlogin. La première connexion marque la fin de la configuration interne de la zone. La commande zoneadm permet de l'initialiser.

Pour plus d'informations sur la configuration des zones, reportez-vous au Chapitre 17Configuration des zones non globales (présentation). Pour plus de détails sur l'installation des zones, reportez-vous au Chapitre 19À propos de l'installation, de l'arrêt, du clonage et de la désinstallation de zones non globales (présentation). Pour plus d'informations sur la connexion aux zones, reportez-vous au Chapitre 21Connexion à une zone non globale (présentation).

États des zones non globales

Les zones non globales peuvent se trouver dans différents états :

Configuré

La configuration de la zone est terminée et validée sur support de stockage stable. Cependant, les éléments devant être spécifiés après l'initialisation initiale de l'environnement applicatif de la zone ne sont pas encore présents.

Incomplet

Pendant l'installation ou la désinstallation, la commande zoneadm définit l'état de la zone cible sur Incomplet. Une fois l'opération correctement effectuée, l'état est défini sur l'état correct.

Installé

La configuration de la zone est instanciée sur le système. La commande zoneadm permet de s'assurer que la configuration peut être utilisée avec succès sur le système Solaris désigné. Les packages sont installés sous le chemin racine de la zone. Dans cet état, la zone n'a pas de plate-forme virtuelle associée.

Prêt

La plate-forme virtuelle de la zone est établie. Le noyau crée le processus zsched ; les interfaces réseau sont paramétrées et disponibles pour la zone ; les systèmes de fichiers sont montés et les périphériques configurés. Un ID de zone unique est attribué par le système. À ce stade, aucun processus associé à la zone n'a été démarré.

En cours d'exécution

Les processus utilisateur associés à l'environnement d'application de la zone sont en cours d'exécution. La zone passe à l'état En cours d'exécution dès que le premier processus utilisateur associé à l'environnement applicatif (init) est créé.

Arrêt en cours et hors service

Ces états sont des états transitoires qui sont visibles pendant l'arrêt de la zone. Cependant, une zone incapable de s'arrêter pour quelque raison que ce soit s'arrêtera dans l'un de ces états.

Le Chapitre 20Installation, initialisation, arrêt, désinstallation et clonage de zones non globales (tâches) et la page de manuel zoneadm(1M) décrivent l'utilisation de la commande zoneadm pour déclencher les transitions entre ces états.

Tableau 16–1 Commandes affectant l'état des zones

État actuel de la zone 

Commandes pertinentes 

Configuré 

zonecfg -z nom de zone verify

zonecfg -z nom de zone commit

zonecfg -z nom de zone delete

zoneadm -z nom de zone attach

zoneadm -z nom de zone verify

zoneadm -z nom de zone install

zoneadm -z nom de zone clone

Vous pouvez également utiliser la commande zonecfg pour renommer une zone en état Configuré ou Installé.

Incomplet 

zoneadm -z nom de zone uninstall

Installée 

zoneadm -z nom de zone ready (optionnelle)

zoneadm -z nom de zone boot

zoneadm -z nom de zone uninstall désinstalle du système la configuration de la zone spécifiée.

zoneadm -z nom de zone move chemin

zoneadm -z nom de zone detach

zonecfg -z nom de zone peut être utilisée pour ajouter ou supprimer une propriété attr, bootargs, capped-memory, dataset, dedicated-cpu, device, fs, ip-type, limitpriv , net, rctl ou scheduling-class. Vous pouvez également renommer les zones installées. Les ressources inherit-pkg-dir ne peuvent pas être modifiées.

Prêt 

zoneadm -z nom de zone boot

zoneadm halt et la réinitialisation du système passent les zones prêtes à l'état Installé.

zonecfg -z nom de zone peut être utilisée pour ajouter ou supprimer une propriété attr, bootargs, capped-memory, dataset, dedicated-cpu, device, fs, ip-type, limitpriv , net, rctl ou scheduling-class. Les ressources inherit-pkg-dir ne peuvent pas être modifiées.

En cours d'exécution 

zlogin options nom de zone

zoneadm -z nom de zone reboot

zoneadm -z nom de zone halt définit les zones prêtes sur l'état Installé.

zoneadm halt et la réinitialisation du système redéfinissent les zones en cours d'exécution sur l'état Installé.

zonecfg -z nom de zone peut être utilisée pour ajouter ou supprimer une propriété attr, bootargs, capped-memory, dataset, dedicated-cpu, device, fs, ip-type, limitpriv , net, rctl ou scheduling-class. Les ressources zonepath et inherit-pkg-dir ne peuvent pas être modifiées.


Remarque –

Les paramètres modifiés par la commande zonecfg n'ont aucune incidence sur les zones en cours d'exécution. La zone doit être réinitialisée pour que les changements soient effectifs.


Caractéristiques des zones non globales

L'isolement assuré par les zones peut porter sur presque tous les niveaux de granularité souhaités. Une zone peut fonctionner sans CPU dédiée, périphérique physique ou toute autre partie de la mémoire physique. Ces ressources peuvent soit être multiplexées sur un certain nombre de zones en cours d'exécution au sein d'un domaine ou d'un système unique, soit être allouées zone par zone grâce aux fonctions de gestion de ressources disponibles sur le système d'exploitation.

Chaque zone fournit un ensemble personnalisé de services. Pour renforcer l'isolement des processus, il est possible de faire en sorte que seuls les processus existants d'une même zone soient détectés ou signalés. La communication entre les zones s'effectue en dotant chaque zone d'une connectivité réseau IP. Une application s'exécutant dans une zone ne peut observer le trafic réseau d'une autre zone. L'isolement est garanti même si les flux de paquets respectifs transitent par la même interface physique.

Une partie de l'arborescence du système de fichiers est attribuée à chacune des zones. Chaque zone étant confinée à sa subdivision de l'arborescence du système de fichiers, la charge s'exécutant dans une zone particulière ne peut accéder aux données sur disque d'une charge s'exécutant dans une autre zone.

Les fichiers utilisés par des services d'attribution de noms résident dans la vue du système de fichiers racine d'une zone. Les services d'attribution de noms des différentes zones sont ainsi isolés les uns des autres et les services peuvent être configurés différemment.

Utilisation des fonctions de gestion de ressources avec les zones non globales

Si vous utilisez des fonctions de gestion de ressources, vous devez aligner les limites des contrôles de gestion de ressources sur celles des zones. Cet alignement crée un modèle de machine virtuelle plus complet, dans lequel l'accès aux espaces de noms, l'isolement de sécurité et l'utilisation des ressources sont contrôlés.

Les exigences particulières relatives à l'utilisation des fonctions de gestion de ressources avec des zones sont traitées individuellement dans les chapitres consacrés à ces fonctions.