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.
In der folgenden Tabelle werden die Eigenschaften der globalen Zone und der nicht-globalen Zonen zusammengefasst.
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.
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 .
Eine nicht-globale Zone kann einen der folgenden sechs Status annehmen:
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.
Während eines Installations- oder Deinstallationsvorgangs setzt zoneadm den Status der Zielzone auf „incomplete“. Nach dem erfolgreichen Abschluss des Vorgangs wird der Status korrigiert.
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.
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.
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.
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. |
Parameteränderungen über zonecfg wirken sich nicht auf eine laufende Zone aus. Die Zone muss neugestartet werden, damit Änderungen übernommen werden.
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.
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.