it-swarm.com.de

Wie kann eine einzelne Festplatte in einem Hardware-SATA-RAID-10-Array das gesamte Array zum Stillstand bringen?

Auftakt:

Ich bin ein Code-Affe, der zunehmend SysAdmin-Aufgaben für meine kleine Firma übernimmt. Mein Code ist unser Produkt und wir bieten zunehmend die gleiche App wie SaaS an.

Vor ungefähr 18 Monaten habe ich unsere Server von einem Premium-Hosting-Anbieter auf einen Barebone-Rack-Drücker in einem Tier IV-Rechenzentrum umgestellt. (Im wahrsten Sinne des Wortes auf der anderen Straßenseite.) Dieses Ment macht viel mehr selbst - Dinge wie Vernetzung, Speicherung und Überwachung.

Als Teil des großen Schrittes, um unseren gemieteten direkt angeschlossenen Speicher von der Hosting-Firma zu ersetzen, baute ich einen 9-TB-Zwei-Knoten-Speicher NAS basierend auf SuperMicro-Chassises, 3ware-RAID-Karten, Ubuntu 10.04, zwei Dutzend SATA) Festplatten, DRBD und. Alles ist liebevoll in drei Blog-Posts dokumentiert: Aufbau und Test eines neuen 9 TB SATA RAID10 NFSv4 NAS: Teil I , Teil II und Teil III.

Wir haben auch ein Cacit-Überwachungssystem eingerichtet. In letzter Zeit haben wir immer mehr Datenpunkte hinzugefügt, wie z. B. SMART -Werte).

Ich hätte das alles nicht ohne awesomeboffinsatServerFault tun können . Es war eine lustige und lehrreiche Erfahrung. Mein Chef ist glücklich (wir haben eine Menge Geld gespart), unsere Kunden sind glücklich (die Lagerkosten sind gesunken), ich bin glücklich (Spaß, Spaß, Spaß).

Bis gestern.

Ausfall & Wiederherstellung:

Einige Zeit nach dem Mittagessen erhielten wir Berichte über die schwache Leistung unserer Anwendung, eines On-Demand-Streaming-Media-CMS. Ungefähr zur gleichen Zeit verschickte unser Cacti-Überwachungssystem einen Blizzard von E-Mails. Eine der aussagekräftigeren Warnungen war eine grafische Darstellung des erwarteten Iostat.

enter image description here

Die Leistung wurde so verschlechtert, dass Pingdom anfing, Benachrichtigungen über "Server aus" zu senden. Die Gesamtlast war moderat, es gab keine Verkehrsspitzen.

Nachdem ich mich bei den Anwendungsservern, den NFS-Clients des NAS, angemeldet hatte, bestätigte ich, dass fast alles sehr zeitweise und wahnsinnig lange Zeiträume aufwies IO Wartezeiten. Und sobald ich auf den primären Server sprang NAS Knoten selbst, die gleichen Verzögerungen waren offensichtlich, als versucht wurde, im Dateisystem des Problem-Arrays zu navigieren.

Zeit zum Failover, das ging gut. Innerhalb von 20 Minuten wurde bestätigt, dass alles wieder einwandfrei funktioniert.

Post-Mortem:

Nach allen Systemfehlern führe ich eine Obduktion durch, um die Fehlerursache zu ermitteln. Als erstes habe ich ssh zurück in die Box und angefangen, die Protokolle zu überprüfen. Es war komplett offline. Zeit für einen Ausflug ins Rechenzentrum. Hardware zurücksetzen, sichern und laufen.

Im /var/syslog Ich fand diesen beängstigend aussehenden Eintrag:

Nov 15 06:49:44 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_00], 6 Currently unreadable (pending) sectors
Nov 15 06:49:44 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_07], SMART Prefailure Attribute: 1 Raw_Read_Error_Rate changed from 171 to 170
Nov 15 06:49:45 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_10], 16 Currently unreadable (pending) sectors
Nov 15 06:49:45 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_10], 4 Offline uncorrectable sectors
Nov 15 06:49:45 umbilo smartd[2827]: Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
Nov 15 06:49:45 umbilo smartd[2827]: # 1  Short offline       Completed: read failure       90%      6576         3421766910
Nov 15 06:49:45 umbilo smartd[2827]: # 2  Short offline       Completed: read failure       90%      6087         3421766910
Nov 15 06:49:45 umbilo smartd[2827]: # 3  Short offline       Completed: read failure       10%      5901         656821791
Nov 15 06:49:45 umbilo smartd[2827]: # 4  Short offline       Completed: read failure       90%      5818         651637856
Nov 15 06:49:45 umbilo smartd[2827]:

