Systemverwaltungshandbuch: Oracle Solaris Container - Ressourcenverwaltung und Solaris Zones

Arbeitsweise von Zonen

Man kann sich eine nicht-globale Zone als einen Kasten vorstellen. In diesem Kasten können eine oder mehrere Anwendungen ausgeführt werden, ohne dass sie sich auf das restliche System auswirken. Solaris Zones isolieren Softwareanwendungen und Services mit flexiblen, softwaredefinierten Grenzen. Anwendungen, die in der gleichen Instanz des Betriebssystem Solaris ausgeführt werden, können unabhängig von anderen Anwendungen verwaltet werden. Daher können verschiedene Versionen der gleichen Anwendung in unterschiedlichen Zonen ausgeführt werden können, um die Anforderungen der Konfiguration zu erfüllen.

Ein Prozess, der einer Zone zugewiesen ist, kann andere Prozesse in dieser Zone manipulieren, überwachen oder direkt mit ihnen kommunizieren. Der Prozess kann diese Funktionen nicht an Prozessen durchführen, die anderen Zonen oder keinen Zonen des Systems zugewiesen sind. Prozesse, die verschiedenen Zonen zugewiesen sind, können nur über die Netzwerk-APIs miteinander kommunizieren.

Ab Solaris 10 8/07 können IP-Netzverbindungen auf zwei verschiedene Arten konfiguriert werden. Die gewählte Art hängt davon ab, ob die Zone über eigene Exclusive IP-Instanzen verfügt oder die IP-Schicht-Konfiguration und den Status der globalen Zone teilt. Weitere Informationen zu IP-Typen in Zonen finden Sie unter Netzwerkschnittstellen der Zone. Informationen zur Konfiguration finden Sie unter So konfigurieren Sie die Zone.

Jedes Solaris-System enthält eine globale Zone. Die globale Zone hat zwei Funktionen. Die globale Zone gilt sowohl als Standardzone des Systems als auch als Zone für die systemweite Administrationssteuerung. Wenn keine nicht-globalen Zonen, vereinfacht auch als „Zonen“ bezeichnet, vom globalen Administrator erstellt wurden, werden alle Prozesse in der globalen Zone ausgeführt.

Die globale Zone ist die einzige Zone, von der aus eine nicht-globale Zone konfiguriert, installiert, verwaltet oder deinstalliert werden kann. Nur die globale Zone kann von der System-Hardware gebootet werden. Die Verwaltung der System-Infrastruktur, z. B. der reellen Geräte, des Routing in einer Shared-IP-Zone oder der dynamische Rekonfiguration (DR), ist nur in der globalen Zone möglich. Entsprechend privilegierte Prozesse, die in der globalen Zone ausgeführt werden, können auf Objekte zugreifen, die anderen Zonen zugewiesen sind.

Nichtberechtigte Prozesse in der globalen Zone können eventuell Vorgänge ausführen, die berechtigten Prozessen in einer nicht-globalen Zone nicht gestattet sind. Beispielsweise können Benutzer in der globalen Zone Informationen zu jedem Prozess auf dem System anzeigen. Wenn diese Fähigkeit ein Sicherheitsproblem an Ihrem Standort darstellt, können Sie den Zugriff auf die globale Zone einschränken.

Jeder Zone, einschließlich der globalen Zone, ist ein Zonenname zugewiesen. Die globale Zone heißt immer global. Jede Zone erhält außerdem einen einmaligen numerischen Bezeichner, der beim Booten der Zone vom System zugewiesen wird. Die globale Zone erhält immer die ID 0. Zonennamen und numerische IDs sind unter Verwenden des Befehls zonecfg beschrieben.

Weiterhin verfügt jede Zone über einen vom Zonennamen vollständig unabhängigen Knotennamen. Der Knotenname wird der Zone vom Administrator zugewiesen. Weitere Informationen finden Sie unter Knotennamen in nicht-globalen Zonen.

Jede Zone verfügt über einen Root-Verzeichnispfad, der relativ zum Root-Verzeichnis der globalen Zone angegeben ist. Weitere Informationen finden Sie unter Verwenden des Befehls zonecfg.

