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

Chapitre 17 Configuration des zones non globales (présentation)

Ce chapitre constitue une introduction à la configuration des zones non globales.

Il comprend les sections suivantes :

Après avoir étudié la configuration des zones, allez au Chapitre 18Planification et configuration de zones non globales (tâches) pour configurer les zones non globales en vue de leur installation sur le système.

Pour plus d'informations sur la configuration des zones marquées lx, reportez-vous au Chapitre 32Planification de la configuration de zone marquée lx (présentation) et au Chapitre 33Configuration de la zone marquée lx (tâches).

Nouveautés

Solaris 10 6/06 : ajout de la prise en charge du système de fichiers ZFS, y compris la capacité à ajouter une ressource de jeu de données dans une zone non globale native. Pour plus d'informations, reportez-vous à la section Propriétés des types de ressources.

Solaris 10 11/06 : prise en charge de privilèges configurables. Reportez-vous à la section Solaris 10 11/06 et versions ultérieures : privilèges configurables.

Solaris 10 8/07 : prise en charge des fonctionnalités suivantes pour la commande zonecfg :

Solaris 10 10/08 : La propriété defrouter a été ajoutée à la ressource net dans l'utilitaire zonecfg pour les zones non globales à IP partagé. Vous pouvez définir le routeur par défaut pour l'interface réseau à l'aide de cette propriété.

Vous trouverez une liste complète des nouvelles fonctionnalités de Solaris 10 et la description des différentes versions de Solaris dans le guide Nouveautés apportées à Oracle Solaris 10 9/10.

À propos des ressources dans les zones

Toute zone dotée de fonctionnalités de gestion de ressources est appelée conteneur. Dans un conteneur, les ressources pouvant être contrôlées sont notamment :

Configuration avant installation

Avant d'installer une zone non globale et de l'utiliser sur un système, il faut la configurer.

La commande zonecfg permet de créer la configuration et de déterminer si les ressources et les propriétés spécifiées sont valides sur un système hypothétique. La vérification effectuée par zonecfg pour une configuration donnée consiste à :

Pour plus d'informations sur la commande zonecfg, reportez-vous à la page de manuel zonecfg(1M).

Composants des zones

Cette section porte sur les composants de zones, requis et optionnels, susceptibles d'être configurés. Vous trouverez de plus amples informations dans la section Données de configuration de zones.

Nom de zone et chemin d'accès

Vous devez nommer la zone et choisir le chemin qui permettra d'y accéder.

Initialisation automatique (autoboot) d'une zone

Le paramètre de propriété autoboot détermine si la zone est automatiquement initialisée en cas d'initialisation de la zone globale. Le service des zones, svc:/system/zones:default doit également être activé.

Association de pools de ressources

Si vous avez configuré des pools de ressources sur votre système, comme décrit dans le Chapitre 13Création et administration des pools de ressources (tâches), vous pouvez utiliser la propriété pool pour associer la zone à l'un des pools de ressources lorsque vous la configurez.

À partir de la version Solaris 10 8/07, même si aucun pool de ressources n'est configuré, vous pouvez spécifier, à l'aide de la ressource dedicated-cpu, qu'un sous-ensemble des processeurs du système doit être dédié à une zone non globale tant que celle-ci est en cours d'exécution. Le système crée de manière dynamique un pool temporaire destiné à être utilisé lorsque la zone est en cours d'exécution. Vous pouvez propager les paramètres du pool pendant les migrations en les spécifiant dans la commande zonecfg.


Remarque –

Toute configuration de zone utilisant un pool permanent défini par le biais de la propriété pool est incompatible avec un pool temporaire configuré à l'aide de la ressource dedicated-cpu. Vous ne pouvez définir que l'une de ces deux propriétés.


Solaris 10 8/07 : ressource dedicated-cpu

La ressource dedicated-cpu spécifie qu'un sous-ensemble des processeurs du système doit être dédié à une zone non globale tant que celle-ci est en cours d'exécution. Dès que la zone est initialisée, le système crée de manière dynamique un pool temporaire destiné à être utilisé lorsque la zone est en cours d'exécution.

Vous pouvez propager les paramètres du pool pendant les migrations en les spécifiant dans la commande zonecfg.

La ressource dedicated-cpu définit les limites de ncpus et éventuellement d'importance.

ncpus

Spécifie le nombre de CPU ou une plage de CPU (par exemple 2–4). Si vous optez pour une plage de CPU parce que vous souhaitez que le pool de ressources se comporte de manière dynamique, vous devez également :

importance

Si, pour un plus grand dynamisme du pool de ressources, vous avez choisi d'utiliser une plage de CPU, définissez également la propriété importance. La propriété importance détermine l'importance relative du pool mais est optionnelle. Elle n'est nécessaire que si vous spécifiez une plage pour ncpus et utilisez des pools de ressources dynamiques gérés par poold. Si poold n'est pas en cours d'exécution, la propriété importance est ignorée. Si poold est en cours d'exécution et si la propriété importance n'a pas été définie, importance adopte par défaut la valeur 1. Pour plus d'informations, reportez-vous à la section Contrainte de propriété pool.importance.


Remarque –

Les ressources capped-cpu et dedicated-cpu sont incompatibles. L'instance de contrôle de ressource cpu-shares et la ressource dedicated-cpu sont incompatibles.


Solaris 10 5/08 : ressource capped-cpu

La ressource capped-cpu définit une limite absolue très précise de la quantité de ressources CPU qu'un projet ou une zone peut consommer. Associée aux jeux de processeurs, la capacité de CPU limite l'utilisation de ressources CPU au sein d'un jeu. La ressource capped-cpu possède une seule propriété ncpus, dont la valeur est un nombre décimal positif avec deux chiffres après la virgule. Cette propriété correspond aux unités de CPU. Cette ressource n'accepte pas de plage, mais elle accepte les nombres décimaux. Lorsque vous spécifiez la propriété ncpus, notez que la valeur 1 correspond à 100 pourcent d'une CPU. Ainsi, la valeur 1,25 équivaut à 125 pourcent, car 100 pourcent correspond à une CPU complète sur le système.


