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 lassen sich wie folgt beschreiben:
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.
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.
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.
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 |
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
Es kann eine hostid festgelegt werden, die sich von der hostid der globalen Zone unterscheidet.
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.
Auch Ressourcen besitzen Eigenschaften, die konfiguriert werden können. Die folgenden Eigenschaften sind den aufgeführten Ressourcentypen zugeordnet.
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 |
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 |
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 |
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:
Gibt den Einhängepunkt für das Dateisystem an
Gibt den Block-spezifischen Gerätenamen oder das Verzeichnis an, aus dem von der globalen Zone aus eingehängt wird
Gibt das Raw-Gerät an, auf dem fsck ausgeführt wird, bevor das Dateisystem eingehängt wird
Gibt den Dateisystemtyp an
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.
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.
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 |
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 |
address, physical, defrouter,
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 |
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 |
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.
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.