Systemverwaltungshandbuch: Oracle Solaris Container - Ressourcenverwaltung und Solaris Zones

Dateisysteme und nicht-globale Zonen

In diesem Abschnitt finden Sie Informationen zu möglichen Problemen mit Dateisystemen auf einem Solaris-System mit installierten Zonen. Jede Zone verfügt über einen eigenen Bereich in der Dateisystemhierarchie, die in einem Verzeichnis beginnt, das als root der Zone bezeichnet wird. Prozesse in der Zone können nur auf Dateien in dem Teil der Hierarchie zugreifen, der sich unter dem Zonenroot befindet. Das Dienstprogramm chroot kann in einer Zone verwendet werden, es dient aber nur dazu, den Prozess auf den Root-Pfad innerhalb der Zone zu beschränken. Weitere Informationen zu chroot finden Sie in der Manpage chroot(1M).

Die Option -o nosuid

Die Option -o nosuid für das Dienstprogramm mount bietet folgende Funktionen:

Diese dateisystemspezifische Option ist für alle Solaris-Dateisysteme verfügbar, die mit mount-Dienstprogrammen eingehängt werden können. Diese Dienstprogramme sein in der Manpage mount(1M) beschrieben. In diesem Handbuch sind diese Dateisysteme unter Einhängen von Dateisystemen in Zonen aufgelistet. Dort werden auch die Leistungsmerkmale beim Einhängen beschrieben. Weitere Informationen zur Option -o nosuid finden Sie unter „Accessing Network File Systems (Reference)“ im System Administration Guide: Network Services .

Einhängen von Dateisystemen in Zonen

Wenn Dateisysteme in einer Zone eingehängt werden, wird die Option nodevices angewendet. Angenommen, eine Zone erhält Zugriff auf ein Block-Gerät (/dev/dsk/c0t0d0s7) und ein Raw-Gerät (/dev/rdsk/c0t0d0s7) entsprechend einem UFS-Dateisystem, so wird das Dateisystem automatisch als nodevices eingehängt, wenn das Einhängen innerhalb einer Zone erfolgt. Diese Regelung gilt nicht für Mounts, die über eine zonecfg-Konfiguration angegeben wurden.

Optionen zum Einhängen von Dateisystemen in nicht-globalen Zonen sind in der folgenden Tabelle beschrieben. Verfahren für diese verschiedenen Einhängevarianten finden Sie unter Konfigurieren, Prüfen und Übernehmen einer Zone und unter Einhängen von Dateisystemen in laufenden nicht-globalen Zonen.

Ein nicht in der Liste aufgeführter Dateisystemtyp kann in der Konfiguration angegeben werden, sofern er über eine Mount-Binärdatei unter /usr/lib/fstype/mount verfügt.

Dateisystem 

Optionen zum Einhängen in einer nicht-globalen Zone 

AutoFS 

Kann nicht mit zonecfg eingehängt werden; kann nicht manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden. Kann innerhalb der Zone eingehängt werden.

CacheFS 

Kann nicht in einer nicht-globalen Zone verwendet werden. 

FDFS 

Kann mit zonecfg eingehängt werden; kann manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden; kann innerhalb der Zone eingehängt werden.

HSFS 

Kann mit zonecfg eingehängt werden; kann manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden; kann innerhalb der Zone eingehängt werden.

LOFS 

Kann mit zonecfg eingehängt werden; kann manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden; kann innerhalb der Zone eingehängt werden.

MNTFS 

Kann nicht mit zonecfg eingehängt werden; kann nicht manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden. Kann innerhalb der Zone eingehängt werden.

NFS 

Kann nicht mit zonecfg eingehängt werden. V2, V3 und V4, die derzeit in Zonen unterstützten Versionen, können innerhalb der Zone eingehängt werden.

PCFS  

Kann mit zonecfg eingehängt werden; kann manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden; kann innerhalb der Zone eingehängt werden.

PROCFS 

