Systemverwaltungshandbuch: Oracle Solaris Container - Ressourcenverwaltung und Solaris Zones

Konfigurationsdaten in einer Zone

Daten einer Zonenkonfiguration setzen sich aus zwei Arten von Einheiten zusammen: Ressourcen und Eigenschaften. Jede Ressource weist einen Typ auf, und jede Ressource verfügt über ein Set mit mindestens einer Eigenschaft. Die Eigenschaften haben Namen und Werte. Die Eigenschaftensets hängen vom Ressourcentyp ab.

Ressourcen- und Eigenschaftentypen

Ressourcen- und Eigenschaftentypen lassen sich wie folgt beschreiben:

Zonenname

Der Zonenname identifiziert die Zone gegenüber dem Konfigurationsdienstprogramm. Für Zonennamen gelten die folgenden Regeln:

  • Jede Zone muss über einen eindeutigen Namen verfügen.

  • Der Zonenname ist abhängig von der Groß-/Kleinschreibung.

  • Der Zonenname muss mit einem alphanumerischen Zeichen beginnen.

    Der Name kann alphanumerische Zeichen, Unterstriche (_), Bindestriche (-) und Punkte (.) enthalten .

  • Der Name darf nicht mehr als 64 Zeichen umfassen.

  • Der Name global und alle Namen, die mit SUNW beginnen, sind reserviert und können nicht verwendet werden.

zonepath

Die Eigenschaft zonepath ist der Pfad zum Stammverzeichnis (Root) der Zone. Jede Zone verfügt über ein root-Verzeichnis, das sich im Dateisystem der globalen Zone unter dem entsprechenden zonepath befindet. Während der Installation der Zone wird die zonepath-Verzeichnishierarchie mit dem entsprechenden Eigentümer und Modus erstellt. Der Eigentümer des zonepath-Verzeichnisses muss root mit dem Modus 700 sein.

Der Root-Verzeichnispfad der nicht-globalen Zone befindet sich eine Ebene niedriger. Das Root-Verzeichnis der Zone weist den gleichen Eigentümer und Berechtigungen wie das Root-Verzeichnis (/) der globalen Zone auf. Der Eigentümer des Zonen-Verzeichnisses muss root mit dem Modus 755 sein. Diese Verzeichnisse werden automatisch mit den richtigen Berechtigungen erstellt. Es ist keine Überprüfung durch den Zonenadministrator erforderlich. Diese Hierarchie stellt sicher, dass das Dateisystem einer nicht-globalen Zone nicht von nicht-berechtigten Benutzern in der globalen Zone durchlaufen werden kann.

Pfad 

Beschreibung 

/home/export/my-zone

zonecfg zonepath

/home/export/my-zone/root

Root der Zone 

/home/export/my-zone/dev

Für die Zone erstellte Geräte 

Weitere Informationen zu diesem Thema finden Sie unter Durchlaufen von Dateisystemen.


Hinweis –

Informationen zu den ZFS-Einschränkungen für dieses Release finden Sie unter Solaris 10 6/06, Solaris 10 11/06, Solaris 10 8/07 und Solaris 10 5/08: Das Root-Dateisystem einer nicht-globalen Zone nicht auf einem ZFS ablegen.


autoboot

Wenn diese Eigenschaft auf „true“ gesetzt ist, wird die Zone bei einem Neustart der globalen Zone automatisch gebootet. Beachten Sie, dass wenn der Zonenservice svc:/system/zones:default deaktiviert ist, in die Zone ungeachtet der Einstellung für diese Eigenschaft nicht automatisch gebootet wird. Sie können den Zonenservice mit dem in der Manpage svcadm(1M) beschriebenen Befehl svcadm aktivieren:


global# svcadm enable zones
bootargs

Solaris 10 8/07: Mit dieser Eigenschaft wird ein Boot-Argument für die Zone eingerichtet. Das Boot-Argument wird angewendet, sofern es nicht durch die Befehle reboot, zoneadm boot oder zoneadm reboot außer Kraft gesetzt wird. Lesen Sie dazu Solaris 10 8/07: Boot-Argumente in einer Zone.

pool

Mit dieser Eigenschaft wird die Zone einem Ressourcenpool auf dem System zugewiesen. Mehrere Zonen können die Ressourcen eines Pools nutzen. Lesen Sie dazu auch Solaris 10 8/07: dedicated-cpu-Ressource.

limitpriv

Solaris 10 11/06 und höher: Diese Eigenschaft dient zur Angabe einer anderen Berechtigungsmaske als der Standardmaske. Lesen Sie dazu Berechtigungen in einer nicht-globalen Zone.

