Systemverwaltungshandbuch: Oracle Solaris Container - Ressourcenverwaltung und Solaris Zones

Kapitel 18 Planen und Konfigurieren von nicht-globalen Zonen (Vorgehen)

In diesem Kapitel sind die Maßnahmen beschrieben, die Sie vor dem Konfigurieren einer Zone auf dem System ausführen müssen. Darüber hinaus werden in diesem Kapitel das Konfigurieren einer Zone, das Modifizieren einer Zonenkonfiguration und das Löschen einer Zonenkonfiguration von einem System beschrieben.

Eine Einführung in die Zonenkonfiguration finden Sie in Kapitel 17Einführung in die Konfiguration einer nicht-globalen Zone.

Planen und Konfigurieren einer nicht-globalen 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 Zone beachtet werden muss.

Aufgabe 

Beschreibung 

Siehe 

Planen der Zonenstrategie. 

  • Auswerten der auf dem System laufenden Anwendungen, um festzulegen, welche Anwendungen in einer Zone ausgeführt werden sollen.

  • Bewerten der Verfügbarkeit des Festplattenspeichers, der die einmaligen 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.

Verwenden Sie die Nutzungsverlaufsdaten. Lesen Sie auch Erforderlicher Festplattenspeicher und In Zonen verwendete Resource Pools.

Festlegen des Zonennamens. 

Festlegen des Zonennamens basierend auf den Benennungskonfigurationen. 

Lesen Sie dazu Konfigurationsdaten in einer Zone und Zonen-Hostname.

Festlegen des Zonenpfads. 

Jede Zone verfügt über einen Root-Verzeichnispfad, der relativ zum Root-Verzeichnis der globalen Zone angegeben ist. 

Lesen Sie dazu Konfigurationsdaten in einer Zone.

Bewerten der Notwendigkeit einer CPU-Beschränkung, falls keine Resource Pools konfiguriert werden. 

Überprüfen Sie die Anforderungen der Anwendungen. 

Lesen Sie dazu Solaris 10 8/07: dedicated-cpu-Ressource.

Bewerten der Notwendigkeit einer Speicherzuordnung, falls Sie beabsichtigen, den für eine Zone zur Verfügung stehenden Speicher mithilfe von rcapd von der globalen Zone aus mit einer Memory Cap zu begrenzen.

Überprüfen Sie die Anforderungen der Anwendungen. 

Lesen Sie Kapitel 10Einführung in die Steuerung des reellen Arbeitsspeichers mithilfe des Resource Capping Daemons, Kapitel 11Verwalten des Resource Capping Daemons (Vorgehen) und Solaris 10 8/07: Steuerung des reellen Speichers und der capped-memory-Ressource.

Festlegen des FSS als standardmäßigen Scheduler des Systems. 

Jeder Zone werden CPU-Shares zugewiesen, um die Ansprüche der Zone auf CPU-Ressourcen zu steuern. Der FSS garantiert eine faire Verteilung der CPU-Ressourcen unter den Zonen basierend auf den zugewiesenen Shares. 

Kapitel 8Einführung in den Fair Share Scheduler, Scheduling-Klasse in einer Zone.

Festlegen, ob eine Zone eine Shared IP-Zone oder eine Exclusive IP-Zone wird. 

Bei einer Shared IP-Zone, der Standardeinstellung, erhalten oder konfigurieren Sie die IP-Adressen der 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. 

Bei einer Exclusive IP-Zone legen Sie die Data-Link fest, die der Zone zugewiesen wird. Die Zone benötigt exklusiven Zugriff auf mindestens eine Netzwerkschnittstelle. Bei dieser Schnittstelle kann es sich um eine separate LAN-Karte wie z. B. bge1 oder eine separate VLAN-Karte wie z. B. bge2000 handeln. Bei der Data-Link muss es sich um GLDv3 handeln. Eine Data-Link, bei der es sich nicht um GLDv3 handelt, wird als type: legacy in der Ausgabe des Befehls dladm show-link identifiziert.