Kann nicht mit zonecfg eingehängt werden; kann nicht manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden. Kann innerhalb der Zone eingehängt werden.

TMPFS 

Kann mit zonecfg eingehängt werden; kann manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden; kann innerhalb der Zone eingehängt werden.

UDFS 

Kann mit zonecfg eingehängt werden; kann manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden; kann innerhalb der Zone eingehängt werden.

UFS 

Kann mit zonecfg eingehängt werden; kann manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden; kann innerhalb der Zone eingehängt werden.

XMEMFS 

Kann mit zonecfg eingehängt werden; kann manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden; kann innerhalb der Zone eingehängt werden.

Die Unterstützung für dieses Dateisystem wird in einer zukünftigen Version des Solaris-Systems entfernt. 

ZFS 

Kann mit den Ressourcentypen zonecfg dataset und fs eingehängt werden.

Weitere Informationen finden Sie unter So konfigurieren Sie die Zone, Einhängen von Dateisystemen in laufenden nicht-globalen Zonen und in der Manpage mount(1M).

Aushängen von Dateisystemen in Zonen

Die Fähigkeit zum Aushängen eines Dateisystems hängt davon ab, wer das Dateisystem ursprünglich eingehängt hat. Wenn ein Dateisystem als Teil der Zonenkonfiguration mit dem Befehl zonecfg angegeben wurde, tritt die globale Zone als Eigentümer dieses Mounts auf und der Zonenadministrator der nicht-globalen Zone kann das Dateisystem nicht aushängen. Wenn das Dateisystem innerhalb der nicht-globalen Zone eingehängt wurde, beispielsweise durch Angabe des Mounts in der Datei /etc/vfstab der Zone, kann das Dateisystem vom Zonenadministrator der nicht-globalen Zone ausgehängt werden.

Sicherheitseinschränkungen und Dateisystemverhalten

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. Die Liste der modifizierten Dateisysteme folgt.

AutoFS

Autofs ist ein clientseitiger Service, der das entsprechende Dateisystem automatisch einhängt. Wenn ein Client versucht, auf ein aktuell nicht eingehängtes Dateisystem zuzugreifen, fängt das AutoFS-Dateisystem die Anforderung ab und ruft automountd auf, um das angeforderte Verzeichnis einzuhängen. AutoFS-Mounts, die innerhalb einer Zone hergestellt wurden, gelten nur lokal für diese Zone. Auf diese Mounts kann nicht von anderen Zonen zugegriffen werden; dies gilt auch für die globalen Zone. Die Mounts werden entfernt, wenn die Zone angehalten oder neu gestartet wird. Weitere Informationen zu AutoFS finden Sie unter How Autofs Works in System Administration Guide: Network Services.

Jede Zone führt ihre eigene Kopie von automountd aus. Die automatischen Zuordnungen und Zeitüberschreitungen werden vom Zonenadministrator gesteuert. Sie können das Einhängen in einer anderen Zone nicht auslösen, indem Sie einen AutoFS-Einhängepunkt für eine nicht-globale Zone von der globalen Zone kreuzen.

Bestimmte AutoFS-Mounts werden im Kernel erstellt, wenn ein anderer Mount ausgelöst wird. Solche Mounts können nicht mit der normalen umount-Schnittstelle entfernt werden, da sie als Gruppe eingehängt oder ausgehängt werden müssen. Dieses Leistungsmerkmal dient zum Herunterfahren einer Zone.

MNTFS

MNTFS ist ein virtuelles Dateisystem, das dem lokalen System schreibgeschützten Zugriff auf die Tabelle der eingehängten Dateisysteme bereitstellt. Mithilfe von mnttab umfassen die in einer nicht-globalen Zone angezeigten Dateisysteme die in dieser Zone eingehängten Dateisysteme plus eines Eintrags für den Root (/). Bei Einhängepunkten mit einem speziellen Gerät, auf das innerhalb der Zone nicht zugegriffen werden kann (wie /dev/rdsk/c0t0d0s0), ist das spezielle Gerät entsprechend dem Einhängepunkt eingestellt. Alle Mounts im System sind in der Tabelle /etc/mnttab der globalen Zone ersichtlich. Weitere Informationen zu MNTFS finden Sie in Kapitel 18, Mounting and Unmounting File Systems (Tasks) in System Administration Guide: Devices and File Systems.