Remarque –

Les ressources capped-cpu et dedicated-cpu sont incompatibles.


Classe de programmation dans une zone

Vous pouvez utiliser l'ordonnanceur équitable (FSS, Fair Share Scheduler) pour contrôler l'allocation des ressources CPU disponibles aux différentes zones en fonction de leur charge de travail. Celle-ci se reflète dans le nombre de parts de ressources CPU que vous assignez à chaque zone. Même si vous n'utilisez pas FSS pour gérer l'allocation de ressources CPU aux zones, vous pouvez définir la classe de programmation des zones pour utiliser FSS de manière à pouvoir assigner des parts aux projets au sein des zones.

Lorsque vous définissez explicitement la propriété cpu-shares, l'ordonnanceur équitable sert de classe de programmation pour la zone concernée. Dans ce cas, il est cependant préférable de définir FSS comme classe de programmation par défaut du système à l'aide de la commande dispadmin. Toutes les zones disposent ainsi d'une part équitable des ressources CPU du système. Toute zone pour laquelle la propriété cpu-shares n'est pas définie utilise la classe de programmation par défaut du système. Pour définir la classe de programmation d'une zone, vous pouvez procéder de différentes façons :

Notez que vous pouvez utiliser la commande priocntl décrite dans la page de manuel priocntl(1) pour placer les processus en cours d'exécution dans une autre classe de programmation sans modifier la classe de programmation par défaut et sans réinitialiser.

Solaris 10 8/07 : contrôle de la mémoire physique et ressource capped-memory

La ressource capped-memory définit les limites des propriétés physical, swap et locked de la mémoire. Chaque limite est optionnelle, mais vous devez en définir au moins une.


Remarque –

Généralement, les applications ne bloquent pas une quantité importante de mémoire, mais vous pouvez décider de définir un verrouillage de mémoire si les applications de la zone sont susceptibles de bloquer de la mémoire. Si la confiance de la zone est un problème, vous pouvez définir la limite de mémoire verrouillée à 10 % de la mémoire physique du système, ou 10 % de la limite de mémoire physique de la zone.


Pour plus d'informations, reportez-vous au Chapitre 10Contrôle de la mémoire physique à l'aide du démon d'allocation restrictive (présentation), au Chapitre 11Administration du démon d'allocation restrictive (tâches), ainsi qu'à la section Configuration d'une zone. Pour définir temporairement une limitation de ressources pour une zone, reportez-vous à la section Spécification d'une limitation temporaire de ressources pour une zone.

Interfaces réseau de zones

Les interfaces réseau configurées à l'aide de la commande zonecfg pour doter les zones d'une connectivité réseau sont automatiquement paramétrées et placées dans la zone concernée lors de son initialisation.

La couche IP accepte et livre les paquets pour le réseau. Cette couche inclut le routage IP, le protocole de résolution d'adresse (ARP, Address Resolution Protocol), l'architecture de sécurité IP (IPsec, IP security architecture) et le filtrage IP.

Deux modes IP sont disponibles pour les zones non globales : le mode IP partagé et le mode IP exclusif. Les zones en mode IP partagé partagent une interface réseau et les zones en mode IP exclusif doivent posséder une interface réseau dédiée.

Pour plus d'informations sur les fonctionnalités IP dans chacun de ces cas, reportez-vous aux sections Mise en réseau dans des zones non globales en mode IP partagé et Solaris 10 8/07 : mise en réseau dans des zones non globales en mode IP exclusif.

Zones non globales en mode IP partagé

Par défaut, les zones sont en mode IP partagé. Elles doivent avoir une ou plusieurs adresses IP dédiées et possèdent le même état et la même configuration de couche IP que la zone globale. Vous devez utiliser l'instance d'IP partagé si les deux conditions suivantes sont vérifiées :

La commande zonecfg permet d'assigner une ou plusieurs adresses IP aux zones en mode IP partagé. Il convient également de configurer les noms des liaisons de données dans la zone globale.

Ces adresses sont associées à des interfaces réseau logiques. La commande ifconfig peut être utilisée dans la zone globale pour ajouter ou supprimer des interfaces logiques dans une zone en cours d'exécution. Pour plus d'informations, reportez-vous à la section Interfaces réseau en mode IP partagé.

Solaris 10 8/07 : zones non globales en mode IP exclusif

Les zones en mode IP exclusif disposent de fonctionnalités IP complètes.

Elles possèdent leur propre état en termes d'IP.

Cela inclut les fonctionnalités suivantes :

Toute zone en mode IP exclusif se voit assigner son propre jeu de liaisons de données à l'aide de la commande zonecfg. La propriété physical de la ressource net permet d'assigner un nom de liaison de données tel que xge0, e1000g1 ou bge32001 à la zone. La propriété address de la ressource net n'est pas définie.

Notez que la liaison de données assignée active la commande snoop.

La commande dladm peut être utilisée avec la sous-commande show-linkprop pour afficher l'assignation de liaisons de données aux zones en mode IP exclusif en cours d'exécution. La commande dladm peut également être utilisée avec la sous-commande set-linkprop pour assigner des liaisons de données supplémentaires aux zones en cours d'exécution. Vous trouverez des exemples d'utilisation à la section Solaris 10 8/07 : gestion des liaisons de données dans les zones non globales en mode IP exclusif.

Dans les zones en mode IP exclusif en cours d'exécution, la commande ifconfig peut être utilisée pour définir la configuration IP, ajout et suppression d'interfaces logiques compris. Vous pouvez procéder comme pour une zone globale, à l'aide de sysidtools, comme décrit dans la page de manuel sysidcfg(4).


Remarque –

