Extern angeschlossener ZFS-Pool legt auf, keine Fehler auf Laufwerken

593
J Collins

Ich habe ein Array von 5 1 TB WD Red-Laufwerken in einem externen Gehäuse eines SATA-Multiplexers. Diese wird in eine Desktop-Maschine mit einem SATA-Multiplexer-Controller eingespeist.

Nach etwa einem Jahr (dies ist zweimal der Fall) hat sich das Array wie in diesem Video zurückgesetzt . Es gibt keinen Hinweis darauf, dass ein bestimmtes Laufwerk fehlerhaft ist, nur dass das Gehäuse heruntergefahren wird und alle Laufwerke im Array getrennt werden.

Ich habe zwei solcher Gehäuse, und der Fehler liegt immer beim redundanten Array, wenn ich sie von einem zum anderen verschiebe. Die Gehäuse sind ebenso wie die Schnittstellenkarten seit Jahren konstant, aber neue installierte Laufwerke lösten das Problem für ein weiteres Jahr.

Es könnte Dutzende von Dingen sein, von lauten Stromversorgungen, die die Stromversorgungskreise von Treibern langsam zerstören, bis hin zu einer schlechten Implementierung von ZFS durch das Betriebssystem. Durch welche Strategie könnte ich herausfinden, was das Problem eigentlich ist?

  • OS: CentOS 7.0, Kernel: 3.10.0

  • Gehäuse: SiI 3726 Multiplexer

  • Schnittstellenkarte: SiI 3132-Demultiplexer

  • Festplatten: WD10EFRX

Mitteilungen:

Wenn die Rücksetzungen auftreten:

[ttt.tttt] ata4.03: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6 frozen [ttt.tttt] ata4.03: failed command: WRITE DMA EXT [ttt.tttt] ata4.03: cmd 35/00:.. ...:00/e0 tag 3 dma 144688 out [ttt.tttt] ata4.03: status: { Busy } [ttt.tttt] ata4.03: error: { ICRC UNC AMNF IDNF ABRT } 

Nachdem zpool vollständig angehalten hat:

[ttt.tttt] INFO: task txg_sync:xxxxx blocked for more than 120 seconds [ttt.tttt] INFO: task zpool:xxxxx blocked for more than 120 seconds 

Sobald der zweite als Reaktion auf Terminalbefehle aufgetreten ist, wie

$ zpool status 

Das System ist im Wesentlichen unbrauchbar und erfordert einen vollständigen Neustart.

Das Problem korreliert nicht mit einem Spannungsabfall an den Laufwerken, wie das neueste Video zeigt . Ich denke, es ist eine wichtige Information, dass sich die Box selbst zurücksetzt. Alle Lichter und sogar das eigene Power-Licht werden zurückgesetzt.

Die Nachrichten an dmesg sind sehr umfangreich und viel zu lang, um sie anzufügen.

Ausgabe von badblocks:

$ badblocks -vn /dev/sdp1 irq_stat 0x00060002, device error via SDB FIS SError: { Handshk } failed command: WRITE FPDMA QUEUED cmd 61/... res 41/... ...Emask 0x410 (ATA bus error) <F> status: { DRDY ERR } error: { ICRC ABRT } 

Dies gilt für alle 5 Laufwerke im Array gleichermaßen. Es ist, als würde die Box überladen und setzt sich zurück.

Update: 06.12.2017

Alle Laufwerke wurden anstelle von eSATA in ein zweites Gehäuse mit USB3-Verbindung versetzt.

  • Gehäuse: ICY BOX IB-3810U3
    • Multiplexer-Chip: ASMedia ASM1074L
  • Server-Motherboard USB3-Host: Gigabyte GA-B85-HD3 SKT 1150

Wenn alle Laufwerke in ein neues Gehäuse verschoben wurden, wurde der badblocksBefehl auf jedem Laufwerk ohne einen einzigen Fehler ausgeführt. Dann wurde der Pool importiert und ein Scrub ausgeführt. Es wurde kein Fehler gefunden und die Bereinigung wurde erfolgreich abgeschlossen. Heute wurde jedoch eine Meldung für alle 5 Laufwerke aufgelistet (es war unmöglich zu erkennen, ob es sich um Laufwerke dieses Pools / Tanks / Arrays handelt):

