Systemverwaltungshandbuch: Oracle Solaris Container - Ressourcenverwaltung und Solaris Zones

Kapitel 33 Konfigurieren einer lx Branded Zone (Vorgehen)

In diesem Kapitel wird beschrieben, wie Sie eine lx Branded Zone auf einem x64- oder x86-basierten System konfigurieren. Im Wesentlichen ist dies der gleiche Prozess wie beim Konfigurieren einer Solaris-Zone. Einige Eigenschaften sind zum Konfigurieren einer Branded Zone nicht erforderlich.

Planen und Konfigurieren einer lx Branded Zone (Übersicht der Schritte)

Bevor Sie ein System zur Verwendung von Zonen einrichten, müssen Sie Informationen sammeln und entscheiden, wie die Zonen konfiguriert werden sollen. In der folgenden Übersicht der Schritte wird zusammengefasst, was beim Planen und Konfigurieren einer lx-Zone beachtet werden muss.

Aufgabe 

Beschreibung 

Siehe 

Planen der Zonenstrategie. 

  • Festlegen, welche Anwendungen in Zonen ausgeführt werden sollen.

  • Bewerten der Verfügbarkeit des Festplattenspeichers, der die Dateien in der Zone aufnehmen soll.

  • Wenn auch Funktionen zur Ressourcenverwaltung verwenden werden sollen, legen Sie fest, wie die Zone an die Grenzen der Ressourcenverwaltung angepasst werden soll.

  • Wenn Resource Pools verwenden werden, konfigurieren Sie die Pools.

Lesen Sie dazu Anforderungen an System und Speicherplatz und In Zonen verwendete Resource Pools.

Festlegen von Namen und Pfad für die Zone. 

Festlegen des Zonennamens basierend auf den Benennungskonfigurationen. Ein Pfad auf einem Zetabyte File System (ZFS) wird empfohlen. Befinden sich der zonepath der Quelle und der zonepath des Ziels auf einem ZFS und im gleichen Pool, so verwendet das ZFS automatisch den Befehl zoneadm clone, um die Zone zu klonen.

Lesen Sie dazu Ressourcen- und Eigenschaftentypen und Oracle Solaris ZFS-Administrationshandbuch.

Beziehen oder konfigurieren von IP-Adressen für die Zone. 

Je nach Konfiguration müssen Sie mindestens eine IP-Adresse für jede nicht-globale Zone beziehen, für die eine Netzwerkverbindung vorgesehen ist. 

Lesen Sie dazu Festlegen des Zonen-Hostnamens und Beziehen der Netzwerkadresse und Systemverwaltungshandbuch: IP Services.

Festlegen, ob Dateisysteme in der Zone eingehängt werden sollen. 

Überprüfen Sie die Anforderungen der Anwendungen. 

Weitere Informationen finden Sie unter In Zonen eingehängte Dateisysteme.

Festlegen, welche Netzwerkschnittstellen in der Zone verfügbar sein sollen. 

Überprüfen Sie die Anforderungen der Anwendungen. 

Weitere Informationen finden Sie unter Shared IP-Netzwerkschnittstellen.

Festlegen, ob die standardmäßigen Berechtigungen für eine nicht-globale Zone geändert werden müssen. 

Überprüfen der Berechtigungssets: default, Berechtigungen können hinzugefügt und entfernt werden und Berechtigungen, die derzeit nicht verwendet werden können. 

Lesen Sie dazu Ressourcen- und Eigenschaftentypen und Berechtigungen in einer nicht-globalen Zone.

Konfigurieren der Zone. 

Geben Sie den Befehl zonecfg ein, um die Konfiguration für eine Zone zu erstellen.

Lesen Sie dazu So konfigurieren, prüfen und übernehmen Sie eine lx Branded Zone.

Überprüfen und Übernehmen der konfigurierten Zone. 

Feststellen, ob die angegebenen Ressourcen und Eigenschaften in einem hypothetischen System gültig sind. 

Lesen Sie dazu So konfigurieren, prüfen und übernehmen Sie eine lx Branded Zone.

So konfigurieren Sie eine lx Branded Zone

Mit dem in der Manpage zonecfg ausführlich beschriebenen Befehl zonecfg(1M) können Sie:


Tipp –

Wenn Sie im Voraus wissen, dass CDs oder DVDs zur Installation der Anwendungen in einer lx Branded Zone verwenden werden, stellen Sie bei der Erstkonfiguration der Branded Zone mit dem Befehl add fs schreibgeschützten Zugriff auf CD- oder DVD-Medien in der globalen Zone ein. Zur Installation eines Produkts in der Branded Zone können CDs oder eine DVD verwendet werden.


Beim Konfigurieren einer Zone mit dem Dienstprogramm zonecfg können Sie den Unterbefehl revert verwenden, um die Einstellung einer Ressource rückgängig zu machen. Lesen Sie dazu So setzen Sie eine Zonenkonfiguration zurück.

