Oracle Solaris ZFS-Administrationshandbuch

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

In diesem Kapitel werden einige wichtige Unterschiede zwischen Oracle Solaris ZFS und herkömmlichen Dateisystemen erläutert. Durch das Verständnis dieser wichtigen Unterschiede werden Unklarheiten des Zusammenwirkens von herkömmlichen Tools mit ZFS ausgeräumt.

Dieses Kapitel enthält die folgenden Abschnitte:

Granularität von ZFS-Dateisystemen

Früher waren Dateisysteme auf ein Datenspeichergerät und damit auf die Kapazität dieses Geräts beschränkt. Das Erstellen und Neuerstellen herkömmlicher Dateisysteme aufgrund von Kapazitätsbeschränkungen ist zeitaufwändig und in einigen Fällen kompliziert. Herkömmliche Verwaltungslösungen unterstützen diesen Prozess.

Da ZFS-Dateisysteme nicht auf spezielle Geräte beschränkt sind, können sie ähnlich wie Verzeichnisse schnell und einfach erstellt werden. ZFS-Dateisysteme werden innerhalb der verfügbaren Festplattenkapazität des Speicher-Pools, in dem sie enthalten sind, automatisch vergrößert.

Anstatt ein Dateisystem (z. B. /export/home) zum Verwalten von Benutzerverzeichnissen zu erstellen, können Sie pro Benutzer ein Dateisystem anlegen. Sie können Dateisysteme auf einfache Weise einrichten und verwalten, indem Sie Eigenschaften festlegen, die von untergeordneten Dateisystemen innerhalb einer Hierarchie geerbt werden.

Ein Beispiel, das zeigt, wie eine Dateisystemhierarchie erstellt wird, finden Sie unter Erstellen einer ZFS-Dateisystemhierarchie.

Berechnung von ZFS-Festplattenkapazität

ZFS beruht auf dem Konzept der Datenspeicherung in Pools. Im Gegensatz zu herkömmlichen, physischen Datenträgern direkt zugewiesenen Dateisystemen teilen sich ZFS-Dateisysteme in einem Pool den in diesem Pool verfügbaren Speicherplatz. Somit kann sich die verfügbare Festplattenkapazität, die von Dienstprogrammen wie z. B. df gemeldet wird, auch dann ändern, wenn das betreffende Dateisystem inaktiv ist, da andere Dateisysteme im Pool Festplattenkapazität belegen bzw. freigeben.

Bitte beachten Sie, dass die maximal mögliche Dateisystemkapazität durch die Zuteilung von Kontingenten beschränkt werden kann. Weitere Informationen zu Kontingenten finden Sie unter Setzen von Kontingenten für ZFS-Dateisysteme. Durch Reservierungen kann einem Dateisystem eine bestimmte Festplattenkapazität garantiert werden. Weitere Informationen zu Reservierungen finden Sie unter Setzen von Reservierungen für ZFS-Dateisysteme. Dieses Modell gleicht dem NFS-Modell sehr; dort werden mehrere Verzeichnisse vom gleichen Dateisystem (z. B. /home) eingehängt.

Alle Metadaten werden in ZFS dynamisch zugewiesen. In herkömmlichen Dateisystemen erfolgt die Zuweisung von Metadaten meist vorher. Deswegen muss für diese Metadaten schon beim Erstellen des Dateisystems zusätzlicher Speicherplatz reserviert werden. Dieses Verhalten bedeutet weiterhin, dass die mögliche Gesamtdateianzahl eines Dateisystems schon vorher festgelegt ist. Da ZFS Metadaten nach Bedarf zuweist, muss vorher kein zusätzlicher Speicherplatz reserviert werden, und die Anzahl von Dateien wird lediglich durch die verfügbare Festplattenkapazität begrenzt. Die Ausgabe des Befehls df -g ist bei ZFS anders als bei herkömmlichen Dateisystemen zu interpretieren. Die unter total files ausgegebene Dateinanzahl ist lediglich ein Schätzwert, der auf dem Betrag des im Pool verfügbaren Speicherplatzes beruht.

