Oracle Solaris ZFS-Administrationshandbuch

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

Dieses Kapitel bietet einen Überblick über das Oracle Solaris ZFS-Dateisystem sowie seine Funktionen und Vorteile. Darüber hinaus werden die in diesem Handbuch verwendeten Grundbegriffe erläutert.

Dieses Kapitel enthält die folgenden Abschnitte:

Neuerungen in ZFS

In diesem Abschnitt sind die neuen Leistungsmerkmale des ZFS-Dateisystems zusammengefasst.

Teilung eines ZFS-Speicher-Pools mit Datenspiegelung (zpool split)

Oracle Solaris 10 9/10: In dieser Solaris-Version können Sie den Befehl zpool split verwenden, um einen gespiegelten Speicher-Pool zu teilen, wodurch dem gespiegelten Pool eine oder mehrere Festplatten entnommen werden, um einen weiteren identischen Pool anzulegen.

Weitere Informationen finden Sie unter Erstellen eines neuen Pools durch Teilen eines ZFS-Speicher-Pools mit Datenspiegelung.

Neuer ZFS-Systemprozess

Oracle Solaris 10 9/10: In dieser Solaris-Version ist jedem ZFS-Speicher-Pool ein Prozess (zpool-poolname ) zugeordnet. Die Teilprozesse dieses Prozesses dienen zur Verarbeitung von E/A-Vorgängen, die den Pool betreffen, wie beispielsweise Komprimierung und Prüfsummenbildung. Dieser Prozess soll Aufschluss über die CPU-Auslastung der einzelnen Speicher-Pools geben. Informationen über diesen Prozess können mithilfe der Befehle ps und prstat angezeigt werden. Diese Prozesse stehen nur in der globalen Zone zur Verfügung. Weitere Informationen finden Sie unter SDC(7).

Änderungen am Befehl zpool list

Oracle Solaris 10 9/10: In dieser Solaris-Version wurde die Ausgabe des Befehls zpool list geändert, um bessere Informationen zur Speicherzuordnung bereitzustellen. Beispiel:


# zpool list tank
NAME    SIZE  ALLOC   FREE    CAP  HEALTH  ALTROOT
tank    136G  55.2G  80.8G    40%  ONLINE  -

Die Felder USED und AVAIL wurden durch ALLOC und FREE ersetzt.

Das Feld ALLOC ermittelt den physischen Speicherplatz, der allen Datasets und internen Metadaten zugeordnet ist. Das Feld FREE ermittelt den im Pool vorhandenen nicht zugeordneten Speicherplatz.

Weitere Informationen finden Sie unter Anzeigen von Informationen zu ZFS-Speicher-Pools.

Wiederherstellung des ZFS-Speicher-Pools

Oracle Solaris 10 9/10: Ein Speicher-Pool kann beschädigt werden, wenn die betreffenden Geräte nicht verfügbar sind, ein Stromausfall auftritt oder in einer redundanten ZFS-Konfiguration mehr Geräte ausfallen als unterstützt wird. Diese Version bietet neue Funktionen zur Wiederherstellung eines beschädigten Speicher-Pools. Wenn diese Wiederherstellungsfunktionen verwendet werden, können jedoch die letzten Transaktionen, die vor dem Ausfall des Pools stattgefunden haben, verloren gehen.

Zur Wiederherstellung eines beschädigten Pools können die Befehle zpool clear und zpool import verwendet werden. Diese Befehle unterstützen die Option -F. Wenn einer der Befehle zpool status, zpool clear oder zpool import ausgeführt wird, wird die Beschädigung eines Pools automatisch gemeldet. Diese Befehle beschreiben, wie der Pool wiederhergestellt wird.

Weitere Informationen finden Sie unter Reparieren von Schäden am gesamten ZFS-Speicher-Pool.

Verbesserungen von ZFS-Protokolliergeräten

Oracle Solaris 10 9/10: Folgende Verbesserungen von Protokolliergeräten stehen zur Verfügung:

RAIDZ-Konfiguration mit dreifacher Parität (raidz3)

Release Solaris 10 9/10: In dieser Solaris-Version kann eine redundante RAID-Z-Konfigurationen jetzt einfache, doppelte oder dreifache Parität besitzen. Das bedeutet, dass in einem System ein, zwei oder drei Geräteausfälle ohne Datenverlust möglich sind. Eine RAID-Z-Konfiguration mit doppelter Parität kann mithilfe des Schlüsselworts raidz3 angegeben werden. Weitere Informationen finden Sie unter Erstellen eines RAID-Z-Speicher-Pools.

Aufbewahren von ZFS-Snapshots

Oracle Solaris 10 9/10: Wenn Sie verschiedene automatische Snapshot-Richtlinien implementieren und dadurch ältere Snapshots durch zfs receive gelöscht werden, weil sie nicht mehr auf der Sendeseite vorhanden sind, können Sie die Snapshot-Aufbewahrungsfunktion dieser Solaris-Version verwenden.

Durch die Aufbewahrung eines Snapshots wird verhindert, dass er gelöscht wird. Außerdem ermöglicht diese Funktion das Löschen eines Snapshots zusammen mit Klonen in Abhängigkeit von der Entfernung des letzten Klons mithilfe des Befehls zfs destroy -d.

Sie können einen Snapshot oder eine Gruppe von Snapshots aufbewahren. Anhand der folgenden Syntax wird beispielsweise ein Aufbewahrungs-Tag, keep, für tank/home/cindys/snap@1 gesetzt.


# zfs hold keep tank/home/cindys@snap1

Weitere Informationen finden Sie unter Aufbewahren von ZFS-Snapshots.

Verbesserungen für den Austausch von ZFS-Speichergeräten

Oracle Solaris 10 9/10: In dieser Solaris-Version wird ein Systemereignis (sysevent) bereitgestellt, wenn ein Gerät erweitert wird. ZFS wurde verbessert, um diese Ereignisse zu erkennen, und passt den Pool basierend auf der neuen Größe der LU-Nummer an, wobei die Einstellung der Eigenschaft autoexpand berücksichtigt wird. Sie können die Pool-Eigenschaft autoexpand verwenden, um die automatische Pool-Erweiterung zu aktivieren oder zu deaktivieren, wenn ein dynamisches LU-Nummer-Erweiterungsereignis empfangen wird.

Mithilfe dieser Funktion können Sie eine LU-Nummer erweitern, wodurch der Pool auf den erweiterten Bereich zugreifen kann, ohne einen Pool zu exportieren und zu importieren oder das System neu zu starten.

Die automatische Erweiterung der LU-Nummer ist beispielsweise für den Pool tank aktiviert.


# zpool set autoexpand=on tank

Sie können auch einen Pool erstellen, dessen Eigenschaft autoexpand aktiviert ist.


# zpool create -o autoexpand=on tank c1t13d0

Die Eigenschaft autoexpand ist standardmäßig deaktiviert. Sie können entscheiden, ob die LU-Nummer erweitert werden soll oder nicht.

Eine LU-Nummer kann außerdem mithilfe des Befehls zpool online - e erweitert werden. Beispiel:


# zpool online -e tank c1t6d0

Außerdem können Sie, nachdem eine LU-Nummer eingebunden oder verfügbar gemacht wurde, die Eigenschaft autoexpand zurücksetzen, indem Sie die Funktion zpool replace verwenden. Der folgende Pool wird beispielsweise mit einer 8-GB-Festplatte (c0t0d0) erstellt. Die 8-GB-Festplatte wird durch eine 16-GB-Festplatte (c1t13d0) ersetzt, aber die Pool-Kapazität wird erst dann erweitert, wenn die Eigenschaft autoexpand aktiviert ist.


