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
Verwalten von ZFS-Dateisystemen (Übersicht)
Erstellen, Entfernen und Umbenennen von ZFS-Dateisystemen
Erstellen eines ZFS-Dateisystems
Löschen eines ZFS-Dateisystems
Umbenennen eines ZFS-Dateisystems
Abfragen von ZFS-Dateisysteminformationen
Auflisten grundlegender ZFS-Informationen
Erstellen komplexer ZFS-Abfragen
Verwalten von ZFS-Eigenschaften
Vererben von ZFS-Eigenschaften
Abfragen von ZFS-Eigenschaften
Abfragen von ZFS-Eigenschaften für Skripten
Einhängen und Freigeben von ZFS-Dateisystemen
Verwalten von ZFS-Einhängepunkten
Einhängen von ZFS-Dateisystemen
Verwenden temporärer Einhängepunkte
Aushängen von ZFS-Dateisystemen
Freigeben und Sperren von ZFS-Dateisystemen
Einstellen der Freigabesemantik
Sperren von ZFS-Dateisystemen für den Netzwerkzugriff
Freigeben von ZFS-Dateisystemen für den Netzwerkzugriff
Freigabeverhalten bei Legacy-Dateisystemen
Einstellen von ZFS-Kontingenten und -Reservierungen
Setzen von Kontingenten für ZFS-Dateisysteme
Einrichten von Benutzer- und Gruppenkontingenten auf einem ZFS-Dateisystem
Setzen von Reservierungen für ZFS-Dateisysteme
Aktualisieren von 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
11. Problembehebung und Pool-Wiederherstellung in Oracle Solaris ZFS
Mithilfe von Eigenschaften kann das Verhalten von Dateisystemen, Volumes, Schnappschüssen und Klonen gesteuert werden Sofern nicht anders angegeben, gelten die in diesem Abschnitt beschriebenen Eigenschaften für alle Dataset-Typen.
Eigenschaften werden in zwei Typen (native und benutzerdefinierte Eigenschaften) eingeteilt. Native Eigenschaften exportieren interne Statistikinformationen und steuern das Systemverhalten von ZFS-Dateisystemen. Darüber hinaus können native Eigenschaften konfigurierbar oder schreibgeschützt sein. Benutzerdefinierte Eigenschaften wirken sich nicht auf das Verhalten von ZFS-Dateisystemen aus, können jedoch zum Versehen von Datasets mit Informationen, die für Ihre lokalen Gegebenheiten wichtig sind, verwendet werden. Weitere Informationen zu benutzerdefinierten Eigenschaften finden Sie unter Benutzerdefinierte ZFS-Eigenschaften.
Die meisten konfigurierbaren Eigenschaften sind vererbbar. Vererbbare Eigenschaften werden von einem übergeordneten Dataset an alle seine untergeordneten Datasets weitergegeben.
Alle vererbbaren Eigenschaften haben eine Quelle, die angibt, wie eine Eigenschaft erhalten wurde. Die Eigenschaftsquelle kann die folgenden Werte besitzen:
Dieser Wert zeigt an, dass die Eigenschaft mithilfe des Befehls zfs set (siehe Setzen von ZFS-Eigenschaften) explizit für das Dataset festgelegt wurde.
Dieser Wert zeigt an, dass die Eigenschaft von einem übergeordneten Objekt geerbt wurde.
Dieser Wert zeigt an, dass der Wert der betreffenden Eigenschaft weder geerbt noch lokal gesetzt wurde. Diese Quelle resultiert daraus, dass kein übergeordnetes Objekt eine Eigenschaft aufweist, die mit source local definiert ist.
In der folgenden Tabelle sind schreibgeschützte und konfigurierbare native Eigenschaften von ZFS-Dateisystemen aufgeführt. Schreibgeschützte Eigenschaften sind entsprechend gekennzeichnet. Alle anderen in dieser Tabelle aufgeführten nativen Eigenschaften sind konfigurierbar. Weitere Informationen zu benutzerdefinierten Eigenschaften finden Sie unter Benutzerdefinierte ZFS-Eigenschaften.
Tabelle 6-1 Beschreibungen nativer ZFS-Eigenschaften
|
Schreibgeschützte native Eigenschaften können gelesen, aber nicht gesetzt werden. Schreibgeschützte native Eigenschaften werden nicht vererbt. Einige native Eigenschaften gelten nur für bestimmte Dataset-Typen. In solchen Fällen ist der entsprechende Dataset-Typ in der Beschreibung in Tabelle 6-1 aufgeführt.
Die schreibgeschützten nativen Eigenschaften sind hier aufgeführt und in Tabelle 6-1 beschrieben.
available
compressratio
creation
mounted
origin
referenced
type
used
Ausführliche Informationen finden Sie unter Die Eigenschaft used.
usedbychildren
usedbydataset
usedbyrefreservation
usedbysnapshots
Weitere Informationen zur Berechnung von Festplattenkapazität (einschließlich Informationen zu den Eigenschaften used, referenced und available) finden Sie unter Berechnung von ZFS-Festplattenkapazität.
Die Eigenschaft used ist eine schreibgeschützte Eigenschaft, die die für ein Dataset und alle seine untergeordneten Objekte belegte Festplattenkapazität angibt. Dieser Wert wird gegen die für das Dataset gesetzten Kontingente und Reservierungen geprüft. Die belegte Festplattenkapazität enthält nicht die Reservierungen für das Dataset selbst, schließt jedoch die Reservierungen für untergeordnete Datasets ein. Die Festplattenkapazität, die das Dataset aufgrund seines übergeordneten Datasets belegt, sowie die Festplattenkapazität, die beim rekursiven Löschen des Datasets freigegeben wird, sind größer als die Kapazität, die das Dataset für den belegten Speicherplatz und die Reservierung benötigt.
Bei der Erstellung von Schnappschüssen wird diese Festplattenkapazität anfänglich vom Schnappschuss und dem Dateisystem (sowie eventuellen früheren Schnappschüssen) gemeinsam genutzt. Wenn sich ein Dateisystem mit der Zeit ändert, gehört zuvor gemeinsam genutzte Festplattenkapazität dann ausschließlich dem Schnappschuss und wird in die Berechnung des vom Schnappschuss belegten Speicherplatzes einbezogen. Wie viel Festplattenkapazität von einem Schnappschuss belegt wird, hängt von den speziellen Daten des Schnappschusses ab. Zudem kann durch das Löschen von Schnappschüssen die Festplattenkapazität, die Schnappschüssen eindeutig zugewiesen ist (und von diesen verwendet wird), größer werden. Weitere Informationen zu Schnappschüssen und Speicherplatzaspekten finden Sie in Verhalten bei ungenügendem Speicherplatz.
In die belegte, verfügbare und referenzierte Festplattenkapazität werden keine anstehenden Änderungen einbezogen. Anstehende Änderungen werden im Allgemeinen innerhalb weniger Sekunden abgeschlossen. Nach Abschluss eines Schreibvorgangs auf dem Datenträger durch die Funktion fsync(3c) oder O_SYNC werden die Informationen zur belegten Festplattenkapazität nicht unbedingt sofort aktualisiert.
Die Informationen der Eigenschaften usedbychildren, usedbydataset , usedbyrefreservation und usedbysnapshots kann mit dem Befehl zfs list - o space angezeigt werden. Diese Eigenschaften bestimmen die Eigenschaft used für Festplattenkapazität, die von untergeordneten Objekten belegt wird. Weitere Informationen finden Sie in Tabelle 6-1.
Konfigurierbare native Eigenschaften können gelesen und gesetzt werden. Konfigurierbare native Eigenschaften werden mithilfe des Befehls zfs set(siehe Setzen von ZFS-Eigenschaften) bzw. zfs create (siehe Erstellen eines ZFS-Dateisystems) gesetzt. Außer Kontingenten und Reservierungen werden konfigurierbare Eigenschaften vererbt. Weitere Informationen zu Kontingenten und Reservierungen finden Sie unter Einstellen von ZFS-Kontingenten und -Reservierungen.
Einige konfigurierbare native Eigenschaften gelten nur für bestimmte Dataset-Typen. In solchen Fällen ist der entsprechende Dataset-Typ in der Beschreibung in Tabelle 6-1 aufgeführt. Sofern nichts Anderes vermerkt ist, gilt eine Eigenschaft für alle Dataset-Typen: Dateisysteme, Volumes, Klone und Schnappschüsse.
Die konfigurierbaren Eigenschaften sind hier aufgeführt und in Tabelle 6-1 beschrieben.
aclinherit
Eine ausführliche Beschreibung finden Sie unter Eigenschaften von Zugriffskontrolllisten (aclinherit).
aclmode
Eine ausführliche Beschreibung finden Sie unter Eigenschaften von Zugriffskontrolllisten (aclinherit).
atime
canmount
checksum
compression
copies
devices
exec
mountpoint
primarycache
quota
readonly
recordsize
Eine ausführliche Beschreibung finden Sie unter Die Eigenschaft recordsize.
refquota
refreservation
reservation
secondarycache
shareiscsi
sharenfs
setuid
snapdir
version
volsize
Eine ausführliche Beschreibung finden Sie unter Die Eigenschaft volsize.
volblocksize
zoned
xattr
Wenn die Eigenschaft canmount auf off gesetzt wird, kann das Dateisystem nicht mithilfe der Befehle zfs mount bzw. zfs mount -a eingehängt werden. Das Setzen dieser Eigenschaft auf off gleicht dem Setzen der Eigenschaft mountpoint auf none. Der Unterschied besteht darin, dass das Dataset trotzdem noch die normale Eigenschaft mountpoint besitzt, die vererbt werden kann. Sie können diese Eigenschaft beispielsweise auf off setzen und Eigenschaften setzen, die an untergeordnete Dateisysteme vererbt werden. Das übergeordnete Dateisystem selbst wird jedoch nicht eingehängt und ist nicht für Benutzer zugänglich. In diesem Fall dient das übergeordnete Dateisystem als Container, für den Sie Eigenschaften festlegen können. Der Container selbst ist jedoch nicht zugänglich.
Im folgenden Beispiel wird das Dateisystem userpool erstellt und dessen Eigenschaft canmount auf off gesetzt. Einhängepunkte für untergeordnete Benutzerdateisysteme werden auf ein einziges Verzeichnis (/export/home ) gesetzt. Am übergeordneten Dateisystem gesetzte Eigenschaften werden von untergeordneten Dateisystemen geerbt; das übergeordnete Dateisystem selbst wird jedoch nicht eingehängt.
# zpool create userpool mirror c0t5d0 c1t6d0 # zfs set canmount=off userpool # zfs set mountpoint=/export/home userpool # zfs set compression=on userpool # zfs create userpool/user1 # zfs create userpool/user2 # zfs mount userpool/user1 /export/home/user1 userpool/user2 /export/home/user2
Durch Setzen der Eigenschaft canmount auf noauto kann das Dataset nur ausdrücklich, nicht aber automatisch eingehängt werden. Über diese Einstellung wird von der Oracle Solaris Upgrade-Software festgelegt, dass nur Datasets aus der aktiven Boot-Umgebung beim Booten eingehängt werden.
Die Eigenschaft recordsize legt eine empfohlene Blockgröße für Dateien im Dateisystem fest.
Diese Eigenschaft dient zur Zusammenarbeit mit Datenbanken, die auf Dateien in festen Blockgrößen zugreifen. ZFS passt Blockgrößen automatisch an interne Algorithmen an, die für typische Zugriffsstrukturen optimiert wurden. Für Datenbanken, die sehr große Dateien erstellen, Dateien jedoch mit wahlfreiem Zugriff in kleineren Blöcken lesen, können diese Algorithmen unter Umständen nicht optimal sein. Wenn Sie die Eigenschaft recordsize auf einen Wert setzen, der der Datensatzgröße der betreffenden Datenbank entspricht bzw. größer als diese ist, kann die Leistung bedeutend verbessert werden. Die Verwendung dieser Eigenschaft für allgemeine Dateisysteme kann sich negativ auf die Leistung auswirken und wird nicht empfohlen. Die angegebene Größe muss ein Zweierpotenzwert sein, der größer als oder gleich 512 Byte und kleiner als oder gleich 128 KB ist. Das Ändern der Eigenschaft recordsize eines Dateisystems wirkt sich nur auf Dateien aus, die nach der Änderung erstellt wurden. Bereits vorhandene Dateien bleiben unverändert.
Die Abkürzung der Eigenschaft lautet recsize.
Die Eigenschaft volsize legt die logische Größe eines Volumes fest. Standardmäßig wird beim Erstellen eines Volumes Speicherplatz der gleichen Kapazität reserviert. Alle Änderungen der Eigenschaft volsize werden entsprechend in der Reservierung geändert. Diese Überprüfungen dienen zum Verhindern unerwarteten Systemverhaltens. Je nachdem, wie ein Volume benutzt wird, kann es undefiniertes Systemverhalten oder Datenbeschädigung verursachen, wenn es weniger Speicherplatz enthält, als es eigentlich angefordert hat. Solche Effekte können auch auftreten, wenn die Kapazität eines Volumes geändert wird, während es in Benutzung ist. Dies gilt besonders dann, wenn die Volume-Kapazität verkleinert wird. Gehen Sie bei der Änderung einer Volume-Kapazität stets mit äußerster Sorgfalt vor.
Obwohl dies nicht empfohlen wird, können Sie ein Sparse-Volume erstellen, indem Sie für den Befehl -zfs create -V das Flag s angeben oder die Reservierung nach der Erstellung des Volumes entsprechend ändern. Bei Sparse-Volumes ist der Wert der Reservierung ungleich der Volume-Kapazität. Änderungen der Eigenschaft volsize wirken sich bei Sparse-Volumes nicht auf den Reservierungswert aus.
Weitere Informationen zur Verwendung von Volumes finden Sie unter ZFS-Volumes.
Zusätzlich zu den nativen Eigenschaften unterstützt ZFS auch beliebige benutzerdefinierte Eigenschaften. Benutzerdefinierte Eigenschaften wirken sich nicht auf das ZFS-Verhalten aus, können jedoch zum Versehen von Datasets mit Informationen, die für Ihre lokalen Gegebenheiten wichtig sind, verwendet werden.
Namen benutzerdefinierter Eigenschaften müssen den folgenden Konventionen genügen:
Sie müssen einen Doppelpunkt (:) enthalten, damit sie von nativen Eigenschaften unterschieden werden können.
Sie dürfen Kleinbuchstaben, Zahlen und die folgenden Interpunktionszeichen enthalten: ':', '+', '.', '_'.
Der Name einer benutzerdefinierten Eigenschaft darf maximal 256 Zeichen lang sein.
Namen benutzerdefinierter Eigenschaften sollten generell in die folgenden beiden Komponenten aufgeteilt werden, obwohl dies für ZFS nicht obligatorisch ist:
module:property
Bei der programmatischen Verwendung von Eigenschaften sollten Sie für die Komponente Modul einen umgekehrten DNS-Domänennamen verwenden. Dadurch wird die Wahrscheinlichkeit verringert, dass zwei unabhängig voneinander entwickelte Pakete die gleiche Eigenschaft für unterschiedliche Zwecke nutzen. Eigenschaftsnamen, die mit com.sun beginnen, sind für Oracle Corporation reserviert.
Die Werte benutzerdefinierter Eigenschaften müssen folgenden Konventionen entsprechen:
Sie müssen aus beliebigen Zeichenketten bestehen, die immer vererbt und niemals validiert werden.
Der Wert einer benutzerdefinierten Eigenschaft darf maximal 1024 Zeichen lang sein.
Beispiel:
# zfs set dept:users=finance userpool/user1 # zfs set dept:users=general userpool/user2 # zfs set dept:users=itops userpool/user3
Alle Befehle, die Eigenschaften verwenden (z. B. zfs list, zfs get, zfs set usw.) können native und benutzerdefinierte Eigenschaften nutzen.
Beispiel:
zfs get -r dept:users userpool NAME PROPERTY VALUE SOURCE userpool dept:users all local userpool/user1 dept:users finance local userpool/user2 dept:users general local userpool/user3 dept:users itops local
Benutzerdefinierte Eigenschaften können mit dem Befehl zfs inherit gelöscht werden. Beispiel:
# zfs inherit -r dept:users userpool
Wenn die betreffende Eigenschaft nicht in einem übergeordneten Dataset definiert wurde, wird sie komplett entfernt.