RAID Controller Freeze

Was ist passiert?

In einem Fileserver haben wir einen (Broadcom) MegaRaid SAS9271-8i RAID Controller. Nachdem kein Platz mehr für neue Daten frei war, haben wir ein JBOD (just a bunch of disks) – gefüllt mit 8 TB HDDs – an den Controller angeschlossen.

Sobald jemand das JBOD nutzen und Daten lesen/schreiben wollte, ist der RAID Controller mit folgender Meldung abgestürzt:

Jan 26 14:34:00  kernel: [702452.978067] sd 0:2:3:0: task abort: FAILED scmd(ffff8801fbd02880)
[...]
Jan 26 14:34:03  kernel: [702455.874238] sd 0:2:3:0: task abort: FAILED scmd(ffff881137b28f00)
Jan 26 14:34:03  kernel: [702455.874273] sd 0:2:3:0: [sdf] tag#22 megasas: target reset FAILED!!
Jan 26 14:34:04  kernel: [702456.878163] megaraid_sas 0000:84:00.0: [ 0]waiting for 140 commands to complete for scsi0
[...]
Jan 26 14:36:59  kernel: [702632.659476] megaraid_sas 0000:84:00.0: [175]waiting for 140 commands to complete for scsi0
Jan 26 14:37:04  kernel: [702637.679616] megaraid_sas 0000:84:00.0: pending commands remain after waiting, will reset adapter scsi0.
Jan 26 14:37:04  kernel: [702637.681111] megaraid_sas 0000:84:00.0: resetting fusion adapter scsi0.
Jan 26 14:37:15  kernel: [702648.715953] megaraid_sas 0000:84:00.0: Waiting for FW to come to ready state

Jan 26 14:37:44  kernel: [702677.480809] megaraid_sas 0000:84:00.0: FW now in Ready state
Jan 26 14:37:44  kernel: [702677.480872] megaraid_sas 0000:84:00.0: Current firmware maximum commands: 1008         LDIO threshold: 0
Jan 26 14:37:46  kernel: [702679.068854] megaraid_sas 0000:84:00.0: Init cmd success
Jan 26 14:37:46  kernel: [702679.092868] megaraid_sas 0000:84:00.0: firmware type  : Extended VD(240 VD)firmware
Jan 26 14:37:46  kernel: [702679.092875] megaraid_sas 0000:84:00.0: controller type        : MR(1024MB)
Jan 26 14:37:46  kernel: [702679.092878] megaraid_sas 0000:84:00.0: Online Controller Reset(OCR)   : Enabled
Jan 26 14:37:46  kernel: [702679.092881] megaraid_sas 0000:84:00.0: Secure JBOD support    : No
Jan 26 14:37:46  kernel: [702679.117243] megaraid_sas 0000:84:00.0: Jbod map is not supported megasas_setup_jbod_map 4938
Jan 26 14:37:46  kernel: [702679.117257] megaraid_sas 0000:84:00.0: Reset successful for scsi0.
Jan 26 14:37:46  kernel: [702679.118806] megaraid_sas 0000:84:00.0: 1496287 (538752919s/0x0020/CRIT) - Controller encountered a fatal error and was reset
Jan 26 14:37:46  kernel: [702679.119565] megaraid_sas 0000:84:00.0: 1496297 (538752945s/0x0004/CRIT) - Enclosure PD 08(c Port 4 - 7/p1) fan 1 failed
Jan 26 14:37:46  kernel: [702679.119728] megaraid_sas 0000:84:00.0: 1496299 (538752945s/0x0004/CRIT) - Enclosure PD 08(c Port 4 - 7/p1) fan 2 failed
Jan 26 14:37:46  kernel: [702679.119864] megaraid_sas 0000:84:00.0: 1496301 (538752945s/0x0004/CRIT) - Enclosure PD 08(c Port 4 - 7/p1) fan 3 failed
Jan 26 14:37:46  kernel: [702679.120071] megaraid_sas 0000:84:00.0: 1496304 (538752945s/0x0004/CRIT) - Enclosure PD 09(c Port 0 - 3/p1) fan 1 failed
Jan 26 14:37:46  kernel: [702679.120207] megaraid_sas 0000:84:00.0: 1496306 (538752945s/0x0004/CRIT) - Enclosure PD 09(c Port 0 - 3/p1) fan 2 failed
Jan 26 14:37:46  kernel: [702679.120346] megaraid_sas 0000:84:00.0: 1496308 (538752945s/0x0004/CRIT) - Enclosure PD 09(c Port 0 - 3/p1) fan 3 failed
Jan 26 14:37:58  kernel: [702691.619843] JFS: nTxBlock = 8192, nTxLock = 65536
Jan 26 14:37:58  kernel: [702691.646422] ntfs: driver 2.1.32 [Flags: R/O MODULE].
Jan 26 14:37:58  kernel: [702691.676287] QNX4 filesystem 0.2.3 registered.
Jan 26 14:37:58  kernel: [702691.766574] Btrfs loaded

Nach dem Reset konnte er wieder eine Zeit lang benutzt werden, bis wieder auf das JBOD zugegriffen wurde. And so on…

Ansatz

Trotz Stunden des Suchens, kam ich hier auf keinen grünen Zweig. Viele schrieben ein Firmware Update solle helfen, das hatte ich jedoch schon gemacht. Viele sagten es liege am Kernel, aber auch verschiedenste Versionen brachten keine Abhilfe.

Lösung

Zuletzt habe ich den Broadcom Support gefragt. Nach etwas hin und her (da der erste Befehl auf unserem Controller nicht funktionierte) kam eine Antwort wie diese:

Ja, das ist ein bekanntes Problem, installieren sie storcli und führe sie bitte die nachfolgenden Befehle aus. Falls diese nicht funktionieren, schicken sie mir einen debug log.

storcli /cx set backplane expose=off
storcli /cx set sgpioforce=off

Und tadaa, bisher keine Fehler mehr.

Obwohl ich zugeben muss, dass der Support weiß was er tut, finde ich es schon fast eine Frechheit, dass dies – obwohl offensichtlich bekannt – nirgends erwähnt wird. Oder noch besser out-of-the-box ohne Fehler funktioniert…

Anyway, ich hoffe das hilft auch anderen weiter.

Update:

Stellt sich raus, das hilft doch nicht! Das Problem trat nach ein paar Tagen wieder auf. Mal schauen was der Support antwortet, ich habe nochmals nachgefragt…

Sobald es Neuigkeiten gibt, update ich den Beitrag.

Update 2:

Laut Broadcom Support sind es wohl defekte / fehlerhafte Platten die den Controller zum Reset bringen (die nur im Log des Controllers auftauchen, aber nicht von storcli oder smart als defekt / fehlerhaft angezeigt werden 🙁 ).

Diese Platten sind jetzt ausgetauscht und das RAID wird neu gebaut, da scheinbar 4 Platten gleichzeitig kaputt gegangen sind. Klingt für mich langsam eher nach einem defekten JBOD, aber wir werden sehen. Hoffentlich läufts jetzt wieder.

Update 3:

Es ist wohl ein Mix der Probleme. Ein Slot im JBOD ist definitiv kaputt, jede Platte die auf den Slot gesteckt wird fällt automatisch nach einer Zeit aus dem RAID und wird als „kaputt“ markiert.

Nachdem alle Platten getauscht wurden und dieser eine Slot nicht mehr mit ins RAID integriert wurde, scheint alles zu laufen… Schwere Geburt, ohne gutes Error Logging ist sowas wirklich schwer zu fixen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload CAPTCHA.