# zpool create pool c0t0d0
# zpool list
NAME   SIZE   ALLOC  FREE    CAP   HEALTH  ALTROOT
pool   8.44G  76.5K  8.44G     0%  ONLINE  -
# zpool replace pool c0t0d0 c1t13d0
# zpool list
NAME   SIZE   ALLOC  FREE    CAP   HEALTH  ALTROOT
pool   8.44G  91.5K  8.44G     0%  ONLINE  -
# zpool set autoexpand=on pool
# zpool list
NAME   SIZE   ALLOC  FREE    CAP   HEALTH  ALTROOT
pool   16.8G   91.5K  16.8G    0%  ONLINE  -

Eine weitere Möglichkeit im obigen Beispiel, die LU-Nummer zu erweitern ohne die Eigenschaft autoexpand zu aktivieren, ist die Verwendung des Befehls zpool online - e. Der Befehl kann auch dann ausgeführt werden, wenn das Gerät bereits in Betrieb genommen ist. Beispiel:


# zpool create tank c0t0d0
# zpool list tank
NAME   SIZE   ALLOC  FREE    CAP   HEALTH  ALTROOT
tank   8.44G  76.5K  8.44G     0%  ONLINE  -
# zpool replace tank c0t0d0 c1t13d0
# zpool list tank
NAME   SIZE   ALLOC  FREE    CAP   HEALTH  ALTROOT
tank   8.44G  91.5K  8.44G     0%  ONLINE  -
# zpool online -e tank c1t13d0
# zpool list tank
NAME   SIZE   ALLOC  FREE    CAP   HEALTH  ALTROOT
tank   16.8G    90K  16.8G     0%  ONLINE  -

Weitere Verbesserungen für den Austausch von Speichergeräten in dieser Version sind folgende:

Weitere Informationen zum Austauschen von Geräten finden Sie unter Austauschen von Geräten in einem Speicher-Pool.

Unterstützung für ZFS- und Flash-Installation

Solaris 10 10/09: In dieser Solaris-Version haben Sie die Möglichkeit, ein JumpStart-Profil zur Identifizierung eines Flash-Archivs eines ZFS-Root-Pools einzurichten. Weitere Informationen finden Sie unter Installieren eines ZFS-Root-Dateisystems (Oracle Solaris Flash-Archiv-Installation).

ZFS-Benutzer- und Gruppenkontingente

Solaris 10 10/09: In früheren Solaris-Versionen konnten Kontingente und Reservierungen auf ZFS-Dateisysteme angewendet werden, um Festplattenkapazität zu verwalten und zu reservieren.

In dieser Solaris-Version können Sie ein Kontingent für die Festplattenkapazität einrichten, die von den Dateien eines bestimmten Benutzers oder einer bestimmten Gruppe belegt wird. Das Einrichten von Benutzer- oder Gruppenkontingenten ist in einer Umgebung mit vielen Benutzern oder Gruppen sinnvoll.

Sie können eine Benutzerkontingent mithilfe der Eigenschaft zfs userquota einrichten. Um eine Gruppenkontingent einzurichten, verwenden Sie die Eigenschaft zfs groupquota. Beispiel:


# zfs set userquota@user1=5G tank/data
# zfs set groupquota@staff=10G tank/staff/admins

Sie können die aktuelle Einstellung eines Benutzer- oder Gruppenkontingents wie folgt anzeigen:


# zfs get userquota@user1 tank/data
NAME       PROPERTY         VALUE            SOURCE
tank/data  userquota@user1  5G               local
# zfs get groupquota@staff tank/staff/admins
NAME               PROPERTY          VALUE             SOURCE
tank/staff/admins  groupquota@staff  10G               local

Stellen Sie allgemeine Informationen über ein Kontingent wie folgt ein:


# zfs userspace tank/data
TYPE        NAME   USED  QUOTA  
POSIX User  root     3K   none  
POSIX User  user1     0    5G  

# zfs groupspace tank/staff/admins
TYPE         NAME   USED  QUOTA  
POSIX Group  root     3K   none  
POSIX Group  staff     0    10G  

Sie können die von einem einzelnen Benutzer belegte Festplattenkapazität mithilfe der Eigenschaften userused@user anzeigen. Die von einer Gruppe belegte Festplattenkapazität kann mithilfe der Eigenschaft groupused@ group angezeigt werden. Beispiel:


# zfs get userused@user1 tank/staff
NAME        PROPERTY        VALUE           SOURCE
tank/staff  userused@user1  213M            local
# zfs get groupused@staff tank/staff
NAME        PROPERTY         VALUE            SOURCE
tank/staff  groupused@staff  213M             local

Weitere Informationen zum Einrichten von Benutzerkontingenten finden Sie unter Einstellen von ZFS-Kontingenten und -Reservierungen.

ZFS-Zugriffssteuerungslistenvererbungsmodus "Pass Through" zur Ausführungsberechtigung

Solaris 10 10/09: In früheren Solaris-Versionen konnte die Zugriffssteuerungslistenvererbung angewendet werden, sodass alle Dateien mit den Zugriffsrechten 0664 oder 0666 erstellt wurden. Wenn Sie die Ausführungsberechtigung aus dem Dateierstellungsmodus optional in die vererbte Zugriffssteuerungsliste einschließen möchten, können Sie in dieser Version den Modus aclinherit verwenden, um die Ausführungsberechtigung auf die vererbte Zugriffssteuerungsliste zu übertragen.

Wenn aclinherit=passthrough-x für ein ZFS-Dataset aktiviert ist, können Sie die Ausführungsberechtigung für eine Ausgabedatei einschließen, die mit dem Compiler-Tool cc oder gcc erstellt wurde. Beinhaltet die vererbbare Zugriffssteuerungsliste die Ausführungsberechtigung nicht, so ist die Ausgabe des Compilers erst dann ausführbar, wenn Sie mit dem Befehl chmod die Berechtigungen der Datei ändern.

Weitere Informationen finden Sie unter Beispiel 8–12.

Verbesserungen der ZFS-Eigenschaften

Solaris 10 10/09 und Oracle Solaris 10 9/10: Diese Versionen enthalten folgende Verbesserungen des ZFS-Dateisystems.

Wiederherstellung von ZFS-Protokolliergeräten

Solaris 10 10/09: In dieser Version identifiziert ZFS Intent-Protokoll-Fehler durch den Befehl zpool status. Diese Fehler werden auch von der Fault Management Architecture (FMA) gemeldet. Ein Intent-Protokoll-Fehler kann sowohl mit ZFS als auch mit FMA behoben werden.

Wenn das System beispielsweise plötzlich herunterfährt, bevor synchrone Schreibvorgänge in einem Pool mit separatem Protokolliergerät abgeschlossen werden können, werden Meldungen wie die folgenden angezeigt:


# zpool status -x
  pool: pool
 state: FAULTED
status: One or more of the intent logs could not be read.
        Waiting for adminstrator intervention to fix the faulted pool.
action: Either restore the affected device(s) and run 'zpool online',
        or ignore the intent log records by running 'zpool clear'.
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        pool        FAULTED      0     0     0 bad intent log
          mirror    ONLINE       0     0     0
            c0t1d0  ONLINE       0     0     0
            c0t4d0  ONLINE       0     0     0
        logs        FAULTED      0     0     0 bad intent log
          c0t5d0    UNAVAIL      0     0     0 cannot open

Nach einem Ausfall des Protokolliergeräts können Sie den Normalbetrieb folgendermaßen wiederherstellen:

Wenn Sie den Normalbetrieb wiederherstellen möchten, ohne das Protokolliergerät zu ersetzen, können Sie den Fehler mit dem Befehl zpool clear löschen. In diesem Szenario läuft der Pool in eingeschränktem Modus, und die Protokolleinträge werden in den Haupt-Pool geschrieben, bis das separate Protokolliergerät ersetzt wurde.

Verwenden Sie gespiegelte Protokolliergeräte, um den Ausfall von Protokolliergeräten zu vermeiden.

Verwenden von Cache-Geräten im ZFS-Speicher-Pool

Solaris 10 10/09: In dieser Version können Sie Pools erstellen und Cache-Geräte angeben, die zur Speicherung von Speicher-Pool-Daten im Cache dienen.

Cache-Speicher·bietet zwischen Hauptspeicher und Festplatte eine zusätzliche Schicht zur Datenspeicherung. Cache-Geräte bieten die größte Leistungsverbesserung für die Direktspeicherung von Daten mit vorwiegend statischem Inhalt.

Beim Erstellen eines Speicher-Pools können eines oder mehrere Cache-Speichergeräte angegeben werden. Beispiel:


# zpool create pool mirror c0t2d0 c0t4d0 cache c0t0d0
# zpool status pool
  pool: pool
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        pool        ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c0t2d0  ONLINE       0     0     0
            c0t4d0  ONLINE       0     0     0
        cache
          c0t0d0    ONLINE       0     0     0

errors: No known data errors

Nach dem Erstellen von Cache-Speichergeräten werden diese nach und nach mit Daten aus dem Hauptspeicher gefüllt. Je nach Größe eines definierten Cache-Speichergeräts kann es bis zu über eine Stunde lang dauern, bis das Gerät voll ist. Die Kapazität und Lesevorgänge können mithilfe des Befehls zpool iostat wie folgt überwacht werden:


# zpool iostat -v pool 5

Nach der Erstellung eines Pools können Cache-Geräte dem Pool hinzugefügt oder aus dem Pool entfernt werden.

Weitere Informationen finden Sie unter Erstellen eines ZFS-Speicher-Pools mit Cache-Geräten und Beispiel 4–4.

Zonenmigration in einer ZFS-Umgebung

Solaris 10 5/09: Diese Version bietet eine erweiterte Unterstützung für das Migrieren von Zonen in einer ZFS-Umgebung mit Oracle Solaris Live Upgrade. Weitere Informationen finden Sie unter Verwenden des Oracle Solaris Live Upgrade zum Migrieren oder Aktualisieren eines Systems mit Zonen (ab Solaris 10 5/09).

Die Solaris 10 5/09-Versionshinweise enthalten eine Liste der bekannten Probleme mit diesem Release.

Unterstützung für Installation und Booten von ZFS-Root-Dateisystemen

Solaris 10 10/08: Mit dieser Solaris-Version können ZFS-Root-Dateisysteme installiert und gebootet werden. Das Installieren eines ZFS-Root-Dateisystems ist sowohl mit der Erstinstallationsoption als auch mit der JumpStart-Funktion möglich. Sie können aber auch Oracle Solaris Live Upgrade verwenden, um ein UFS-Root-Dateisystem auf ein ZFS-Root-Dateisystem zu migrieren. Außerdem steht ZFS-Unterstützung für Swap- und Dump-Geräte zur Verfügung. Weitere Informationen finden Sie in Kapitel 5Installieren und Booten eines Oracle Solaris ZFS-Root-Dateisystems.

Eine Liste der bekannten Probleme mit dieser Version finden Sie unter:

http://hub.opensolaris.org/bin/view/Community+Group+zfs/boot

Ziehen Sie auch die Versionshinweise für Solaris 10 10/08 heran.

Wiederherstellen eines Datasets ohne Aushängen

Solaris 10 10/08: Diese Version bietet die Möglichkeit, ein Dataset wiederherzustellen, ohne es zuvor auszuhängen. Das bedeutet, dass die Option zfs rollback -f zum Erzwingen des Aushängens nicht mehr gebraucht wird. Die Option -f wird nicht mehr unterstützt und wird bei Angabe ignoriert.

Verbesserungen des Befehls zfs send

Solaris 10 10/08: Diese Version bietet die folgenden Verbesserungen des Befehls zfs send. Mit diesem Befehl können Sie folgende Aufgaben ausführen:

Weitere Informationen finden Sie unter Senden und Empfangen komplexer ZFS-Snapshot-Datenströme.

ZFS-Kontingente und -Reservierungen ausschließlich für Dateisystemdaten

Solaris 10 10/08: Zusätzlich zu den vorhandenen ZFS-Funktionen für Kontingente und Reservierungen enthält diese Version auch Dataset-Kontingente und -Reservierungen. Diese Kontingente und Reservierungen berücksichtigen bei der Berechnung von Festplattenkapazität keine untergeordneten Objekte wie z. B. Snapshots oder Klone.

Sie können beispielsweise mit refquota einen Grenzwert von 10 GB für studentA setzen, um einen absoluten Grenzwert von 10 GB für referenzierte Festplattenkapazität festzulegen. Zum Erreichen einer zusätzlichen Flexibilität können Sie ein Kontingent von 20 GB festlegen, mit dessen Hilfe Sie die Snapshots von studentA verwalten können.


# zfs set refquota=10g tank/studentA
# zfs set quota=20g tank/studentA

Weitere Informationen finden Sie unter Einstellen von ZFS-Kontingenten und -Reservierungen.

Eigenschaften von ZFS-Speicher-Pools

Solaris 10 10/08: Die Eigenschaften von ZFS-Speicher-Pools wurden mit einer früheren Version eingeführt. Diese Version bietet zwei Eigenschaften: cachefile und failmode.

Im Folgenden werden die neuen Speicher-Pool-Eigenschaften dieser Version beschrieben:

Verbesserungen des ZFS-Befehlsprotokolls (zpool history)

Solaris 10 10/08: Der Befehl zpool history wurde um die folgenden neuen Leistungsmerkmale erweitert:

Weitere Informationen zur Verwendung des Befehls zpool history entnehmen Sie bitte dem Abschnitt Beheben von Problemen mit ZFS.

Upgrade von ZFS-Dateisystemen (zfs upgrade)

Solaris 10 10/08: Diese Version bietet den Befehl zfs upgrade, mit dem vorhandene Dateisysteme aktualisiert werden können, um neue Verbesserungen des ZFS-Dateisystems zu nutzen. ZFS-Speicher-Pools besitzen eine ähnliche Upgrade-Funktion, um vorhandene Speicher-Pools um neue Funktionalität zu erweitern.

Beispiel:


# zfs upgrade
This system is currently running ZFS filesystem version 3.

All filesystems are formatted with the current version.

Hinweis –

Auf aktualisierte Dateisysteme und Datenströme, die aus diesen aktualisierten Dateisystemen mithilfe des Befehls zfs send erstellt wurden, kann nicht auf Systemen zugegriffen werden, auf denen ältere Softwareversion laufen.


Delegierte ZFS-Administration

Solaris 10 10/08: In dieser Version können Benutzern ohne Zugriffsrechte genau definierte Zugriffsrechte für die Durchführung von ZFS-Administrationsaufgaben gewährt werden.

Zum Gewähren und Verweigern von Zugriffsrechten dienen die Befehle zfs allow und zfs unallow.

Mit der Pool-Eigenschaft delegation kann die delegierte Administration modifiziert werden. Beispiel:


# zpool get delegation users
NAME  PROPERTY    VALUE       SOURCE
users  delegation  on          default
# zpool set delegation=off users
# zpool get delegation users
NAME  PROPERTY    VALUE       SOURCE
users  delegation  off         local

Standardmäßig ist die Eigenschaft delegation aktiviert.

Weitere Informationen entnehmen Sie bitte Kapitel 9Delegierte ZFS-Administration und zfs(1M).

Einrichten separater ZFS-Protokolliergeräte

Solaris 10 10/08: Das Protokoll ZIL (ZFS Intent Log) erfüllt die POSIX-Anforderungen für synchrone Transaktionen. So setzen Datenbanken bei der Rückkehr von Systemaufrufen beispielsweise oft voraus, dass Transaktionen auf stabilen Speichergeräten stattfinden. NFS und andere Anwendungen können zur Gewährleistung der Datenstabilität ebenfalls fsync() verwenden. Standardmäßig wird das ZIL aus Blöcken innerhalb des Hauptspeicherpools zugewiesen. In dieser Solaris-Version können Sie festlegen, ob ZIL-Blöcke weiterhin vom Hauptspeicherpool oder von einem separaten Protokolliergerät zugewiesen werden sollen. Durch Verwendung separater Intent-Protokolliergeräte im ZFS-Speicher-Pool wie z. B. NVRAM oder eine spezielle Festplatte kann jedoch eine höhere Leistung erzielt werden.

Protokolliergeräte für das Intent-Protokoll von ZFS sind etwas Anderes als Datenbankprotokolldateien.

Sie können ZFS-Protokolliergeräte während oder nach der Erstellung eines Speicher-Pools einrichten. Beispiele zum Einrichten von Protokolliergeräten finden Sie unter Erstellen eines ZFS-Speicher-Pools mit Protokolliergeräten und Hinzufügen von Datenspeichergeräten zu einem Speicher-Pool.

Sie können zur Datenspiegelung an ein vorhandenes Protokolliergerät ein weiteres Protokolliergerät anschließen. Dies entspricht dem Verbinden eines Speichergeräts in einem Speicher-Pool ohne Datenspiegelung.

Berücksichtigen Sie folgende Aspekte bei der Überlegung, ob die Einrichtung eines ZFS-Protokolliergeräts für Ihre Umgebung ratsam ist:

Erstellen intermediärer ZFS-Datasets

Solaris 10 10/08: Durch Verwendung der Option -p mit den Befehlen zfs create, zfs clone und zfs rename können Sie schnell ein intermediäres Dataset erstellen, falls es noch nicht vorhanden ist.

Das folgende Beispiel zeigt, wie ZFS-Datasets (users/area51) im Speicher-Pool datab erstellt werden.


# zfs list
NAME                        USED  AVAIL  REFER  MOUNTPOINT
datab                       106K  16.5G    18K  /datab
# zfs create -p -o compression=on datab/users/area51

Wenn während des Erstellungsvorgangs bereits ein intermediäres Dataset vorhanden ist, wird er ohne Fehlermeldung abgeschlossen.

Angegebene Eigenschaften gelten für das Ziel-Dataset und nicht für die intermediären Datasets. Beispiel:


# zfs get mountpoint,compression datab/users/area51
NAME                PROPERTY     VALUE                SOURCE
datab/users/area51  mountpoint   /datab/users/area51  default
datab/users/area51  compression  on                   local

Es wird ein intermediäres Dataset mit Standard-Einhängepunkt erstellt. Alle zusätzlichen Eigenschaften werden für dieses intermediäre Dataset deaktiviert. Beispiel:


# zfs get mountpoint,compression datab/users
NAME         PROPERTY     VALUE         SOURCE
datab/users  mountpoint   /datab/users  default
datab/users  compression  off           default

Weitere Informationen finden Sie in der Manpage zfs(1M).

Verbesserungen für den Austausch von ZFS-Speichergeräten bei laufendem Betrieb

Solaris 10 10/08: Mit dieser Version reagiert ZFS effektiver auf Speichergeräte, die entfernt werden. Außerdem können eingefügte Speichergeräte jetzt automatisch erkannt werden.

Weitere Informationen finden Sie in der Manpage zpool(1M).

Rekursives Umbenennen von ZFS-Snapshots (zfs rename -r)-

Solaris 10 10/08: Der Befehl zfs rename -r ermöglicht es, alle untergeordneten ZFS-Snapshots rekursiv umzubenennen. Beispiel:

Zunächst wird ein Snapshot einiger ZFS-Dateisysteme erstellt.


# zfs snapshot -r users/home@today
# zfs list
NAME                     USED  AVAIL  REFER  MOUNTPOINT
users                    216K  16.5G    20K  /users
users/home                76K  16.5G    22K  /users/home
users/home@today            0      -    22K  -
users/home/markm          18K  16.5G    18K  /users/home/markm
users/home/markm@today      0      -    18K  -
users/home/marks          18K  16.5G    18K  /users/home/marks
users/home/marks@today      0      -    18K  -
users/home/neil           18K  16.5G    18K  /users/home/neil
users/home/neil@today       0      -    18K  -

Am folgenden Tag werden die Snapshots dann umbenannt.


# zfs rename -r users/home@today @yesterday
# zfs list
NAME                         USED  AVAIL  REFER  MOUNTPOINT
users                        216K  16.5G    20K  /users
users/home                    76K  16.5G    22K  /users/home
users/home@yesterday            0      -    22K  -
users/home/markm              18K  16.5G    18K  /users/home/markm
users/home/markm@yesterday      0      -    18K  -
users/home/marks              18K  16.5G    18K  /users/home/marks
users/home/marks@yesterday      0      -    18K  -
users/home/neil               18K  16.5G    18K  /users/home/neil
users/home/neil@yesterday       0      -    18K  -

Snapshots sind die einzigen Datasets, die rekursiv umbenannt werden können.

Weitere Informationen zu Snapshots finden Sie unter Überblick über ZFS-Snapshots und in folgendem Blog-Eintrag, in dem die Erstellung rotierender Snapshots beschrieben ist:

http://blogs.sun.com/mmusante/entry/rolling_snapshots_made_easy

Für ZFS ist gzip-Komprimierung verfügbar

Solaris 10 10/08: In dieser Solaris-Version können ZFS-Dateisysteme zusätzlich zu lzjb auch mit gzip komprimiert werden. Sie können die Komprimierung mit gzip oder gzip-N angeben, wobei N den Wert 1 bis 9 haben kann. Beispiel:


# zfs create -o compression=gzip users/home/snapshots
# zfs get compression users/home/snapshots
NAME                  PROPERTY     VALUE            SOURCE
users/home/snapshots  compression  gzip             local
# zfs create -o compression=gzip-9 users/home/oldfiles
# zfs get compression users/home/oldfiles
NAME                  PROPERTY     VALUE           SOURCE
users/home/oldfiles   compression  gzip-9          local

Weitere Informationen zum Setzen von ZFS-Eigenschaften finden Sie unter Setzen von ZFS-Eigenschaften.

Speichern mehrerer Kopien von ZFS-Benutzerdaten

Solaris 10 10/08: Sofern möglich, werden Metadaten des ZFS-Dateisystems aus Gründen der Zuverlässigkeit automatisch auf mehreren Festplatten gespeichert. Dies wird als ditto blocks bezeichnet.

In dieser Version können Sie über den Befehl zfs set copies festlegen, dass mehrere Kopien der Benutzerdaten auch pro Dateisystem gespeichert werden. Beispiel:


# zfs set copies=2 users/home
# zfs get copies users/home
NAME        PROPERTY  VALUE       SOURCE
users/home  copies    2           local

Verfügbare Werte sind 1, 2 oder 3. Der Standardwert ist 1. Diese Kopien werden zusätzlich zu den von Redundanzfunktionen (Datenspiegelung bzw. RAID-Z) auf Pool-Ebene angelegten Sicherungskopien erstellt.

Die Speicherung mehrerer Kopien von ZFS-Benutzerdaten bringt die folgenden Vorteile mit sich:


Hinweis –

Je nach Zuweisung der ditto blocks im Speicher-Pool ist es möglich, dass mehrere Kopien auf einer einzigen Festplatte abgelegt werden. Ein Ausfall einer ganzen Festplatte kann folglich bedeuten, dass sämtliche ditto blocks unverfügbar sind.


Die Verwendung von ditto blocks kann hilfreich sein, wenn Sie versehentlich einen nicht-redundanten Pool erstellen und Richtlinien für die Datenaufbewahrung festlegen müssen.