Berechtigungen werden hinzugefügt, indem Sie den Berechtigungsnamen mit oder ohne einem einleitenden priv_ angeben. Berechtigungen werden ausgeschlossen, indem Sie einen Bindestrich (-) oder ein Ausrufezeichen (!) vor dem Namen eingeben. Die Werte der Berechtigung werden durch Kommata voneinander getrennt und stehen zwischen Anführungszeichen ().

Die speziellen Berechtigungssets none, allund basic erweitern die normalen Definitionen. Genauere Informationen hierzu finden Sie unter priv_str_to_set(3C) Da die Zonenkonfiguration in der globalen Zone stattfindet kann das spezielle Berechtigungsset zone nicht verwendet werden. Das standardmäßige Berechtigungsset wird häufig durch Hinzufügen oder Entfernen von Berechtigungen geändert. Mit dem Spezialset defaultkönnen Sie die standardmäßigen Berechtigungen wieder herstellen. Wenn default am Anfang der Eigenschaft limitpriv steht, wird sie zum Standardset erweitert.

Der folgende Eintrag fügt die Fähigkeit hinzu, DTrace-Programme zu verwenden, die nur die Berechtigungen dtrace_proc und dtrace_user in der Zone benötigen:


global# zonecfg -z userzone
zonecfg:userzone> set limitpriv="default,dtrace_proc,dtrace_user"

Enthält das Berechtigungsset einer Zone eine nicht zulässige Berichtigung, fehlt eine erforderliche Berechtigung oder umfasst es eine unbekannte Berechtigung, schlägt der Versuch, die Zone zu überprüfen, fertig zu stellen oder zu booten fehl und es wird eine Fehlermeldung angezeigt.

scheduling-class

Solaris 10 8/07: Diese Eigenschaft legt die Scheduling-Klasse der Zone fest. Weitere Informationen und Tipps finden Sie unter Scheduling-Klasse in einer Zone.

ip-type

Solaris 10 8/07: Diese Eigenschaft muss nur dann eingerichtet werden, wenn es sich bei der Zone um eine Exclusive IP-Zone handelt. Lesen Sie dazu Solaris 10 8/07: Nicht-globale Exclusive IP-Zonen und So konfigurieren Sie die Zone.

dedicated-cpu

Solaris 10 8/07: Diese Ressource reserviert während der Ausführung einen bestimmten Bereich der Systemprozessoren für die Zone. Die Ressource dedicated-cpu stellt Grenzwerte für ncpus und optional für importance bereit. Weitere Informationen finden Sie unter Solaris 10 8/07: dedicated-cpu-Ressource.

capped-cpu resource

Solaris 10 5/08: Diese Ressource gibt einen Grenzwert für die CPU-Ressourcen an, die von einer Zone, während sie läuft, beansprucht werden können. Die Ressource gibt einen Grenzwert für ncpus an.

capped-memoryRessource

Solaris 10 8/07: Diese Ressource gruppiert die verwendeten Eigenschaften, wenn das Memory Capping für die Zone eingesetzt wird. Die Ressource capped-memory bietet Grenzwerte für den reellen (physical), ausgelagerten (swap) und gesperrten (locked) Speicher. Mindestens eine dieser Eigenschaften muss angegeben werden.

dataset

Solaris 10 6/06: Das Hinzufügen einer ZFS-Dateisystemressource ermöglicht das Delegieren der Speicherverwaltung an eine nicht-globale Zone. Der Zonenadministrator kann Dateisysteme innerhalb dieses Datasets erstellen und löschen, Klone erstellen und löschen und die Eigenschaften des Datasets bearbeiten. Der Zonenadministrator kann keine Datasets beeinflussen, die der Zone nicht zugewiesen wurden oder mögliche Top Level-Kontingente überschreiten, die für das Dataset eingerichtet wurden, das der Zone zugewiesen ist.

ZFS-Datasets können einer Zone auf verschiedene Arten hinzugefügt werden.

  • Als ein LOFS-mounted Dateisystem, wenn das Ziel nur das gemeinsame Nutzen von Speicherplatz mit der globalen Zone ist

  • Als ein delegiertes Dataset

Lesen Sie dazu Kapitel 10, Fortgeschrittene Oracle Solaris ZFS-Themen in Oracle Solaris ZFS-Administrationshandbuch und Dateisysteme und nicht-globale Zonen.

Weitere Informationen zu Datasets finden Sie auch in Kapitel 30Behebung von verschiedenen Problemen mit Solaris Zones.

fs

Jede Zone kann über verschiedene Dateisysteme verfügen, die eingehängt werden, wenn die Zone vom Status „installed“ in den Status „ready“ übergeht. Die Dateisystemressource gibt den Pfad zum Einhängepunkt des Dateisystems an. Weitere Informationen zur Verwendung von Dateisystemen in Zonen finden Sie unter Dateisysteme und nicht-globale Zonen.

