JavaScript is required to for searching.
Navigationslinks �berspringen
Druckansicht beenden
Oracle Solaris ZFS-Administrationshandbuch
search filter icon
search icon

Dokument-Informationen

Vorwort

1.  Oracle Solaris ZFS-Dateisystem (Einführung)

2.  Erste Schritte mit Oracle Solaris ZFS

3.  Unterschiede zwischen Oracle Solaris ZFS und herkömmlichen Dateisystemen

4.  Verwalten von Oracle Solaris ZFS-Speicher-Pools

5.  Installieren und Booten eines Oracle Solaris ZFS-Root-Dateisystems

6.  Verwalten von Oracle Solaris ZFS-Dateisystemen

7.  Arbeiten mit Oracle Solaris ZFS-Snapshots und -Klonen

8.  Schützen von Oracle Solaris ZFS-Dateien mit Zugriffskontrolllisten und Attributen

9.  Delegierte Oracle Solaris ZFS-Administration

10.  Fortgeschrittene Oracle Solaris ZFS-Themen

ZFS-Volumes

Verwendung von ZFS-Volumes als Swap- bzw. Dump-Gerät

Verwendung von ZFS-Volumes als Solaris-iSCSI-Zielgerät

Verwendung von ZFS in einem Solaris-System mit installierten Zonen

Hinzufügen von ZFS-Dateisystemen zu einer nicht globalen Zone

Delegieren von Datasets in eine nicht globale Zone

Hinzufügen von ZFS-Volumes zu einer nicht globalen Zone

Verwenden von ZFS-Speicher-Pools innerhalb einer Zone

Verwalten von ZFS-Eigenschaften innerhalb einer Zone

Informationen zur Eigenschaft zoned

Verwenden von ZFS-Speicher-Pools mit alternativem Root-Verzeichnis

Erstellen von ZFS-Speicher-Pools mit alternativem Root-Verzeichnis

Importieren von Speicher-Pools mit alternativem Root-Verzeichnis

ZFS-Zugriffsrechtsprofile

11.  Problembehebung und Pool-Wiederherstellung in Oracle Solaris ZFS

A.  Oracle Solaris ZFS-Versionsbeschreibungen

Index

Verwendung von ZFS in einem Solaris-System mit installierten Zonen

In den folgenden Abschnitten wird die Verwendung von ZFS auf Systemen mit Oracle Solaris-Zonen beschrieben:

Informationen zum Konfigurieren eines Systems mit einem ZFS-Root-Dateisystem, das mithilfe von Live Upgrade migriert oder gepatcht werden soll, finden Sie unter Verwenden von Live Upgrade zum Migrieren oder Aktualisieren eines Systems mit Zonen (Solaris 10 10/08) oder Verwenden des Oracle Solaris Live Upgrade zum Migrieren oder Aktualisieren eines Systems mit Zonen (ab Solaris 10 5/09).

Für die Zusammenarbeit von ZFS-Datasets mit Zonen sollten Sie folgende Aspekte berücksichtigen:

In den folgenden Abschnitten wird mit dem Begriff "ZFS-Dataset" ein Dateisystem bzw. Klon bezeichnet.

Durch Hinzufügen eines Datasets kann sich eine nicht globale Zone Festplattenkapazität mit der globalen Zone teilen, obwohl der Zonen-Administrator in der zugrunde liegenden Dateisystemhierarchie keine Eigenschaften einstellen bzw. keine neuen Dateisysteme erstellen kann. Dieser Vorgang ist mit dem Hinzufügen anderer Dateisystemtypen zu einer Zone identisch und sollte dann verwendet werden, wenn das Hauptziel in der gemeinsamen Nutzung von Festplattenkapazität besteht.

In ZFS können Datasets auch an eine nicht globale Zone delegiert werden. Dadurch erlangt der Zonen-Administrator vollständige Kontrolle über diese Datasets und alle seine untergeordneten Objekte. Der Zonen-Administrator kann Dateisysteme bzw. Klone in diesem Dataset erstellen oder löschen sowie Dataset-Eigenschaften ändern. Der Zonen-Administrator hat jedoch keine Kontrolle über Datasets, die nicht zur betreffenden Zone hinzugefügt wurden, und darf die für die oberste Hierarchieebene des delegierten Datasets gesetzten Kontingente nicht überschreiten.