NFS

Innerhalb einer Zone eingerichtete NFS-Mounts gelten nur lokal für diese Zone. Auf diese Mounts kann nicht von anderen Zonen zugegriffen werden; dies gilt auch für die globalen Zone. Die Mounts werden entfernt, wenn die Zone angehalten oder neu gestartet wird.

Wie in der Manpage mount_nfs(1M) dokumentiert, darf ein NFS-Server nicht versuchen, seine eigenen Dateisysteme einzuhängen. Daher darf eine Zone ein von der globalen Zone exportiertes Dateisystem nicht in einem NFS einhängen. Zonen können keine NFS-Server sein. Innerhalb einer Zone verhalten sich NFS-Mounts so, als ob sie mit der Option nodevices eingehängt wurden.

Die Ausgabe des Befehls nfsstat bezieht sich nur auf die Zone, in der der Befehl ausgeführt wird. Wird der Befehl z. B. in der globalen Zone ausgeführt, so werden nur Informationen zur globalen Zone ausgegeben. Weitere Informationen zum Befehl nfsstat finden Sie in der Manpage nfsstat(1M).

Der Befehl zlogin schlägt fehl, wenn sich eine der offenen Dateien oder ein Teil des Adressraums auf einem NFS befinden. Weitere Informationen finden Sie unter zlogin-Befehl.

PROCFS

Das Dateisystem /proc (oder PROCFS) bietet Prozess-Sichtbarkeit sowie Zugriffseinschränkungen und Informationen über die Zonenzuordnung von Prozessen. Über /proc sind nur Prozesse in der gleichen Zone sichtbar.

Prozesse in der globalen Zone können Prozesse und andere Objekte in nicht-globalen Zonen überwachen. Dies gestattet diesen Prozessen, systemweit zu überwachen.

Innerhalb einer Zone verhalten sich procfs-Mounts so, als ob sie mit der Option nodevices eingehängt wurden. Weitere Informationen zu procfs finden Sie in der Manpage proc(4).

LOFS

Der Bereich dessen, was über LOFS eingehängt werden kann, ist auf den Teil des Dateisystems beschränkt, der für die Zone sichtbar ist. Aus diesem Grund gibt es keine Einschränkungen für LOFS-Mounts in einer Zone.

UFS, UDFS, PCFS und andere speicherbasierte Dateisysteme

Wenn Sie den Befehl zonecfg zum Konfigurieren von speicherbasierten Dateisystemen verwenden, die über eine fsck-Binärdatei verfügen (z. B. UFS) muss der Zonenadministrator einen raw-Parameter angeben. Dieser Parameter kennzeichnet ein Raw-Gerät (zeichenorientiert), z. B. /dev/rdsk/c0t0d0s7. zoneadmd führt automatisch den Befehl fsck im nicht-interaktiven Prüfmodus an diesem Gerät aus (fsck -m), bevor es das Dateisystem einhängt. Wenn der Befehl fsck fehlschlägt, kann zoneadmd die Zone nicht in den Status „ready“ versetzen. Der von raw angegebene Pfad darf kein relativer Pfad sein.

Die Angabe eines Geräts für fsck für ein Dateisystem, das keine Binärdatei fsck unter /usr/lib/fstype/fsck enthält, führt zu einem Fehler. Auch wenn Sie kein Gerät für fsck angeben, wenn eine Binärdatei fsck für das Dateisystem vorhanden ist, tritt ein Fehler auf.

Weitere Informationen finden Sie unter Der Daemon zoneadmd und in der Manpage fsck(1M)

ZFS

Sie können ein ZFS-Dataset mit dem Befehl zonecfg und der Ressource add dataset zu einer nicht-globalen Zone hinzufügen. Das Dataset ist in der nicht-globalen Zone sichtbar und eingehängt, und in der globalen Zone nicht mehr sichtbar. Der Zonenadministrator kann Dateisysteme innerhalb dieses Datasets erstellen und löschen, Klone erstellen und löschen und die Eigenschaften des Datasets bearbeiten.

Das Attribut zoned von zfs kennzeichnet, ob ein Dataset zu einer nicht-globalen Zone hinzugefügt wurde.


# zfs get zoned tank/sales
NAME          PROPERTY    VALUE      SOURCE
tank/sales    zoned       on         local

Wenn Sie ein Dataset von der globalen Zone aus gemeinsam nutzen möchten, können Sie mit dem Befehl zonecfg und den Optionen add fs ein LOFS-mounted ZFS-Dateisystem hinzufügen. Der globale Administrator ist für das Einstellen und Steuern der Dataset-Eigenschaften verantwortlich.

Weitere Informationen zum ZFS finden Sie in Kapitel 10, Fortgeschrittene Oracle Solaris ZFS-Themen in Oracle Solaris ZFS-Administrationshandbuch.

Nicht-globale Zonen als NFS-Clients

Zonen können NFS-Clients sein. Protokolle aus Version 2, Version 3 und Version 4 werden unterstützt. Weitere Informationen zu diesen NFS-Versionen finden Sie unter Features of the NFS Service in System Administration Guide: Network Services .

Die Standardversion ist NFS Version 4. Mithilfe einer der folgenden Methoden können Sie andere NFS-Versionen auf einem Client aktivieren:

Verwendung von mknod in einer Zone nicht gestattet

Beachten Sie, dass Sie den in der Manpage mknod(1M) beschriebenen Befehl mknod nicht zum Erstellen einer speziellen Datei in einer nicht-globalen Zone verwenden können.

Durchlaufen von Dateisystemen

Der Dateisystem-Namespace einer Zone ist ein Teil des Namespace, der von der globalen Zone aus zugänglich ist. Das Durchlaufen der Dateisystemhierarchie einer nicht-globalen Zone durch nicht berechtigte Prozesse in der globalen Zone wird mit den folgenden Mitteln verhindert:

Beachten Sie, dass der Versuch eines Zugriffs auf AutoFS-Knoten, die für eine andere Zone eingehängt sind, fehlschlägt. Der globale Administrator darf keine automatischen Maps haben, die in andere Zonen hineinreichen.

Einschränken des Zugriffs von der globalen Zone auf eine nicht-globale Zone

Nachdem eine nicht-globale Zone installiert wurde, darf der Zugriff auf diese Zone niemals direkt von der globalen Zone aus erfolgen, es sei denn, mit den Befehlen eines Dienstprogramms zum System-Backup. Darüber hinaus wird eine nicht-globale Zone nicht mehr als sicher betrachtet, nachdem sie einer unbekannten Umgebung offen gelegt wurde. Ein Beispiel wäre eine Zone, die in einem öffentlich zugänglichen Netzwerk platziert wurde, in dem die Sicherheit der Zone gefährdet und eine Änderung der Dateisysteme möglich wäre. Nach einer möglichen Sicherheitsgefährdung muss der globale Administrator die Zone als nicht vertrauenswürdig behandeln.

Ein Befehl, der einen alternativen Root akzeptiert, indem die Optionen -R oder -b (oder die Entsprechungen) verwendet werden, darf nicht verwendet werden, wenn Folgendes zutrifft:

Ein Beispiel ist die Option -R Rootpfad für das Dienstprogramm pkgadd, das von der globalen Zone aus mit einem Root-Pfad zu einer nicht-globalen Zone ausgeführt wird.

Zu den Befehlen, Programmen und Dienstprogrammen, die die Option -R mit einem alternativen Root-Pfad verwenden, gehören:

Die Befehle und Programme, die -b mit einem alternativen Root-Pfad verwenden, sind: