JavaScript is required to for searching.
Navigationslinks überspringen
Druckansicht beenden
Oracle Solaris ZFS-Administrationshandbuch     Oracle Solaris 10 1/13 Information Library (Deutsch)
search filter icon
search icon

Dokumentinformationen

Vorwort

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

2.  Erste Schritte mit Oracle Solaris ZFS

3.  Verwalten von Oracle Solaris ZFS-Speicher-Pools

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

5.  Verwalten von Oracle Solaris ZFS-Dateisystemen

6.  Arbeiten mit Oracle Solaris ZFS-Schnappschüssen und -Klonen

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

8.  Delegierte Oracle Solaris ZFS-Administration

9.  Fortgeschrittene Oracle Solaris ZFS-Themen

10.  Problembehebung und Pool-Wiederherstellung in Oracle Solaris ZFS

Identifizieren von ZFS-Problemen

Abhilfe bei allgemeinen Hardwareproblemen

Identifizieren von Hardware- und Gerätefehlern

Systemprotokoll mit ZFS-Fehlermeldungen

Identifizieren von Problemen mit ZFS-Speicherpools

Ermitteln, ob in einem ZFS-Speicher-Pool Probleme vorhanden sind

Überprüfen der Ausgabe des Befehls zpool status

Gesamtinformationen zum Pool-Status

Informationen zur Konfiguration des ZFS-Speicherpools

Bereinigungsstatus des ZFS-Speicherpools

ZFS-Datenbeschädigungsfehler

Abhilfe bei Problemen mit ZFS-Speichergeräten

Abhilfe bei fehlendem oder entferntem Gerät

Abhilfe bei entferntem Gerät

Wiedereinbinden eines Datenspeichergeräts

Benachrichtigung von ZFS nach Wiederherstellung der Verfügbarkeit

Ersetzen oder Reparieren eines beschädigten Geräts

Ermitteln des Gerätefehlertyps

Zurücksetzen vorübergehender Gerätefehler

Austauschen eines Datenspeichergeräts in einem ZFS-Speicher-Pool

Ermitteln, ob ein Gerät ausgetauscht werden kann

Datenspeichergeräte, die nicht ausgetauscht werden können

Austauschen eines Datenspeichergeräts in einem ZFS-Speicher-Pool

Anzeigen des Resilvering-Status

Abhilfe bei Problemen mit ZFS-Dateisystemen

Abhilfe bei Datenproblemen in einem ZFS-Speicherpool

Überprüfen der Integrität des ZFS-Dateisystems

Reparatur von Dateisystemen

Validierung von Dateisystemen

Kontrollieren der ZFS-Datenbereinigung

Explizite ZFS-Datenbereinigung

ZFS-Datenbereinigung und Resilvering

Beschädigte ZFS-Daten

Abhilfe bei ZFS-Speicherplatzproblemen

Speicherplatzprotokollierung bei ZFS-Dateisystem

Speicherplatzprotokollierung bei ZFS-Speicherpool

Reparieren beschädigter Daten

Ermitteln der Art der Datenbeschädigung

Reparatur beschädigter Dateien bzw. Verzeichnisse

Abhilfe bei beschädigten Daten mit mehreren Blockreferenzen

Reparieren von Schäden am gesamten ZFS-Speicher-Pool

Reparieren einer beschädigten ZFS-Konfiguration

Reparieren eines Systems, das nicht hochgefahren werden kann

11.  Empfohlene Oracle Solaris ZFS-Vorgehensweisen

A.  Oracle Solaris ZFS-Versionsbeschreibungen

Index

Abhilfe bei Problemen mit ZFS-Dateisystemen

Abhilfe bei Datenproblemen in einem ZFS-Speicherpool

Beispiele für Datenprobleme umfassen:

In einigen Fällen treten solche Fehler nur vorübergehend auf, so z. B. bei sporadischen E/A-Fehlern aufgrund eines Controller-Problems. In anderen Fällen ist der Schaden bleibend, wie z. B. bei der Datenbeschädigung auf einem Datenträger. Auch wenn der Schaden bleibend ist, heißt das nicht, dass der Fehler wiederholt auftritt. Beispiel: Wenn Sie versehentlich Bereiche einer Festplatte überschreiben, ist kein Hardwareausfall aufgetreten, und das Datenspeichergerät muss nicht ausgetauscht werden. Genau festzustellen, mit welchem Problem das Datenspeichergerät behaftet ist, stellt keine leichte Aufgabe dar und wird später eingehender behandelt.