Weitere Informationen finden Sie unter Festlegen des Zonen-Hostnamens und Beziehen der Netzwerkadresse, So konfigurieren Sie die Zone und im Systemverwaltungshandbuch: IP Services.

Informationen zu GLDv3-Schnittstellen finden Sie unter Oracle Solaris-Schnittstellentypen in Systemverwaltungshandbuch: IP Services.

Festlegen der Dateisysteme, die 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 Berechtigungen in einer nicht-globalen Zone.

Festlegen, welche Geräte in jeder Zone konfiguriert werden sollen. 

Überprüfen Sie die Anforderungen der Anwendungen. 

Lesen Sie die Dokumentation Ihrer Anwendung. 

Konfigurieren der Zone. 

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

Lesen Sie dazu Konfigurieren, Prüfen und Übernehmen einer 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 Konfigurieren, Prüfen und Übernehmen einer Zone.

Bewerten des aktuellen System-Setups

Zonen können von jedem Computer über werden, der das Solaris-Release 10 ausführt. Bei der Verwendung von Zonen müssen die folgenden Überlegungen hinsichtlich des Computers angestellt werden.

Erforderlicher Festplattenspeicher

Es gibt keinerlei Grenzwerte, wie viel Festplattenspeicher von einer Zone verbraucht werden darf. Einschränkungen des Speicherplatzes werden vom globalen Administrator eingerichtet. Der globale Administrator muss sicherstellen, dass der lokale Speicherplatz ausreichend groß ist, um das Dateisystem einer nicht-globalen Zone aufzunehmen. Selbst ein kleines Uniprozessor-System kann mehrere Zonen unterstützen, die gleichzeitig ausgeführt werden.

Die in der globalen Zone installierten Pakete wirken sich auf die Speicherplatzanforderungen der erstellten nicht-globalen Zonen aus. Weitere Faktoren sind die Anzahl der Pakete und deren Speicherplatzanforderungen.

Sparse Root Zones

Im Solaris 10-Release werden nicht-globale Zonen, die über inherit-pkg-dir-Ressourcen verfügen, als Sparse Root Zones bezeichnet.

Das Sparse Root Zone-Modell optimiert das gemeinsame Nutzen von Objekten folgendermaßen:

Bei diesem Modell scheinen alle Pakete in der nicht-globalen Zone installiert zu sein. Pakete, die keine Inhalte an schreibgeschützte, als Loopback-Mount eingehängte Dateisysteme liefern, sind vollständig installiert. Inhalte, die an schreibgeschützte, als Loopback-Mount eingehängte Dateisysteme geliefert werden, müssen nicht installiert werden, da der Inhalt von der globalen Zone übernommen wird (und sichtbar ist).

Weitere 40 MB RAM pro Zone werden empfohlen, sind aber bei Computern mit ausreichend Swap-Speicher nicht erforderlich.

Whole Root Zones

Das Whole Root Zone-Modell bietet maximale Konfigurierbarkeit. Alle erforderlichen und ausgewählten optionalen Solaris-Pakete werden in den privaten Dateisystemen der Zone installiert. Zu den Vorteilen dieses Modells zählt z. B. die Möglichkeiten für den globalen Administrator, das Dateisystem-Layout ihrer Zonen anzupassen. Dies dient u. a. zum Hinzufügen von beliebigen nicht gebündelten Paketen oder Paketen von Drittanbietern.

Die Speicherplatzanforderungen dieses Modell werden vom Festplattenspeicherplatz bestimmt, der für die aktuell in der globalen Zone installierten Paketen erforderlich ist.


Hinweis –

Wenn Sie eine Sparse Root Zone erstellen, die die folgenden inherit-pkg-dir-Verzeichnisse enthält, müssen Sie diese Verzeichnisse vor der Installation der Zone aus der Konfiguration der nicht-globalen Zone entfernen, um eine Whole Root Zone zu erstellen:

Lesen Sie dazu So konfigurieren Sie die Zone.


Beschränken der Zonengröße

Zum Beschränken der Größe einer Zone können die folgenden Optionen verwendet werden:

Festlegen des Zonen-Hostnamens und Beziehen der Netzwerkadresse

