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.
Vous trouverez, dans le tableau ci-dessous, un résumé des caractéristiques des zones globales et 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.
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).
Les zones non globales peuvent se trouver dans différents états :
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.
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.
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.
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é.
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éé.
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. |
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.
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.
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.