Ein Skript zur Konfiguration mehrerer Zonen auf einem System finden Sie unter Skript zur Konfiguration mehrerer lx Branded Zones.

Eine Anleitung, wie Sie die Konfiguration einer nicht-globalen Zone anzeigen, finden Sie unter So zeigen Sie die Konfiguration einer lx Branded Zone an.


Tipp –

Nachdem Sie die Branded Zone konfiguriert haben, sollten Sie eine Kopie der Zonenkonfiguration anlegen. Mit dieser Sicherungskopie können Sie die Zone ggf. zu einem späteren Zeitpunkt wiederherstellen. Als Superuser oder Primäradministrator drucken Sie die Konfiguration der Zone lx-zone in eine Datei. Im folgenden Beispiel wird eine Datei mit der Bezeichnung lx-zone.config verwendet.


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

Weitere Informationen finden Sie unter So stellen Sie eine einzelne nicht-globale Zone wieder her.


ProcedureSo konfigurieren, prüfen und übernehmen Sie eine lx Branded Zone

Sie können lx Branded Zones nicht auf einem Trusted Solaris-System verwenden, auf dem Labels aktiviert sind. Der Befehl zoneadm wird die Konfiguration nicht überprüfen.

Für dieses Verfahren müssen Sie als globaler Administrator bei der globalen Zone angemeldet sein.

  1. Melden Sie sich als Superuser an oder nehmen Sie die Rolle des Primäradministrators an.

    Informationen zum Erstellen von Rollen und Zuweisen von Rollen zu Benutzern finden Sie unter Using the Solaris Management Tools With RBAC (Task Map) in System Administration Guide: Basic Administration.

  2. Richten Sie eine Zonenkonfiguration mit dem von Ihnen gewählten Zonennamen ein.

    Im folgenden Beispiel wird der Name lx-zone verwendet.


    global# zonecfg -z lx-zone
    

    Wenn Sie diese Zone das erste Mal konfigurieren, wird die folgende Systemmeldung angezeigt:


    lx-zone: No such zone configured
    Use 'create' to begin configuring a new zone.
  3. Erstellen Sie die neue lx-Zonenkonfiguration mithilfe der Vorlage SUNWlx.


    zonecfg:lx-zone> create -t SUNWlx
    

    Alternativ können Sie eine leere Zone erstellen und das Brand explizit festlegen:


    zonecfg:lx-zone> create -b
    zonecfg:lx-zone> set brand=lx
    
  4. Legen Sie den Zonenpfad fest. Verwenden Sie in diesem Beispiel /export/home/lx-zone.


    zonecfg:lx-zone> set zonepath=/export/home/lx-zone
    
  5. Legen Sie einen autoboot-Wert fest.

    Wenn diese Eigenschaft auf true gesetzt ist, wird die Zone bei einem Neustart der globalen Zone automatisch gebootet. Beachten Sie, dass auch der Zonenservice svc:/system/zones:default aktiviert sein muss, damit Zonen automatisch gebootet werden können. Der Standardwert ist false.


    zonecfg:lx-zone> set autoboot=true
    
  6. Legen Sie die persistenten Boot-Argumente einer Zone fest.


    zonecfg:lx-zone> set bootargs="-i=altinit"
    
  7. Wenn Resource Pools auf dem System aktiviert sind, weisen Sie der Zone einen Pool zu.

    Im folgenden Beispiel wird der Standard-Pool mit der Bezeichnung pool_default verwendet.


    zonecfg:lx-zone> set pool=pool_default
    

    Da ein Resource Pool optional über eine zugewiesene Scheduling-Klasse verfügt, können Sie die Pools-Funktionen verwenden, um einer nicht-globalen Zone einen anderen Standard-Scheduler als den Systemstandard zuzuweisen. Anweisungen hierzu finden Sie unter So ordnen Sie einen Pool einer Scheduling-Klasse zu und Erstellen der Konfiguration.

  8. Überarbeiten Sie das Standard-Berechtigungsset.


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

    Die Berechtigung proc_priocntl dient zum Ausführen von Prozessen in der Echtzeitklasse.

  9. Stellen Sie fünf CPU-Shares ein.


    zonecfg:lx-zone> set cpu-shares=5
    
  10. Fügen Sie eine Memory Cap hinzu.


    zonecfg:lx-zone> add capped-memory
    
    1. Richten Sie die Memory Cap ein.


      zonecfg:lx-zone:capped-memory> set physical=50m
      
    2. Richten Sie eine Memory Cap für den Swap-Speicher ein.


      zonecfg:lx-zone:capped-memory> set swap=100m
      
    3. Richten Sie eine Memory Cap für den gesperrten Speicher ein.


      zonecfg:lx-zone:capped-memory> set locked=30m
      
    4. Beenden Sie die Spezifikation.


      zonecfg:lx-zone:capped-memory> end
      
  11. Fügen Sie ein Dateisystem hinzu.


    zonecfg:lx-zone> add fs
    
    1. Legen Sie den Einhängepunkt für das Dateisystem fest. Verwenden Sie in diesem Beispiel /export/linux/local.


      zonecfg:lx-zone:fs> set dir=/export/linux/local
      
    2. Legen Sie fest, dass /opt/local in der globalen Zone als /export/linux/local in der konfigurierten Zone eingehängt wird.


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

      In der nicht-globalen Zone besteht Schreib- und Lesezugriff für das Dateisystem /export/linux/local.

    3. Geben Sie den Dateisystemtyp an. Verwenden Sie in diesem Beispiel lofs.


      zonecfg:lx-zone:fs> set type=lofs
      

      Der Typ gibt an, wie der Kernel mit dem Dateisystem interagiert.

    4. Beenden Sie die Dateisystemspezifikation.


      zonecfg:lx-zone:fs> end
      

    Dieser Schritt kann wiederholt ausgeführt werden, wenn mehrere Dateisysteme hinzuzufügen sind.

  12. Fügen Sie eine virtuelle Netzwerkschnittstelle hinzu.


    zonecfg:lx-zone> add net
    
    1. Legen Sie die IP-Adresse fest. Verwenden Sie dazu die folgende Syntax: IP-Adresse der Zone/Netzmaske. Verwenden Sie in diesem Beispiel 10.6.10.233/24.


      zonecfg:lx-zone:net> set address=10.6.10.233/24
      
    2. Legen Sie den reellen Gerätetyp für die Netzwerkschnittstelle fest. Verwenden Sie in diesem Beispiel das Gerät bge.


      zonecfg:lx-zone:net> set physical=bge0
      
    3. Beenden Sie die Spezifikation.


      zonecfg:lx-zone:net> end
      

    Dieser Schritt kann wiederholt ausgeführt werden, wenn mehrere Netzwerkschnittstellen hinzuzufügen sind.

  13. Aktivieren Sie mit dem Ressourcentyp attr ein in der globalen Zone vorhandenes Audiogerät für diese Zone.


    zonecfg:lx-zone> add attr
    
    1. Legen Sie den Namen mit audio fest.


      zonecfg:lx-zone:attr> set name=audio
      
    2. Legen Sie den Typ mit boolean fest.


      zonecfg:lx-zone:attr> set type=boolean
      
    3. Legen Sie den Wert mit true fest.


      zonecfg:lx-zone:attr> set value=true
      
    4. Beenden Sie die Spezifikation des attr-Ressourcentyps.


      zonecfg:lx-zone:attr> end
      
  14. Überprüfen Sie die Zonenkonfiguration der Zone.


    zonecfg:lx-zone> verify
    
  15. Übernehmen Sie die Zonenkonfiguration für die Zone.


    zonecfg:lx-zone> commit
    
  16. Beenden Sie den Befehl zonecfg.


    zonecfg:lx-zone> exit
    

    Wenn Sie nicht explizit commit an der Eingabeaufforderung eingeben, wird das commit automatisch versucht, wenn Sie exit eingeben oder ein EOF auftritt.