Sie müssen den Hostnamen für die Zone festlegen. Dann müssen Sie eine IPv4-Adresse zuweisen oder manuell eine IPv6-Adresse konfigurieren und der Zone zuweisen, wenn die Zone über eine Netzwerkverbindung verfügen soll.

Zonen-Hostname

Der von Ihnen für die Zone gewählte Hostname muss entweder in der Datenbank hosts oder in der Datenbank /etc/inet/hosts definiert sein. Dies richtet sich nach der Angabe in der Datei /etc/nsswitch.conf in der globalen Zone. Die Netzwerk-Datenbanken sind Dateien, die Informationen zur Netzwerkkonfiguration enthalten. Die Datei nsswitch.conf gibt an, welcher Namen-Service zu verwenden ist.

Wenn Sie lokale Dateien für den Namen-Service verwenden, wird in die Datenbank hosts in der Datei /etc/inet/hosts gepflegt. Die Hostnamen für die Netzwerkschnittstellen der Zone werden von der lokalen hosts-Datenbank in der Datei /etc/inet/hosts aufgelöst. Alternativ kann die IP-Adresse direkt bei der Konfiguration der Zone angegeben werden, so dass keine Hostnamenauflösung erforderlich ist.

Weitere Informationen finden Sie unter TCP/IP-Konfigurationsdateien in Systemverwaltungshandbuch: IP Services und Netzwerkdatenbanken und die nsswitch.conf-Datei in Systemverwaltungshandbuch: IP Services.

Netzwerkadresse in einer Shared IP-Zone

Jede mit einem Netzwerk verbundene Shared IP-Zone benötigt mindestens eine eindeutige ID-Adresse. Es werden sowohl IPv4- als auch IPv6-Adressen unterstützt.

Netzwerkadresse einer IPv4-Zone

Wenn Sie IPv4 verwenden, beziehen Sie eine Adresse und weisen Sie die Adresse der Zone zu.

Mit der IP-Adresse kann eine Präfix-Länge angegeben werden. Das Format für dieses Präfix ist Adresse/Präfixlänge, z. B. 192.168.1.1/24. Somit wird die Adresse 192.168.1.1 und die Netzmaske 255.255.255.0 verwendet oder die Maske, wenn die ersten 24 Bit 1-Bits sind.

Netzwerkadresse einer IPv6-Zone

Wenn Sie IPv6 verwenden, müssen Sie die Adressen manuell konfigurieren. In der Regel müssen mindestens die folgenden zwei Adressarten konfiguriert werden:

Die Link-local-Adresse

Eine Link-local-Adresse hat die Syntax fe80:: 64-Bit-Schnittstellen-ID/10. Die /10 kennzeichnet eine Präfixlänge von 10 Bit.

Adressen, die aus dem globalen Präfix gebildet werden, das für das Teilnetz konfiguriert wurde

Eine globale Unicast-Adresse basiert auf einem 64-Bit-Präfix, das der Administrator für jedes Teilnetz konfiguriert, sowie einer 64-Bit-Schnittstellen-ID. Das Präfix kann auch durch Ausführen des Befehls ifconfig mit der Option -a6 auf jedem System im gleichen Teilnetz bezogen werden, das zur Verwendung von IPv6 konfiguriert wurde.

Die 64-Bit-Schnittstellen-ID wird in der Regel von der MAC-Adresse des Systems abgeleitet. Für die Verwendung in Zonen kann, wie im Folgenden beschrieben, eine alternative, einmalige Adresse von der IPv4-Adresse der globalen Zone abgeleitet werden:

16 Bits Null:obere 16 Bits der IPv4-Adresse:untere 16 Bits der IPv4-Adresse:eine in der Zone einmalige Zahl