In folgendem Blog wird ausführlich beschrieben, wie sich das Speichern mehrerer Kopien in einem System mit Einzelplatten-Pool oder Mehrplatten-Pool auf den Datenschutz im Allgemeinen auswirken kann:

http://blogs.sun.com/relling/entry/zfs_copies_and_data_protection

Weitere Informationen zum Setzen von ZFS-Eigenschaften finden Sie unter Setzen von ZFS-Eigenschaften.

Verbesserte Ausgabe von zpool status

Solaris 10 8/07: Mit dem Befehl zpool status -v können Sie eine Liste der Dateien mit permanenten Fehlern ausgeben lassen. Bisher mussten die Dateinamen mit Hilfe des Befehls find -inum anhand der Liste der angezeigten Knoten ermittelt werden.

Weitere Informationen zum Anzeigen einer Liste von Dateien mit dauerhaften Fehlern finden Sie unter Reparatur beschädigter Dateien bzw. Verzeichnisse.

Verbesserungen für ZFS mit Solaris iSCSI

Solaris 10 8/07: In dieser Solaris-Version können Sie durch Setzen der Eigenschaft shareiscsi im ZFS-Volume ein ZFS-Volume als ein Solaris iSCSI-Zielgerät erstellen. Mithilfe dieses Verfahrens können Solaris iSCSI-Zielgeräte schnell eingerichtet werden. Beispiel:


# zfs create -V 2g tank/volumes/v2
# zfs set shareiscsi=on tank/volumes/v2
# iscsitadm list target
Target: tank/volumes/v2
    iSCSI Name: iqn.1986-03.com.sun:02:984fe301-c412-ccc1-cc80-cf9a72aa062a
    Connections: 0

Nach dem Erstellen des iSCSI-Zielgeräts können Sie den iSCSI-Initiator definieren. Informationen zur Einrichtung eines Solaris iSCSI-Initiators finden Sie in Kapitel 14, Configuring Oracle Solaris iSCSI Targets and Initiators (Tasks) in System Administration Guide: Devices and File Systems.

Weitere Informationen zur Verwaltung eines ZFS-Volumes als iSCSI-Zielgerät entnehmen Sie bitte dem Abschnitt Verwendung von ZFS-Volumes als Solaris-iSCSI-Zielgerät.

ZFS-Befehlsprotokoll (zpool history)

Solaris 10 8/07: In dieser Solaris-Version protokolliert ZFS automatisch erfolgreich ausgeführte Aufrufe der Befehle zfs und zpool, die zur Änderung von Pool-Zustandsdaten dienen. Beispiel:


# zpool history
History for 'newpool':
2007-04-25.11:37:31 zpool create newpool mirror c0t8d0 c0t10d0
2007-04-25.11:37:46 zpool replace newpool c0t10d0 c0t9d0
2007-04-25.11:38:04 zpool attach newpool c0t9d0 c0t11d0
2007-04-25.11:38:09 zfs create newpool/user1
2007-04-25.11:38:15 zfs destroy newpool/user1

History for 'tank':
2007-04-25.11:46:28 zpool create tank mirror c1t0d0 c2t0d0 mirror c3t0d0 c4t0d0

Dank dieses Leistungsmerkmals können Sie oder Oracle-Supportmitarbeiter feststellen, welche ZFS-Befehle bei der Behebung eines Fehlers ausgeführt wurden.

Spezifische Speicher-Pools können mit dem Befehl zpool history identifiziert werden. Beispiel:


# zpool history newpool
History for 'newpool':
2007-04-25.11:37:31 zpool create newpool mirror c0t8d0 c0t10d0
2007-04-25.11:37:46 zpool replace newpool c0t10d0 c0t9d0
2007-04-25.11:38:04 zpool attach newpool c0t9d0 c0t11d0
2007-04-25.11:38:09 zfs create newpool/user1
2007-04-25.11:38:15 zfs destroy newpool/user1

In diesem Solaris-Release werdenuser-ID, hostname und zone-name über den Befehl zpool history nicht aufgezeichnet. Diese Informationen werden jedoch erst ab Solaris-Version 10 10/08 aufgezeichnet. Weitere Informationen finden Sie unter Verbesserungen des ZFS-Befehlsprotokolls (zpool history).

Weitere Informationen zur Behebung von ZFS-Problemen siehe Beheben von Problemen mit ZFS.

Verbesserungen der ZFS-Eigenschaften

ZFS-Eigenschaft xattr

Solaris 10 8/07: Mit der Eigenschaft xattr können Sie erweiterte Attribute für ein bestimmtes ZFS-Dateisystem deaktivieren oder aktivieren. Der Standardwert ist on. Eine Beschreibung von ZFS-Eigenschaften finden Sie unter ZFS-Eigenschaften.

ZFS-Eigenschaft canmount

Solaris 10 8/07: Mit der neuen Eigenschaft canmount können Sie festlegen, ob ein Dataset mithilfe des Befehls zfs mount eingehängt werden kann. Weitere Informationen dazu finden Sie unter Die Eigenschaft canmount.

Benutzerdefinierte ZFS-Eigenschaften

Solaris 10 8/07: Zusätzlich zu den nativen Standardeigenschaften, die zum Exportieren interner Statistiken oder Steuern des ZFS-Dateisystemverhaltens dienen, stellt ZFS benutzerdefinierte Eigenschaften bereit. 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.

Weitere Informationen finden Sie unter Benutzerdefinierte ZFS-Eigenschaften.

Setzen von Eigenschaften beim Erstellen von ZFS-Dateisystemen

Solaris 10 8/07: In dieser Solaris-Version können Sie Eigenschaften nicht nur nach, sondern auch bereits während der Erstellung von Dateisystemen festlegen.

Die folgenden Beispiele zeigen die entsprechende Syntax:


# zfs create tank/home
# zfs set mountpoint=/export/zfs tank/home
# zfs set sharenfs=on tank/home
# zfs set compression=on tank/home

# zfs create -o mountpoint=/export/zfs -o sharenfs=on -o compression=on tank/home

Anzeigen aller ZFS-Dateisysteminformationen

Solaris 10 8/07: In dieser Solaris-Version können Sie sich mithilfe verschiedener Formen des Befehls zfs get Informationen zu allen Datasets anzeigen lassen, wenn weder ein Dataset noch all angegeben wurde. Bisher war es nicht möglich, mit dem Befehl zfs get Informationen aller Datensätze anzuzeigen.

Beispiel:


# zfs get -s local all
tank/home               atime          off                    local
tank/home/bonwick       atime          off                    local
tank/home/marks         quota          50G                    local

Neue Option F für -zfs receive

Solaris 10 8/07: Sie können nun die neue Option -F für den Befehl zfs receive verwenden, um das Dateisystem auf den letzten Snapshot vor dem Empfang zurückzusetzen. Die Verwendung dieser Option kann erforderlich werden, wenn das Dateisystem nach einer Rücksetzung, aber vor Beginns des Empfangs geändert wurde.

Weitere Informationen finden Sie unter Empfangen von ZFS-Snapshots.

Rekursive ZFS-Snapshots

Solaris 10 11/06: Wenn Sie mithilfe des Befehls zfs snapshot einen Dateisystem-Snapshot erstellen, können Sie die Option -r verwenden, um für alle untergeordneten Dateisysteme rekursiv Snapshots zu erstellen. Außerdem können Sie die Option - r verwenden, um alle untergeordneten Snapshots zu löschen, wenn ein Snapshot gelöscht wird.

Rekursive ZFS-Snapshots werden schnell in einem unteilbaren Vorgang erstellt. Snapshots werden entweder zusammen (d. h. alle auf einmal) oder gar nicht erstellt. Der Vorteil eines solchen Vorgangs besteht darin, dass die Snapshot-Daten stets zu einem einzigen konsistenten Zeitpunkt erstellt werden, selbst bei untergeordneten Dateisystemen.

Weitere Informationen finden Sie unter Erstellen und Löschen von ZFS-Snapshots.

RAID-Z-Konfiguration mit doppelter Parität (raidz2)

Solaris 10 11/06: Redundante RAID-Z-Konfigurationen können jetzt einfache oder doppelte Parität besitzen. Das bedeutet, dass in einem System bis zu zwei Geräteausfälle ohne Datenverlust möglich sind. Eine RAID-Z-Konfiguration doppelter Parität kann mithilfe des Schlüsselworts raidz2 angegeben werden. Entsprechend können Sie für eine RAID-Z-Konfiguration mit einfacher Parität eines der Schlüsselwörter raidz oder raidz1 angeben.

Weitere Informationen finden Sie unter Erstellen eines RAID-Z-Speicher-Pools oder zpool(1M).

Hot-Spares für ZFS-Speicher-Pools

Solaris 10 11/06: Mithilfe der ZFS-Hot-Spare-Funktion können Sie Datenträger ermitteln, die zum Ersetzen eines ausgefallenen oder fehlerhaften Geräts in einem oder mehreren Speicher-Pools verwendet werden können. Das Vorsehen eines Datenträgers als Hot-Spare-Gerät bedeutet, dass bei Ausfall eines aktiven Datenträgers im Pool das Hot-Spare-Gerät diesen automatisch ersetzt. Alternativ dazu können Sie Datenträger in einem Speicher-Pool auch manuell durch ein Hot-Spare-Gerät ersetzen.

Weitere Informationen finden Sie unter Zuweisen von Hot-Spares im Speicher-Pool und zpool(1M).

Ersetzen eines ZFS-Dateisystems durch einen ZFS-Klon (zfs promote)

Solaris 10 11/06: Der Befehl zfs promote ermöglicht es, ein vorhandenes ZFS-Dateisystem durch einen Klon desselben zu ersetzen. Diese Funktion ist hilfreich, wenn Sie an verschiedenen Versionen eines Dateisystems Tests ausführen wollen und danach eine alternative Version des Dateisystems zum aktiven Dateisystem machen möchten.

Weitere Informationen finden Sie in Ersetzen eines ZFS-Dateisystems durch einen ZFS-Klon und zfs(1M).

Aktualisieren von ZFS-Speicher-Pools (zpool upgrade)

Solaris 10 6/06: Mit dem Befehl zpool upgrade können Sie eine Aktualisierung eines Speicher-Pools vornehmen, um die neuesten Funktionen zu nutzen. Außerdem wurde der Befehl zpool status so geändert, dass Sie jetzt darauf hingewiesen werden, wenn Pools mit älteren ZFS-Versionen laufen.

Weitere Informationen finden Sie unter Aktualisieren von ZFS-Speicher-Pools und zpool(1M).

Wenn Sie die ZFS-Administrationskonsole auf einem System mit einem Pool aus früheren Solaris-Versionen nutzen möchten, müssen Sie die Pools vor Verwendung der ZFS-Administrationskonsole aktualisieren. Mit dem Befehl zpool status lässt sich feststellen, ob Pools aktualisiert werden müssen. Informationen zur ZFS-Administrationskonsole finden Sie unter Webbasierte ZFS-Verwaltung.

ZFS-Befehle ?backup“ und ?restore“ wurden umbenannt

Solaris 10 6/06: In dieser Solaris-Version heißen die Befehle zfs backup und zfs restore nun zfs send und zfs receive. Diese Namen geben die Funktion der Befehle genauer wieder. Diese Befehle dienen zum Senden und Empfangen von ZFS-Datenstromobjekten.

Weitere Informationen zu diesen Befehlen finden Sie unter Senden und Empfangen von ZFS-Daten.

Wiederherstellen gelöschter Speicher-Pools

Solaris 10 6/06: Diese Solaris-Version enthält den Befehl zpool import -D. Damit können Sie Pools wiederherstellen, die zuvor mit dem Befehl zpool destroy gelöscht wurden.

Weitere Informationen dazu finden Sie unter Wiederherstellen gelöschter ZFS-Speicher-Pools.

Integration von ZFS mit Fault Manager

Solaris 10 6/06: Diese Version enthält ein integriertes ZFS-Diagnoseprogramm, das Pool- und Datenträgerausfälle diagnostiziert und meldet. Darüber hinaus werden auch mit solchen Pool- bzw. Datenträgerausfällen im Zusammhang stehende Prüfsummen-, E/A-, Geräte- und Poolfehler gemeldet.

Das Diagnoseprogramm enthält keine Funktion zur Früherkennung von Prüfsummen- bzw. E/A-Fehlern und umfasst auch keine auf Fehleranalysen beruhenden proaktiven Operationen.

Bei einem ZFS-Ausfall wird eine Meldung wie die folgende angezeigt:


SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major
EVENT-TIME: Wed Jun 30 14:53:39 MDT 2010
PLATFORM: SUNW,Sun-Fire-880, CSN: -, HOSTNAME: neo
SOURCE: zfs-diagnosis, REV: 1.0
EVENT-ID: 504a1188-b270-4ab0-af4e-8a77680576b8
DESC: A ZFS device failed.  Refer to http://sun.com/msg/ZFS-8000-D3 for more information.
AUTO-RESPONSE: No automated response will occur.
IMPACT: Fault tolerance of the pool may be compromised.
REC-ACTION: Run 'zpool status -x' and replace the bad device.

Durch Überprüfen der empfohlenen Aktion, die nach den spezifischeren Anweisungen im Befehl zpool status angezeigt wird, können Sie die Fehlerursache schnell erkennen und beheben.

Ein Beispiel für die Wiederherstellung des Normalbetriebs nach einem aufgetretenen ZFS-Problem finden Sie unter Abhilfe bei Nichtverfügbarkeit eines Geräts.

Der Befehl zpool clear

Solaris 10 6/06: Diese Version enthält den Befehl zpool clear, mit dem Fehlerzähler für Geräte- bzw. Poolausfälle zurückgesetzt werden können. In früheren Versionen wurden Fehlerzähler bei der Wiederinbetriebnahme eines Datenträgers im Pool mithilfe des Befehls zpool online zurückgesetzt. Weitere Informationen finden Sie unter Löschen von Gerätefehlern im Speicher-Pool und zpool(1M).

Kompaktes Format von NFSv4-Zugriffssteuerungslisten

Solaris 10 6/06: In dieser Version können Sie NFSv4-Zugriffssteuerungslisten in zwei Formaten setzen und anzeigen: ausführlich und kompakt. Mit dem Befehl chmod können Sie alle Zugriffssteuerungslistenformate setzen. Mit dem Befehl ls - V können Sie das kompakte Zugriffssteuerungslistenformat anzeigen. Mit dem Befehl ls -v können Sie das ausführliche Zugriffssteuerungslistenformat anzeigen.

Weitere Informationen finden Sie unter Setzen und Anzeigen von Zugriffssteuerungslisten an ZFS-Dateien im Kompaktformat, chmod(1) und ls(1).

Dienstprogramm fsstat zum Überwachen von Dateisystemen

Solaris 10 6/06: Zum Melden von Vorgängen in Dateisystemen steht das neue Tool fsstat zur Verfügung. Aktivitäten können nach Einhängepunkt oder Dateisystemtypen protokolliert werden. Das folgende Beispiel zeigt eine allgemeine Aktivität eines ZFS-Dateisystems:


$ fsstat zfs
 new  name   name  attr  attr lookup rddir  read read  write write
 file remov  chng   get   set    ops   ops   ops bytes   ops bytes
7.82M 5.92M 2.76M 1.02G 3.32M  5.60G 87.0M  363M 1.86T 20.9M  251G zfs