Also habe ich die Cacti-Diagramme auf die Festplatten im Array überprüft. Hier sehen wir, dass die Festplatte 7 genau so abrutscht, wie es Syslog sagt. Wir sehen aber auch, dass Disk 8's SMART Read Erros schwanken).

enter image description here

Es gibt keine Nachrichten zu Datenträger 8 im Syslog. Interessanter ist, dass die schwankenden Werte für Platte 8 direkt mit den hohen IO Wartezeiten! korrelieren. Meine Interpretation ist das ::

  • Bei Datenträger 8 tritt ein ungewöhnlicher Hardwarefehler auf, der zu zeitweise langen Betriebszeiten führt.
  • Irgendwie blockiert dieser Fehlerzustand auf der Festplatte das gesamte Array

Möglicherweise gibt es eine genauere oder korrektere Beschreibung, aber das Nettoergebnis war, dass die eine Festplatte die Leistung des gesamten Arrays beeinträchtigt.

Die Fragen)

  • Wie kann eine einzelne Festplatte in einem Hardware-SATA-RAID-10-Array das gesamte Array zum Stillstand bringen?
  • Bin ich naiv zu glauben, dass die RAID-Karte sich damit hätte befassen sollen?
  • Wie kann ich verhindern, dass sich eine einzelne fehlerhafte Festplatte auf das gesamte Array auswirkt?
  • Vermisse ich etwas
105
Stu Thompson

Ich hasse es zu sagen, "SATA nicht verwenden" in kritischen Produktionsumgebungen, aber ich habe diese Situation ziemlich oft gesehen. SATA-Laufwerke sind im Allgemeinen nicht für den von Ihnen beschriebenen Arbeitszyklus gedacht, obwohl Sie in Ihrem Setup Laufwerke, die speziell für den 24x7-Betrieb ausgelegt sind angegeben haben. Ich habe die Erfahrung gemacht, dass SATA-Laufwerke auf unvorhersehbare Weise ausfallen können und sich häufig auf das gesamte Speicherarray auswirken, selbst wenn Sie RAID 1 + 0 verwenden, wie Sie es getan haben. Manchmal fallen die Laufwerke so aus, dass der gesamte Bus blockiert. Zu beachten ist, ob Sie in Ihrem Setup SAS Expander) verwenden. Dies kann einen Unterschied darin machen, wie die verbleibenden Festplatten von einem Laufwerksfehler betroffen sind.

Aber es mag sinnvoller gewesen sein, mit Mittellinie/Nearline (7200 U/min) SAS-Laufwerke im Vergleich zu SATA zu arbeiten. Es gibt eine kleine Preisprämie gegenüber SATA, aber die Laufwerke werden es tun Die Fehlerkorrektur und Berichterstellung in der SAS Schnittstelle/Protokoll) ist robuster als das SATA-Set. Also auch bei Laufwerken deren Mechanik dieselbe ist =, der SAS Protokollunterschied hat möglicherweise die Schmerzen verhindert, die Sie während Ihres Laufwerksausfalls hatten.

49
ewwhite

Wie kann eine einzelne Festplatte das Array herunterfahren? Die Antwort ist, dass dies nicht der Fall sein sollte, aber es hängt davon ab, was den Ausfall verursacht. Wenn die Festplatte auf eine Weise sterben sollte, die sich verhält, sollte sie nicht heruntergefahren werden. Es ist jedoch möglich, dass ein Fehler in einem "Edge-Fall" auftritt, den der Controller nicht verarbeiten kann.

Sind Sie naiv zu glauben, dass dies nicht passieren sollte? Nein, das glaube ich nicht. Eine solche Hardware-RAID-Karte hätte die meisten Probleme lösen müssen.

Wie kann man das verhindern? Sie können seltsame Edge-Fälle wie diesen nicht vorhersehen. Dies gehört dazu, ein Systemadministrator zu sein ... aber Sie können an Wiederherstellungsverfahren arbeiten, um zu verhindern, dass sich dies auf Ihr Unternehmen auswirkt. Die einzige Möglichkeit, dies jetzt zu beheben, besteht darin, entweder eine andere Hardwarekarte zu testen (wahrscheinlich nicht das, was Sie tun möchten) oder Ihre Laufwerke in SAS-Laufwerke anstelle von SATA) zu ändern, um festzustellen, ob SAS ist robuster. Sie können sich auch an Ihren Anbieter der RAID-Karte wenden und ihm mitteilen, was passiert ist, und sehen, was er sagt. Schließlich handelt es sich um ein Unternehmen, auf das er sich spezialisieren soll Sie kennen die Vor- und Nachteile der Wonky-Antriebselektronik und haben möglicherweise mehr technische Ratschläge zur Funktionsweise der Laufwerke sowie zur Zuverlässigkeit ... wenn Sie die richtigen Ansprechpartner finden.

