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

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.