Systemverwaltungshandbuch: Oracle Solaris Container - Ressourcenverwaltung und Solaris Zones

Komponenten einer Zone

In diesem Abschnitt werden die erforderlichen und optionalen Zonenkomponenten beschrieben, die in eine Konfiguration einbezogen werden können. Weitere Informationen finden Sie unter Konfigurationsdaten in einer Zone.

Zonenname und -pfad

Sie müssen einen Namen und einen Pfad für die Zone angeben.

Zone autoboot

Mit einer Einstellung für die Eigenschaft autoboot können Sie festlegen, ob eine Zone bei einem Neustart der globalen Zone automatisch gebootet wird. Der Zones-Service svc:/system/zones:default muss ebenfalls aktiviert werden.

Resource Pool-Zuordnung

Wenn, wie in Kapitel 13Erstellen und Verwalten von Resource Pools (Vorgehen) beschrieben, Resource Pools auf dem System konfiguriert sind, können Sie die Eigenschaft pool beim Konfigurieren der Zone verwenden, um die Zone zu einem der Resource Pools zuzuordnen.

Ab dem Solaris-Release 10 8/07 können Sie mit der Ressource dedicated-cpu angeben, dass ein Teil der Systemprozessoren für eine nicht-globale Zone zugewiesen wird. Dies gilt auch dann, wenn keine Ressourcen-Pools konfiguriert wurden. Während der Ausführung der Zone erstellt das System dynamisch einen temporären Pool. Durch die Angaben mithilfe von zonecfg werden die Pool-Einstellungen bei Migrationen übernommen.


Hinweis –

Eine Zonenkonfiguration, die ein persistentes, mit der Eigenschaft pool eingerichtetes Pool-Set verwendet, ist nicht mit einem temporären Pool kompatibel, der mit der Ressource dedicated-cpu eingerichtet wurde. Sie können nur eine dieser beiden Eigenschaften einrichten.


Solaris 10 8/07: dedicated-cpu-Ressource

Mit der Ressource dedicated-cpu legen Sie fest, dass ein Teil der Systemprozessoren ausschließlich einer nicht-globale Zone zugewiesen wird, solange diese ausgeführt wird. Beim Booten der Zone erstellt das System dynamisch einen temporären Pool, der solange verwendet wird, wie die Zone ausgeführt wird.

Durch die Angaben in zonecfg werden die Pool-Einstellungen bei Migrationen übernommen.

Die Ressource dedicated-cpu legt Grenzwerte für ncpus und optional für importance fest.

ncpus

Geben Sie die Anzahl der CPUs oder einen Bereich an, z. B. 2–4 CPUs. Wenn Sie einen Bereich angeben, um das Verhalten eines Dynamic Resource Pool umzusetzen, müssen Sie auch Folgendes ausführen:

importance

Wenn Sie einen CPU-Bereich verwenden, um ein dynamisches Verhalten zu implementieren, müssen Sie die Eigenschaft importance einrichten. Die Eigenschaft importance ist optional und definiert die relative Wichtigkeit des Pools. Diese Eigenschaft ist nur dann erforderlich, wenn Sie einen Bereich für ncpus angeben und Dynamic Resource Pools verwenden, die mit poold verwaltet werden. Wenn poold nicht ausgeführt wird, wird importance ignoriert. Wenn poold ausgeführt wird und importance nicht eingestellt ist, nimmt importance automatisch den Standardwert 1 an. Weitere Informationen finden Sie unter pool.importance-Eigenschafteneinschränkung.


Hinweis –

Die Ressourcen capped-cpu und dedicated-cpu sind nicht miteinander kompatibel. Die Resource Control cpu-shares und die Ressource dedicated-cpu sind nicht miteinander kompatibel.


Solaris 10 5/08: Ressource capped-cpu

Die Ressource capped-cpu gibt einen absoluten, fein abgestimmten Grenzwert für die CPU-Ressourcen an, die von einem Projekt bzw. einer Zone beansprucht werden können. In Verbindung mit Prozessor-Sets beschränken CPU-Ressourcengrenzwerte (CPU-Caps) die CPU-Beanspruchung innerhalb eines Sets. Die Ressource capped-cpu besitzt eine Eigenschaft (ncpus). Diese ist eine positive Dezimalzahl mit Stellen rechts vom Dezimalpunkt. Diese Eigenschaft entspricht CPU-Einheiten. Sie können für diese Eigenschaft keinen Bereich und keine Dezimalzahl größer als 1 angeben. Wenn Sie für ncpus den Wert 1 eingeben, bedeutet dies die Beanspruchung von 100 Prozent der CPU-Ressourcen. Der Wert 1.25 bedeutet 125 Prozent, da 100 Prozent der kompletten Auslastung einer CPU auf dem System entspricht.


