ZFS-Fehler hinter LSI-RAID-Controller

ZFS-Fehler hinter LSI-RAID-Controller

ZFS meldet also einige "Leseprobleme", so dass es so aussieht, als ob diese Festplatte ausfällt, da in derZFS-8000-9PUns sind keine Dokumentberichte bekannt. Diese Festplatten sind ziemlich neu, das einzige Problem, das wir kürzlich hatten, war ein vollständiges ZFS.

Das ZFS läuft auf einemLSI MegaRAID 9271-8i, alle Festplatten laufen mit „RAID 0“ pro Festplatte. Ich bin mit dieser RAID-Karte nicht sehr vertraut, also habe ich ein Skript gefunden, das Daten zurückgibt, die vom Megacli-Befehlszeilentool stammen. Ich habe 1 Laufwerk hinzugefügt, um das Setup anzuzeigen, sie sind alle gleich eingerichtet. (Systemfestplatten sind unterschiedlich)

zpool-Statusausgabe

  pool: data
 state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An
        attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
        using 'zpool clear' or replace the device with 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-9P
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        data        ONLINE       0     0     0
          raidz2-0  ONLINE       0     0     0
            br0c2   ONLINE       0     0     0
            br1c2   ONLINE       0     0     0
            br2c2   ONLINE       0     0     0
            br0c3   ONLINE       0     0     0
            br1c3   ONLINE       0     0     0
            br2c3   ONLINE       0     0     0
            r2c1    ONLINE       0     0     0
            r1c2    ONLINE       0     0     0
            r5c3    ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdc     ONLINE       0     0     0
            sdd     ONLINE       0     0     0
            sde     ONLINE       0     0     0
            sdf     ONLINE       0     0     0
            sdg     ONLINE       0     0     0
            r3c1    ONLINE       0     0     0
            r4c1    ONLINE       2     0     0
... cut raidz2-1 ...
errors: No known data errors

Die Ausgabe des LSI-Skripts

Virtual Drive: 32 (Target Id: 32)
Name                :
RAID Level          : Primary-0, Secondary-0, RAID Level Qualifier-0
Size                : 3.637 TB
Sector Size         : 512
Is VD emulated      : No
Parity Size         : 0
State               : Optimal
Strip Size          : 512 KB
Number Of Drives    : 1
Span Depth          : 1
Default Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU
Current Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy   : Disk's Default
Encryption Type     : None
PI type: No PI

Is VD Cached: No

Das Skript meldet keine fehlerhaften Festplatten und der RAID-Controller markiert die Festplatte auch nicht als fehlerhaft. Ich habe einige andere Themen gefundenZpool-Fehlerdas den Ratschlag gab, den Fehler zu beheben und einen Scrub auszuführen. Meine Frage ist nun, wann der Schwellenwert für einen Scrub erreicht ist, wie lange würde das dauern (vorausgesetzt, dieser ZFS-Raid erleidet einen Leistungseinbruch beim Ausführen von Scrub). Und wenn diese Festplatte wirklich fehlerhaft ist, wird Hot-Swapping einen „Neuaufbau“ initialisieren? Alle Festplatten sind „Western Digital RE 4 TB, SAS II, 32 MB, 7200 U/min, Enterprise 24/7/365“. Gibt es ein System, das nach ZFS-Fehlern sucht, da dies nur eine routinemäßige manuelle Überprüfung war?

ZFS-Version: 0.6.4.1 zfsonlinux

Ich weiß, dass zwei Lesefehler nicht oft vorkommen, aber ich würde die Festplatten lieber zu früh als zu spät austauschen.

Antwort1

zfs scrubist das „System, das nach ZFS-Fehlern sucht“. Es dauert so lange, wie es braucht, um alle im Volume gespeicherten Daten zu lesen (in sequenzieller TXG-Reihenfolge, daher kann es je nach Füllstand des Pools und der Art und Weise, wie die Daten geschrieben wurden, viel Zeit in Anspruch nehmen). Nach dem Start zfs statuswird eine Schätzung angezeigt. Der laufende Scrub kann gestoppt werden.