Verwenden mehrerer Unterbefehle an der Befehlszeile

Tipp –

Der Befehl zonecfg unterstützt mehrere in Anführungszeichen gestellte und durch Semikola voneinander getrennte Unterbefehle, die in der gleichen Shell aufgerufen werden.


global# zonecfg -z lx-zone "create -t SUNWlx; set zonepath=/export/home/lx-zone"

Die nächsten Schritte

Informationen zur Installation der übernommenen Zonenkonfiguration finden Sie unter Installieren und Booten von lx Branded Zones.

Skript zur Konfiguration mehrerer lx Branded Zones

Mit dem folgenden Skript können Sie mehrere Zonen auf einem System konfigurieren und booten. Dieses Skript enthält die folgenden Parameter:

Zum Ausführen dieses Skripts müssen Sie als globaler Administrator in der globalen Zone angemeldet sein. Der globale Administrator hat Superuser-Berechtigungen in der globalen Zone oder nimmt die Rolle des Primäradministrators an.


#!/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

ProcedureSo zeigen Sie die Konfiguration einer lx Branded Zone an

Für dieses Verfahren müssen Sie als globaler Administrator bei der globalen Zone angemeldet sein.

  1. Melden Sie sich als Superuser an oder nehmen Sie die Rolle des Primäradministrators an.

    Informationen zum Erstellen von Rollen und Zuweisen von Rollen zu Benutzern finden Sie unter Using the Solaris Management Tools With RBAC (Task Map) in System Administration Guide: Basic Administration.

  2. Zeigen Sie die Konfiguration einer Zone an.


    global# zonecfg -z zonename info
    

Bearbeiten, Zurücksetzen oder Entfernen von Zonenkonfigurationen

Die folgenden Abschnitte enthalten Anweisungen zum Bearbeiten, Zurücksetzen oder Entfernen einer Zonenkonfiguration.