Bei der Verwendung von ZFS auf Systemen mit installierten Oracle Solaris-Zonen sollten Sie Folgendes berücksichtigen:

Hinzufügen von ZFS-Dateisystemen zu einer nicht globalen Zone

Wenn das Hauptziel ausschließlich in der gemeinsamen Nutzung von Speicherplatz mit der globalen Zone besteht, können Sie ein ZFS-Dateisystem zu einer nicht globalen Zone als generisches Dateisystem hinzufügen. Die Eigenschaft mountpoint eines zu einer nicht globalen Zone hinzugefügten ZFS-Dateisystems muss auf "legacy" gesetzt sein. Stellen Sie beispielsweise beim Hinzufügen des Dateisystems tank/zone/zion zu einer nicht globalen Zone die Eigenschaft mountpoint in der globalen Zone wie folgt ein:

# zfs set mountpoint=legacy tank/zone/zion

Sie können ein ZFS-Dateisystem mit dem Unterbefehl add fs des Befehls zonecfg zu einer nicht globalen Zone hinzufügen.

Im folgenden Beispiel wird ein ZFS-Dateisystem durch den Administrator der globalen Zone aus der globalen Zone zu einer nicht globalen Zone hinzugefügt:

# zonecfg -z zion
zonecfg:zion> add fs
zonecfg:zion:fs> set type=zfs
zonecfg:zion:fs> set special=tank/zone/zion
zonecfg:zion:fs> set dir=/export/shared
zonecfg:zion:fs> end

Diese Syntax fügt das ZFS-Dateisystem tank/zone/zion zur bereits konfigurierten und unter /export/shared eingehängten Zone zion hinzu. Die Eigenschaft mountpoint des Dateisystems muss auf legacy gesetzt sein, und das Dateisystem darf nicht schon irgendwo anders eingehängt sein. Der Zonenadministrator kann Dateien im Dateisystem erstellen und löschen. Das Dateisystem kann nicht an einer anderen Stelle eingehängt werden, und der Zonenadministrator kann keine Dateisystemeigenschaften wie z. B. atime, readonly, compression usw. ändern. Der Administrator der globalen Zone ist für das Einstellen und Steuern von Dateisystemeigenschaften verantwortlich.

Weitere Informationen zum Befehl zonecfg sowie zur Konfiguration von Ressourcentypen mithilfe von zonecfg finden Sie unter Teil II, Zonen in Systemverwaltungshandbuch: Oracle Solaris Container – Ressourcenverwaltung und Solaris Zones.

Delegieren von Datasets in eine nicht globale Zone

Wenn das Hauptziel in der Delegierung der Speicherplatzverwaltung an eine Zone besteht, können Datasets mit dem Unterbefehl add dataset des Befehls zonecfg zu einer nicht globalen Zone hinzugefügt werden.

Im folgenden Beispiel wird ein ZFS-Dateisystem durch den Administrator der globalen Zone aus der globalen Zone an eine nicht globale Zone delegiert:

# zonecfg -z zion
zonecfg:zion> add dataset
zonecfg:zion:dataset> set name=tank/zone/zion
zonecfg:zion:dataset> end

Im Gegensatz zum Hinzufügen von Dateisystemen wird durch diese Syntax das ZFS-Dateisystem tank/zone/zion in der bereits konfigurierten Zone zion sichtbar. Der Zonenadministrator kann Dateisystemeigenschaften einstellen und untergeordnete Dateisysteme erstellen. Darüber hinaus kann der Zonenadministrator Schnappschüsse sowie Klone erstellen und die Dateisystemhierarchie auch anderweitig steuern.

Wenn Sie Oracle Solaris Live Upgrade zur Aktualisierung der ZFS-BU mit nicht globalen Zonen verwenden, sollten Sie vorher jegliche delegierte Datasets entfernen. Andernfalls kann das Oracle Solaris Live Upgrade nicht ausgeführt werden, was auf einen Fehler im Zusammenhang mit dem Schreibschutz des Dateisystems zurückzuführen ist. Beispiel:

zonecfg:zion>
zonecfg:zion> remove dataset name=tank/zone/zion
zonecfg:zion1> exit

Weitere Informationen zu zulässigen Aktionen innerhalb von Zonen finden Sie unter Verwalten von ZFS-Eigenschaften innerhalb einer Zone.

Hinzufügen von ZFS-Volumes zu einer nicht globalen Zone