Überprüfen der Integrität des ZFS-Dateisystems

Für ZFS gibt es kein Serviceprogramm wie fsck. Dieses Serviceprogramm diente üblicherweise zur Reparatur und Validierung von Dateisystemen.

Reparatur von Dateisystemen

Bei herkömmlichen Dateisystemen ist die Art und Weise des Schreibens von Daten von Natur aus anfällig für unerwartete Ausfälle, die zu Inkonsistenzen im Dateisystem führen. Da herkömmliche Dateisysteme nicht transaktionsorientiert sind, können unreferenzierte Datenblöcke, ungültige Verknüpfungszähler oder andere inkonsistente Dateisystemstrukturen auftreten. Mit der Einführung des so genannten Journaling wurden zwar einige dieser Probleme behoben, es können jedoch neue Probleme auftreten, wenn Transaktionen nicht rückgängig gemacht werden können. Inkonsistente Daten in einer ZFS-Konfiguration können nur bei Hardware-Ausfällen (was durch redundante Pools vermieden werden kann) oder bei Bugs in der ZFS-Software auftreten.

Das Serviceprogramm fsck beseitigt bekannte Probleme, von denen UFS-Dateisysteme betroffen sind. Die meisten Probleme, von denen ZFS-Speicher-Pools betroffen sind, sind auf ausgefallene Hardware oder Stromausfälle zurückzuführen. Viele Probleme können durch redundante Pools vermieden werden. Wenn Ihr Pool durch ausgefallene Hardware oder einen Stromausfall beschädigt wurde, gehen Sie wie unter Reparieren von Schäden am gesamten ZFS-Speicher-Pool beschrieben vor.

Wenn ein Pool nicht redundant ist, besteht immer das Risiko, dass Sie nach einer Beschädigung des Dateisystems nicht mehr auf Ihre Daten zugreifen können.

Validierung von Dateisystemen

Neben der Dateisystemreparatur stellt das Serviceprogramm fsck sicher, dass Daten auf einem Datenträger fehlerfrei sind. Diese Validierung wird üblicherweise durch Aushängen des betreffenden Dateisystems und Ausführen des Serviceprogramms fsck durchgeführt. Während dieses Vorgangs muss das System möglicherweise in den Einzelbenutzermodus gebracht werden. Daraus resultieren Ausfallzeiten, die proportional zur Größe des zu überprüfenden Dateisystems sind. Statt eines Serviceprogramms zum expliziten Ausführen der entsprechenden Überprüfungen besitzt ZFS einen Mechanismus zur regelmäßigen Überprüfung auf Inkonsistenzen. Diese als Bereinigung bezeichnete Funktion wird häufig in Arbeitsspeichern und anderen Systemen als Methode des Erkennens und Vermeidens von Problemen eingesetzt, die Hardwareausfälle oder Softwarefehlfunktionen verursachen.

Kontrollieren der ZFS-Datenbereinigung

Wenn ZFS einen Fehler erkennt (der auf die Bereinigung oder den Zugriff auf Dateien zurückzuführen ist), wird dieser intern protokolliert, sodass Sie einen schnellen Überblick über alle bekannten Fehler im Pool erhalten.

Explizite ZFS-Datenbereinigung

Die einfachste Methode zum Überprüfen der Datenintegrität besteht im Durchführen einer expliziten Bereinigung aller im Pool enthaltenen Daten. Diesem Vorgang werden alle Daten im Pool einmalig unterzogen, wodurch sichergestellt wird, dass alle Datenblöcke gelesen werden können. Die Bereinigung erfolgt so schnell, wie es das entsprechende Datenspeichergerät zulässt, obwohl E/A-Vorgänge eine niedrigere Priorität als normale Prozessen haben. Dieser Vorgang kann sich negativ auf die Systemleistung auswirken, obgleich die Daten des Pools während der Bereinigung weiterhin verwendbar und weitgehend verfügbar bleiben sollten. Explizite Bereinigungen können mit dem Befehl zpool scrub ausgeführt werden. Beispiel:

# zpool scrub tank

Der Status der aktuellen Bereinigung kann mithilfe des Befehls zpool status angezeigt werden. Beispiel:

# zpool status -v tank
  pool: tank
 state: ONLINE
 scrub: scrub completed after 0h7m with 0 errors on Tue Tue Feb  2 12:54:00 2010
