Systemverwaltungshandbuch: Oracle Solaris Container - Ressourcenverwaltung und Solaris Zones

Kapitel 31 Allgemeine Informationen zu Branded Zones und der Linux Branded Zone

Branded Zones wurden mit dem Solaris-Release 10 8/07 eingeführt. In späteren Versionen hinzugekommene Leistungsmerkmale sind mit der entsprechenden Release-Nummer gekennzeichnet.

Die Funktion der Branded Zones im Betriebssystem Solaris ist eine einfache Erweiterung der Solaris Zones. In diesem Kapitel wird das Konzept der Branded Zones und einem lx Brand beschrieben, das die Leistungsmerkmale der Linux Branded Zones implementiert. Linux Branded Zones werden auch als Solaris Container für Linux-Anwendungen bezeichnet.


Hinweis –

Obwohl Sie Branded Zones auf einem Trusted Solaris-System mit aktivierten Labels konfigurieren und installieren können, ist das Booten von Branded Zones bei dieser Systemkonfiguration nicht möglich.



Hinweis –

Zusätzliche Brands werden vom Betriebssystem Solaris unterstützt.

Folgende zwei Brands werden auf SPARC-Computern unterstützt, die das Betriebssystem Solaris 10 8/07 oder eine neuere Version von Solaris 10 ausführen:

Das cluster-Brand, dokumentiert in der Sun Cluster 3.2 1/09 Software Collection for Solaris OS auf docs.sun.com, wird auch von der Version Solaris 10 unterstützt.


Allgemeine Informationen zur Verwendung von Zonen auf einem Solaris-System

Allgemeine Informationen zur Verwendung von Zonen auf einem Solaris-System finden Sie in Kapitel 16Einführung in Solaris Zones.

Sie sollten mit den folgenden Konzepten zur Zonen- und Ressourcenverwaltung vertraut sein:

Im Glossar finden Sie Definitionen für Begriffe, die im Zusammenhang mit Zonen und Ressourcenverwaltungsfunktionen verwendet werden.

Alle zusätzlichen Informationen, die für die Verwendung von Branded Zones auf einem System erforderlich sind, finden Sie in diesem Teil des Handbuchs.


Hinweis –

Die folgenden Kapitel dieses Handbuchs gelten nicht für Branded Zones:


Technologie der Branded Zones

Das Branded Zone (BrandZ)-Framework erweitert die Infrastruktur der Solaris Zones um die Erstellung von Brands. Dies wird in diesem Handbuch in Teil II, Zonen beschrieben. Der Begriff Brand kann sich auf einen breiten Bereich von Betriebsumgebungen beziehen. Mit BrandZ können Sie nicht-globale Zonen erstellen, die nicht-native Betriebsumgebungen enthalten, in denen Anwendungen ausgeführt werden. Der Brand-Typ dient zum Festlegen der Skripten, die beim Installieren und Booten einer Zone ausgeführt werden. Darüber hinaus dient das Brand einer Zone zur korrekten Identifikation des Anwendungstyps beim Start der Anwendung. Die gesamte Brand-Verwaltung wird über Erweiterungen der aktuellen Zonenstruktur durchgeführt.

Ein Brand kann eine einfache oder eine komplexe Umgebung bereitstellen. In einer einfachen Umgebung können die standardmäßigen Solaris-Dienstprogramme durch deren GNU-Entsprechungen ersetzt werden. In einer komplexen Umgebung könnte ein vollständiger Linux-Benutzerbereich bereitgestellt werden, der die Ausführung von Linux-Anwendungen unterstützt.

Jede Zone ist mit einem zugehörigen Brand konfiguriert. Die Standardeinstellung ist das native Brand, Solaris. Eine Branded Zone unterstützt genau ein Brand einer nicht-nativen Binärdatei; dies bedeutet, dass eine Branded Zone genau eine Betriebsumgebung bereitstellt.

BrandZ erweitern die Zonen-Tools wie folgt:


Hinweis –

Sie können das Brand einer Zone ändern, die sich im Status „configured“ befindet. Nachdem eine Branded Zone installiert wurde, kann das Brand nicht mehr geändert oder entfernt werden.