Die Scheduling-Klasse einer nicht-globalen Zone wird standardmäßig auf die Scheduling-Klasse des Systems gesetzt. Eine Abhandlung der Methoden zum Setzen der Scheduling-Klasse in einer Zone finden Sie unter Scheduling-Klasse in einer Zone.

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.

Zusammenfassung der Zonenfunktionen

In der folgenden Tabelle werden die Eigenschaften der globalen Zone und der nicht-globalen Zonen zusammengefasst.

Zonentyp 

Eigenschaft 

Global 

 

  • Erhält die ID 0 vom System

  • Stellt eine einzelne Instanz des Solaris-Kernel bereit, der gebootet und auf dem System ausgeführt werden kann

  • Enthält eine vollständige Installation der Softwarepakete des Solaris-Systems

  • Kann zusätzliche Softwarepakete oder zusätzliche Software, Verzeichnisse, Dateien und andere Dateien enthalten, die nicht über Pakete installiert werden

  • Stellt eine vollständige und konsistente Produktdatenbank bereit, die Informationen über alle in der globalen Zone installierten Softwarekomponenten enthält

  • Enthält Konfigurationsinformationen nur für die globale Zone, z. B. den Hostnamen der globalen Zone und die Dateisystemtabelle

  • Ist die einzige Zone, die aller Geräte und aller Dateisysteme bewusst ist

  • Ist die einzige Zone mit Kenntnis der Existenz und Konfiguration von nicht-globalen Zonen

  • Ist die einzige Zone, von der aus einer nicht-globale Zone konfiguriert, installiert, verwaltet oder deinstalliert werden kann

Nicht-global 

 

  • Erhält beim Booten der Zone eine Zone-ID vom System

  • Teilt Vorgänge unter dem Solaris-Kernel, der von der globalen Zone aus gebootet wird

  • Enthält nur einen Teil der vollständigen Softwarepakete des Solaris-Betriebssystems

  • Enthält Solaris-Softwarepakete, die von der globalen Zone aus gemeinsam genutzt werden

  • Kann zusätzlich installierte Softwarepakete enthalten, die nicht von der globalen Zone aus freigegeben sind

  • Kann zusätzliche Software, Verzeichnisse, Dateien und anderen Daten enthalten, die in der nicht-globalen Zone erstellt wurden und nicht über Pakete installiert oder von der globalen Zone aus gemeinsam genutzt werden

  • Verfügt über eine vollständige und konsistente Produktdatenbank, die Informationen zu allen in der Zone installierten Softwarekomponenten enthält, unabhängig davon, ob sie in der nicht-globalen Zone installiert oder schreibgeschützt von der globalen Zone aus gemeinsam genutzt werden

  • Ist sich nicht über die Existenz anderer Zonen bewusst

  • Kann keine anderen Zonen (einschließlich der eigenen) installieren, verwalten oder deinstallieren

  • Verfügt über Konfigurationsinformationen speziell für die eigene nicht-globale Zone, z. B. den Hostnamen und die Dateisystemtabelle der nicht-globalen Zone

  • Kann über eine eigene Zeitzoneneinstellung verfügen

So werden nicht-globale Zonen verwaltet

Ein globaler Administrator verfügt über die Berechtigungen eines Superusers oder die betriebliche Funktion (Rolle) eines „Primary Administrators“. Ein korrekt bei einer globalen Zone angemeldeter globaler Administrator kann das gesamte System überwachen und steuern.

Eine nicht-globale Zone kann von einem Zonenadministrator verwaltet werden. Ein globaler Administrator weist dem Zonenadministrator das Profil „Zone Management“ zu. Die Berechtigungen eines Zonenadministrators sind auf eine nicht-globale Zone begrenzt.

So werden nicht-globale Zonen erstellt

Eine Zone wird vom globalen Administrator mit dem Befehl zonecfg und dem Einstellen verschiedener Parameter für die virtuelle Plattform und Anwendungsumgebung der Zone konfiguriert. Die Zone wird dann vom globalen Administrator installiert, der mit dem Befehl zoneadm Software auf der Paketschicht in der Dateisystemhierarchie installiert, die für die Zone eingerichtet wurde. Der globale Administrator kann sich mit dem Befehl zlogin bei der installierten Zone anmelden. Mit dem ersten Anmelden wird die interne Konfiguration einer Zone abgeschlossen. Dann wird der Befehl zoneadm zum Booten der Zonen verwendet.

Informationen zur Zonenkonfiguration finden Sie in Kapitel 17Einführung in die Konfiguration einer nicht-globalen Zone. Informationen zur Zoneninstallation finden Sie in Kapitel 19Einführung in das Installieren, Anhalten, Klonen und Deinstallieren von nicht-globalen Zonen. Informationen zum Anmelden bei einer Zone finden Sie in Kapitel 21Einführung in das Anmeldeverfahren bei einer nicht-globalen Zone .

Statusmodell einer nicht-globalen Zone

Eine nicht-globale Zone kann einen der folgenden sechs Status annehmen:

Configured

Die Konfiguration einer Zone ist abgeschlossen. Sie wird zur stabilen Speicherung übernommen. Jedoch sind noch keine Elemente der Anwendungsumgebung einer Zone vorhanden, die nach dem ersten Booten angegeben werden müssen.

Incomplete

Während eines Installations- oder Deinstallationsvorgangs setzt zoneadm den Status der Zielzone auf „incomplete“. Nach dem erfolgreichen Abschluss des Vorgangs wird der Status korrigiert.

Installed

Die Konfiguration der Zone wird auf dem System instanziiert. Mit dem Befehl zoneadm kann überprüft werden, ob die Konfiguration erfolgreich auf dem zugewiesenen Solaris-System eingesetzt werden kann. Pakete werden unter dem Root-Pfad in der Zone installiert. In diesem Status verfügt die Zone über keine zugewiesene virtuelle Plattform.

Ready

Die virtuelle Plattform der Zone wird eingerichtet. Der Kernel erstellt den Prozess zsched, Netzwerkschnittstellen werden eingerichtet und für die Zone verfügbar gemacht, Dateisysteme werden eingehängt und Geräte konfiguriert. Das System weist eine eindeutige Zonen-ID zu. Zu diesem Zeitpunkt wurden noch keine der Prozesse gestartet, die der Zone zugewiesen sind.

Running

Benutzerprozesse, die der Zonen-Anwendungsumgebung zugewiesen sind, werden ausgeführt. Die Zone tritt in den Status „running“ über, sobald der erste der Anwendungsumgebung zugewiesene Benutzerprozess (init) erstellt wird.

Shutting down und Down

Diese Status sind Übergangszustände, die sichtbar sind, während eine Zone angehalten ist. Eine Zone, die aus beliebigen Gründen nicht heruntergefahren werden kann, stoppt in einem dieser Status.

Kapitel 20Installieren, Booten, Anhalten, Deinstallieren und Klonen von nicht-globalen Zonen (Vorgehen) und in die Manpage zoneadm(1M) enthalten Beschreibungen, wie der Befehl zoneadm eingesetzt werden kann, um Übergänge zwischen diesen Status einzuleiten.

Tabelle 16–1 Befehle, die sich auf den Zonenstatus auswirken

Aktueller Zonenstatus 

Anwendbare Befehle 

Configured 

zonecfg -z Zonenname verify

zonecfg -z Zonenname commit

zonecfg -z Zonenname delete

zoneadm -z Zonenname attach

zoneadm -z Zonenname verify

zoneadm -z Zonenname install

zoneadm -z Zonenname clone

Sie können den Befehl zonecfg auch zum Umbenennen einer Zone verwenden, die sich im Status „configured“ oder „installed“ befindet.

Incomplete 

zoneadm -z Zonenname uninstall

Installed 

zoneadm -z Zonenname ready (optional)

zoneadm -z Zonenname boot

zoneadm -z Zonenname uninstall deinstalliert die Konfiguration der angegebenen Zone vom System.

zoneadm -z Zonenname move Pfad

zoneadm -z Zonenname detach

zonecfg -z Zonenname kann zum Hinzufügen oder Entfernen einer der folgenden Eigenschaften verwendet werden: attr, bootargs, capped-memory, dataset, dedicated-cpu, device, fs, ip-type, limitpriv , net, rctl oder scheduling-class. Sie können auch eine Zone umbenennen, die sich im Status „installed“ befindet. Die inherit-pkg-dir-Ressourcen können nicht geändert werden.

Ready 

zoneadm -z Zonenname boot

zoneadm halt und ein Neustart des Systems setzt eine Zone vom Status „ready“ in den Status „installed“ zurück.

zonecfg -z Zonenname kann zum Hinzufügen oder Entfernen einer der folgenden Eigenschaften verwendet werden: attr, bootargs, capped-memory, dataset, dedicated-cpu, device, fs, ip-type, limitpriv , net, rctl oder scheduling-class. Die inherit-pkg-dir-Ressourcen können nicht geändert werden.

Running 

zlogin Optionen zonename

zoneadm -z Zonennname reboot

zoneadm -z Zonennname halt setzt eine Zone aus dem Status „ready“ in den Status „installed“ zurück.

zoneadm halt und ein Neustart des Systems setzt eine Zone vom Status „running“ in den Status „installed“ zurück.

zonecfg -z Zonenname kann zum Hinzufügen oder Entfernen einer der folgenden Eigenschaften verwendet werden: attr, bootargs, capped-memory, dataset, dedicated-cpu, device, fs, ip-type, limitpriv , net, rctl oder scheduling-class. Die Ressourcen zonepath und inherit-pkg-dir können nicht geändert werden.


Hinweis –

Parameteränderungen über zonecfg wirken sich nicht auf eine laufende Zone aus. Die Zone muss neugestartet werden, damit Änderungen übernommen werden.


Eigenschaften nicht-globaler Zonen

Eine Zone bietet eine Isolierung in nahezu jedem von Ihnen gewünschten Maß. Zonen benötigen keine eigens für sie zuständigen CPUs, realen Geräte oder Bereiche des realen Hauptspeichers. Diese Ressourcen können entweder über mehrere Zonen multiplexiert werden, die innerhalb einer einzelnen Domäne oder eines einzelnen Systems ausgeführt werden, oder mit den Funktionen der Ressourcenverwaltung auf Zonenbasis zugewiesen werden.

Jede Zone kann eine benutzerdefinierte Gruppe von Diensten zur Verfügung stellen. Um eine grundlegende Prozessisolierung durchzusetzen, kann ein Prozess nur die in der gleichen Zone existierenden Prozesse sehen bzw. mit ihnen kommunizieren. Die allgemeine Kommunikation zwischen den Zonen wird dadurch erreicht, dass jeder Zone eine IP-Netzwerkkonnektivität zugewiesen wird. Für eine Anwendung, die in einer Zone ausgeführt wird, ist der Netzwerkverkehr einer anderen Zone nicht sichtbar. Diese Isolierung ist gegeben, obwohl die jeweiligen Datenpaketströme über dieselbe physische Schnittstelle übertragen werden.

Jede Zone erhält einen Anteil der Dateisystemhierarchie. Da jede Zone auf ihren eigenen Teilstrang in der Dateisystemhierarchie begrenzt ist, kann ein Vorgang in einer bestimmten Zone nicht auf die Festplattendaten eines anderen Vorgangs in einer anderen Zone zugreifen.

Dateien, die von Namen-Services verwendet werden, befinden sich in der einer Zone eigenen Root-Dateisystemansicht. Damit sind Namen-Services in unterschiedlichen Zonen voneinander isoliert, und die Services können unabhängig voneinander konfiguriert werden.

Verwenden der Funktionen der Ressourcenverwaltung mit nicht-globalen Zonen

Wenn Sie die Funktionen der Ressourcenverwaltung verwenden, müssen Sie die Grenzen der Resource Controls der Ressourcenverwaltung mit denen der Zonen abstimmen. Diese Anpassung erstellt ein ausgereifteres Modell eines virtuellen Computers, bei dem Zugriff auf Namespace, Sicherheitsisolierung und Ressourcennutzung gesteuert werden.

Alle besonderen Anforderungen für das Anwenden einzelner Funktionen der Ressourcenverwaltung an Zonen sind in den entsprechenden Kapiteln dieses Handbuchs beschrieben.