Hast du etwas verpasst? Wenn Sie überprüfen möchten, ob auf dem Laufwerk ein Edge-Case-Fehler vorliegt, ziehen Sie es aus dem Array. Das Array wird herabgesetzt, aber Sie sollten nicht mehr von den seltsamen Verlangsamungen und Fehlern haben (abgesehen vom herabgesetzten Array-Status). Sie sagen, dass es momentan gut zu funktionieren scheint, aber wenn es Fehler beim Lesen der Festplatte gibt, sollten Sie das Laufwerk ersetzen, solange Sie können. Laufwerke mit hoher Kapazität können manchmal URE-Fehler aufweisen (bester Grund, RAID 5 nicht auszuführen, Randnotiz), die erst angezeigt werden, wenn ein anderes Laufwerk ausgefallen ist. Wenn auf diesem einen Laufwerk Edge-Case-Verhalten auftritt, möchten Sie nicht, dass beschädigte Daten auf die anderen Laufwerke im Array migriert werden.

17

Ich bin kein Experte, aber ich werde aufgrund meiner Erfahrung mit RAID-Controllern und Speicher-Arrays einen wilden Schuss in die Dunkelheit machen.

Festplatten fallen auf viele verschiedene Arten aus. Leider können Festplatten ausfallen oder fehlerhaft sein, wenn ihre Leistung ernsthaft beeinträchtigt wird, der RAID-Controller dies jedoch nicht als Fehler ansieht.

Wenn eine Festplatte auf offensichtliche Weise ausfällt, sollte jede RAID-Controller-Software in der Lage sein, fehlende Antworten von der Festplatte zu erkennen, sie aus dem Pool zu entfernen und Benachrichtigungen auszulösen. Ich vermute jedoch, dass hier ein ungewöhnlicher Fehler auf der Festplatte auftritt, der aus irgendeinem Grund keinen Fehler auf der Controllerseite auslöst. Wenn der Controller einen Schreib-Flush oder einen Lesevorgang von der betroffenen Festplatte durchführt, dauert es daher lange, bis er zurückkommt, und hängt wiederum den gesamten Betrieb auf IO) und damit das Array. Für was auch immer Aus diesem Grund reicht dies nicht aus, damit der RAID-Controller "ah, ausgefallene Festplatte" anzeigt, wahrscheinlich weil die Daten irgendwann zurückkommen.

Mein Rat wäre, die ausgefallene Festplatte sofort zu ersetzen. Danach würde ich mir die Konfiguration Ihrer RAID-Karte ansehen (es ist 3ware, ich fand sie ziemlich gut) und herausfinden, was eine ausgefallene Festplatte ist.

P.S. Gute Idee, SMART in Kakteen zu importieren.

10
growse

Sie benötigen die Funktionen von Speichergeräten der Enterprise-Klasse. Insbesondere verfügen die WD RE 4-Unternehmenslaufwerke über zwei Funktionen, die erforderlich sind, um dieses Verhalten in RAID-Arrays zu verhindern. Die erste unten aufgeführte Technologie verhindert, dass harmonische Rotationsvibrationen unnötigen Verschleiß an den mechanischen Komponenten der Festplatte verursachen. Die zweite Technologie hat Ihr Problem verursacht. Das SATA-Protokoll verfügt nicht über diese Funktion. Um diese Funktionen nutzen zu können, benötigen Sie SAS. Wenn Sie auf SATA-Laufwerken bestehen, können Sie SAS für SATA Interposer-Karten wie die LSISS9252) erwerben.

Verbesserte RAFF-Technologie Eine ausgefeilte Elektronik überwacht den Antrieb und korrigiert sowohl lineare als auch rotatorische Vibrationen in Echtzeit. Das Ergebnis ist eine signifikante Leistungsverbesserung in Umgebungen mit hohen Vibrationen gegenüber der vorherigen Antriebsgeneration.