Angenommen, die IPv4-Adresse der globalen Zone lautet 168.200.10, so wäre eine geeignete Link-local-Adresse für eine nicht-globale Zone unter Verwendung einer in der Zone einmaligen Zahl 1 fe80::c0a8:c80a:1/10. Wenn das im Teilnetz verwendete globale Präfix 2001:0db8:aabb:ccdd/64 lautet, wäre eine einmalige globale Unicast-Adresse für die gleiche nicht-globale Zone 2001:0db8:aabb:ccdd::c0a8:c80a:1/64. Beachten Sie, dass Sie beim Konfigurieren einer IPv6-Adresse eine Präfixlänge angeben müssen.

Weitere Informationen zu Link-local- und globalen Unicast-Adressen finden Sie in der Manpage inet6(7P).

Netzwerkadresse in einer Exclusive IP-Zone

Innerhalb einer Exclusive IP-Zone können Sie Adressen auf die gleiche Weise wie für die globale Zone konfigurieren. Beachten Sie, dass die automatische statusfreie DHCP- und IPv6-Adresskonfiguration zum Konfigurieren von Adressen verwendet werden kann.

Weitere Informationen finden Sie in sysidcfg(4).

Dateisystemkonfiguration

Sie können mehrere Mounts angeben, die beim Einrichten der virtuellen Plattform ausgeführt werden. Dateisysteme, die als Loopback-Mount in einer Zone eingehängt sein (mit dem Loopback Virtual File System, LOFS), sollten mit der Option nodevices eingehängt werden. Weitere Informationen zur Option nodevices finden Sie unter Dateisysteme und nicht-globale Zonen.

Mit LOFS können Sie ein neues virtuelles Dateisystem erstellen, so dass Sie über einen alternativen Pfadnamen auf Dateien zugreifen können. In einer nicht-globalen Zone lässt ein Loopback-Mount die Dateisystemhierarchie so erscheinen, als wäre sie unter dem Zonen-Root dupliziert worden. In der Zone kann über einen Pfadnamen, der vom Zonen-Root aus startet, auf alle Dateien zugegriffen werden. Das LOFS-Mounting erhält den Namespace des Dateisystems.

Abbildung 18–1 Als Loopback-Mount eingehängte Dateisysteme

Abbildung zeigt als Loopback-Mount eingehängte Dateisysteme.

Weitere Informationen finden Sie in der Manpage lofs(7S).

Erstellen, Überarbeiten und Löschen von Konfigurationen einer nicht-globalen Zone (Übersicht der Schritte)

Aufgabe 

Beschreibung 

Siehe 

Konfigurieren einer nicht-globalen Zone. 

Erstellen einer Zone mit dem Befehl zonecfg, Überprüfen und Übernehmen der Konfiguration.

Sie können auch ein Skript verwenden, um mehrere Zonen auf einem System zu konfigurieren und booten. Mit dem Befehl zonecfg können Sie die Konfiguration einer nicht-globalen Zone anzeigen.

Konfigurieren, Prüfen und Übernehmen einer Zone, Skript zur Konfiguration mehrerer Zonen

Bearbeiten der Zonenkonfiguration. 

Mit dem folgenden Verfahren bearbeiten Sie einen Ressourcentyp in einer Zonenkonfiguration oder fügen einer Zone ein spezielles Gerät hinzu. 

Verwenden des Befehls zonecfg zum Bearbeiten einer Zonenkonfiguration

Zurückzusetzen einer Zonenkonfiguration oder Löschen einer Zonenkonfiguration. 

Zurücksetzen einer Ressourceneinstellung in einer Zonenkonfiguration oder Löschen einer Zonenkonfiguration mit dem Befehl zonecfg.

Verwenden des Befehls zonecfg zum Zurücksetzen oder Löschen einer Zonenkonfiguration

Löschen einer Zonenkonfiguration. 

Löschen einer Zonenkonfiguration vom System mit dem Befehl zonecfg und dem Unterbefehl delete.

So löschen Sie eine Zonenkonfiguration

Konfigurieren, Prüfen und Übernehmen einer Zone

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

Weiterhin können mit dem Befehl zonecfg die Einstellungen der Ressourcenverwaltung für die globale Zone persistent angegeben 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 Zonen.

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

ProcedureSo konfigurieren Sie die Zone