WARNING: Your hard drive is failing Device: /dev/sdk [SAT], unable to open device WARNING: Your hard drive is failing Device: /dev/sdl [SAT], unable to open device WARNING: Your hard drive is failing Device: /dev/sdm [SAT], unable to open device WARNING: Your hard drive is failing Device: /dev/sdn [SAT], unable to open device WARNING: Your hard drive is failing Device: /dev/sdo [SAT], unable to open device 

Danach versuchte der Versuch, den Inhalt des Laufwerks aufzulisten, das Terminal. Ein neues Terminal ist bei jedem zpoolBefehl gesperrt . topListen txg_syncund einen Haufen von z_rd_int_xProzessen, die alle eine gewisse CPU-Auslastung haben. Zwei andere Pools stellen erfolgreich Dateien über SAMBA bereit, wobei einer weiterhin selbst resilver ist (nur durch die HD-Lichter nachgewiesen), da er zpool statushängt.

smartctl Daten: 12.12.2017

Nach einem Kommentar sind die smartctlDaten für UDMA_CRC_Error_Count.

Für die zweite Iteration des aktuell fehlgeschlagenen Arrays:

4193, 4030, 3939, 2869, 3977 

Für das ursprüngliche Array (Laufwerk 3 wurde ausgelagert):

3003, 3666, 0, 4536, 5309 

Für einen RAID0-Stripe im selben Gehäuse und dieselbe Konnektivität

 523, 504, 526, 553, 476 

Für eine ZFS-Spiegelung mit Hot Spare, die auf dem Host-Computer gehostet wird:

 0, 0, 0 

Auf einem Seagate Archive-Laufwerk scheint es Unsinn zu sein. :

Temperature_Celsius UDMA_CRC_Error_Count Head_Flying_Hours 40 (0 16 0 0 0) 0 57501022168585 

Dies zeigt möglicherweise nur, dass eSATA und USB 3.0 inhärent verrauscht sind und Datenkorruption unvermeidlich ist.