ZFS ist ein transaktionales Dateisystem. Das bedeutet, dass die meisten Dateisystemmodifikationen in Transaktionsgruppen zusammengefasst und asynchron auf dem Datenträger ausgeführt werden. Diese Modifikationen gelten so lange als anstehende Änderungen, bis sie auf dem Datenträger abgeschlossen sind. Die von einer Datei oder einem Dateisystem belegte, verfügbare und referenzierte Festplattenkapazität berücksichtigt keine anstehenden Änderungen. Anstehende Änderungen werden im Allgemeinen innerhalb weniger Sekunden abgeschlossen. Auch nach Abschluss eines Schreibvorgangs auf der Festplatte durch fsync(3c) oder O_SYNC werden die Informationen zur belegten Festplattenkapazität nicht unbedingt sofort aktualisiert.

Weitere Informationen zum Verbrauch von ZFS-Festplattenkapazität, der über die Befehle du und df gemeldet wird, finden Sie unter:

http://hub.opensolaris.org/bin/view/Community+Group+zfs/faq/#whydusize

Verhalten bei ungenügendem Speicherplatz

Snapshots von Dateisystemen sind in ZFS äußerst einfach und ohne hohen Aufwand zu erstellen. Snapshots sind in den meisten ZFS-Umgebungen vorhanden. Weitere Informationen zu ZFS-Snapshots finden Sie in Kapitel 7Arbeiten mit Oracle Solaris ZFS-Snapshots und -Klonen.

Das Vorhandensein von Snapshots kann beim Freigeben von Festplattenkapazität ein unvorgesehenes Verhalten hervorrufen. Normalerweise können Sie mit den entsprechenden Zugriffsrechten eine Datei aus einem vollständigen Dateisystem löschen, wodurch im Dateisystem mehr Festplattenkapazität verfügbar wird. Wenn die zu löschende Datei jedoch in einem Snapshot eines Dateisystems vorhanden ist, wird durch das Löschen dieser Datei keine Festplattenkapazität freigegeben. Die von dieser Datei belegten Datenblöcke werden weiterhin vom Snapshot referenziert.

Deswegen kann infolge des Löschens einer Datei mehr Festplattenkapazität belegt werden, da eine neue Verzeichnisversion erstellt werden muss, die den neuen Namensraumstatus widerspiegelt. Dadurch können beim Löschen von Dateien unvorhergesehene ENOSPC- oder EDQUOT-Fehler auftreten.

Einhängen von ZFS-Dateisystemen

ZFS soll die Komplexität verringern und die Administration vereinfachen. Bei herkömmlichen Dateisystemen müssen Sie beispielsweise bei jedem Hinzufügen eines neuen Dateisystems die Datei /etc/vfstab entsprechend ändern. In ZFS ist das nicht mehr erforderlich, da Dateisysteme je nach den Dataset-Eigenschaften automatisch ein- und ausgehängt werden. ZFS-Einträge müssen also nicht in der Datei /etc/vfstab verwaltet werden.

Weitere Informationen zum Einhängen von Dateisystemen und Freigeben von ZFS-Dateisystemen für den Netzwerkzugang finden Sie unter Einhängen und Freigeben von ZFS-Dateisystemen.

Herkömmliche Datenträgerverwaltung

Wie bereits unter Speicher-Pools in ZFS erwähnt, ist für ZFS kein spezielles Dienstprogramm zur Datenträgerverwaltung erforderlich. ZFS arbeitet mit im raw-Modus betriebenen Geräten. Deswegen können Speicher-Pools erstellt werden, die aus (software- oder hardwarebasierten) Logical Volumes bestehen. Diese Konfiguration wird jedoch nicht empfohlen, da ZFS am besten mit im raw-Modus betriebenen Geräten arbeitet. Die Verwendung von Logical Volumes kann sich negativ auf die Leistung und die Zuverlässigkeit auswirken und sollte deswegen vermieden werden.

Neues Solaris-Modell für Zugriffssteuerungslisten

Frühere Versionen des Betriebssystems Solaris unterstützten eine auf der POSIX-Spezifikation beruhende Implementierung von Zugriffssteuerungslisten. POSIX-basierte Zugriffssteuerungslisten dienen zum Schutz von UFS-Dateien. Zum Schutz von ZFS-Dateien wird ein neues, auf der NFSv4-Spezifikation beruhendes Solaris-Modell für Zugriffssteuerungslisten verwendet.

Die Hauptunterschiede des neuen Solaris-Zugriffssteuerungslistenmodells bestehen in Folgendem:

Weitere Informationen zu Zugriffssteuerungslisten mit ZFS-Dateien finden Sie in Kapitel 8Schützen von Oracle Solaris ZFS-Dateien mit Zugriffssteuerungslisten.