Bitte beachten Sie, dass zum Erstellen einer nativen nicht-globalen Zone nur die Eigenschaften zonename und zonepath erforderlich sind. Andere Ressourcen und Eigenschaften sind optional. Bei einigen optionalen Ressourcen sind auch verschiedene Alternativen möglich. So kann beispielsweise die Ressource dedicated-cpu oder die Ressource capped-cpu verwendet werden. Informationen zu verfügbaren Eigenschaften und Ressourcen des Befehls zonecfg finden Sie unter Konfigurationsdaten in einer Zone .

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.

    In diesem Beispielverfahren wird der Name my-zone verwendet.


    global# zonecfg -z my-zone
    

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


    my-zone: No such zone configured
    Use 'create' to begin configuring a new zone.
  3. Erstellen Sie die neue Zonenkonfiguration

    Bei diesem Verfahren werden die Standardeinstellungen verwendet.


    zonecfg:my-zone> create
    
  4. Legen Sie den Zonenpfad fest. Verwenden Sie in diesem Beispiel /export/home/my-zone.


    zonecfg:my-zone> set zonepath=/export/home/my-zone
    

    Platzieren Sie bei Releases vor Solaris&;10&;10/08 den zonepath nicht auf einem ZFS.

  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:my-zone> set autoboot=true
    
  6. Legen Sie die persistenten Boot-Argumente einer Zone fest.


    zonecfg:my-zone> set bootargs="-m verbose"
    
  7. Weisen Sie dieser Zone eine CPU zu.


    zonecfg:my-zone> add dedicated-cpu
    
    1. Legen Sie die Anzahl der CPUs fest.


      zonecfg:my-zone:dedicated-cpu> set ncpus=1-2
      
    2. (Optional) Legen Sie die Wichtigkeit fest.


      zonecfg:my-zone:dedicated-cpu> set importance=10
      

      Die Standardeinstellung ist 1.

    3. Beenden Sie die Spezifikation.


      zonecfg:my-zone:dedicated-cpu> end
      
  8. Überarbeiten Sie das Standard-Berechtigungsset.


    zonecfg:my-zone> set limitpriv="default,sys_time"
    

    Mit dieser Zeile wird die Fähigkeit hinzugefügt, die Systemuhr auf das Standard-Berechtigungsset zu setzen.

  9. Setzen Sie die Scheduling-Klasse auf FSS.


    zonecfg:my-zone> set scheduling-class=FSS
    
  10. Fügen Sie eine Memory Cap hinzu.


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


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


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


      zonecfg:my-zone:capped-memory> set locked=30m
      
    4. Beenden Sie die Spezifikation der Memory Cap.


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


    zonecfg:my-zone> add fs
    
    1. Legen Sie den Einhängepunkt das Dateisystem fest. Verwenden Sie in diesem Beispiel /usr/local.


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


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

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

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


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

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

    4. Beenden Sie die Dateisystemspezifikation.


      zonecfg:my-zone:fs> end
      

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

  12. (Optional) Legen Sie die hostid fest.


    zonecfg:my-zone> set hostid=80f0c086
    
  13. Fügen Sie ein ZFS-Dataset namens sales in den Speicherpool tank ein.


    zonecfg:my-zone> add dataset
    
    1. Gegeben Sie den Pfad zum ZFS-Dataset sales an.


      zonecfg:my-zone> set name=tank/sales
      
    2. Beenden Sie die dataset-Spezifikation.


      zonecfg:my-zone> end
      
  14. (Nur Sparse Root Zone) Fügen Sie ein gemeinsam genutztes Dateisystem hinzu, das von der globalen Zone aus als Loopback-Mount eingehängt wird.

    Führen Sie diesen Schritt nicht aus, um eine Whole Root Zone zu erstellen, die nicht über gemeinsam genutzte Dateisysteme verfügt. Weitere Informationen finden Sie im Abschnitt über Whole Root Zones unter Erforderlicher Festplattenspeicher.


    zonecfg:my-zone> add inherit-pkg-dir
    
    1. Legen Sie fest, dass /opt/sfw in der globalen Zone im schreibgeschützten Modus in die konfigurierte Zone eingehängt wird.


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

      Hinweis –

      Die Paketdatenbank der Zone wird aktualisiert, um die Pakete widerzuspiegeln. Nachdem die Zone mit zoneadm installiert wurde, können diese Ressourcen nicht mehr geändert oder entfernt werden.


    2. Beenden Sie die inherit-pkg-dir-Spezifikation.


      zonecfg:my-zone:inherit-pkg-dir> end
      

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


    Hinweis –

    Wenn Sie eine Whole Root Zone erstellen möchten, die standardmäßigen Ressourcen gemeinsam genutzter Dateisysteme aber mit inherit-pkg-dir hinzugefügt wurden, müssen Sie diese standardmäßigen inherit-pkg-dir-Ressourcen mit zonecfg entfernen, bevor Sie die Zone installieren:

    • 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. (Optional) Wenn Sie eine Exclusive IP-Zone erstellen, setzen Sie den ip-type.


    zonecfg:my-zone> set ip-type=exclusive
    

    Hinweis –

    Im Schritt add net wird nur der Typ des reellen Geräts festgelegt.


  16. Führen Sie eine Netzwerkschnittstelle hinzu.


    zonecfg:my-zone> add net
    
    1. (Nur Shared IP ) Stellen Sie die IP-Adresse für die Netzwerkschnittstelle ein. Verwenden Sie in diesem Beispiel 192.168.0.1.


      zonecfg:my-zone:net> set address=192.168.0.1
      
    2. Legen Sie den Typ des reellen Geräts für die Netzwerkschnittstelle fest. Verwenden Sie in diesem Beispiel das Gerät hme.


      zonecfg:my-zone:net> set physical=hme0
      
    3. Solaris 10 10/08: (optional, nur Shared-IP) Legen Sie den Standard-Router für die Netzwerkschnittstelle, 10.0.0.1 in diesem Vorgang, fest.


      zonecfg:my-zone:net> set defrouter=10.0.0.1
      
    4. Beenden Sie die Spezifikation.


      zonecfg:my-zone:net> end
      

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

  17. Fügen Sie ein Gerät hinzu.


    zonecfg:my-zone> add device
    
    1. Legen Sie die Geräteentsprechung fest. Verwenden Sie in diesem Beispiel /dev/sound/*.


      zonecfg:my-zone:device> set match=/dev/sound/*
      
    2. Beenden Sie die Gerätespezifikation.


      zonecfg:my-zone:device> end
      

    Dieser Schritt kann wiederholt ausgeführt werden, wenn mehrere Geräte hinzuzufügen sind.

  18. Fügen Sie eine zonenweite Resource Control hinzu. Verwenden Sie dazu den Eigenschaftennamen.


    zonecfg:my-zone> set max-sem-ids=10485200
    

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

  19. Fügen Sie mithilfe des Ressourcentyps attr einen Kommentar hinzu.


    zonecfg:my-zone> add attr
    
    1. Setzen Sie den Namen auf comment.


      zonecfg:my-zone:attr> set name=comment
      
    2. Setzen Sie den Typ auf string.


      zonecfg:my-zone:attr> set type=string
      
    3. Setzen Sie den Wert auf einen Kommentar, der die Zone beschreibt.


      zonecfg:my-zone:attr> set value="This is my work zone."
      
    4. Beenden Sie die Spezifikation des attr-Ressourcentyps.


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


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


    zonecfg:my-zone> commit
    
  22. Beenden Sie den Befehl zonecfg.


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

Die nächsten Schritte

Informationen zur Installation der übernommenen Zonenkonfiguration finden Sie unter Installieren und Booten von Zonen.

Skript zur Konfiguration mehrerer Zonen

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" ]]; 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

ProcedureSo zeigen Sie die Konfiguration einer nicht-globalen 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
    

Verwenden des Befehls zonecfg zum Bearbeiten einer Zonenkonfiguration

Mit dem Befehl zonecfg können Sie:

ProcedureSo modifizieren Sie einen Ressourcentyp in einer Zonenkonfiguration

Sie können einen Ressourcentyp auswählen und die Spezifikation dieser Ressource ändern.

Beachten Sie, dass die Inhalte der Softwarepakete im Verzeichnis inherit-pkg-dir nicht mehr geändert oder entfernt werden können, nachdem die Zone mit dem Befehl zoneadm installiert wurde.

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. Wählen Sie die zu ändernde Zone aus. Verwenden Sie in diesem Beispiel my-zone.


    global# zonecfg -z my-zone
    
  3. Wählen Sie den zu ändernden Ressourcentyp aus, z. B. eine Resource Control.


    zonecfg:my-zone> select rctl name=zone.cpu-shares
    
  4. Löschen Sie den aktuellen Wert.


    zonecfg:my-zone:rctl> remove value (priv=privileged,limit=20,action=none)
    
  5. Fügen Sie den neuen Wert hinzu.


    zonecfg:my-zone:rctl> add value (priv=privileged,limit=10,action=none)
    
  6. Beenden Sie die rctl-Spezifikation.


    zonecfg:my-zone:rctl> end
    
  7. Übernehmen Sie die Zonenkonfiguration für die Zone.


    zonecfg:my-zone> commit
    
  8. Beenden Sie den Befehl zonecfg.


    zonecfg:my-zone> exit
    

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

    Änderungen, die über zonecfg vorgenommen wurden, werden beim nächsten Starten der Zone übernommen.

ProcedureSolaris 10 8/07: Zurücksetzen eines Eigenschaftstyps in einer Zonenkonfiguration

Mit dem folgenden Verfahren wird eine eigenständige Eigenschaft zurückgesetzt.

  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. Wählen Sie die zu ändernde Zone aus. Verwenden Sie in diesem Beispiel my-zone.


    global# zonecfg -z my-zone
    
  3. Löschen Sie die zu ändernde Eigenschaft. Verwenden Sie in diesem Beispiel die vorhandenen Pool-Zuordnungen.


    zonecfg:my-zone> clear pool
    
  4. Übernehmen Sie die Zonenkonfiguration für die Zone.


    zonecfg:my-zone> commit
    
  5. Beenden Sie den Befehl zonecfg.


    zonecfg:my-zone> exit
    

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

    Änderungen, die über zonecfg vorgenommen wurden, werden beim nächsten Starten der Zone übernommen.

ProcedureSolaris 10 3/05 bis Solaris 10 11/06: So ändern Sie den Eigenschaftentyp in einer Zonenkonfiguration

Mit dem folgenden Verfahren können Sie eine eigenständige Eigenschaft zurücksetzen, die keine zu konfigurierenden zugehörigen Eigenschaften aufweist. Um beispielsweise die vorhandene Pool-Zuordnung zu entfernen, können Sie die Ressource pool auf null zurücksetzen.

  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. Wählen Sie die zu ändernde Zone aus. Verwenden Sie in diesem Beispiel my-zone.


    global# zonecfg -z my-zone
    
  3. Setzen Sie die zu ändernde Eigenschaft zurück. Verwenden Sie in diesem Beispiel die vorhandenen Pool-Zuordnungen.


    zonecfg:my-zone> set pool=""
    
  4. Übernehmen Sie die Zonenkonfiguration für die Zone.


    zonecfg:my-zone> commit
    
  5. Beenden Sie den Befehl zonecfg.


    zonecfg:my-zone> exit
    

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

    Änderungen, die über zonecfg vorgenommen wurden, werden beim nächsten Starten der Zone übernommen.

ProcedureSolaris 10 8/07: So benennen Sie eine Zone um

Mit diesem Verfahren können Zonen umbenannt werden, deren Status „configured“ oder „installed“ lautet.

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. Wählen Sie die umzubenennende Zone aus. Verwenden Sie in diesem Beispiel my-zone.


    global# zonecfg -z my-zone
    
  3. Ändern Sie den Namen der Zone, z. B. zu newzone.


    zonecfg:my-zone> set zonename=newzone
    
  4. Übernehmen Sie die Änderung.


    zonecfg:newzone> commit
    
  5. Beenden Sie den Befehl zonecfg.


    zonecfg:newzone> exit
    

    Änderungen, die über zonecfg vorgenommen wurden, werden beim nächsten Starten der Zone übernommen.

ProcedureSo fügen Sie einer Zone ein spezielles Gerät hinzu

Mit der folgenden Spezifikation wird ein Scanner in die Konfiguration einer nicht-globalen Zone eingefügt.

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. Fügen Sie ein Gerät hinzu.


    zonecfg:my-zone> add device
    
  3. Legen Sie die Geräteentsprechung fest. Verwenden Sie in diesem Beispiel /dev/scsi/scanner/c3t4*.


    zonecfg:my-zone:device> set match=/dev/scsi/scanner/c3t4*
    
  4. Beenden Sie die Gerätespezifikation.


    zonecfg:my-zone:device> end
    
  5. Beenden Sie den Befehl zonecfg.


    zonecfg:my-zone> exit
    

ProcedureSo stellen Sie zone.cpu-shares in der globalen Zone ein

Mit diesem Verfahren werden Shares persistent in der globalen Zone eingestellt.

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. Rufen Sie den zonecfg-Befehl auf.


    # zonecfg -z global
    
  3. Stellen Sie fünf Shares für die globale Zone ein.


    zonecfg:global> set cpu-shares=5
    
  4. Beenden Sie zonecfg.


    zonecfg:global> exit
    

Verwenden des Befehls zonecfg zum Zurücksetzen oder Löschen einer Zonenkonfiguration

Mit dem in der Manpage zonecfg(1M) beschriebenen Befehl zonecfg setzen Sie die Konfiguration einer Zone zurück oder löschen eine Zonenkonfiguration.

ProcedureSo setzen Sie eine Zonenkonfiguration zurück

Während eine Zone mit dem Dienstprogramm zonecfg konfiguriert wird, verwenden Sie den Unterbefehl revert, um eine Ressourceneinstellung in der Zonenkonfiguration rückgängig zu machen.

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. Geben Sie bei der Konfiguration einer Zone namens tmp-zone den Befehl info ein, um die Konfiguration anzuzeigen:


    zonecfg:tmp-zone> info
    

    Das Ressourcensegment net der Konfiguration wird angezeigt:


    .
    .
    .
    fs:
            dir: /tmp
            special: swap
            type: tmpfs
    net:
            address: 192.168.0.1
            physical: eri0
    device
            match: /dev/pts/*
    .
    .
    .
  3. Löschen Sie die Netzadresse:


    zonecfg:tmp-zone> remove net address=192.168.0.1
    
  4. Überprüfen Sie, ob der Eintrag net entfernt wurde.


    zonecfg:tmp-zone> info
    

    .
    .
    .
    fs:
            dir: /tmp
            special: swap
            type: tmpfs
    device
            match: /dev/pts/*
    .
    .
    .
  5. Geben Sie revert ein.


    zonecfg:tmp-zone> revert
    
  6. Beantworten Sie die folgende Frage mit „Ja“ (y):


    Are you sure you want to revert (y/[n])? y
    
  7. Überprüfen Sie, ob wieder eine Netzadresse vorhanden ist:


    zonecfg:tmp-zone> info
    

    .
    .
    .
    fs:
            dir: /tmp
            special: swap
            type: tmpfs
    net:
            address: 192.168.0.1
            physical: eri0
    device
            match: /dev/pts/*
    .
    .
    .

ProcedureSo löschen Sie eine Zonenkonfiguration

Geben Sie den Befehl zonecfg mit dem Unterbefehl delete ein, um eine Zonenkonfiguration vom System zu löschen.

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. Löschen Sie die Zonenkonfiguration der Zone a-zone mithilfe eines der folgenden Verfahren:

    • Geben Sie die Option -F ein, um die Aktion zu erzwingen:


      global# zonecfg -z a-zone delete -F
      
    • Löschen Sie die Zone interaktiv durch Beantworten der folgenden Systemaufforderung mit „Ja“ (y):


      global# zonecfg -z a-zone delete
      Are you sure you want to delete zone a-zone (y/[n])? y