inherit-pkg-dir

Diese Ressource darf nicht in der Whole Root Zone konfiguriert werden.

In einer Sparse Root Zone dient die Ressource inherit-pkg-dir zum Darstellen der Verzeichnisse, die Softwarepakete enthalten, die eine nicht-globale Zone gemeinsam mit der globalen Zone nutzt.

Die Inhalte der Softwarepakete, die in das Verzeichnis inherit-pkg-dir übertragen wurden, werden von der nicht-globalen Zone im schreibgeschützten Modus übernommen. 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.


Hinweis –

In der Konfiguration sind vier inherit-pkg-dir-Standardressourcen enthalten. Diese Verzeichnisressourcen kennzeichnen, welche Verzeichnisse ihre zugehörigen Pakete von der globalen Zone übernehmen sollen. Die Ressourcen werden über ein schreibgeschütztes Dateisystem implementiert, auf das als Loopback-Mount zugegriffen wird.

  • /lib

  • /platform

  • /sbin

  • /usr


net

Die Netzwerkschnittstellenressource ist der Schnittstellenname. Jede Zone kann über verschiedene Netzwerkschnittstellen verfügen, die eingerichtet werden, wenn die Zone vom Status „installed“ in den Status „ready“ übergeht.

device

Die Geräteressource ist der Bezeichner für die Geräteentsprechung. Jede Zone kann über Geräte verfügen, die konfiguriert werden, wenn die Zone vom Status „installed“ in den Status „ready“ übergeht.

rctl

Die Ressource rctl wird für zonenweite Resource Controls verwendet. Die Resource Controls werden aktiviert, wenn die Zone vom Status „installed“ in den Status „ready“ übergeht.

hostid

Es kann eine hostid festgelegt werden, die sich von der hostid der globalen Zone unterscheidet.

attr

Dieses generische Attribut kann für Benutzerkommentare oder von anderen Untersystemen verwendet werden. Die Eigenschaft Name eines attr muss mit einem alphanumerischen Zeichen beginnen. Die Eigenschaft name kann alphanumerische Zeichen, Bindestriche (-) und Punkte (.) enthalten. Attributnamen, die mit zone beginnen, sind für die Verwendung durch das System reserviert.

Ressourcentypeigenschaften

Auch Ressourcen besitzen Eigenschaften, die konfiguriert werden können. Die folgenden Eigenschaften sind den aufgeführten Ressourcentypen zugeordnet.

dedicated-cpu

ncpus, importance

Solaris 10 8/07: Geben Sie die Anzahl der CPUs und optional die relative Wichtigkeit des Pools an. Das folgende Beispiel gibt einen CPU-Bereich an, der von der Zone my-zone verwendet werden kann. importance wird ebenfalls gesetzt.


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

Legt die Anzahl der CPUs fest. Das folgende Beispiel gibt einen CPU-Ressourcengrenzwert von 3,5 CPUs an, die von der Zone my-zone verwendet werden können.


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

Legen Sie die Speichergrenzen für die Zone my-zone fest. Jeder Grenzwert ist optional, es muss aber mindestens ein Grenzwert eingerichtet sein.


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

Die Ressourcenparameter fs liefern die Werte, mit denen festgelegt wird, wie und wann Dateisysteme eingehängt werden. Die Parameter fs sind wie folgt definiert:

dir

Gibt den Einhängepunkt für das Dateisystem an

special

Gibt den Block-spezifischen Gerätenamen oder das Verzeichnis an, aus dem von der globalen Zone aus eingehängt wird

raw

Gibt das Raw-Gerät an, auf dem fsck ausgeführt wird, bevor das Dateisystem eingehängt wird

type

Gibt den Dateisystemtyp an

options

Gibt Einhängeoptionen ähnlich denen an, die für den Befehl mount gelten

Die Zeilen im folgenden Beispiel geben an, dass /dev/dsk/c0t0d0s2 in der globalen Zone als /mnt in der zu konfigurierenden Zone eingehängt wird. Die Eigenschaft raw gibt ein optionales Gerät an, auf dem der Befehl fsck ausgeführt wird, bevor versucht wird, das Dateisystem einzuhängen. Der zu verwendende Dateisystemtyp ist UFS. Die Optionen nodevices und logging wurden hinzugefügt.


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

Weitere Informationen finden Sie unter Die Option -o nosuid, Sicherheitseinschränkungen und Dateisystemverhalten und in den Manpages fsck(1M) und mount(1M). Beachten Sie, dass 1M Manpages für Einhängeoptionen zur Verfügung stehen, die nur für ein bestimmtes Dateisystem gelten. Die Namen dieser Manpages weisen das Format mount_Dateisystem auf.


Hinweis –