config:
        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c1t0d0  ONLINE       0     0     0
            c1t1d0  ONLINE       0     0     0

errors: No known data errors

Pro Pool kann immer nur eine aktive Bereinigung ausgeführt werden.

Mithilfe der Option -s können Sie eine laufende Bereinigung stoppen. Beispiel:

# zpool scrub -s tank

In den meisten Fällen sollte eine Bereinigung vollständig abgeschlossen werden, um die Datenintegrität sicherzustellen. Falls sich eine Bereinigung negativ auf die Systemleistung auswirkt, können Sie sie jederzeit abbrechen.

Durch regelmäßige Bereinigungen wird kontinuierlicher E/A-Datenverkehr zu allen Datenträgern des Systems gewährleistet. Ein Nebeneffekt der Bereinigung besteht darin, dass die StromAdministration im Leerlauf befindliche Datenträger nicht in den Energiesparmodus schalten kann. Wenn das System E/A-Vorgänge jederzeit und ohne größere Störungen ausführen kann oder Stromverbrauch kein Problem ist, kann dieser Effekt problemlos ignoriert werden.

Weitere Informationen zur Interpretation der Ausgabe des Befehls zpool status finden Sie unter Abfragen des Status von ZFS-Speicher-Pools.

ZFS-Datenbereinigung und Resilvering

Nach dem Ersetzen eines Datenspeichergeräts wird ein so genanntes "Resilvering" (Wiederaufspielen von Daten) durchgeführt, um Daten von unbeschädigten Kopien auf den neuen Datenträger zu kopieren. Dieser Vorgang ist eine Form der Datenträgerbereinigung. Aus diesem Grunde kann in einem Pool immer nur ein solcher Vorgang stattfinden. Wenn ein Bereinigungsvorgang ausgeführt wird, unterbricht der Wiederherstellungsvorgang die aktuelle Bereinigung und startet sie nach Abschluss der Wiederherstellung neu.

Weitere Informationen zum Resilvering finden Sie unter Anzeigen des Resilvering-Status.

Beschädigte ZFS-Daten

Datenbeschädigung tritt auf, wenn sich Gerätefehler (die auf eines oder mehrere fehlende bzw. beschädigte Datenspeichergeräte hinweisen) auf virtuelle Geräte der obersten Hierarchieebene auswirken. So können beispielsweise in einer Hälfte einer Datenspiegelungskonfiguration Tausende Gerätefehler auftreten, ohne dass dies zur Datenbeschädigung führt. Wenn auf der anderen Seite der Spiegelung an genau derselben Stelle ein Fehler auftritt, werden die Daten beschädigt.

Eine Datenbeschädigung ist stets bleibend und muss bei der Reparatur besonders berücksichtigt werden. Auch wenn die betreffenden Datenspeichergeräte repariert oder ausgetauscht werden, sind die ursprünglichen Daten für immer verloren. Meist müssen Daten in solchen Situationen aus Sicherungskopien wiederhergestellt werden. Datenfehler werden beim Auftreten protokolliert und können durch regelmäßige Pool-Bereinigung (siehe folgender Abschnitt) in Grenzen gehalten werden. Beim Entfernen eines beschädigten Datenblocks erkennt der nächste Durchlauf der Datenträgerbereinigung, dass die Datenbeschädigung nicht mehr auf dem System vorhanden ist und entfernt die Protokollierung des Fehlers vom System.

Abhilfe bei ZFS-Speicherplatzproblemen

Prüfen Sie die folgenden Abschnitte, wenn Sie nicht sicher sind, wie ZFS die Speicherplatzberechnung bei Dateisystem und Pool protokolliert. Siehe auch Berechnung von ZFS-Festplattenkapazität.

Speicherplatzprotokollierung bei ZFS-Dateisystem

Mit den Befehlen zpool list und zfs list kann der verfügbare Speicherplatz im Pool und Dateisystem besser bestimmt werden als mit den früheren Befehlen df und du. Mit den Legacy-Befehlen kann nur schwierig zwischen Pool- und Dateisystemspeicherplatz unterschieden werden. Außerdem berücksichtigen die Legacy-Befehle den Speicherplatz nicht, der von untergeordneten Dateisystemen oder Schnappschüssen belegt wird.

Beispiel: Bei dem folgenden Root-Pool (rpool) sind 5,46 GB zugewiesen und 68,5 GB frei.