ZFS-Volumes können nicht mit dem Unterbefehl add dataset des Befehls zonecfg zu einer nicht globalen Zone hinzugefügt werden. Mithilfe des Unterbefehls add device des Befehls zonecfg können Zonen jedoch Volumes hinzugefügt werden.

Im folgenden Beispiel wird ein ZFS-Volume durch den Administrator der globalen Zone aus der globalen Zone zu einer nicht globalen Zone hinzugefügt:

# zonecfg -z zion
zion: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:zion> create
zonecfg:zion> add device
zonecfg:zion:device> set match=/dev/zvol/dsk/tank/vol
zonecfg:zion:device> end

Mit dieser Syntax wird das Volume tank/vol zur Zonezion hinzugefügt.

Bitte beachten Sie, dass das Hinzufügen eines Volumes im Raw-Modus auch dann Sicherheitsrisiken in sich birgt, wenn das Volume keinem physischen Datenspeichergerät entspricht. Der Zonenadministrator könnte dadurch insbesondere fehlerhafte Dateisysteme erstellen, die beim Einhängen einen Systemabsturz verursachen. Weitere Informationen zum Hinzufügen von Geräten zu Zonen und den damit verbundenen Sicherheitsrisiken finden Sie unter Informationen zur Eigenschaft zoned.

Weitere Informationen zum Hinzufügen von Geräten zu Zonen finden Sie unter Teil II, Zonen in Systemverwaltungshandbuch: Oracle Solaris Container – Ressourcenverwaltung und Solaris Zones.

Verwenden von ZFS-Speicher-Pools innerhalb einer Zone

ZFS-Speicher-Pools können in Zonen werder erstellt noch geändert werden. Das Modell der delegierten Administration zentralisiert die Verwaltung physischer Datenspeichergeräte in der globalen Zone und die Verwaltung von virtuellem Speicherplatz in den nicht globalen Zonen. Obwohl Datasets auf Pool-Ebene zu einer Zone hinzugefügt werden können, sind Befehle, die die physischen Eigenschaften eines Pools ändern (z. B. Erstellen, Hinzufügen oder Entfernen von Datenspeichergeräten) innerhalb einer Zone nicht zulässig. Auch wenn physische Datenspeichergeräte mit dem Unterbefehl add device des Befehls zonecfg zu einer Zone hinzugefügt oder Dateien verwendet werden, erlaubt der Befehl zpool kein Erstellen neuer Pools innerhalb der Zone.

Verwalten von ZFS-Eigenschaften innerhalb einer Zone

Nach dem Delegieren eines Datasets an eine Zone kann der Zonenadministrator bestimmte Dataset-Eigenschaften einstellen. Wenn ein Dataset an eine Zone delegiert wird, sind alle seine übergeordneten Datasets als schreibgeschützte Datasets sichtbar. Das Dataset selbst sowie alle seine untergeordneten Datasets besitzen diesen Schreibschutz jedoch nicht. Betrachten wir zum Beispiel die folgende Konfiguration:

global# zfs list -Ho name
tank
tank/home
tank/data
tank/data/matrix
tank/data/zion
tank/data/zion/home

Würde tank/data/zion zu einer Zone hinzugefügt, besäße jedes Dataset folgende Eigenschaften.

Dataset
Sichtbar
Beschreibbar
Unveränderbare Eigenschaften
tank
Ja
Nein
-
tank/home
Nein
-
-
tank/data
Ja
Nein
-
tank/data/matrix
Nein
-
-
tank/data/zion
Ja
Ja
sharenfs, zoned, quota, reservation
tank/data/zion/home
Ja
Ja
sharenfs, zoned

Bitte beachten Sie, dass übergeordnete Datasets von tank/zone/zion schreibgeschützt sichtbar, alle untergeordneten Datasets beschreibbar und nicht zur übergeordneten Hierarchie gehörende Datasets nicht sichtbar sind. Der Zonenadministrator kann die Eigenschaft sharenfs nicht ändern, da nicht globale Zonen nicht als NFS-Server fungieren können. Der Zonenadministrator kann nicht die Eigenschaft zoned ändern, da dies ein Sicherheitsrisiko (siehe nächster Abschnitt) darstellen würde.

Privilegierte Benutzer in der Zone können jede andere einstellbare Eigenschaft ändern, ausgenommen die Eigenschaften quota und reservation. Durch dieses Verhalten kann der globale Zonenadministrator den Verbrauch von Festplattenkapazität aller Datasets in den nicht globalen Zonen überwachen.