La configuration IP d'une zone en mode IP exclusif ne peut être affichée que depuis la zone globale, à l'aide de la commande zlogin. Reportez-vous à l'exemple ci-dessous.


global# zlogin zone1 ifconfig -a

Différences entre les zones non globales en modes IP partagé et IP exclusif en matière de sécurité

Dans une zone en mode IP partagé, les applications de la zone (superutilisateur compris) ne peuvent pas envoyer de paquets avec des adresses IP source autres que celles assignées à la zone par le biais de l'utilitaire zonecfg. Dans ce type de zone, il est impossible d'envoyer ou de recevoir des paquets de liaisons de données arbitraires (couche 2).

Par contre, dans les zones en mode IP exclusif, zonecfg attribue la totalité de la liaison de données spécifiée à la zone. Son superutilisateur peut donc envoyer des paquets usurpés sur ces liaisons de données, comme dans une zone globale.

Utilisation simultanée de zones non globales en modes IP partagé et IP exclusif

Les zones en mode IP partagé partagent la couche IP avec la zone globale alors que les zones en mode IP exclusif possèdent leur propre instance de la couche IP. Ces deux types de zones peuvent être utilisées sur une même machine.

Systèmes de fichiers montés dans une zone

En règle générale, les systèmes de fichiers montés dans une zone comportent :

Il s'agit par exemple de :

Les montages exécutés dans l'environnement applicatif font l'objet de certaines restrictions qui empêchent l'administrateur de zone de refuser de fournir des services au reste du système ou de réaliser des opérations affectant les autres zones.

Des restrictions de sécurité sont par ailleurs associées au montage de certains systèmes de fichiers à l'intérieur d'une zone et d'autres systèmes de fichiers ont un comportement particulier lorsqu'ils sont montés dans une zone. Pour plus d'informations, reportez-vous à la section Systèmes de fichiers et zones non globales.

Périphériques configurés dans des zones

La commande zonecfg utilise un système basé sur des règles pour spécifier les périphériques qui doivent figurer dans une zone donnée. Les périphériques répondant à l'une de ces règles sont inclus dans le système de fichiers /dev de la zone. Pour plus d'informations, reportez-vous à la section Configuration d'une zone.

ID hôte dans les zones

Vous pouvez définir une propriété hostid pour la zone non globale différente de la propriété hostid de la zone globale. Cette action est effectuée sur une machine physique consolidée dans une zone à l'aide de la capacité P2V. Les applications se trouvant actuellement dans la zone peuvent dépendre de la propriété hostid d'origine. Il se peut également que vous ne puissiez pas mettre à jour la configuration de l'application. Pour plus d'informations, reportez-vous à la section Types de ressources et de propriétés.

Paramétrage des contrôles de ressources à l'échelle d'une zone

L'administrateur global peut définir des contrôles de ressources privilégiés à l'échelle d'une zone. L'intérêt de ces contrôles est de limiter l'utilisation des ressources totales pour l'ensemble des entités processus à l'intérieur d'une zone.

La commande zonecfg permet de spécifier ces limites, pour les zones globales et non globales. Reportez-vous à la section Configuration d'une zone.

À partir de la version Solaris 10 8/07, le meilleur moyen de paramétrer un contrôle de ressource à l'échelle d'une zone consiste à utiliser le nom de propriété au lieu de la ressource rctl.

Solaris 10 5/08 : le contrôle de ressource zone.cpu-cap définit une limite absolue pour la quantité de ressources CPU correspondant à une zone. La valeur 100 représente 100 pourcent d'une CPU pour le paramètre project.cpu-cap. La valeur 1,25 équivaut à 125 pourcent, car 100 pourcent correspond à une capacité de CPU complète sur le système.


Remarque –

Lors de la définition de la ressource capped-cpu, il est possible de définir un nombre décimal pour l'unité. La valeur correspond au contrôle de ressource zone.capped-cpu mais est réduite par 100. La valeur 1 équivaut à la valeur 100 pour le contrôle de ressource.


Le contrôle de ressource zone.cpu-shares permet de limiter le nombre de parts de CPU FSS pour une zone. Les parts de CPU sont tout d'abord allouées à la zone, puis subdivisées entre les projets à l'intérieur de celle-ci comme spécifié dans les entrées project.cpu-shares. Pour plus d'informations, reportez-vous à la section Utilisation de l'ordonnanceur FSS sur un système Solaris doté de zones. Le nom de propriété globale de ce contrôle est cpu-shares.

Le contrôle de ressource zone.max-locked-memory permet de limiter le volume de mémoire physique verrouillée mis à disposition d'une zone et le contrôle de ressource project.max-locked-memory de contrôler l'allocation de ce type de mémoire aux différents projets à l'intérieur de la zone. Voir le Tableau 6–1 pour plus d'informations.

Le contrôle de ressource zone.max-lwps renforce l'isolement en empêchant que la présence de trop nombreux LWP dans une zone affecte d'autres zones. Le contrôle de ressource project.max-lwps permet de contrôler l'allocation de la ressource LWP aux différents projets à l'intérieur de la zone. Voir le Tableau 6–1 pour plus d'informations. Le nom de propriété globale de ce contrôle est max-lwps.

Les contrôles de ressources zone.max-msg-ids, zone.max-sem-ids, zone.max-shm-ids et zone.max-shm-memory permettent de limiter les ressources System V utilisées par tous les processus à l'intérieur d'une zone. Vous pouvez contrôler l'allocation des ressources System V aux différents projets à l'intérieur de la zone à l'aide des versions de projet de ces contrôles de ressources. Les noms de propriétés globales de ces contrôles sont max-msg-ids, max-sem-ids, max-shm-ids et max-shm-memory .

Le contrôle de ressource zone.max-swap permet de limiter le swap consommé par les mappages d'espace d'adresses des processus utilisateur et les montages tmpfs à l'intérieur d'une zone. La commande prstat -Z affiche une colonne SWAP indiquant le swap total consommé par les montages tmpfs et les processus de la zone. Cette valeur facilite le contrôle du swap réservé par chaque zone, qui peut être utilisé pour choisir un paramètre zone.max-swap adéquat.

Tableau 17–1 Contrôles des ressources à l'échelle d'une zone

Nom de la commande 

Nom de propriété globale 

Description 

Unité par défaut 

Valeur utilisée par 

zone.cpu-cap

 

Solaris 10 5/08 : limite absolue pour la quantité de ressources CPU correspondant à cette zone.

Quantité (nombre de CPU), exprimée en pourcentage 


Remarque –

Lors de la définition de la ressource capped-cpu, il est possible de définir un nombre décimal pour l'unité.


 

zone.cpu-shares

cpu-shares

Nombre de partages CPU de l'ordonnanceur FSS de cette zone. 

Quantité (partages) 

 

zone.max-locked-memory

 

Quantité totale de mémoire physique verrouillée accessible par une zone. 

Si priv_proc_lock_memory est assigné à une zone, envisagez de paramétrer également ce contrôle de ressource pour empêcher cette zone de verrouiller toute la mémoire.

Taille (octets) 

Propriété locked de capped-memory.

zone.max-lwps

max-lwps

Nombre maximum de LWP accessibles simultanément par cette zone. 

Quantité (LWP) 

 

zone.max-msg-ids

max-msg-ids

Nombre maximum d'ID de file d'attente des messages autorisé pour cette zone. 

Quantité (ID de file d'attente des messages) 

 

zone.max-sem-ids

max-sem-ids

Nombre maximum d'ID de sémaphore autorisé pour cette zone. 

Quantité (ID de sémaphore) 

 

zone.max-shm-ids

max-shm-ids

Nombre maximum d'ID de mémoire partagée autorisé pour cette zone. 

Quantité (ID de mémoire partagée) 

 

zone.max-shm-memory

max-shm-memory

Quantité totale de mémoire partagée du System V autorisée pour cette zone. 

Taille (octets) 

 

zone.max-swap

 

Quantité totale de swap utilisable par les mappages d'espace d'adressage des processus utilisateur et les montages tmpfs pour cette zone.

Taille (octets) 

Propriété swap de capped-memory

Vous pouvez spécifier ces limites en exécutant les processus à l'aide de la commande prctl. Vous trouverez un exemple sous la section Définition de partages FSS dans la zone globale à l'aide de la commande prctl. Les limites spécifiées à l'aide de la commande prctl ne sont pas persistantes. Elles perdent leur effet dès que vous réinitialisez le système.

Solaris 10 11/06 et versions ultérieures : privilèges configurables

Lorsque vous initialisez une zone, un jeu par défaut de privilèges fiables est inclus dans la configuration. Ces privilèges sont jugés fiables, car ils évitent que tout processus privilégié d'une zone affecte les processus d'autres zones non globales du système ou de la zone globale. La commande zonecfg permet :


Remarque –

Certains privilèges ne peuvent pas être supprimés du jeu de privilèges par défaut d'une zone et d'autres ne peuvent actuellement pas y être ajoutés.


Pour plus d'informations, reportez-vous aux sections Privilèges dans une zone non globale et Configuration d'une zone, ainsi qu'à la page de manuel privileges(5).

Ajout d'un commentaire à une zone

Le type de ressource attr permet d'ajouter un commentaire à une zone. Pour plus d'informations, reportez-vous à la section Configuration d'une zone.

Utilisation de la commande zonecfg

La commande zonecfg, décrite dans la page de manuel zonecfg(1M), permet de configurer les zones non globales. Dans la version Solaris 10 8/07, elle permet également de spécifier de manière persistante les paramètres de gestion des ressources pour la zone globale.

La commande zonecfg peut être utilisée dans différents modes : interactif, ligne de commande ou fichier de commande. Elle permet d'effectuer les opérations suivantes :

L'invite zonecfg se présente sous la forme suivante :


zonecfg:zonename>

Lorsque vous configurez un type de ressource donné, par exemple un système de fichiers, celui-ci figure également dans l'invite :


zonecfg:zonename:fs>

Pour plus d'informations, notamment sur l'utilisation des différents composants zonecfg décrits dans ce chapitre, reportez-vous au Chapitre 18Planification et configuration de zones non globales (tâches).

Modes d'exécution de zonecfg

Le concept d'étendue s'applique à l'interface utilisateur. L'étendue peut être globale ou spécifique à une ressource. Par défaut, elle est globale.

Lorsque l'étendue est globale, les sous-commandes add et select permettent de sélectionner une ressource spécifique. L'étendue devient alors spécifique à ce type de ressource.

L'étendue globale est alors rétablie.

Certaines sous-commandes telles que add, remove et set possèdent une sémantique différente dans chaque type d'étendue.

Mode d'exécution interactif de zonecfg

En mode interactif, les commandes ci-dessous sont prises en charge. Pour plus d'informations sur la sémantique et les options pouvant être utilisées avec ces sous-commandes, reportez-vous à la page de manuel zonecfg(1M. ) Avant d'exécuter une sous-commande susceptible d'entraîner la destruction ou une perte de données, le système demande confirmation à l'utilisateur. L'option -F (force) permet d'ignorer cette confirmation.

help

Imprime l'aide générale ou affiche l'aide concernant une ressource donnée.


zonecfg:my-zone:inherit-pkg-dir> help
create

Commence à créer une configuration en mémoire pour la nouvelle zone spécifiée à l'une des fins suivantes :

  • Pour appliquer les paramètres par défaut à une nouvelle configuration (méthode par défaut).

  • Avec l'option -t modèle, pour créer une configuration identique au modèle spécifié. Le nom de zone (celui du modèle) est remplacé par le nouveau nom de la zone.

  • Avec l'option -F, pour écraser la configuration existante.

  • Avec l'option -b, pour créer une configuration vide, dans laquelle rien n'est défini.

export

Imprime la configuration sur la sortie standard ou dans le fichier de sortie spécifié, sous une forme pouvant être utilisée dans un fichier de commande.

add

En étendue globale, ajoute le type de ressource spécifié à la configuration.

En étendue spécifique, ajoute au nom donné une propriété possédant la valeur donnée.

Pour plus d'informations, reportez-vous à la section Configuration d'une zone et à la page de manuel zonecfg(1M).

set

Assigne un nom de propriété donné à une valeur de propriété donnée. Notez que certaines propriétés telles que zonepath sont globales, alors que d'autres sont spécifiques aux ressources. Cette commande est donc applicable quel que soit le type d'étendue : globale ou spécifique à une ressource.

select

Uniquement applicable en étendue globale. Sélectionne la ressource de type donné répondant à la paire de critères nom de propriété-valeur de propriété donnés en vue de sa modification. L'étendue devient alors spécifique à ce type de ressource. Pour que la ressource soit identifiée de manière unique, vous devez spécifier un nombre suffisant de paires nom-valeur de propriété.

clear

Solaris 10 8/07 : Efface la valeur des paramètres optionnels. Les paramètres requis ne peuvent pas être effacés. Vous pouvez cependant modifier certains d'entre eux en leur assignant une nouvelle valeur.

remove

En étendue globale, supprime le type de ressource spécifié. Pour que le type de ressource soit identifié de manière unique, vous devez spécifier un nombre suffisant de paires nom-valeur de propriété. Si aucune paire nom-valeur de propriété n'est spécifiée, toutes les instances sont supprimées. S'il en existe plus d'une, le système vous demande confirmation, sauf si vous avez spécifié l'option -F.

En étendue spécifique, supprime la paire nom-valeur de propriété spécifiée de la ressource actuelle.

end

Uniquement applicable en étendue spécifique. Arrête la spécification de la ressource.

La commande zonecfg permet ensuite de vérifier si la ressource actuelle est entièrement spécifiée.

  • Le cas échéant, elle est ajoutée à la configuration en mémoire et l'étendue redevient globale.

  • Dans le cas contraire, c'est-à-dire si la spécification est incomplète, le système affiche un message d'erreur indiquant la marche à suivre.

cancel

Uniquement applicable en étendue spécifique. Arrête la spécification de la ressource et rétablit l'étendue globale. Les ressources partiellement spécifiées ne sont pas conservées.

delete

Détruit la configuration spécifiée. Efface la configuration de la mémoire et des supports de stockage stables. Avec delete, vous devez utiliser l'option -F (force).


Attention – Attention –

Cette action est instantanée. Elle ne requiert aucune validation et toute zone supprimée ne peut être rétablie.


info

Affiche des informations sur la configuration actuelle ou sur les propriétés de ressources globales zonepath, autoboot et pool. Si un type de ressource est spécifié, cette sous-commande affiche uniquement des informations sur les ressources de ce type. En étendue spécifique, elle s'applique uniquement à la ressource en cours d'ajout ou de modification.

verify

Vérifie si la configuration actuelle est correcte. S'assure que toutes les propriétés requises des ressources sont spécifiées.

commit

Valide la configuration actuelle, de la mémoire vers le support de stockage stable. Tant que la configuration en mémoire n'est pas validée, les changements peuvent être supprimés à l'aide de la sous-commande revert. Pour être utilisée par zoneadm, la configuration doit être validée. Cette opération s'effectue automatiquement lorsque vous arrêtez une session zonecfg. Seules les configurations correctes peuvent être validées. C'est pourquoi elles sont automatiquement vérifiées.

revert

Rétablit le dernier état validé de la configuration.

exit

Quitte la session zonecfg. Vous pouvez utiliser l'option -F (force) avec exit.

Au besoin, la commande commit s'exécute automatiquement. Notez que vous pouvez également utiliser une marque de fin de fichier (EOF, End Of File) pour quitter la session.

Mode d'exécution fichier de commande de zonecfg

En mode fichier de commande, l'entrée est extraite d'un fichier. La sous-commande export décrite à la section Mode d'exécution interactif de zonecfg permet de produire ce fichier. La configuration peut être imprimée sur la sortie standard ou dans le fichier de sortie spécifié à l'aide de l'option -f.

Données de configuration de zones

Les données de configuration de zones sont constituées de deux types d'entités : les ressources et les propriétés. Les ressources sont classées par type et chacune d'entre elles possède une propriété ou un jeu de propriétés. Ces propriétés ont un nom et possèdent des valeurs. Le jeu de propriétés dépend du type de ressource.

Types de ressources et de propriétés

Vous trouverez, ci-dessous, une description des types de ressources et de propriétés :

Nom de zone

Le nom de zone identifie la zone auprès de l'utilitaire de configuration. Les règles suivantes s'appliquent aux noms de zones :

  • Chaque zone doit posséder un nom unique.

  • Les noms de zones sont sensibles à la casse.

  • Les noms de zones doivent commencer par un caractère alphanumérique.

    Ils peuvent contenir des caractères alphanumériques, des traits de soulignement (_), des traits d'union (-) et des points (.).

  • Les noms de zones ne doivent pas comporter plus de 64 caractères.

  • Le nom global et tous les noms commençant par SUNW ne peuvent être utilisés, car ils sont réservés.

zonepath

La propriété zonepath correspond au chemin contenant la racine de la zone. Chaque zone contient un répertoire root se trouvant dans le système de fichiers de la zone globale sous le répertoire zonepath. Lors de l'installation de la zone, l'arborescence des répertoires zonepath sera créée avec le propriétaire et le mode correspondant. Le répertoire zonepath doit appartenir à la root avec le mode 700.

Le chemin du répertoire racine des zones non globales se trouve un niveau en dessous. Le propriétaire et les droits d'accès du répertoire racine de ces zones sont identiques à ceux du répertoire racine (/) de la zone globale. Le répertoire des zones doit appartenir à root et être en mode 755. Ces répertoires sont créés automatiquement avec les droits d'accès correspondants. Il n'est pas nécessaire que l'administrateur de zone les vérifie. Cette hiérarchie permet d'éviter que les utilisateurs ne possédant pas de privilèges dans la zone globale puissent traverser le système de fichiers d'une zone non globale.

Chemin 

Description 

/home/export/my-zone

zonecfg zonepath

/home/export/my-zone/root

Racine de la zone 

/home/export/my-zone/dev

Périphériques créés pour la zone 

Pour plus d'informations à ce sujet, reportez-vous à la section Parcours des systèmes de fichiers.


Remarque –

Pour en savoir plus sur les restrictions de ces versions en ce qui concerne les systèmes de fichiers Zettabyte (ZFS), reportez-vous à la section Solaris 10 6/06, Solaris 10 11/06, Solaris 10 8/07 et Solaris 10 5/08 : ne pas placer le système de fichiers racine d'une zone non globale sur le ZFS.


autoboot

Si cette propriété est définie sur true, l'initialisation de la zone globale entraîne automatiquement celle de la zone. Notez cependant que, quelle que soit la valeur de cette propriété, la zone ne s'initialise pas automatiquement si le service svc:/system/zones:default des zones est désactivé. Vous pouvez l'activer à l'aide de la commande svcadm, décrite dans la page de manuel svcadm(1M) :


global# svcadm enable zones
bootargs

Solaris 10 8/07 : Cette propriété permet de définir un argument d'initialisation pour la zone. Cet argument est appliqué, excepté s'il est ignoré par les commandes reboot, zoneadm boot ou zoneadm reboot. Reportez-vous à la section Solaris 10 8/07 : arguments d'initialisation des zones.

pool

Cette propriété permet d'associer la zone à un pool de ressources sur le système. Plusieurs zones peuvent partager les ressources d'un pool. Reportez-vous également à la section Solaris 10 8/07 : ressource dedicated-cpu.

limitpriv

Solaris 10 11/06 et versions ultérieures : Cette propriété permet de spécifier un masque de privilège autre que celui par défaut. Reportez-vous à la section Privilèges dans une zone non globale.

Pour ajouter un privilège, spécifiez son nom en le faisant précéder ou non de priv_. Pour exclure un privilège, faites précéder son nom d'un tiret (-) ou d'un point d'exclamation (!). Les valeurs des privilèges doivent être séparées par des virgules et placées entre guillemets ().

Comme décrit dans la page de manuel priv_str_to_set(3C), les jeux spéciaux de privilèges none, all et basic s'étendent à leur définition normale. Le jeu spécial de privilèges zone ne peut pas être utilisé, car la configuration des zones a lieu dans la zone globale. Étant donné qu'il est courant de modifier le jeu de privilèges par défaut en ajoutant ou en supprimant certains privilèges, le jeu spécial default est mappé avec le jeu de privilèges par défaut. Lorsque default figure au début de la propriété limitpriv, celle-ci s'applique au jeu par défaut.

L'entrée ci-dessous ajoute la capacité à utiliser des programmes DTrace requérant uniquement les privilèges dtrace_proc et dtrace_user dans la zone :


global# zonecfg -z userzone
zonecfg:userzone> set limitpriv="default,dtrace_proc,dtrace_user"

Si le jeu de privilèges de la zone contient un privilège annulé ou inconnu, ou s'il lui manque un privilège, toute tentative de vérification, de préparation ou d'initialisation de la zone échoue et un message d'erreur s'affiche.

scheduling-class

Solaris 10 8/07 : cette propriété définit la classe de programmation de la zone. Pour obtenir informations et conseils, reportez-vous à la section Classe de programmation dans une zone.

ip-type

Solaris 10 8/07 : cette propriété ne doit être définie que s'il s'agit d'une zone en mode IP exclusif. Reportez-vous aux sections Solaris 10 8/07 : zones non globales en mode IP exclusif et Configuration d'une zone.

dedicated-cpu

Solaris 10 8/07 : cette ressource consacre un sous-ensemble des processeurs du système à la zone tant qu'elle est en cours d'exécution. La ressource dedicated-cpu définit les limites de ncpus et éventuellement d'importance. Pour plus d'informations, reportez-vous à la section Solaris 10 8/07 : ressource dedicated-cpu.

Ressource capped-cpu

Solaris 10 5/08 : cette ressource définit une limite pour la quantité de ressources CPU que la zone peut consommer lors de son exécution. Elle fournit une limite pour ncpus.

Ressource capped-memory

Solaris 10 8/07 : cette ressource groupe les propriétés utilisées lors de la limitation de la mémoire de la zone. La ressource capped-memory définit les limites de la mémoire physical, swap, et locked. Vous devez spécifier au moins une de ces propriétés.

dataset

Solaris 10 6/06 : l'ajout d'une ressource de jeu de données ZFS active la délégation de l'administration du stockage à une zone non globale. L'administrateur de zone peut créer et détruire les systèmes de fichiers à l'intérieur de ce jeu de données. Il peut également créer et détruire les clones et modifier les propriétés du jeu de données. Il ne peut cependant ni affecter de jeux de données non ajoutés à la zone, ni dépasser les quotas de niveau maximum définis dans le jeu de données assigné à la zone.

Pour ajouter des jeux de données ZFS à une zone, vous pouvez procéder de l'une des manières suivantes :

  • comme pour un système de fichiers LOFS monté, si le seul but recherché est de partager de l'espace avec la zone globale ;

  • comme pour un jeu de données délégué.

Reportez-vous au Chapitre 10, Rubriques avancées Oracle Solaris ZFS du Guide d’administration Oracle Solaris ZFS et à la section Systèmes de fichiers et zones non globales.

Pour plus d'informations sur les jeux de données, reportez-vous également au Chapitre 30Dépannage de problèmes liés aux zones Solaris.

fs

Toute zone peut posséder plusieurs systèmes de fichiers. Ils sont montés quand la zone passe de l'état installé à l'état prêt. La ressource du système de fichiers spécifie le chemin du point de montage du système de fichiers. Pour plus d'informations sur l'utilisation des systèmes de fichiers dans les zones, reportez-vous à la section Systèmes de fichiers et zones non globales.

inherit-pkg-dir

Cette ressource ne doit pas être configurée dans une zone à racine entière.

Dans une zone à racine fragmentée, la ressource inherit-pkg-dir permet de représenter des répertoires contenant des packages de logiciels partagés entre une zone non globale et la zone globale.

la zone non globale hérite du contenu des packages de logiciels transférés dans le répertoire inherit-pkg-dir, en lecture seule. La base de données de packages de la zone est mise à jour en conséquence. À partir du moment où la zone a été installée à l'aide de zoneadm, ces ressources ne peuvent être ni modifiées ni supprimées.


Remarque –

Quatre ressources inherit-pkg-dir par défaut sont incluses dans la configuration. Ces ressources de répertoires indiquent les répertoires dont les packages associés sont hérités de la zone globale. Ces ressources sont implémentées par le biais d'un montage de système de fichiers loopback en lecture seule.

  • /lib

  • /platform

  • /sbin

  • /usr


net

La ressource de l'interface réseau est le nom de l'interface. Chaque zone peut posséder des interfaces réseau. Elles sont paramétrées lorsque la zone passe de l'état installé à l'état prêt.

device

La ressource périphérique est le spécificateur correspondant au périphérique. Chaque zone peut présenter des périphériques qui doivent être configurés quand la zone passe de l'état installé à l'état prêt.

rctl

La ressource rctl est dédiée aux contrôles de ressources à l'échelle de la zone. Ces contrôles sont activés lorsque la zone passe de l'état installé à l'état prêt.

hostid

Vous pouvez définir une propriété hostid différente de la propriété hostid de la zone globale.

attr

Cet attribut générique peut être utilisé pour les commentaires utilisateur ou par d'autres sous-systèmes. La propriété name d'un attribut attr doit commencer par un caractère alphanumérique. La propriété name peut contenir des caractères alphanumériques, des traits d'union (-) et des points (.). Les noms d'attributs commençant par zone. sont réservés au système.

Propriétés des types de ressources

Les ressources ont elles aussi des propriétés qu'il convient de configurer. Vous trouverez ci-dessous la liste des propriétés associées aux différents types de ressources.

dedicated-cpu

ncpus, importance

Solaris 10 8/07 : spécifie le nombre de CPU et, éventuellement, l'importance relative du pool. L'exemple ci-dessous spécifie la plage de CPU utilisée par la zone ma-zone. L'importance est également définie.


zonecfg:my-zone> add dedicated-cpu
zonecfg:my-zone:dedicated-cpu> set ncpus=1-3
zonecfg:my-zone:dedicated-cpu> set importance=2
zonecfg:my-zone:dedicated-cpu> end
capped-cpu

ncpus

Définit le nombre de CPU. L'exemple ci-dessous spécifie une capacité de 3,5 CPU pour la zone my-zone.


zonecfg:my-zone> add capped-cpu
zonecfg:my-zone:capped-cpu> set ncpus=3.5
zonecfg:my-zone:capped-cpu> end
capped-memory

physical, swap, locked

Spécifie les limites de mémoire pour la zone my-zone. Chaque limite est optionnelle, mais vous devez en définir au moins une.


zonecfg:my-zone> add capped-memory
zonecfg:my-zone:capped-memory> set physical=50m
zonecfg:my-zone:capped-memory> set swap=100m
zonecfg:my-zone:capped-memory> set locked=30m
zonecfg:my-zone:capped-memory> end
fs

dir, special, raw, type, options

Les paramètres de la ressource fs indiquent les valeurs qui déterminent comment et où monter les systèmes de fichiers. Les paramètres fs se définissent comme suit :

dir

Spécifie le point de montage du système de fichiers.

special

Spéficie le nom du périphérique spécial en mode bloc ou le répertoire de zone globale à monter.

raw

Spécifie le périphérique brut sur lequel fsck doit être exécuté avant le montage du système de fichiers.

type

Spécifie le type de système de fichiers.

options

Spécifie les options de montage similaires à celles associées à la commande mount.

L'exemple ci-dessous spécifie que /dev/dsk/c0t0d0s2 de la zone globale doit être monté comme étant /mnt dans une zone en cours de configuration. La propriété raw spécifie le périphérique optionnel sur lequel vous devez exécuter la commande fsck avant toute tentative de montage du système de fichiers. Le type de système de fichiers à utiliser est UFS. Les options nodevices et logging sont ajoutées.


zonecfg:my-zone> add fs
zonecfg:my-zone:fs> set dir=/mnt
zonecfg:my-zone:fs> set special=/dev/dsk/c0t0d0s2
zonecfg:my-zone:fs> set raw=/dev/rdsk/c0t0d0s2
zonecfg:my-zone:fs> set type=ufs
zonecfg:my-zone:fs> add options [nodevices,logging]
zonecfg:my-zone:fs> end

Pour plus d'informations, reportez-vous aux sections Option -o nosuid et Restrictions de sécurité et comportement du système de fichiers, ainsi qu'aux pages de manuel fsck(1M) et mount(1M). Notez aussi que la section 1M des pages de manuel est disponible pour les options de montage spécifiques à un système de fichiers donné. Ces pages de manuel sont nommées de la manière suivante : mount_système de fichiers.


Remarque –

Pour savoir comment ajouter un système de fichiers ZFS à l'aide de la propriété de ressource fs, reportez-vous à la section Ajout de systèmes de fichiers ZFS à une zone non globale du Guide d’administration Oracle Solaris ZFS.


dataset

name

L'exemple ci-dessous spécifie que le jeu de données ventes doit être visible et monté dans la zone non globale et doit cesser d'être visible dans la zone globale.


zonecfg:my-zone> add dataset
zonecfg:my-zone> set name=tank/sales
zonecfg:my-zone> end
inherit-pkg-dir

dir

L'exemple ci-dessous spécifie que /opt/sfw doit être monté en loopback depuis la zone globale.


zonecfg:my-zone> add inherit-pkg-dir
zonecfg:my-zone:inherit-pkg-dir> set dir=/opt/sfw
zonecfg:my-zone:inherit-pkg-dir> end
net

address, physical, defrouter


Remarque –

Dans une zone en mode IP partagé, l'adresse IP et le périphérique sont tous deux spécifiés. Le routeur par défaut peut être défini (facultatif).

  • Vous pouvez utiliser la propriété defrouter pour définir une route par défaut lorsque la zone non globale se trouve sur un sous-réseau qui n'est pas configuré dans la zone globale.

  • Toute zone dont la propriété defrouter est définie doit se trouver sur un sous-réseau qui n'est pas configuré dans la zone globale.

Lorsque des zones en mode IP partagé existent sur des sous-réseaux différents, ne configurez aucune liaison de données dans la zone globale.

Dans une zone en mode IP exclusif, seule l'interface physique est spécifiée. La propriété physique peut être une carte d'interface réseau virtuelle (VNIC).


L'exemple ci-dessous montre comment ajouter l'adresse 192.168.0.1 à une zone en mode IP partagé. L'interface physique utilisée est une carte hme0. Pour déterminer l'interface physique à utiliser, tapez ifconfig -a sur votre système. Toute ligne de sortie autre que les lignes de pilote de loopback commence par le nom d'une carte installée sur le système. Les lignes dont les descriptions contiennent LOOPBACK ne concernent pas les cartes.


zonecfg:my-zone> add net
zonecfg:my-zone:net> set physical=hme0
zonecfg:my-zone:net> set address=192.168.0.1
zonecfg:my-zone:net> end

Dans l'exemple ci-dessous, qui se rapporte à une zone en mode IP exclusif, une liaison bge32001 est utilisée pour l'interface physique. Pour connaître les liaisons de données disponibles, exécutez la commande dladm show-link. Pour être utilisée avec des zones en mode IP exclusif, la liaison de données doit être GLDv3. Les liaisons de données non-GLDv3 se distinguent par la mention type: legacy dans la sortie dladm show-link. Notez que ip-type=exclusive doit également être spécifié.


zonecfg:my-zone> set ip-type=exclusive
zonecfg:my-zone> add net
zonecfg:my-zone:net> set physical=bge32001
zonecfg:my-zone:net> end
device

match

Dans l'exemple ci-dessous, un périphérique /dev/pts est inclus à une zone.


zonecfg:my-zone> add device
zonecfg:my-zone:device> set match=/dev/pts*
zonecfg:my-zone:device> end
rctl

name, value

Solaris 10 8/07 : cette version propose de nouveaux contrôles de ressources : zone.max-locked-memory, zone.max-msg-ids, zone.max-sem-ids, zone.max-shm-ids, zone.max-shm-memory et zone.max-swap.

À l'échelle des zones, les contrôles de ressources suivants sont disponibles :

  • zone.cpu-shares (conseillé : cpu-shares )

  • zone.max-locked-memory

  • zone.max-lwps (recommandé : max-lwps)

  • zone.max-msg-ids (recommandé : max-msg-ids)

  • zone.max-sem-ids (recommandé : max-sem-ids)

  • zone.max-shm-ids (recommandé : max-shm-ids)

  • zone.max-shm-memory (recommandé : max-shm-memory)

  • zone.max-swap

Pour définir un contrôle de ressource à l'échelle d'une zone, il est recommandé et plus simple d'utiliser le nom de propriété que la ressource rctl, comme indiqué à la section Configuration d'une zone. Si vous configurez les entrées de contrôle de ressource à l'échelle d'une zone à l'aide de add rctl, leur format diffère de celui des entrées de contrôle de ressource de la base de données project. Dans une configuration de zone, le type de ressource rctl est composé de trois paires nom/valeur. Les noms sont : priv, limit et action. Chacun d'entre eux possède une valeur simple.


zonecfg:my-zone> add rctl
zonecfg:my-zone:rctl> set name=zone.cpu-shares
zonecfg:my-zone:rctl> add value (priv=privileged,limit=10,action=none)zonecfg:my-zone:rctl> end

zonecfg:my-zone> add rctl
zonecfg:my-zone:rctl> set name=zone.max-lwps
zonecfg:my-zone:rctl> add value (priv=privileged,limit=100,action=deny)
zonecfg:my-zone:rctl> end

Pour plus d'informations sur les attributs et les contrôles de ressources, reportez-vous au Chapitre 6Contrôles des ressources (présentation) et à la section Utilisation de contrôles de ressources dans les zones non globales.

attr

name, type, value

L'exemple ci-dessous montre l'ajout d'un commentaire à propos d'une zone.


zonecfg:my-zone> add attr
zonecfg:my-zone:attr> set name=comment
zonecfg:my-zone:attr> set type=string
zonecfg:my-zone:attr> set value="Production zone"
zonecfg:my-zone:attr> end

Vous pouvez utiliser la sous-commande export pour imprimer une configuration de zone sur une sortie standard. La configuration est enregistrée sous une forme pouvant être utilisée dans un fichier de commande.

Bibliothèque d'édition de ligne de commande Tecla

La bibliothèque d'édition de ligne de commande Tecla est intégrée à la commande zonecfg. Elle fournit un support d'édition et d'accès à l'historique des lignes de commande.

La bibliothèque d'édition de ligne de commande Tecla est documentée dans les pages de manuel suivantes :