Weitere Informationen finden Sie in der Manpage fsstat(1M).

Webbasierte ZFS-Verwaltung

Solaris 10 6/06: Mit einem webbasierten ZFS-Verwaltungstool, der ZFS-Administrationskonsole, können Sie folgende Verwaltungsaufgaben ausführen:

Sie können mithilfe eines sicheren Webbrowsers unter der folgenden URL auf die ZFS-Administrationskonsole zugreifen:


https://system-name:6789/zfs

Wenn Sie die entsprechende URL eingeben und die ZFS-Administrationskonsole nicht erreichen, kann es sein, dass deren Server nicht läuft. Geben Sie den folgenden Befehl ein, um den Server zu starten:


# /usr/sbin/smcwebserver start

Geben Sie den folgenden Befehl ein, wenn der Server beim Hochfahren des Systems automatisch gestartet werden soll:


# /usr/sbin/smcwebserver enable

Hinweis –

Die Solaris Management Console (smc) kann nicht zur Verwaltung von ZFS-Speicher-Pools bzw. -Dateisystemen verwendet werden.


Was ist ZFS?

Das ZFS-Dateisystem ist ein revolutionäres neues Dateisystem, das die Verwaltung von Dateisystemen grundlegend ändert. Es besitzt Leistungsmerkmale und Vorteile, die in keinem anderen heutzutage verfügbaren Dateisystem zu finden sind. ZFS ist robust, skalierbar und einfach zu verwalten.

Speicher-Pools in ZFS

Die physische Datenspeicherung beruht bei ZFS auf dem Konzept der Speicher-Pools. Früher wurden Dateisysteme auf ein einziges physisches Datenspeichergerät aufsetzend konzipiert. Damit mehrere Datenspeichergeräte adressiert werden können und Datenredundanz möglich wird, wurde das Konzept eines so genannten Volume Manager entwickelt, um für die Darstellung eines einzelnen Datenspeichergeräts zu sorgen. Dadurch müssen Dateisysteme nicht modifiziert werden, wenn mehrere Datenspeichergeräte genutzt werden sollen. Dieses Konzept brachte mehr Komplexität mit sich und behinderte die Weiterentwicklung, da das Dateisystem keine Kontrolle über die physische Speicherung von Daten auf den virtualisierten Volumes hatte.

In ZFS ist die Verwaltung einzelner Volumes nicht mehr erforderlich. Anstatt einer erzwungenen Erstellung virtueller Volume-Systeme fasst ZFS Datenspeichergeräte in so genannten Speicher-Pools zusammen. Ein solcher Speicher-Pool bestimmt die physischen Eigenschaften der Speicherung (Gerätestruktur, Datenredundanz usw.) und fungiert als flexibler Datenspeicher, aus dem Dateisysteme erstellt werden können. Dateisysteme sind nicht mehr auf bestimmte Speichergeräte beschränkt und können die Festplattenkapazität im Pool gemeinsam nutzen. Sie müssen die Kapazität eines Dateisystems nicht mehr vorher festlegen, da die Dateisysteme automatisch innerhalb der Festplattenkapazität erweitert werden, die im Speicher-Pool verfügbar ist. Wenn ein Pool um neuen Speicherplatz erweitert wird, können alle Dateisysteme dieses Pools diese neue Festplattenkapazität sofort nutzen, ohne dass dafür Konfigurationen geändert werden müssen. In mancherlei Hinsicht lässt sich die Funktionsweise eines Speicher-Pools mit der eines virtuellen Speichersystems vergleichen: Wenn ein DIMM-Speicherchip in ein System eingebaut wird, werden Sie vom Betriebssystem nicht gezwungen, Befehle auszuführen, um den neuen Speicher zu konfigurieren und einzelnen Prozessen zuzuweisen. Alle Prozesse des Systems verwenden automatisch diesen zusätzlichen Speicherplatz.

Transaktionale Semantik

ZFS ist ein transaktionales Dateisystem. Das bedeutet, dass der Dateisystemstatus auf dem Datenträger stets konsistent ist. Bei herkömmlichen Dateisystemen werden vorhandene Daten überschrieben. Dies kann dazu führen, dass sich ein Dateisystem in einem instabilen Zustand befindet, wenn beispielsweise zwischen dem Zeitpunkt der Zuweisung eines Datenblocks und dem der Verknüpfung mit einem Verzeichnis ein Stromausfall aufgetreten war. Früher wurde dieses Problem durch den Befehl fsck behoben. Dieser Befehl diente dem Zweck, den Zustand des Dateisystems zu überprüfen und zu versuchen, Inkonsistenzen zu beheben. Das Problem von inkonsistenten Dateisystemen verursachte Systemadministratoren viele Unannehmlichkeiten, und der Befehl fsck bot nicht die Garantie, alle Probleme zu beheben. Zuletzt wurden Dateisysteme entwickelt, die auf dem Konzept des so genannten Journaling beruhen. Beim Journaling werden Aktionen in einem eigenen ?Journal” festgehalten, das im Falle von Systemabstürzen sicher eingespielt werden kann. Diese Methode verursacht jedoch unnötigen Datenverarbeitungsaufwand, da Daten zweimal geschrieben werden müssen. Außerdem entstehen oft weitere Probleme, wenn beispielsweise das Journal nicht fehlerfrei gelesen werden konnte.

Transaktionale Dateisysteme verwalten Daten mithilfe der so genannten Copy on Write-Semantik. Bei diesem Verfahren werden niemals Daten überschrieben, und jegliche Folge von Vorgängen wird entweder vollständig ausgeführt oder ganz ignoriert. Das bedeutet, dass ein Dateisystem bei diesem Verfahren durch Stromausfälle oder Systemabstürze grundsätzlich nicht beschädigt werden kann. Obwohl ganz zuletzt gespeicherte Daten unter Umständen verloren gehen können, bleibt das Dateisystem selbst stets konsistent. Darüber hinaus werden (mithilfe des O_DSYNC-Flags geschriebene) synchrone Daten stets vor der Rückkehr geschrieben, sodass sie niemals verloren gehen.

Prüfsummen und Daten mit Selbstheilungsfunktion

In ZFS werden alle Daten und Metadaten durch einen vom Benutzer auswählbaren Prüfsummenalgorithmus verifiziert. Herkömmliche Dateisysteme führten die Prüfsummenverifizierung datenblockweise aus, was auf die Volume-Verwaltungsschicht und den Aufbau dieser Dateisysteme zurückzuführen war. Aufgrund des herkömmlichen Aufbaus dieser Dateisysteme kann es vorkommen, dass bestimmte Fehler wie z. B. das Speichern eines Datenblocks an einem falschen Speicherort dazu führen kann, dass trotz fehlerhafter Daten keine Prüfsummenfehler vorhanden sind. ZFS-Prüfsummen werden so gespeichert, dass solche Fehler erkannt und der ordnungsgemäße Zustand des Dateisystems wiederhergestellt werden kann. Alle Prüfsummenverifizierungen und Datenwiederherstellungen finden auf Dateisystemebene statt und sind so für Anwendungsprogramme sichtbar.

Darüber hinaus bietet ZFS Selbstheilungsfunktionen für Daten. ZFS unterstützt Speicher-Pools mit unterschiedlichen Stufen der Datenredundanz. Bei Erkennung beschädigter Datenblöcke ruft ZFS die unbeschädigten Daten von einer redundanten Kopie ab und repariert die beschädigten Daten, indem es diese durch korrekte Daten ersetzt.

Konkurrenzlose Skalierbarkeit

Ein Schlüsselelement des ZFS-Dateisystems ist Skalierbarkeit. Das Dateisystem beruht auf der 128-Bit-Architektur, was die Speicherung von 256 Billiarden Zettabyte Daten ermöglicht. Alle Metadata werden dynamisch zugewiesen. Damit entfällt die Notwendigkeit, Inodes vorher zuweisen bzw. die Skalierbarkeit bei der ersten Erstellung eines Dateisystems anderweitig einschränken zu müssen. Alle Algorithmen wurden im Hinblick auf eine bestmögliche Skalierbarkeit entwickelt. Verzeichnisse können bis zu 248 (256 Billionen) Einträge enthalten, und für die Anzahl der Dateisysteme bzw. die Anzahl der in einem Dateisystem enthaltenen Dateien bestehen keine Beschränkungen.

ZFS-Snapshots

Ein Snapshot ist eine schreibgeschützte Kopie eines Dateisystems bzw. Volumes. Snapshots können schnell und einfach erstellt werden. Anfänglich belegen Snapshots keine zusätzliche Festplattenkapazität im Pool.

Wenn Daten innerhalb des aktiven Datasets geändert werden, belegt der Snapshot Festplattenkapazität, da die alten Daten weiterhin referenziert werden. So verhindern Snapshots, dass der von den Daten belegte Speicherplatz für den Pool freigegeben wird.

Vereinfachte Administration

Eine der wichtigsten Eigenschaften von ZFS ist das erheblich vereinfachte Administrationsmodell. Durch hierarchische Dateisystemstrukturen, Eigenschaftsvererbung sowie automatische Verwaltung von Einhängepunkten und NFS-Netzwerksemantik können ZFS-Dateisysteme auf einfache Weise erstellt und verwaltet werden, ohne dass dafür mehrere Befehle ausgeführt oder Konfigurationsdateien bearbeitet werden müssen. Sie können auf einfache Weise Kontingente bzw. Reservierungen vornehmen, Datenkomprimierung aktivieren/deaktivieren oder Einhängepunkte für mehrere Dateisysteme mit einem einzigen Befehl verwalten. Sie können Datenspeichergeräte überprüfen oder reparieren, ohne Kenntnisse über einen separaten Volume-Manager-Befehlssatz zu besitzen. Sie können Datenströme von Dateisystem-Snapshots senden und empfangen.

ZFS verwaltet Dateisysteme über eine Hierarchie, die eine vereinfachte Verwaltung von Eigenschaften wie z. B. Kontingenten, Reservierungen, Komprimierung und Einhängepunkten ermöglicht In diesem Modell werden Dateisysteme zur zentralen Verwaltungsstelle. Dateisysteme sind sehr kostengünstig (ähnlich wie die Erstellung eines neuen Verzeichnisses). Deswegen sollten Sie für jeden Benutzer, jedes Projekt, jeden Arbeitsbereich usw. ein neues Dateisystem erstellen. Dieses Konzept ermöglicht Ihnen, Verwaltungspunkte genau zu definieren.

In ZFS verwendete Begriffe

In diesem Abschnitt werden die im vorliegenden Dokument verwendeten Begriffe erläutert:

Alternative Boot-Umgebung

Eine Boot-Umgebung, die mit dem Befehl lucreate erstellt und mit dem Befehl luupgrade aktualisiert werden kann. Bei dieser Boot-Umgebung handelt es sich aber weder um die aktive noch um die primäre Boot-Umgebung. Die alternative Boot-Umgebung kann mithilfe des Befehls luactivate zur primären Boot-Umgebung gemacht werden.

checksum

Mithilfe eines 256-Bit-Hash-Algorithmus verschlüsselte Daten eines Dateisystemblocks. Prüfsummenalgorithmen reichen vom einfachen und schnellen Fletcher4-Algorithmus (die Standardeinstellung) bis hin zu Hash-Algorithmen mit starker Verschlüsselung wie z. B. SHA256.

Klon

Ein Dateisystem, dessen anfänglicher Inhalt identisch mit dem Inhalt eines Snapshots ist.

Informationen zu Klonen finden Sie in Überblick über ZFS-Klone.

Dataset

Ein allgemeiner Name für die folgenden ZFS-Komponenten: Klone, Dateisysteme, Snapshots und Volumes.

Jedes Dataset wird im ZFS-Namensraum durch einen eindeutigen Namen identifiziert. Datasets werden mithilfe des folgenden Formats benannt:

Pool/Pfad[ @Snapshot]

pool

Der Name des Speicher-Pools, der das Dataset enthält

Pfad

Ein durch Schrägstriche begrenzter Pfadname für die Dataset-Komponente

Snapshot

Eine optionale Komponente, die den Snapshot eines Datasets identifiziert

Weitere Informationen zu Datasets finden Sie in Kapitel 6Verwalten von Oracle Solaris ZFS-Dateisystemen.

Dateisystem

Ein ZFS-Dataset der Art filesystem, der im Standardnamensraum des Systems eingehängt ist und sich wie jedes andere Dateisystem verhält.

Weitere Informationen zu Dateisystemen finden Sie in Kapitel 6Verwalten von Oracle Solaris ZFS-Dateisystemen.

Mirror

Eine Konfiguration mit virtuellen Geräten, in der identische Kopien von Daten auf zwei oder mehr Festplatten gespeichert werden. Wenn eine Festplatte im Datenspiegelungssystem ausfällt, stellt eine andere Festplatte dieses Systems die gleichen Daten bereit.

Pool

Eine logische Gruppe von Geräten, die das Layout und die physischen Merkmale des verfügbaren Speichers beschreibt. Datensätzen wird Festplattenkapazität aus einem Pool zugewiesen.

Weitere Informationen zu Speicher-Pools finden Sie in Kapitel 4Verwalten von Oracle Solaris ZFS-Speicher-Pools.

Primäre Boot-Umgebung

Eine Boot-Umgebung, aus der mit dem Befehl lucreate die alternative Boot-Umgebung erstellt wird. Standardmäßig ist die primäre Boot-Umgebung die aktuelle Boot-Umgebung. Dieses Standardverhalten kann mit lucreate und der Option - s außer Kraft gesetzt werden.

RAID-Z

Ein virtuelles Gerät, das Daten und Paritäten auf mehreren Festplatten speichert. Weitere Informationen zu RAID-Z finden Sie unter Speicher-Pools mit RAID-Z-Konfiguration.

Resilvering

Den Vorgang des Kopierens von Daten von einem Datenspeichergerät auf ein anderes Gerät nennt man Resilvering. Wenn beispielsweise ein Spiegelungsgerät ersetzt oder offline geschaltet wird, werden die Daten eines auf dem aktuellen Stand befindlichen Spiegelungsgeräts auf das neu wiederhergestellte Gerät kopiert. Dieser Vorgang heißt in herkömmlichen Datenträgermanagement-Produkten Neusynchronisierung der Datenspiegelung.

Weitere Informationen zum ZFS-Resilvering finden Sie in Anzeigen des Resilvering-Status.

snapshot

Eine schreibgeschützte Kopie eines Dateisystems oder Volumes zu einem bestimmten Zeitpunkt.

Weitere Informationen zu Snapshots finden Sie in Überblick über ZFS-Snapshots.

Virtuelles Gerät

Ein logisches Gerät in einem Pool. Dies kann ein physisches Datenspeichergerät, eine Datei oder ein Geräteverbund sein.

Weitere Informationen zu virtuellen Geräten finden Sie unter Anzeigen von Informationen zu virtuellen Geräten in Storage-Pools.

volume

Ein Dataset, das eine Blockeinheit darstellt. Beispielsweise lässt sich ein ZFS-Volume als Swap-Gerät erstellen.

Weitere Informationen zu ZFS-Volumes finden Sie unter ZFS-Volumes.

Konventionen für das Benennen von ZFS-Komponenten

Jede ZFS-Komponente wie beispielsweise ein Dataset oder ein Pool muss nach den folgenden Regeln benannt werden:

Außerdem sind leere Komponenten unzulässig.