Außerdem können nach dem Delegieren eines Datasets an eine nicht globale Zone die Eigenschaften sharenfs und mountpoint vom globalen Zonenadministrator nicht geändert werden.

Informationen zur Eigenschaft zoned

Beim Delegieren eines Datasets an eine nicht globale Zone muss dieses Dataset entsprechend gekennzeichnet werden, sodass bestimmte Eigenschaften nicht im Kontext der globalen Zone interpretiert werden. Nachdem ein Dataset an eine nicht globale Zone delegiert wurde und unter der Kontrolle eines Zonenadministrators ist, ist dessen Inhalt nicht mehr vertrauenswürdig. Wie bei anderen Dateisystemen auch können setuid-Binärdateien, symbolische Verknüpfungen oder andere fragwürdige Inhalte auftreten, die sich negativ auf die Sicherheit der globalen Zone auswirken. Darüber hinaus kann die Eigenschaft mountpoint nicht im Kontext der globalen Zone interpretiert werden, da der Zonenadministrator andernfalls den Namensplatz der globalen Zone ändern kann. Zur Lösung des letzteren Problems nutzt ZFS die Eigenschaft zoned, die anzeigt, dass ein Dataset zu einem bestimmten Zeitpunkt an eine nicht globale Zone delegiert wurde.

Die Eigenschaft zoned ist ein boolescher Wert, der beim Booten einer Zone, die ein ZFS-Dataset enthält, automatisch auf "true" gesetzt wird. Diese Eigenschaft muss vom Zonenadministrator nicht manuell gesetzt werden. Wenn die Eigenschaft zoned gesetzt ist, kann das Dataset in der globalen Zone nicht eingehängt bzw. für den Netzwerkzugriff freigegeben werden. Im folgenden Beispiel wurde tank/zone/zion an eine Zone delegiert und tank/zone/global nicht:

# zfs list -o name,zoned,mountpoint -r tank/zone
NAME                  ZONED  MOUNTPOINT
tank/zone/global        off  /tank/zone/global
tank/zone/zion           on  /tank/zone/zion
# zfs mount
tank/zone/global           /tank/zone/global
tank/zone/zion             /export/zone/zion/root/tank/zone/zion

Bitte beachten Sie den Unterschied zwischen der Eigenschaft mountpoint und dem Verzeichnis, in das das Dataset tank/zone/zion gegenwärtig eingehängt ist. Die Eigenschaft mountpoint zeigt an, wo das Dataset auf dem Datenträger gespeichert ist, und nicht, wo es gegenwärtig eingehängt ist.

Beim Entfernen eines Datasets aus einer Zone bzw. Löschen einer Zone wird die Eigenschaft zoned nicht automatisch auf "false" zurückgesetzt. Dieses Verhalten resultiert aus den diesen Aufgaben innewohnenden Sicherheitsrisiken. Da ein nicht vertrauenswürdiger Benutzer vollständigen Zugriff auf das Dataset und seine untergeordneten Datasets hatte, kann die Eigenschaft mountpoint auf ungültige Werte gesetzt worden sein oder es können in den Dateisystemen setuid-Binärdateien vorhanden sein.

Zum Vermeiden versehentlicher Sicherheitsrisiken muss die Eigenschaft zoned vom Administrator der globalen Zone manuell zurückgesetzt werden, wenn das betreffende Dataset wiederverwendet werden soll. Bevor Sie die Eigenschaft zoned auf off setzen, müssen Sie sich vergewissern, dass die Eigenschaft mountpoint des Datasets und aller seiner untergeordneten Datasets auf zulässige Werte gesetzt ist und keine setuid-Binärdateien vorhanden sind, oder die Eigenschaft setuid deaktivieren.

Nachdem Sie sich überzeugt haben, dass keine Sicherheitslücken vorhanden sind, können Sie die Eigenschaft zoned mithilfe des Befehls zfs set oder zfs inherit deaktivieren. Wenn die Eigenschaft zoned deaktiviert wird, wenn das betreffende Dataset innerhalb einer Zone verwendet wird, kann das System unvorhersehbar reagieren. Deswegen sollten Sie den Wert dieser Eigenschaft nur dann ändern, wenn Sie sich sicher sind, dass das Dataset nicht mehr von einer nicht globalen Zone verwendet wird.