In einer Branded Zone ausgeführte Prozesse

Branded Zones stellen ein Set an Interpositionspunkten im Kernel bereit, die nur für Prozesse angewendet werden, die in einer Branded Zone ausgeführt werden.

Ein Brand kann auch eine Plugin-Bibliothek für librtld_db bereitstellen. Die Plugin-Bibliothek ermöglicht Solaris-Tools wie beispielsweise dem Debugger (siehe mdb(1)) und DTrace (siehe dtrace(1M)), auf die Symbolinformationen von Prozessen zuzugreifen, die innerhalb einer Branded Zone ausgeführt werden.

Geräteunterstützung in einer Branded Zone

Die von jeder Zone unterstützten Geräte sind in den Manpages und anderen Dokumentationen für das Brand beschrieben. Die Geräteunterstützung wird durch das Brand definiert. Ein Brand kann wählen, das Hinzufügen von nicht unterstützten oder nicht erkannten Geräten zu verweigern.

Dateisystemunterstützung in einer Branded Zone

Die für eine Branded Zone erforderlichen Dateisysteme werden vom Brand definiert.

Berechtigungen in einer Branded Zone

Die in einer Branded Zone verfügbaren Berechtigungen werden vom Brand definiert. Weitere Informationen zu Berechtigungen finden Sie unter Berechtigungen in einer nicht-globalen Zone und Konfigurierbare Berechtigungen in einer lx Branded Zone.

Allgemeine Informationen zur lx Brand

Das lx Brand verwendet das Branded Zones-Framework, um Linux-Binäranwendungen unverändert auf einem Computer mit Solaris-Betriebssystemkernel auszuführen.

Auf diesem Computer muss einer der folgenden unterstützten i686-Prozessortypen installiert sein:

Unterstützte Linux-Distributionen

Das lx Brand umfasst die zur Installation einer CentOS 3.x- oder Red Hat Enterprise Linux 3.x-Distribution innerhalb einer nicht-globalen Zone erforderlichen Tools. Unterstützt werden die Versionen 3.5 bis 3.8 jeder Distribution. Das Brand unterstützt die Ausführung von 32-Bit Linux-Anwendungen auf x86- und x64-Computern, auf denen das Solaris-Betriebssystem entweder im 32-Bit- oder im 64-Bit-Modus ausgeführt wird.

Das lx Brand emuliert die vom Linux 2.4.21-Kernel bereitgestellten System-Aufrufschnittstellen gemäß der Änderungen durch Red Hat in den RHEL 3.x-Distributionen. Dieser Kernel stellt die System-Aufrufschnittstellen bereit, die von der glibc-Version 2.3.2 von Red Hat benötigt werden.

Darüber hinaus emuliert das lx Brand teilweise die Linux-Schnittstellen /dev und /proc.


Achtung – Achtung –

Beachten Sie, dass eine unterstützte Konfiguration aufrecht erhalten müssen, wenn Sie Pakete zu einer lx Branded Zone hinzufügen. Weitere Informationen finden Sie unter Allgemeine Informationen zum Verwalten einer unterstützten Konfiguration.


Unterstützung von Anwendungen

In einem Solaris-System ist die Anzahl der Linux-Anwendungen, die in einer lx Branded Zone ausgeführt werden können, nicht beschränkt. Voraussetzung ist ein ausreichender Arbeitsspeicher. Lesen Sie auch Anforderungen an System und Speicherplatz.

Unabhängig vom zu Grunde liegenden Kernel, können nur 32-Bit Linux-Anwendungen ausgeführt werden.

Die lx Zone unterstützt Linux-Anwendungen nur auf Benutzerebene. Sie können keine Linux-Gerätetreiber, Linux-Kernelmodule oder Linux-Dateisysteme in einer lx Zone verwenden.

Unter http://hub.opensolaris.org/bin/view/Community+Group+brandz/applications finden Sie eine Liste einiger Anwendungen, die erfolgreich in dem lx Brand ausgeführt werden konnten. Ein Beispiel zur Installation einer Anwendung finden Sie unter So installieren Sie eine Anwendung in einer lx Branded Zone.