Hinweis –

Die Ressourcen capped-cpu und dedicated-cpu sind nicht miteinander kompatibel.


Scheduling-Klasse in einer Zone

Mit dem Fair Share Scheduler (FSS) steuern Sie die Zuordnung von verfügbaren CPU-Ressourcen zwischen den Zonen. Die Zuordnung erfolgt dabei nach der Wichtigkeit der Zonen. Diese Wichtigkeit einer Arbeitslast wird durch die Anzahl der Shares (Anteile) an CPU-Ressourcen ausgedrückt, die Sie jeder Zone zuweisen. Auch wenn Sie FSS nicht zur Verwaltung der CPU-Ressourcenzuordnung zwischen den Zonen einsetzen, können Sie die Scheduling-Klasse der Zone zum Verwenden von FSS einrichten, so dass Sie Shares für die Projekte innerhalb der Zone zuordnen können.

Wenn Sie die Eigenschaft cpu-shares explizit setzen, wird der Fair Share Scheduler (FSS) als Scheduling-Klasse für diese Zone verwendet. Normalerweise wird der FSS mit dem Befehl dispadmin als standardmäßige Scheduling-Klasse eingerichtet. Auf diese Weise erhalten alle Zonen einen gleich großen Anteil der CPU-Ressourcen des Systems. Wenn cpu-shares für eine Zone nicht gesetzt wurde, verwendet die Zone standardmäßig die Scheduling-Klasse des Systems. Die Scheduling-Klasse einer Zone wird mit den folgenden Methoden eingerichtet:

Mit dem in der Manpage priocntl(1) beschriebenen Befehl priocntl können Sie laufende Prozesse in eine andere Scheduling-Klasse verschieben, ohne dass die standardmäßige Scheduling-Klasse geändert oder das System neu gebootet werden muss.

Solaris 10 8/07: Steuerung des reellen Speichers und der capped-memory-Ressource

Die Ressource capped-memory legt Grenzwerte für den reellen (physical), ausgelagerten (swap) und gesperrten (locked) Speicher fest. Jeder Grenzwert ist optional, es muss aber mindestens ein Grenzwert eingerichtet sein.


Hinweis –

Anwendungen sperren im Allgemeinen keine bedeutenden Speichermengen. Sie können jedoch das Sperren von Speicher einrichten, wenn bekannt ist, dass die Anwendungen der Zone normalerweise Speicher sperren. Wenn die Vertrauenswürdigkeit einer Zone von Bedeutung ist, können Sie die Memory Cap für gesperrten Speicher auch auf 10 Prozent des reellen Speichers des Systems oder auf 10 Prozent der Memory Cap für den reellen Speicher der Zone einschränken.


Weitere Informationen finden Sie in Kapitel 10Einführung in die Steuerung des reellen Arbeitsspeichers mithilfe des Resource Capping Daemons, Kapitel 11Verwalten des Resource Capping Daemons (Vorgehen) und in der Manpage So konfigurieren Sie die Zone. Weitere Informationen zum Festlegen einer temporären Resource Cap für eine Zone finden Sie unter So legen Sie eine temporäre Resource Cap für eine Zone fest.

Netzwerkschnittstellen der Zone

Mit dem Befehl zonecfg konfigurierte Netzwerkschnittstellen für Zonen sorgen für die Netzwerkverbindungen und werden beim Booten automatisch in einer Zone eingerichtet.

Die Internet Protocol (IP)-Schicht akzeptiert Pakete und liefert sie im Netzwerk aus. Diese Schicht umfasst IP-Routing, das Address Resolution Protocol (ARP), die IP-Sicherheitsarchitektur (IPsec) und IP-Filter.

Für nicht-globale Zonen stehen die IP-Typen Shared IP und Exclusive IP zur Verfügung. In der Shared IP-Zone wird eine Netzwerkschnittstelle gemeinsam genutzt, während die Exclusive IP-Zone muss über eine dedizierte Netzwerkschnittstelle verfügen muss.

Informationen zu den IP-Funktionen jedes Typs finden Sie unter Netzwerkverbindungen in nicht-globalen Shared IP-Zonen und Solaris 10 8/07: Netzwerkverbindungen in nicht-globalen Exclusive IP-Zonen.

Nicht-globale Shared IP-Zonen

