JavaScript is required to for searching.
Ignorer les liens de navigation
Quitter l'aperu
Guide d'administration système : Conteneurs Oracle Solaris-Gestion des ressources et Oracle Solaris Zones     Oracle Solaris 10 1/13 Information Library (Français)
search filter icon
search icon

Informations document

Préface

Partie I Gestion des ressources

1.  Introduction à la gestion des ressources Solaris 10

2.  Projets et tâches (présentation)

3.  Administration des projets et des tâches

4.  Comptabilisation étendue (présentation)

5.  Administration de la comptabilisation étendue (tâches)

6.  Contrôles des ressources (présentation)

7.  Administration des contrôles des ressources (tâches)

8.  Ordonnanceur FSS (présentation)

9.  Administration de l'ordonnanceur FSS (tâches)

10.  Contrôle de la mémoire physique à l'aide du démon de limitation des ressources (présentation)

11.  Administration du démon de limitation des ressources (tâches)

12.  Pools de ressources (présentation)

13.  Création et administration des pools de ressources (tâches)

14.  Exemple de configuration de la gestion des ressources

15.  Contrôle des ressources dans Solaris Management Console

Partie II Zones

16.  Introduction aux zones Solaris

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

18.  Planification et configuration de zones non globales (tâches)

Planification et configuration d'une zone non globale (liste des tâches)

Evaluation du paramétrage du système

Espace disque requis

Zones sparse root

Zones whole root

Limitation de la taille d'une zone

Détermination du nom d'hôte d'une zone et obtention de son adresse réseau

Nom d'hôte

Adresse réseau en mode IP partagé

Adresse réseau IPv4

Adresse réseau IPv6

Adresse réseau en mode IP exclusif

Configuration des systèmes de fichiers

Création, modification et suppression de configurations de zones non globales (liste des tâches)

Configuration, vérification et validation d'une zone

Configuration d'une zone

Etape suivante

Script de configuration de zones multiples

Affichage de la configuration d'une zone non globale

Modification de la configuration d'une zone à l'aide de zonecfg

Modification d'un type de ressource dans la configuration d'une zone

Solaris 10 8/07 : effacement d'un type de propriété dans la configuration d'une zone

De Solaris 10 3/05 à Solaris 10 11/06 : modification d'un type de propriété dans la configuration d'une zone

Solaris 10 8/07 : renommage d'une zone

Ajout d'un périphérique dédié à une zone

Définition de zone.cpu-shares dans une zone globale

Rétablissement ou suppression de la configuration d'une zone à l'aide de zonecfg

Rétablissement de la configuration d'une zone

Suppression de la configuration d'une zone

19.  A propos de l'installation, de l'arrêt, du clonage et de la désinstallation de zones non globales (présentation)

20.  Installation, initialisation, arrêt, désinstallation et clonage de zones non globales (tâches)

21.  Connexion à une zone non globale (présentation)

22.  Connexion à une zone non globale (tâches)

23.  Déplacement et migration de zones non globales (tâches)

24.  Oracle Solaris 10 9/10 : migration d'un système physique Oracle Solaris dans une zone (tâches)

25.  A propos des packages et des patchs sur un système Oracle Solaris doté de zones (présentation)

26.  Ajout et suppression de packages et de patchs sur un système Oracle Solaris comportant des zones installées (tâches)

27.  Administration d'Oracle Solaris Zones (présentation)

28.  Administration d'Oracle Solaris Zones (tâches)

29.  Mise à niveau d'un système Oracle Solaris 10 doté de zones non globales

30.  Dépannage des problèmes liés à Oracle Solaris Zones

Partie III Zones marquées lx

31.  A propos des zones marquées et de la zone marquée Linux

32.  Planification de la configuration de zone marquée lx (présentation)

33.  Configuration de la zone marquée lx (tâches)

34.  A propos de l'installation, de l'initialisation, de l'arrêt, du clonage et de la désinstallation des zones marquées lx (présentation)

35.  Installation, initialisation, arrêt, désinstallation et clonage de zones marquées lx (tâches)

36.  Connexion aux zones marquées lx (tâches)

37.  Déplacement et migration de zones marquées lx (tâches)

38.  Administration et exécution d'applications dans les zones marquées lx (tâches)

Glossaire

Index

Configuration, vérification et validation d'une zone

Exécutez la commande zonecfg, décrite dans la page de manuel zonecfg(1M), pour effectuer les opérations suivantes :

La commande zonecfg permet également de spécifier de manière persistante les paramètres de gestion des ressources pour la zone globale.