Zum Hinzufügen eines ZFS-Dateisystems verwenden Sie die Ressourceneigenschaft fs. Lesen Sie dazu Hinzufügen von ZFS-Dateisystemen zu einer nicht-globalen Zone in Oracle Solaris ZFS-Administrationshandbuch.


dataset

name

Die Zeilen im folgenden Beispiel geben an, dass das Dataset sales in der nicht-globalen Zone eingehängt und dort sichtbar ist. In der globalen Zone ist das Dataset nicht mehr sichtbar.


zonecfg:my-zone> add dataset
zonecfg:my-zone> set name=tank/sales
zonecfg:my-zone> end
inherit-pkg-dir

dir

Die Zeilen im folgenden Beispiel geben an, dass /opt/sfw als Loopback-Mount von der globalen Zone aus eingehängt wird.


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,


Hinweis –

Bei einer Shared IP-Zone werden sowohl IP-Adresse als auch Gerät angegeben. Optional kann der Standard-Router festgelegt werden.

  • Mit der Eigenschaft defrouter können Sie eine Standardroute einstellen, wenn sich die nicht-globale Zone in einem Teilnetz befindet, das nicht in der globalen Zone konfiguriert ist.

  • Jede Zone, für die die Eigenschaft defrouter eingestellt ist, muss sich in einem Teilnetz befinden, das nicht in der globalen Zone konfiguriert ist.

Wenn sich Shared-IP-Zonen in verschiedenen Teilnetzen befinden, konfigurieren Sie kein Data-Link in der globalen Zone.

Bei einer Exclusive IP-Zone wird nur die physische Schnittstelle angegeben. Die physische Eigenschaft kann eine VNIC sein.


Im folgenden Beispiel für eine Shared IP-Zone wird die IP-Adresse 192.168.0.1 zur Zone hinzugefügt. Die Karte hme0 wird als physikalische Schnittstelle verwendet. Um zu ermitteln, welche physikalische Schnittstelle verwendet werden muss, geben Sie ifconfig -a auf dem System ein. Jede Zeile der Ausgabe (mit Ausnahme der Loopback-Treiberzeilen) beginnt mit dem Namen der im System installierten Karte. Zeilen, die LOOPBACK in den Beschreibungen enthalten, gelten nicht für Karten.


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

Im folgenden Beispiel für eine Exclusive IP-Zone wird die Verbindung bge32001 als physikalische Schnittstelle verwendet. Geben Sie den Befehl dladm show-link ein, um festzustellen, welche Data-Links verfügbar sind. Die Data-Link muss GLDv3 sein, damit sie mit Exclusive IP-Zonen verwendet werden kann. Nicht-GLDv3-Data-Links werden als type: legacy in der dladm show-link-Ausgabe angezeigt. Beachten Sie, dass ip-type=exclusive ebenfalls angegeben sein muss.


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

Im folgenden Beispiel wird ein /dev/pts-Gerät in eine Zone aufgenommen.


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: Die neuen Resource Controls für dieses Release sind zone.max-locked-memory , zone.max-msg-ids, zone.max-sem-ids, zone.max-shm-ids, zone.max-shm-memory und zone.max-swap.

Die folgenden zonenweiten Resource Controls sind verfügbar:

  • zone.cpu-shares (preferred: cpu-shares )

  • zone.max-locked-memory

  • zone.max-lwps (bevorzugt: max-lwps)

  • zone.max-msg-ids (bevorzugt: max-msg-ids)

  • zone.max-sem-ids (bevorzugt: max-sem-ids)

  • zone.max-shm-ids (bevorzugt: max-shm-ids)

  • zone.max-shm-memory (bevorzugt: max-shm-memory)

  • zone.max-swap

Eine zonenweite Resource Control lässt sich einfacher einrichten, wenn Sie den Eigenschaftennamen anstelle der Ressource rctl verwenden. Dies wird unter So konfigurieren Sie die Zone gezeigt. Wenn die Einträge einer zonenweiten Resource Control mit add rctl konfiguriert werden, weicht das Format von den Resource Control-Einträgen in der project-Datenbank ab. In einer Zonenkonfiguration besteht der Ressourcentyp rctl aus drei Name/Wert-Paaren. Die Namen sind priv, limit und action. Jeder Name akzeptiert einen einfachen Wert.


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

Allgemeine Informationen zu Resource Controls und Attributen finden Sie in Kapitel 6Einführung in die Resource Controls und unter Resource Controls in nicht-globalen Zonen.

attr

name, type, value

Im folgenden Beispiel wird ein Kommentar über eine Zone hinzugefügt.


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

Sie können den Unterbefehl export verwenden, um eine Zonenkonfiguration über das standardmäßige Ausgabegerät zu drucken. Die Konfiguration wird in einem Format gespeichert, das in einer Befehlsdatei verwendet werden kann.