Die Shared IP-Zone ist der Standardtyp. Die Zone muss über mindestens eine dedizierte IP-Adresse verfügen. Eine Shared IP-Zone nutzt die Konfiguration und den Status der IP-Schicht gemeinsam mit der globalen Zone. Die Zone muss die Shared IP-Instanz verwenden, wenn die beiden folgenden Bedingungen zutreffen:

Shared IP-Zonen werden mit dem Befehl zonecfg eine oder mehrere IP-Adressen zugewiesen. Die Data-Link-Namen müssen ebenfalls in der globalen Zone konfiguriert werden.

Diese Adressen werden mithilfe von logischen Netzwerkschnittstellen zugeordnet. Mit dem Befehl ifconfig können die logischen Schnittstellen in einer laufenden Zone von der globalen Zone aus hinzugefügt oder entfernt werden. Weitere Informationen finden Sie unter Shared IP-Netzwerkschnittstellen.

Solaris 10 8/07: Nicht-globale Exclusive IP-Zonen

In einer Exclusive IP-Zone stehen alle Funktionen der IP-Schicht zur Verfügung.

Eine Exclusive IP-Zone verfügt über einen eigenen IP-orientierten Status.

Hierzu gehört die Fähigkeit, die folgenden Funktionen einer Exclusive IP-Zone zu nutzen:

Eine Exclusive IP-Zone erhält mit dem Befehl zonecfg ein eigenes Data-Link-Set. Die Zone erhält einen Data-Link-Name wie z. B. xge0, e1000g1 oder bge32001. Dazu wird die Eigenschaft physical der net-Ressourcen verwendet. Die Eigenschaft address der net-Ressource ist nicht gesetzt.

Beachten Sie, dass die zugewiesene Data-Link das Verwenden des Befehls snoop möglich macht.

Der Befehl dladm kann zusammen mit dem Unterbefehl show-linkprop verwendet werden, um die Zuweisung von Data-Links zu laufenden Exclusive IP-Zonen anzuzeigen. Der Befehl dladm kann zusammen mit dem Unterbefehl set-linkprop verwendet werden, um laufenden Zonen zusätzliche Data-Links zuzuweisen. Anwendungsbeispiele finden Sie unter Solaris 10 8/07: Verwalten von Data-Links in nicht-globalen Exclusive IP-Zonen.

Innerhalb einer laufenden Exclusive IP-Zone kann der Befehl ifconfig zum Konfigurieren der IP-Funktionen verwendet werden. Hierzu gehört die Möglichkeit, logische Schnittstellen hinzuzufügen oder zu entfernen. Die IP-Konfiguration in einer Zone kann mithilfe von sysidtools, das unter sysidcfg(4) beschrieben wird, auf die gleiche Weise wie für die globale Zone eingerichtet werden.


Hinweis –

Die IP-Konfiguration einer Exclusive IP-Zone kann nur von der globalen Zone aus mit dem Befehl zlogin angezeigt werden. Ein Beispiel:


global# zlogin zone1 ifconfig -a

Sicherheitsunterschiede zwischen nicht-globalen Shared IP- und Exclusive IP-Zonen

In einer Shared IP-Zone können weder die Anwendungen in einer Zone noch der Superuser Pakete mit anderen Quell-IP-Adressen als denen senden, die der Zone mit dem Dienstprogramm zonecfg zugewiesen wurden. Dieser Zonentyp hat keinen Zugriff zum Senden und Empfangen von zufälligen Data-Link-Paketen (Schicht 2).

Bei einer Exclusive IP-Zone gewährt zonecfg stattdessen die gesamten angegebene Data-Link für die Zone. Somit kann der Superuser in einer Exclusive IP-Zone genauso wie in der globalen Zone Spoofing-Pakete über diese Data-Links versenden.

Gleichzeitiges Verwenden von nicht-globalen Shared IP- und Exclusive IP-Zonen

Die Shared IP-Zonen nutzen die IP-Schicht immer gemeinsam mit der globalen Zone, die Exclusive IP-Zonen hingegen verfügen immer über ihre eigene Instanz der IP-Schicht. Shared IP-Zonen und Exclusive IP-Zonen können gemeinsam auf dem gleichen Computer eingesetzt werden.

In Zonen eingehängte Dateisysteme

Im Allgemeinen umfassen die in einer Zone eingehängten Dateisysteme Folgendes:

Dies kann z. B. die folgenden Dateisysteme umfassen:

Für Mounts, die innerhalb einer Anwendungsumgebung eingehängt werden, gelten bestimmte Einschränkungen. Diese Einschränkungen verhindern, dass der Zonenadministrator Services für das restliche System verweigert oder Einstellungen trifft, die sich negativ auf andere Zonen auswirken.