# zpool list rpool
NAME   SIZE  ALLOC   FREE  CAP  DEDUP  HEALTH  ALTROOT
rpool   74G  5.46G  68.5G   7%  1.00x  ONLINE  -

Wenn Sie die Speicherplatzberechnung für den Pool mit der Speicherplatzberechnung für das Dateisystem vergleichen, indem Sie die Spalte USED der einzelnen Dateisysteme prüfen, sehen Sie, dass der Poolspeicherplatz, der in ALLOC protokolliert wird, in der USED-Gesamtsumme des Dateisystems berücksichtigt wird. Beispiel:

# zfs list -r rpool
NAME                      USED  AVAIL  REFER  MOUNTPOINT
rpool                    5.41G  67.4G  74.5K  /rpool
rpool/ROOT               3.37G  67.4G    31K  legacy
rpool/ROOT/solaris       3.37G  67.4G  3.07G  /
rpool/ROOT/solaris/var    302M  67.4G   214M  /var
rpool/dump               1.01G  67.5G  1000M  -
rpool/export             97.5K  67.4G    32K  /rpool/export
rpool/export/home        65.5K  67.4G    32K  /rpool/export/home
rpool/export/home/admin  33.5K  67.4G  33.5K  /rpool/export/home/admin
rpool/swap               1.03G  67.5G  1.00G  -

Speicherplatzprotokollierung bei ZFS-Speicherpool

Der SIZE-Wert, der von dem Befehl zpool list protokolliert wird, besteht im Allgemeinen aus dem physischen Festplattenspeicher in dem Pool, variiert jedoch je nach Redundanzebene des Pools. Hierzu wird auf die folgenden Beispiele verwiesen. Der Befehl zfs list führt den verwendbaren Speicherplatz auf, der für Dateisysteme verfügbar ist, d.h. der Festplattenspeicher minus dem Overhead der Redundanzmetadaten des ZFS-Pools, sofern vorhanden.

Reparieren beschädigter Daten

In den folgenden Abschnitten wird beschrieben, wie Sie den Typ der Datenbeschädigung ermitteln und (falls möglich) Daten reparieren können.

Zur Minimierung des Risikos von Datenbeschädigung nutzt ZFS Prüfsummenberechnung, Redundanz und Datenselbstheilung. Dennoch können Datenbeschädigungen auftreten, wenn ein Pool nicht redundant ist. Dies ist der Fall, wenn sich der Pool zum Zeitpunkt der Beschädigung in beeinträchtigtem Zustand befindet oder mehrere Datenkopien durch unvorhergesehene Ereignisse beschädigt werden. Unabhängig von der Ursache ist das Ergebnis dasselbe: Daten werden beschädigt und sind deswegen nicht mehr verfügbar. Die erforderlichen Abhilfemaßnahmen hängen von der Art der beschädigten Daten und ihrem relativen Wert ab. Es können zwei grundlegende Arten von Daten beschädigt werden:

Daten werden während des Normalbetriebs und der Datenbereinigung auf Integrität überprüft. Weitere Informationen zum Überprüfen der Integrität von Pool-Daten finden Sie unter Überprüfen der Integrität des ZFS-Dateisystems.

Ermitteln der Art der Datenbeschädigung

Der Befehl zpool status zeigt standardmäßig nur an, dass eine Datenbeschädigung aufgetreten ist, es ist jedoch nicht ersichtlich, wo sie sich ereignet hat. Beispiel:

# zpool status monkey
  pool: monkey
 state: ONLINE
status: One or more devices has experienced an error resulting in data
        corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
        entire pool from backup.
   see: http://www.sun.com/msg/ZFS-8000-8A
 scrub: scrub completed after 0h0m with 8 errors on Tue Jul 13 13:17:32 2010
config:

        NAME        STATE     READ WRITE CKSUM
        monkey      ONLINE       8     0     0
          c1t1d0    ONLINE       2     0     0
          c2t5d0    ONLINE       6     0     0

errors: 8 data errors, use '-v' for a list

Ein Fehler zeigt lediglich an, dass zu einem bestimmten Zeitpunkt ein Fehler aufgetreten ist. Diese Fehler müssen nicht mehr notwendigerweise im System vorhanden sein. Unter normalen Bedingungen ist dies der Fall. Bestimmte zeitweilige Ausfälle können zu Datenbeschädigungen führen, die nach dem Ende des Ausfalls automatisch behoben werden. Bei einer vollständigen Bereinigung des Pools wird jeder aktive Datenblock im Pool untersucht, und das Fehlerprotokoll wird nach Abschluss der Bereinigung geleert. Wenn Sie sehen, dass die betreffenden Fehler im Pool nicht mehr auftreten und Sie nicht auf den Abschluss des Bereinigungsvorgangs warten möchten, können Sie alle Fehler im Pool mithilfe des Befehls zpool online löschen.

Wenn die Datenbeschädigung in Metadaten für den gesamten Pool aufgetreten ist, sieht die Befehlsausgabe etwas anders aus. Beispiel:

# zpool status -v morpheus
  pool: morpheus
    id: 1422736890544688191
 state: FAULTED
status: The pool metadata is corrupted.
action: The pool cannot be imported due to damaged devices or data.
   see: http://www.sun.com/msg/ZFS-8000-72
config:

        morpheus    FAULTED   corrupted data
          c1t10d0   ONLINE

Ist ein Pool beschädigt, wird er in den Status FAULTED versetzt, da er nicht die erforderliche Datenredundanz gewährleisten kann.

Reparatur beschädigter Dateien bzw. Verzeichnisse

Ist eine Datei oder ein Verzeichnis beschädigt, kann es je nach Art der Datenbeschädigung sein, dass das System noch immer funktioniert. Schäden sind praktisch nicht wieder rückgängig zu machen, wenn im System keine brauchbaren Datenkopien vorhanden sind. Wenn die betreffenden Daten wertvoll sind, müssen Sie diese aus Sicherungskopien wiederherstellen. Auch in diesem Fall kann es sein, dass Sie nach dieser Datenbeschädigung den Normalbetrieb wiederherstellen können, ohne das gesamte Pool wiederherstellen zu müssen.

Wenn sich der Schaden innerhalb eines Dateidatenblocks befindet, kann die betreffende Datei sicher gelöscht werden, wodurch der Fehler aus dem System entfernt wird. Mit dem Befehl zpool status -v können Sie eine Liste von Dateinamen mit dauerhaften Fehlern ausgeben. Beispiel:

# zpool status -v
  pool: monkey
 state: ONLINE
status: One or more devices has experienced an error resulting in data
        corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
        entire pool from backup.
   see: http://www.sun.com/msg/ZFS-8000-8A
 scrub: scrub completed after 0h0m with 8 errors on Tue Jul 13 13:17:32 2010
config:

        NAME        STATE     READ WRITE CKSUM
        monkey      ONLINE       8     0     0
          c1t1d0    ONLINE       2     0     0
          c2t5d0    ONLINE       6     0     0

errors: Permanent errors have been detected in the following files: 

/monkey/a.txt
/monkey/bananas/b.txt
/monkey/sub/dir/d.txt
monkey/ghost/e.txt
/monkey/ghost/boo/f.txt

Es folgen Erläuterung zur Liste von Dateinamen mit dauerhaften Fehlern:

Wenn Metadaten einer Datei bzw. eines Verzeichnisses beschädigt sind, kann die betreffende Datei nur an einen anderen Ort verschoben werden. Sie können Dateien bzw. Verzeichnisse sicher an eine unkritische Stelle kopieren, sodass das ursprüngliche Objekt am Ausgangsort wiederhergestellt werden kann.

Abhilfe bei beschädigten Daten mit mehreren Blockreferenzen

Wenn ein beschädigtes Dateisystem fehlerhafte Daten mit mehreren Blockreferenzen enthält, wie Schnappschüssen, kann der Befehl zpool status -v nicht alle fehlerhaften Datenpfade anzeigen. Die aktuelle zpool status-Protokollierung der beschädigten Daten wird durch den Umfang der Metadatenbeschädigung und außerdem dadurch begrenzt, ob Blöcke nach Ausführung des Befehls zpool status wieder verwendet wurden. Deduplizierte Blöcke machen die Protokollierung aller fehlerhaften Daten noch komplizierter.

Wenn fehlerhafte Daten vorhanden sind und der Befehl zpool status -v identifiziert, dass Schnappschussdaten betroffen sind, sollten Sie den folgenden Befehl ausführen, um zusätzliche fehlerhafte Pfade zu identifizieren:

Reparieren von Schäden am gesamten ZFS-Speicher-Pool

Wenn Pool-Metadaten beschädigt sind und der Pool dadurch nicht geöffnet oder importiert werden kann, stehen Ihnen folgende Optionen zur Verfügung: