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

Configuration de la zone marquée lx

Utilisez la commande zonecfg, décrite dans la page de manuel zonecfg(1M), pour exécuter les actions suivantes :


Astuce –

Si vous savez que vous installerez des applications à l'aide de CD ou de DVD dans une zone marquée lx, utilisez add fs pour permettre d'accéder en lecture seule au CD ou DVD dans la zone globale lors de la configuration initiale de la zone marquée. Un CD ou DVD permet alors d'installer un produit dans la zone marquée.


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 votre système à l'aide d'un script, consultez la section Script de configuration de plusieurs zones marquées lx.

Pour plus d'informations sur l'affichage de la configuration des zones marquées, reportez-vous à la section Affichage de la configuration d'une zone marquée.


Astuce –

Une fois la zone marquée configurée, il est conseillé de réaliser une copie de la configuration de la zone. Cette sauvegarde permet de restaurer la zone à l'avenir. En tant que superutilisateur ou administrateur principal, imprimez la configuration pour la zone lx-zone dans un fichier. Cet exemple utilise un fichier nommé lx-zone.config.


global# zonecfg -z lx-zone export > lx-zone.config

Reportez-vous à la section Restauration d'une zone non globale pour de plus amples informations.


ProcedureConfiguration, vérification et validation de la zone marquée lx

Vous ne pouvez pas utiliser les zones marquées lx sur un système Solaris de confiance pour lequel les étiquettes ne sont pas activées. La commande zoneadm ne vérifie pas la configuration.

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

  1. Devenez superutilisateur ou assumez le rôle d'administrateur principal.

    Pour savoir comment créer le rôle et l'assigner à un utilisateur, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

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

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


    global# zonecfg -z lx-zone
    

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


    lx-zone: No such zone configured
    Use 'create' to begin configuring a new zone.
  3. Créez la nouvelle configuration de zone lx à l'aide du modèle SUNWlx.


    zonecfg:lx-zone> create -t SUNWlx
    

    Vous pouvez également créer une zone vide et définir explicitement la marque :


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


    zonecfg:lx-zone> set zonepath=/export/home/lx-zone
    
  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:lx-zone> set autoboot=true
    
  6. Définissez des arguments d'initialisation permanents pour la zone.


    zonecfg:lx-zone> set bootargs="-i=altinit"
    
  7. Si les pools de ressources sont activés sur le système, associez un pool à une zone.

    Cet exemple utilise le pool par défaut, soit pool_default.


    zonecfg:lx-zone> set pool=pool_default
    

    Comme un pool de ressources peut présenter une assignation de classe de programmation facultative, il est possible d'utiliser les utilitaires de pools pour définir un ordonnanceur par défaut autre que celui qui est défini par défaut pour le système, pour une zone non globale. Pour obtenir les instructions applicables, reportez-vous aux sections Association d'un pool avec une classe de programmation et Création de la configuration.

  8. Révisez le jeu de privilèges par défaut.


    zonecfg:lx-zone> set limitpriv="default,proc_priocntl"
    

    Le privilège proc_priocntl permet d'exécuter des processus dans la classe temps réel.

  9. Définissez cinq parts de CPU.


    zonecfg:lx-zone> set cpu-shares=5
    
  10. Ajoutez une limite de mémoire.


    zonecfg:lx-zone> add capped-memory
    
    1. Définissez la limite de mémoire.


      zonecfg:lx-zone:capped-memory> set physical=50m
      
    2. Définissez la limite de mémoire swap.


      zonecfg:lx-zone:capped-memory> set swap=100m
      
    3. Définissez la limite de mémoire verrouillée.


      zonecfg:lx-zone:capped-memory> set locked=30m
      
    4. Clôturez la spécification.


      zonecfg:lx-zone:capped-memory> end
      
  11. Ajoutez un système de fichiers.


    zonecfg:lx-zone> add fs
    
    1. Définissez le point de montage du système de fichiers, ici >/export/linux/local.


      zonecfg:lx-zone:fs> set dir=/export/linux/local
      
    2. Spécifiez que /opt/local de la zone globale doit être monté comme /export/linux/local dans la zone en cours de configuration.


      zonecfg:lx-zone:fs> set special=/opt/local
      

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

    3. Spécifiez le type de système de fichiers, ici lofs.


      zonecfg:lx-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:lx-zone:fs> end
      

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

  12. Ajoutez une interface réseau virtuelle.


    zonecfg:lx-zone> add net
    
    1. Définissez l'adresse IP selon le format adresse ip de zone/masque de sous-réseau. Dans cette procédure, l'adresse IP est 10.6.10.233/24.


      zonecfg:lx-zone:net> set address=10.6.10.233/24
      
    2. Définissez le type de périphérique physique de l'interface réseau, ici le périphérique bge.


      zonecfg:lx-zone:net> set physical=bge0
      
    3. Clôturez la spécification.


      zonecfg:lx-zone:net> end
      

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

  13. Activez un périphérique audio présent dans la zone globale de cette zone à l'aide du type de ressource attr.


    zonecfg:lx-zone> add attr
    
    1. Définissez le nom sur audio.


      zonecfg:lx-zone:attr> set name=audio
      
    2. Définissez le type sur boolean.


      zonecfg:lx-zone:attr> set type=boolean
      
    3. Définissez la valeur sur audio.


      zonecfg:lx-zone:attr> set value=true
      
    4. Clôturez la spécification du type de ressource attr.


      zonecfg:lx-zone:attr> end
      
  14. Vérifiez la configuration de la zone.


    zonecfg:lx-zone> verify
    
  15. Validez la configuration de la zone.


    zonecfg:lx-zone> commit
    
  16. Quittez la commande zonecfg.


    zonecfg:lx-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 lx-zone "create -t SUNWlx; set zonepath=/export/home/lx-zone"

Étape suivante

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

Script de configuration de plusieurs zones marquées lx

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 assume 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" || -z "$4" ]]; then
    echo "usage: $0 <#-of-zones> <zonename-prefix> <basedir> <template zone>"
    exit 2
fi
if [[ ! -d $3 ]]; then
    echo "$3 is not a directory"
    exit 1
fi
state=`zoneadm -z $4 list -p 2>/dev/null | cut -f 3 -d ":"`
if [[ -z "$state" || $state != "installed" ]]; then
    echo "$4 must be an installed, halted zone"
    exit 1
fi

template_zone=$4

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 clone $template_zone > /dev/null 2>&1
	if [ $? != 0 ]; then
		echo configuring $prefix$i
		F=$dir/$prefix$i.config
		rm -f $F
		echo "create -t SUNWlx" > $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 -s -d /path/to/ISOs > /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
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

ProcedureAffichage de la configuration d'une zone marquée

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

  1. Devenez superutilisateur ou assumez le rôle d'administrateur principal.

    Pour savoir comment créer le rôle et l'assigner à un utilisateur, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Affichez la configuration de la zone.


    global# zonecfg -z zonename info