Für das Einhängen bestimmter Dateisysteme innerhalb einer Zone gelten Sicherheitseinschränkungen. Einige Dateisysteme zeigen ein besonderes Verhalten, wenn sie in einer Zone eingehängt werden. Weitere Informationen finden Sie unter Dateisysteme und nicht-globale Zonen.

Konfigurierte Geräte in Zonen

Der Befehl zonecfg verwendet ein Rule Matching-System, um festzulegen, welche Geräte in einer bestimmten Zone erscheinen müssen. Geräte, die einer der Regeln entsprechen, werden in das Dateisystem /dev der Zone aufgenommen. Weitere Informationen finden Sie unter So konfigurieren Sie die Zone.

Host-ID in Zonen

Sie können eine hostid-Eigenschaft für die nicht-globale Zone einstellen, die sich von der hostid der globalen Zone unterscheidet. Dies ist sinnvoll, wenn ein physischer Rechner mit der P2V-Funktion in einer Zone konsolidiert wird. Anwendungen, die sich jetzt innerhalb der Zone befinden, können von der ursprünglichen hostid abhängen und die Anwendungskonfiguration kann möglicherweise nicht aktualisiert werden. Weitere Informationen finden Sie unter Ressourcen- und Eigenschaftentypen.

Einrichten von zonenweiten Resource Controls

Der globale Administrator kann privilegierte zonenweite Resource Controls für eine Zone einrichten. Zonenweite Resource Controls schränken die gesamte Ressourcennutzung aller Prozesseinheiten innerhalb einer Zone ein.

Diese Grenzwerte werden mit dem Befehl zonecfg sowohl für die globale Zone als auch für nicht-globale Zonen eingerichtet. Lesen Sie dazu So konfigurieren Sie die Zone.

Ab dem Solaris-Release 10 8/07 lassen sich zonenweite Resource Controls einfacher einrichten, indem Sie den Eigenschaftennamen anstelle der Ressource rctl verwenden.

Solaris 10 5/08: Die Resource Control zone.cpu-cap gibt einen absoluten Grenzwert an CPU-Ressourcen an, die von einer Zone beansprucht werden können. Der Wert 100 gibt als Einstellung von project.cpu-cap die 100-prozentige Beanspruchung der Ressourcen einer CPU an. Der Wert 1.25 bedeutet 125 Prozent, da 100 Prozent der kompletten Auslastung einer CPU auf einem System mit CPU-Ressourcengrenzwerten (CPU-Caps) entspricht.


Hinweis –

Die Ressource capped-cpu muss eine Dezimalzahl sein. Der Wert entspricht der Resource Control zone.capped-cpu , wird jedoch um den Faktor 100 heruntergesetzt. Der Wert 1 entspricht dem Wert 100 der Resource Control.


Die Resource Control zone.cpu-shares legt einen Grenzwert für die Anzahl der Fair Share Scheduler (FSS) CPU-Shares für eine Zone fest. CPU-Shares werden zunächst der Zone zugeordnet und dann gemäß den Einträgen in project.cpu-shares weiter zwischen den Projekten in einer Zone aufgeteilt. Weitere Informationen finden Sie unter Verwenden des Fair Share Scheduler auf einem Solaris-System mit installierten Zonen. Der globale Eigenschaftenname für diese Resource Control lautet cpu-shares.

Die Resource Control zone.max-locked-memory begrenzt den gesperrten reellen Speicher, der eine Zone zur Verfügung steht. Die Zuordnung der gesperrten Speicherressourcen zu Projekten innerhalb einer Zone wird über die Resource Control project.max-locked-memory gesteuert. Weitere Informationen finden Sie in Tabelle 6–1.

Die Resource Control zone.max-lwps verbessert die Ressourcenisolierung, indem Sie verhindert, dass sich zu viele LWPs in einer Zone negativ auf andere Zonen auswirken. Die Zuordnung der LWP-Ressourcen zu den Projekten in einer Zone wird über die Resource Control project.max-lwps gesteuert. Weitere Informationen finden Sie in Tabelle 6–1. Der globale Eigenschaftenname für diese Resource Control lautet max-lwps.

Die Resource Controls zone.max-msg-ids, zone.max-sem-ids, zone.max-shm-ids und zone.max-shm-memory dienen zum Begrenzen der System V-Ressourcen, die von allen Prozessen in einer Zone genutzt werden. Die Zuordnung von System V-Ressourcen zu Projekten in einer Zone kann mithilfe der Projektversionen dieser Resource Controls gesteuert werden. Die globalen Eigenschaftennamen dieser Resource Controls lauten max-msg-ids, max-sem-ids, max-shm-ids und max-shm-memory .