Pour annuler le paramétrage d'une ressource pendant la configuration d'une zone à l'aide de l'utilitaire zonecfg, exécutez la commande revert. Reportez-vous à la section Rétablissement de la configuration d'une zone.

Pour savoir comment configurer plusieurs zones sur le système à l'aide d'un script, consultez la section Script de configuration de zones multiples.

Pour plus d'informations sur l'affichage de la configuration des zones non globales, reportez-vous à la section Affichage de la configuration d'une zone non globale.

Configuration d'une zone

Pour créer une zone non globale native, seules les propriétés zonename et zonepath sont nécessaires. Les autres ressources et propriétés sont facultatives. Pour certaines ressources facultatives, vous devez également choisir entre plusieurs possibilités, comme, par exemple, utiliser la ressource dedicated-cpu ou la ressource capped-cpu. Pour plus d'informations sur les ressources et les propriétés zonecfg, reportez-vous à la section Données de configuration de zones.

Pour exécuter la procédure ci-dessous, vous devez être administrateur global.

  1. Connectez-vous en tant que superutilisateur ou prenez le rôle d'administrateur principal.

    Pour savoir comment créer le rôle et l'assigner à un utilisateur, reportez-vous à la section Utilisation des outils de gestion Solaris avec RBAC (liste des tâches) du manuel Guide d’administration système : administration de base.

  2. Attribuez à la zone le nom que vous avez choisi.

    Dans cet exemple, la zone est nommée my-zone.

    global# zonecfg -z my-zone

    Si c'est la première fois que vous configurez cette zone, le message suivant s'affiche :

    my-zone: No such zone configured
    Use 'create' to begin configuring a new zone.
  3. Créez la configuration de la nouvelle zone.

    Les paramètres utilisés sont les paramètres par défaut.

    zonecfg:my-zone> create
  4. Définissez le chemin de la zone, ici /export/home/my-zone.
    zonecfg:my-zone> set zonepath=/export/home/my-zone

    Ne placez pas le zonepath sur un ZFS pour les versions antérieures à Solaris 10 10/08.

  5. Définissez la valeur d'initialisation automatique.

    Si cette propriété est définie sur true, l'initialisation de la zone globale entraîne automatiquement celle de cette zone. Notez que les zones ne s'initialisent automatiquement que si le service svc:/system/zones:default est activé. La valeur par défaut est false.

    zonecfg:my-zone> set autoboot=true
  6. Définissez des arguments d'initialisation permanents pour la zone.
    zonecfg:my-zone> set bootargs="-m verbose"
  7. Dédiez une ou plusieurs CPU à cette zone.
    zonecfg:my-zone> add dedicated-cpu
    1. Définissez le nombre de CPU.
      zonecfg:my-zone:dedicated-cpu> set ncpus=1-2
    2. (Facultatif) Définissez l'importance.
      zonecfg:my-zone:dedicated-cpu> set importance=10

      La valeur par défaut est 1.

    3. Clôturez la spécification.
      zonecfg:my-zone:dedicated-cpu> end
  8. Révisez le jeu de privilèges par défaut.
    zonecfg:my-zone> set limitpriv="default,sys_time"

    Cette ligne ajoute la capacité à définir l'horloge système sur le jeu de privilèges par défaut.

  9. Définissez la classe de programmation sur FSS.
    zonecfg:my-zone> set scheduling-class=FSS
  10. Ajoutez une limite de mémoire.
    zonecfg:my-zone> add capped-memory
    1. Définissez la limite de mémoire.
      zonecfg:my-zone:capped-memory> set physical=50m
    2. Définissez la limite de mémoire swap.
      zonecfg:my-zone:capped-memory> set swap=100m
    3. Définissez la limite de mémoire verrouillée.
      zonecfg:my-zone:capped-memory> set locked=30m
    4. Terminez la spécification des limites de mémoire.
      zonecfg:my-zone:capped-memory> end
  11. Ajoutez un système de fichiers.
    zonecfg:my-zone> add fs
    1. Définissez le point de montage du système de fichiers, ici /usr/local.
      zonecfg:my-zone:fs> set dir=/usr/local
    2. Spécifiez que /opt/zones/my-zone/local de la zone globale doit être monté comme /usr/local dans la zone en cours de configuration.
      zonecfg:my-zone:fs> set special=/opt/zones/my-zone/local

      Dans la zone non globale, le système de fichiers /usr/local sera accessible en lecture et en écriture.

    3. Spécifiez le type de système de fichiers, ici lofs.
      zonecfg:my-zone:fs> set type=lofs

      Le type indique la manière dont le noyau dialogue avec le système de fichiers.

    4. Clôturez la spécification du système de fichiers.
      zonecfg:my-zone:fs> end

    Cette étape peut être répétée pour ajouter plus d'un système de fichiers.

  12. Facultatif : définissez la propriété hostid.
    zonecfg:my-zone> set hostid=80f0c086
  13. Ajoutez un jeu de données ZFS nommé sales dans le pool de stockage tank.
    zonecfg:my-zone> add dataset
    1. Spécifiez le chemin du jeu de données ZFS sales.
      zonecfg:my-zone> set name=tank/sales
    2. Terminez la spécification du jeu de données.
      zonecfg:my-zone> end
  14. (Uniquement pour les zones sparse root) Ajoutez un système de fichiers partagé monté en loopback depuis la zone globale.

    Ignorez cette étape si la zone créée est une zone whole root (ce type de zone ne possède pas de systèmes de fichiers partagés). Pour plus de détails sur les zones whole root, reportez-vous à la section Espace disque requis.

    zonecfg:my-zone> add inherit-pkg-dir
    1. Spécifiez que /opt/sfw de la zone globale doit être monté en mode lecture seule dans la zone en cours de configuration.
      zonecfg:my-zone:inherit-pkg-dir> set dir=/opt/sfw

      Remarque - La base de données de packages de la zone est mise à jour en conséquence. A 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.


    2. Terminez la spécification de inherit-pkg-dir.
      zonecfg:my-zone:inherit-pkg-dir> end

    Cette étape peut être répétée pour ajouter plusieurs systèmes de fichiers partagés.


    Remarque - Si vous voulez créez une zone whole root et que des ressources de systèmes de fichiers partagés par défaut ont été ajoutées à l'aide de inherit-pkg-dir, vous devez supprimer ces ressources inherit-pkg-dir par défaut avec zonecfg avant d'installer la zone :

    • zonecfg:my-zone> remove inherit-pkg-dir dir=/lib

    • zonecfg:my-zone> remove inherit-pkg-dir dir=/platform

    • zonecfg:my-zone> remove inherit-pkg-dir dir=/sbin

    • zonecfg:my-zone> remove inherit-pkg-dir dir=/usr


  15. (Facultatif) Si la zone créée est une zone en mode IP exclusif, définissez le type d'IP (ip-type).
    zonecfg:my-zone> set ip-type=exclusive

    Remarque - Seul le type correspondant aux périphériques physiques doit être spécifié dans l'étape add net.


  16. Ajoutez une interface réseau.
    zonecfg:my-zone> add net
    1. (Uniquement pour les zones whole root) Définissez l'adresse IP de l'interface réseau, ici 192.168.0.1.
      zonecfg:my-zone:net> set address=192.168.0.1
    2. Définissez le type de périphérique physique de l'interface réseau, ici le périphérique hme.
      zonecfg:my-zone:net> set physical=hme0
    3. Solaris 10 10/08 : (facultatif, IP partagé uniquement) définissez le routeur par défaut de l'interface réseau 10.0.0.1 lors de cette procédure.
      zonecfg:my-zone:net> set defrouter=10.0.0.1
    4. Clôturez la spécification.
      zonecfg:my-zone:net> end

    Cette étape peut être répétée pour ajouter plus d'une interface réseau.

  17. Ajoutez un périphérique.
    zonecfg:my-zone> add device
    1. Définissez la correspondance de périphérique, ici /dev/sound/* .
      zonecfg:my-zone:device> set match=/dev/sound/*
    2. Terminez la spécification du périphérique.
      zonecfg:my-zone:device> end

    Cette étape peut être répétée pour ajouter plusieurs périphériques.

  18. Ajoutez un contrôle de ressource à l'échelle de la zone à l'aide du nom de propriété.
    zonecfg:my-zone> set max-sem-ids=10485200

    Cette étape peut être répétée pour ajouter plusieurs contrôles de ressource.

  19. Ajoutez un commentaire à l'aide du type de ressource attr.
    zonecfg:my-zone> add attr
    1. Définissez le nom sur comment.
      zonecfg:my-zone:attr> set name=comment
    2. Définissez le type sur string.
      zonecfg:my-zone:attr> set type=string
    3. Définissez la valeur sur un commentaire décrivant cette zone.
      zonecfg:my-zone:attr> set value="This is my work zone."
    4. Clôturez la spécification du type de ressource attr.
      zonecfg:my-zone:attr> end
  20. Vérifiez la configuration de la zone.
    zonecfg:my-zone> verify
  21. Validez la configuration de la zone.
    zonecfg:my-zone> commit
  22. Quittez la commande zonecfg.
    zonecfg:my-zone> exit

    Notez que, même si vous ne répondez pas explicitement commit à l'invite, l'opération commit est automatiquement tentée lorsque vous tapez exit ou lorsqu'une condition EOF se produit.

Utilisation de plusieurs sous-commandes sur la ligne de commande

Astuce - La commande zonecfg prend également en charge des sous-commandes multiples, placées entre guillemets et séparées par des points-virgules, d'un même appel de shell.

global# zonecfg -z my-zone "create ; set zonepath=/export/home/my-zone"

Etape suivante

Pour installer la configuration de la zone validée, reportez-vous à la section Installation et initialisation de zones.

Script de configuration de zones multiples

Ce script permet de configurer et d'initialiser plusieurs zones sur un système. Il regroupe les paramètres suivants :

Vous devez être administrateur global de la zone globale pour pouvoir exécuter ce script. L'administrateur global possède des privilèges de superutilisateur dans la zone globale ou prend le rôle d'administrateur principal.

#!/bin/ksh
#
# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
#ident    "%Z%%M%    %I%    %E% SMI"

if [[ -z "$1" || -z "$2" || -z "$3" ]]; then
        echo "usage: $0 <#-of-zones> <zonename-prefix> <basedir>"
        exit 2
fi

if [[ ! -d $3 ]]; then
        echo "$3 is not a directory"
        exit 1
fi

nprocs=`psrinfo | wc -l`
nzones=$1
prefix=$2
dir=$3

ip_addrs_per_if=`ndd /dev/ip ip_addrs_per_if`
if [ $ip_addrs_per_if -lt $nzones ]; then
        echo "ndd parameter ip_addrs_per_if is too low ($ip_addrs_per_if)"
        echo "set it higher with 'ndd -set /dev/ip ip_addrs_per_if <num>"
        exit 1
fi

i=1
while [ $i -le $nzones ]; do
    zoneadm -z $prefix$i list > /dev/null 2>&1
    if [ $? != 0 ]; then
        echo configuring $prefix$i
        F=$dir/$prefix$i.config
        rm -f $F
        echo "create" > $F
        echo "set zonepath=$dir/$prefix$i" >> $F
        zonecfg -z $prefix$i -f $dir/$prefix$i.config 2>&1 | \
            sed 's/^/    /g' 
    else
        echo "skipping $prefix$i, already configured"
    fi
    i=`expr $i + 1`
done

i=1
while [ $i -le $nzones ]; do
    j=1
    while [ $j -le $nprocs ]; do
        if [ $i -le $nzones ]; then
            if [ `zoneadm -z $prefix$i list -p | \
                cut -d':' -f 3` != "configured" ]; then
                echo "skipping $prefix$i, already installed"
            else
                echo installing $prefix$i
                mkdir -pm 0700 $dir/$prefix$i
                chmod 700 $dir/$prefix$i
                zoneadm -z $prefix$i install > /dev/null 2>&1 &
                sleep 1    # spread things out just a tad
            fi
        fi
        i=`expr $i + 1`
        j=`expr $j + 1`
    done
    wait
done

i=1
while [ $i -le $nzones ]; do
    echo setting up sysid for $prefix$i
    cfg=$dir/$prefix$i/root/etc/sysidcfg
    rm -f $cfg
    echo "network_interface=NONE {hostname=$prefix$i}" > $cfg
    echo "system_locale=C" >> $cfg
    echo "terminal=xterms" >> $cfg
    echo "security_policy=NONE" >> $cfg
    echo "name_service=NONE" >> $cfg
    echo "timezone=US/Pacific" >> $cfg
    echo "root_password=Qexr7Y/wzkSbc" >> $cfg  # 'l1a'
    i=`expr $i + 1`
done

i=1
para=`expr $nprocs \* 2`
while [ $i -le $nzones ]; do
    date
    j=1
    while [ $j -le $para ]; do
        if [ $i -le $nzones ]; then
            echo booting $prefix$i
            zoneadm -z $prefix$i boot &
        fi
        j=`expr $j + 1`
        i=`expr $i + 1`
    done
    wait
done

Affichage de la configuration d'une zone non globale

Pour exécuter la procédure ci-dessous, vous devez être administrateur global.

  1. Connectez-vous en tant que superutilisateur ou prenez le rôle d'administrateur principal.

    Pour savoir comment créer le rôle et l'assigner à un utilisateur, reportez-vous à la section Utilisation des outils de gestion Solaris avec RBAC (liste des tâches) du manuel Guide d’administration système : administration de base.

  2. Affichez la configuration de la zone.
    global# zonecfg -z zonename info