Wenn Sie etwas regelmäßig überprüfen möchten zpool status, wäre es am einfachsten, etwas wie „ zpool status | grep -C 100 Statusperiodisch“ (alle 6 Stunden) auszuführen und die Ausgabe, falls vorhanden, per E-Mail zu versenden. Sie können wahrscheinlich ein Plugin für Ihr bevorzugtes Überwachungssystem wie Nagios finden. Oder es wäre ziemlich unkompliziert, es selbst zu schreiben.

zfs replaceDas bloße Hot-Swapping des Laufwerks löst kein Resilver aus. Dazu müssen Sie es ausführen .

Der angezeigte Lesefehler kann auch eine Art Controller-Fehler sein. Obwohl es sich um Enterprise-Hardware handelt, verhalten sich diese (HW RAID) Controller manchmal seltsam. Und diese Fehler können beispielsweise darauf zurückzuführen sein, dass ein Befehl zu lange dauert – der Controller ist mit irgendetwas beschäftigt. Deshalb versuche ich, diese Fehler zu vermeiden, sofern es nicht unbedingt nötig ist.

Ich würde die SMART-Daten auf dem Laufwerk überprüfen (siehe man smartctl) und den Pool bereinigen. Wenn beide in Ordnung sind, löschen Sie die Fehler und ändern Sie Ihren Pool nicht. Denn wenn der Pool fast voll ist, kann das Lesen aller Daten während des Resilver-Vorgangs tatsächlich einen weiteren Fehler auslösen. Geraten Sie in Panik, wenn Sie auf demselben Laufwerk erneut Fehler sehen ;).

Übrigens: Für eine optimale Leistung sollten Sie n^2+2 Laufwerke in RAIDZ2-vdevs verwenden.

Antwort2

Ich würde in diesem Fall das tun, was ZFS Ihnen sagt.Bitte führen Sie ein Scrub durch.

Ich reinige meine Systeme wöchentlich nach einem Zeitplan. Ich benutze auch diezfswatcherDaemon zur Überwachung der Integrität von Linux ZFS-Installationen.

Ihr ZFS-Array ist wahrscheinlich nicht optimiert, daher gibt es einige Werte, die die Scrubbing-Leistung verbessern können. An diesem Punkt sollten Sie es jedoch einfach ausführen.

Und zur anderen Frage: Ihr Hot-Swap wird wahrscheinlich nicht das tun, was Sie erwarten ... Siehe Tirade unten.


schimpfen:

Eine Reihe virtueller RAID-0-Laufwerke hinter einem Hardware-Controller zu haben, ist keine gute Idee!

Sie haben das Schlechteste aus beiden Welten. Wiederherstellbarkeit und Fehlerprüfung sind begrenzt. Eine ausgefallene Festplatte ist im Wesentlichen ein ausgefallenes virtuelles Laufwerk und hat Auswirkungen auf den Hot-Swap-Betrieb. Nehmen wir an, Sie entfernen die betreffenden Festplatten. Sie müssen wahrscheinlich eine neue virtuelle Festplatte erstellen oder erhalten möglicherweise eine andere Laufwerksaufzählung.

Ab einem bestimmten Punkt ist es besser, einen echten HBA zu kaufen und die Festplatten als Passthrough-Geräte (ohne RAID-Metadaten) zu betreiben oderFühren Sie ZFS einfach auf durch Hardware-Arrays geschützten vdevs aus.Führen Sie beispielsweise ein RAID-6 auf Ihrem Controller aus und installieren Sie ZFS darüber. Oder führen Sie mehrere RAID-X-Gruppen aus und lassen Sie ZFS die resultierenden vdevs spiegeln oder streifen.

verwandte Informationen