Sie können keine Solaris-Anwendungen in einer lx Zone ausführen. Sie können jedoch das Solaris-System in der lx Zone verwenden, um Linux-Anwendungen zu entwickeln, zu testen und bereitzustellen. Beispielsweise können Sie eine Linux-Anwendung in einer lx Zone platzieren und sie mithilfe von Solaris-Tools analysieren, die in der globalen Zone ausgeführt werden. Dann können Sie Verbesserungen vornehmen und die überarbeitete Anwendung auf einem nativen Linux-System bereitstellen.

Tools zur Fehlersuche

Solaris-Tools zur Fehlersuche wie DTrace und mdb können zwar an in der Zone ausgeführten Linux-Prozessen angewendet werden, die Tools selbst müssen aber in der globalen Zone ausgeführt werden. Alle erzeugten Core-Dateien werden im Solaris-Format erstellt. Das Debuggen kann nur mit Solaris-Tools durchgeführt werden.

DTrace kann mithilfe des Dynamic Tracing Providers lxsyscall für Linux-Anwendungen eingesetzt werden. Dieser Provider verhält sich wie der DTrace-Provider syscall. Der Provider lxsyscall stellt Sonden bereit, die immer dann ausgelöst werden, wenn ein Thread in einen Linux-System-Aufrufpunkt Linux-Systems eintritt bzw. von dort zurückgekehrt.

Weitere Informationen zu den Optionen zur Fehlersuche können Sie dem Solaris Dynamic Tracing Guide und den Manpages dtrace(1M) und mdb(1) entnehmen. Im Handbuch zur dynamischen Ablaufverfolgung in Solaris sind die öffentlich dokumentierten Schnittstellen beschrieben, die für das Dienstprogramm DTrace zur Verfügung stehen. Die Dokumentation zum Provider syscall kann auch für den Provider lxsyscall genutzt werden.


Hinweis –

Da NFS von zonenspezifischen Namen-Services abhängig ist, können Sie nicht auf ein NFS-Dateisystem zugreifen, das außerhalb der aktuellen Zone eingehängt ist. Aus diesem Grund können Sie keine Fehlerbehebung an NFS-basierten Linux-Prozessen von der globalen Zone aus durchführen.


Befehle und andere Schnittstellen

Die in der folgenden Tabelle aufgeführten Befehle stellen die primäre administrative Schnittstelle zu den Zonen dar.

Tabelle 31–1 In lx Branded Zones ungültige Befehle und andere Schnittstellen

Befehl 

Beschreibung 

zlogin(1)

Anmelden bei einer nicht-globalen Zone 

zoneadm(1M)

Verwalten der Zonen auf einem System  

zonecfg(1M)

Einrichten einer Zonenkonfiguration 

getzoneid(3C)

Zuordnen von Zonen-ID und Name 

brands(5)

Beschreibung der Branded Zones-Einrichtung 

lx(5)

Beschreibung der Linux Branded Zones 

zones(5)

Beschreibung der Funktion Zonen 

lx_systrace(7D)

DTrace Linux-System Provider zur Aufrufverfolgung 

zcons(7D)

Zonenkonsole-Gerätetreiber 

Der Daemon zoneadmd ist der primäre Prozess zur Verwaltung der virtuellen Plattform einer Zone. Die Manpage für den zoneadmd-Daemon ist zoneadmd(1M). Der Daemon stellt keine Programmierungsschnittstelle dar.


Hinweis –

Tabelle 27–5 führt die Befehle auf, die in der globalen Zone zum Anzeigen von Informationen über alle nicht-globalen Zonen, einschließlich der Branded Zones verwendet werden können. Tabelle 27–4 führt die Befehle auf, die mit dem Resource Capping Daemon verwendet werden können.


Einrichten von lx Branded Zones auf einem System (Übersicht der Schritte)

Die folgende Tabelle enthält eine Übersicht aller Schritte, die beim ersten Einrichten von lx Zonen auf einem System ausgeführt werden müssen.

Aufgabe 

Beschreibung 

Siehe 

Identifizieren aller 32–Bit Linux-Anwendungen, die in einer Zone ausgeführt werden sollen. 

Bewerten der Systemanforderungen der Anwendung. 

Lesen Sie ggf. Ihre unternehmerischen Ziele und Ihre Systemdokumentation. 

Ermitteln der Anzahl der zu konfigurierenden Zonen. 

Analysieren Sie: 

  • Die Anzahl der Linux-Anwendungen, die ausgeführt werden müssen.

  • Den für Linux-Branded Zones erforderlichen Festplattenspeicherplatz.

  • Ob ein Skript verwendet werden muss.

Lesen Sie dazu Unterstützung von Anwendungen, Anforderungen an System und Speicherplatz, Bewerten des aktuellen System-Setups und Skript zur Konfiguration mehrerer lx Branded Zones.

Prüfen Sie, ob Resource Pools mit der Zone verwendet werden müssen, um einen Container zu erstellen. 

Wenn Sie Resource Pools verwenden, müssen Sie die Pools konfigurieren, bevor Sie Zonen konfigurieren. 

Mit den zonecfg-Eigenschaften können Sie einer Zone schnell zonenweite Resource Controls und Pools hinzufügen.

Lesen Sie dazu So konfigurieren Sie eine lx Branded Zone und Kapitel 13Erstellen und Verwalten von Resource Pools (Vorgehen).

Durchführen der Schritte zur Vorkonfiguration. 

Festlegen von Zonenname und Zonenpfad in jeder Zone. Beziehen von IP-Adressen, wenn Netzwerkverbindungen erforderlich sind. Festlegen der Scheduling-Klasse der Zone. Festlegen des Berechtigungssets, auf den Prozesse innerhalb der Zone beschränkt sein sollen, falls die Standardberechtigungen nicht ausreichen. 

Weitere Informationen zu Zonenname, Zonenpfad, IP-Adressen und Scheduling-Klasse finden Sie unter lx Branded Zone – Konfiguration der Komponenten. Eine Liste der Standardberechtigungen und anderer Berechtigungen, die in einer nicht-globalen Zone konfiguriert werden können, finden Sie unter Berechtigungen in einer nicht-globalen Zone.

Weitere Informationen zum Zuweisen von Resource Pools finden Sie unter Arbeitsweise von Zonen und So konfigurieren Sie eine lx Branded Zone.

Entwickeln von Konfigurationen. 

Konfigurieren der nicht-globalen Zonen. 

Weitere Informationen finden Sie unter Konfigurieren, Prüfen und Übernehmen einer Zone und in der Manpage zonecfg(1M).

Überprüfen und Installieren der konfigurierten Zonen (als globaler Administrator). 

Die Zonen müssen vor dem Booten der Zone überprüft und installiert werden. Sie müssen eine Linux-Distribution beziehen, bevor Sie eine Linux Branded Zone installieren können. 

Lesen Sie dazu Kapitel 34Einführung in das Installieren, Booten, Anhalten, Klonen und Deinstallieren von lx Branded Zones und Kapitel 35Installieren, Booten, Anhalten, Deinstallieren und Klonen von lx Branded Zones (Vorgehen).

Booten der nicht-globalen Zonen (als globaler Administrator). 

Booten jeder Zone, um sie in den Status „running“ zu überführen. 

Lesen Sie dazu Kapitel 35Installieren, Booten, Anhalten, Deinstallieren und Klonen von lx Branded Zones (Vorgehen).

Vorbereiten der neuen Zone für den Einsatz in der Produktion. 

Erstellen von Benutzerkonten, hinzufügen der erforderlichen Software und anpassen der Zonenkonfiguration mithilfe von standardmäßigen Administrationstools und -methodologien eines Linux-Systems innerhalb der Zone. 

Lesen Sie die Dokumentation, in der das Einrichten eines neu installierten Computers und das Installieren von Anwendungen beschrieben ist. Weitere Aspekte, die für ein System mit installierten Zonen gelten, sind in diesem Handbuch enthalten.