Die Resource Control zone.max-swap begrenzt den Swap-Bereich, der von Benutzerprozess-Adressraumzuordnungen und tmpfs-Mounts innerhalb einer Zone verwendet wird. Die Ausgabe von prstat -Z zeigt eine SWAP-Spalte an. Der angezeigte Swap-Bereich ist der gesamte Swap-Bereich, der von den Prozessen der Zone und den tmpfs-Mounts verbraucht wird. Dieser Wert unterstützt die Überwachung des von jeder Zone reservierten Swap-Bereichs. Er kann zum Wählen einer geeigneten Einstellung für zone.max-swap verwendet werden.

Tabelle 17–1 Zonenweite Resource Controls

Name der Resource Control 

Name der globalen Eigenschaft 

Beschreibung 

Standardeinheit 

Wird verwendet für 

zone.cpu-cap

 

Solaris 10 5/08: Absoluter Grenzwert für die Beanspruchung von CPU-Ressourcen für diese Zone.

Menge (CPU-Anzahl) in Prozent. 


Hinweis –

Bei der Einstellung für die Ressource capped-cpu können Sie für die Einheit eine Dezimalzahl verwenden.


 

zone.cpu-shares

cpu-shares

Anzahl der Fair Share Scheduler (FSS) CPU-Shares für diese Zone. 

Menge (Shares) 

 

zone.max-locked-memory

 

Gesamtmenge des in einer Zone verfügbaren, physikalisch gesperrten Speichers. 

Wenn priv_proc_lock_memory einer Zone zugewiesen ist, können Sie durch Einrichten dieser Resource Control auch verhindern, dass die Zone den gesamten Speicher sperrt.

Größe (Byte) 

locked-Eigenschaft von capped-memory.

zone.max-lwps

max-lwps

Höchstzahl der gleichzeitig in dieser Zone verfügbaren LWPs. 

Menge (LWPs) 

 

zone.max-msg-ids

max-msg-ids

Höchstzahl der für diese Zone zulässigen Nachrichtenwarteschlangen-IDs. 

Menge (Nachrichtenwarteschlangen-IDs) 

 

zone.max-sem-ids

max-sem-ids

Höchstzahl der für diese Zone zulässigen Semaphor-IDs. 

Menge (Semaphor- IDs) 

 

zone.max-shm-ids

max-shm-ids

Höchstzahl der für diese Zone zulässigen Shared Memory-IDs. 

Menge (Shared Memory-IDs) 

 

zone.max-shm-memory

max-shm-memory

Gesamtmenge des für diese Zone zulässigen System V Shared Memory. 

Größe (Byte) 

 

zone.max-swap

 

Gesamtmenge des Swap-Bereichs, der von Benutzerprozess- Adressraumzuordnun- gen und tmpfs-Mounts für diese Zone verwendet wird.

Größe (Byte) 

swap -Eigenschaft von capped-memory

Diese Grenzen können mit dem Befehl prctl für laufende Prozesse angegeben werden. Ein Beispiel finden Sie unter So richten Sie FSS-Shares mit dem Befehl prctl in der globalen Zone ein. Die mit dem Befehl prctl festgelegten Grenzen sind nicht persistent. Sie sind nur solange wirksam, bis das System neu gebootet wird.

Solaris 10 11/06 und höher: Konfigurierbare Berechtigungen

Beim Booten einer Zone wird ein Standardset mit sicheren Berechtigungen in die Konfiguration aufgenommen. Diese Berechtigungen werden als sicher betrachtet, weil sie verhindern, dass ein privilegierter Prozess in der Zone Prozesse in anderen nicht-globalen Zonen des Systems oder in der globalen Zone beeinflusst. Mit dem Befehl zonecfg können Sie:


Hinweis –

Einige Berechtigungen können nicht aus dem Standard-Berechtigungsset einer Zone entfernt werden, und bestimmte Berechtigungen können in diesem Fall nicht zum Standardset hinzugefügt werden.


Weitere Informationen finden Sie unter Berechtigungen in einer nicht-globalen Zone, unter So konfigurieren Sie die Zone und in der Manpage privileges(5).

Hinzufügen eines Kommentars zu einer Zone

Mit dem Ressourcentyp attr können Sie einer Zone einen Kommentar hinzufügen. Weitere Informationen finden Sie unter So konfigurieren Sie die Zone.