4
Der ZFS-Treiber ist an Ihren Kernel gebunden. Der aktuelle Kernel ist 4.14. Hast du diese Version? Je aktueller Ihr Kernel ist, desto unwahrscheinlicher ist es der ZFS-Treiber. Zeichnet ** dmesg ** während dieser Zeiträume etwas anderes auf? cybernard vor 6 Jahren 1
Ich verwende CentOS und glaube, dass die Version von "uname -r" 3.10.0 ist. Es berichtet jedoch, dass es auf dem neuesten Stand ist. `dmesg` ist ziemlich verrückt, in einem beliebigen geöffneten Terminalfenster verschachteln Meldungen die normalen Bildschirmausgaben und melden Hardwareprobleme, 'Aktion 0x6 eingefroren' usw. J Collins vor 6 Jahren 0
Sie sind von der CentOS-Distribution gefangen, sie sagen, dass 3.10.0 aktuell ist, aber nicht. http://www.kernel.org ist die offizielle Quelle. Es ist möglich, den neuen Kernel selbst herunterzuladen und zu kompilieren. Sie sagen, dass 3,10 EOL oder Lebensende ist. Auch 3.10.108 nicht 3.10.0 ist die neueste Version dieses Zweigs. Wenn Sie sich für einen neuen Kernel entscheiden, ist 4.14.3 die beste Option. Einer der Gründe, warum ich mit Tumbleweed Repo zu OpenSuse gewechselt habe, ist, dass sie selten mehr als 1 Monat hinterherhinken. cybernard vor 6 Jahren 0
Obwohl ich den Kommentar zu schätzen weiß und seit der Installation eines neuen Kernels in CentOS recherchiert hat, gibt es in den neuen Versionen einen Aspekt, der Ihrer Meinung nach robuster sein könnte, um dieses Problem zu vermeiden? J Collins vor 6 Jahren 0
Der Kernel wurde Dutzende Zeit seit Ihrem alten Kernel buchstäblich aktualisiert. Obwohl ich nicht jedes Änderungsprotokoll gelesen habe, weiß ich aus Erfahrung, wie wichtig ein neuer Versionskernel ist. Ich habe im Laufe der Jahre 5+ Linux VM auf dem neuesten Stand gehalten. Hast du immer noch das Problem? Haben sich die Dmesg-Ereignisse geändert? cybernard vor 6 Jahren 0
Ich habe die Frage mit weiteren Informationen aktualisiert, den scheinbar auffälligen Ausschnitten von dmesg sowie einem Video der Live-Ausgabe, während der Fehler auftritt. Beachten Sie, dass die Meldungen auf dem Bildschirm nicht angefordert werden. Sie überschreiben den Bildschirm des Terminals. J Collins vor 6 Jahren 0
"ICRC"; // INTERFACE CRC ERROR, "UNC"; // UNCORRECTABLE, "AMNF"; // ADDRESS MARK NOT FOUND und "IDNF"; // ID NICHT GEFUNDEN Sound wie eines der Laufwerke hat mindestens 1, wenn nicht mehr fehlerhafte Sektoren. cybernard vor 6 Jahren 0
Haben Sie ** Zpool Scrub Rpool ** gemacht? Hinweis: Dies verbraucht entsprechend alle verfügbaren Ausfallzeiten des E / A-Plans. cybernard vor 6 Jahren 0
Ist 'rpool' ein spezielles Stichwort? Wenn es in einem fehlerhaften Zustand ist, werden im Allgemeinen alle E / A auf dem Array angehalten. In diesem Fall sperrt jetzt jeder 'zpool'-Anruf das Terminal und ich brauche ein neues' Alt F2 'usw. Auch die Bereinigungsaktivität scheint durch den Neustart des Laufwerkgehäuses unterbrochen zu werden. Vielleicht wird ein Laufwerk, das schlechte Sektoren anzieht, vom Multiplexer nicht gut gehandhabt? J Collins vor 6 Jahren 0
Ich stimme zu, dass alle LEDs, die ausgehen, verdächtig sind, obwohl sie stark davon abhängt, was sie antreibt. Mit welchen Versorgungsschienen ist der Umfang verbunden? Ich habe den Verdacht, dass die SATA-Verbindung (en) umkippen. Können Sie die Festplatten direkt anschließen und das Gehäuse aus der Gleichung entfernen? Attie vor 6 Jahren 0
Verstehe ich richtig, dass Sie alle 5 Festplatten in ein anderes Gehäuse verschoben haben und das Problem weiterhin auftritt? Attie vor 6 Jahren 0
Der Bereich ist auf den +5- und +12-V-Schienen, die direkt vom Netzteil kommen. Ich meine, es könnte nach diesem Punkt eine schlechte Verbindung geben, aber diese Spannungen sehen solide aus. Bei der Analyse dieser Videos habe ich festgestellt, dass alle Laufwerksanzeigen einen Sekundenbruchteil zusammen aufleuchten, bevor sie ausfallen. Deshalb hatte ich die Stromversorgung vermutet, aber es scheint gut zu sein. In der Vergangenheit habe ich ein fehlerhaftes Array in ein neues, identisches Gehäuse verschoben und es hat den Fehler mit sich gebracht. Ich versuche gerade, dieses Array in ein anderes Box-Modell zu verschieben. Historisch wurde der Fehler jedoch auch in diese Box verschoben. J Collins vor 6 Jahren 0
Ein erster Test eines Laufwerks in dieser neuen Box mit Badblocks sieht bisher solide aus. J Collins vor 6 Jahren 0
@JCollins Möglicherweise müssen Sie Rpool durch den Namen Ihres Pools oder Volumes ersetzen. cybernard vor 6 Jahren 0
Ich habe die Scrub-Funktion ausgeführt und die Frage mit neuen Informationen aktualisiert. J Collins vor 6 Jahren 0
Andere Dinge, die Sie prüfen sollten, sind `smartctl` (Zähler). Einige Zähler weisen auf Probleme wie fehlerhafte SATA-Kabel hin ... Gert van den Berg vor 6 Jahren 0
@ GertvandenBerg Ich habe die Frage mit `smartctl'-Daten für` UDMA_CRC_Error_Count` aktualisiert. Mein Verständnis ist, dass dies der beste Indikator für einen Verbindungsfehler ist. J Collins vor 6 Jahren 0
@JCollins: Richtig .... Es sind einige Fehler aufgetreten ... Wenn sie Kabel vergrößern, könnte dies das Problem sein. (Dies ist eine Lebensdaueranzeige, ein Wert ungleich Null bedeutet nur, dass die Lebensdauer des Fahrers einige Fehler aufweist). Nicht-Null-Werte zeigen normalerweise, dass Kabel problematisch sein können. (SATA / SCSI über USB scheint bei USB3 üblich zu sein, nicht sicher, ob dies zu einer höheren Anzahl führen könnte ...) Gert van den Berg vor 6 Jahren 0
Der Fehler des Archivlaufwerks scheint richtig zu sein, die Flugstunden wahrscheinlich nicht ... (Aber es sind tatsächlich Millisekunden oder etwas Ähnliches statt Stunden) Gert van den Berg vor 6 Jahren 0

1 Antwort auf die Frage

1
Gert van den Berg

Die SMART-Statistiken zeigen an, dass auf den Festplatten CRC-Fehler auf ihren Links aufgetreten sind. (Um zu überprüfen, ob es sich nicht um ein zuvor gelöstes Problem handelt, sollten Sie den Wert im UDMA_CRC_Error_CountLaufe der Zeit überwachen - es handelt sich um die Summe der Fehler während der Lebensdauer des Datenträgers.)

Die Fälle, in denen ich das zuvor gesehen habe, waren mit schlechten SATA-Kabeln verbunden. Durch Vertauschen des Kabels wurde das Problem behoben (Die Zähler haben immer noch ihre Werte, der Wert bleibt jedoch konstant). Dies ist jedoch ein recht komplexes Setup, und das Problem kann an einem Kabel, am Mux / Demux oder irgendwo im Gehäuse liegen.

Ich habe schlechte Kabel vermutet. Wenn Sie eine Menge Ersatzteile haben, ersetzen Sie sie alle. Nicht so beim USB 3.0-Gerät, da ich an dieser Stelle Kabel als Fehlerquelle eingestuft hatte. Befinden sich diese Mux / Demux-Chips ziemlich nahe an der Grenze des elektrischen Standards und haben sogar standardmäßig eine akzeptierte Fehlerrate? J Collins vor 6 Jahren 0
Wenn die Treiber auf das USB-Gehäuse umgestellt werden, hätten sie immer noch eine Fehleranzahl aus früheren Ausgaben ... (Die * Änderung * in den Werten ist wichtig) Ich kenne mich mit den Multiplexern / Demuxen nicht besonders gut aus. Es könnte sogar das Layout der Leiterplatte sein ... Es ist ein komplexes Setup mit vielen Komponenten - idealerweise müsste jedes Element einzeln getestet werden, um das genaue Problem zu ermitteln. (Ich würde davon ausgehen, dass die Port-Expander das Signal erneut übertragen würden.) Gert van den Berg vor 6 Jahren 0
Das eSATA-Kabel könnte das wahrscheinlichere Problem sein - es gilt für alle Laufwerke. Demux scheint nicht der richtige Begriff für den SiI 3132 zu sein - es scheint ein reiner SATA-IC zu sein. (Wenn Sie ein einzelnes Laufwerk (mit unwichtigen Daten) an dasselbe SATA-Kabel anschließen und `dd if = / dev / disk von = / dev / null 'und` dd if = / dev / zero von = / dev / disk #, wird dies gelöscht es ist jedoch eine Möglichkeit, viele Aktivitäten zur Überprüfung von Counter-Steigerungen zu generieren. Gert van den Berg vor 6 Jahren 1