RAID-spezifische, zeitlich begrenzte Fehlerbehebung (TLER) Verhindert Laufwerksausfälle, die durch die bei Desktop-Laufwerken üblichen erweiterten Fehlerbehebungsprozesse für Festplatten verursacht werden.

http://en.wikipedia.org/wiki/Error_recovery_control#Overview

Siehe auch Link unten:

http://en.wikipedia.org/wiki/Error_recovery_control#Raid_Controllers

Siehe auch: Western Digital TLER-Dokument, in dem der Fehlerbehebungsprozess ausführlich erläutert wird. Fehlerbehebung bei der Fehlerbehebung bei seriellen ATA-Festplatten der WD Caviar RAID Edition:

http://www.3dfxzone.it/public/files/2579-001098.pdf

7
Loose Cannon

Nur eine Vermutung: Die Festplatten sind so konfiguriert, dass sie Lesefehler wiederholen, anstatt einen Fehler zu melden. Während dies in einer Desktop-Einstellung wünschenswert ist, ist es in einem RAID kontraproduktiv (wo der Controller jeden Sektor neu schreiben sollte, der nicht von den anderen Festplatten lesen kann, damit das Laufwerk ihn neu zuordnen kann).

6
Simon Richter

mein Schuss im Dunkeln:

  • laufwerk 7 fällt aus. Es gibt einige Fehlerfenster, in denen es nicht verfügbar ist.

  • laufwerk 8 weist auch einige "leichtere" Fehler auf. durch erneutes Versuchen korrigiert.

  • RAID10 ist normalerweise "ein RAID0 aus mehreren RAID1-Paaren". Sind Laufwerk 7 und 8 Mitglieder desselben Paares?

wenn ja, dann scheinen Sie den Fall "sollte nicht passieren" zu treffen, bei dem zwei Festplatten auf demselben Paar ausfallen. fast das einzige, was ein RAID10 töten kann. Leider kann es vorkommen, dass alle Ihre Laufwerke vom selben Versandlos stammen und daher etwas häufiger gleichzeitig sterben.

Ich vermute, dass der Controller während eines Ausfalls von Laufwerk 7 alle Lesevorgänge auf Laufwerk 8 umgeleitet hat, sodass jede Fehlerwiederholung große Verzögerungen verursachte, die eine Lawine eingefrorener Aufgaben verursachten und die Leistung für eine Weile beeinträchtigten.

sie haben Glück, dass Laufwerk 8 noch nicht tot zu sein scheint. Sie sollten es also ohne Datenverlust reparieren können.

Ich würde zunächst beide Laufwerke wechseln und nicht vergessen, die Verkabelung zu überprüfen. Eine lose Verbindung kann dies verursachen. Wenn sie nicht fest verlegt ist, ist es wahrscheinlicher, dass sie in benachbarten Laufwerken auftritt. Außerdem verfügen einige Multiport-Karten über mehrere Zwei-Port-Anschlüsse. Wenn sich Laufwerk 7 und Laufwerk 8 auf demselben befinden, kann dies zu Problemen führen.

6
Javier

SATA Interposer Cards sind eine weitere Lösung.

Ich habe kürzlich genau das gleiche Schicksal erlebt und diesen Thread gefunden. Der allgemeine Tenor ist, dass das Protokoll SAS ) für RAID besser geeignet ist als für SATA, da SATA keine Funktionen aufweist Warum sind dieselben physischen Laufwerke mit SAS Controllern) ausgestattet, die dann als Nearline SAS verkauft werden?.

Bei der weiteren Suche fand ich:

http://www.lsi.com/products/storagecomponents/Pages/LSISS9252.aspx

Ich untersuche, eines meiner Lager mit einem Stapel davon aufzurüsten. Im Moment beträgt der Preisunterschied zwischen 3 TB SATA vs SAS) 400% (Vanillepreis, gleiche Marke, Spezifikationen und Shop, Deutschland). Ich kann natürlich Ich kann nicht sagen, ob diese Strategie gut funktioniert, aber es ist einen Versuch wert.

Kommentare sehr willkommen :-)

3
korkman

Ich habe gesehen, dass eine SATA-Festplatte mit defekter Elektronik den Firmware-Init eines Areca 12 festhält. Es gab keine Möglichkeit, auf das BIOS zuzugreifen, geschweige denn den Computer von einem beliebigen Medium aus zu starten, bis die fehlerhafte Festplatte gefunden wurde, indem die Festplatten in einer Binärdatei herausgezogen wurden Mode suchen.

2
rackandboneman