Errori di checksum ZFS, quando devo sostituire l'unità?


9

Sono abbastanza nuovo su ZFS e ho una semplice configurazione del pool di archiviazione con mirroring con 8 unità. Dopo alcune settimane di funzionamento, un'unità sembrava generare molti errori, quindi l'ho sostituita.

Passano ancora alcune settimane e ora vedo piccoli errori spuntare in tutto il pool (vedi l' zpool statusoutput di seguito). Dovrei essere preoccupato per questo? Come posso determinare se l'errore indica che l'unità deve essere sostituita?

# zpool status
  pool: storage
 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: scrub repaired 22.5K in 1h18m with 0 errors on Sun Jul 10 03:18:42 2016
config:

        NAME        STATE     READ WRITE CKSUM
        storage     ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            enc-a   ONLINE       0     0     2
            enc-b   ONLINE       0     0     0
          mirror-1  ONLINE       0     0     0
            enc-c   ONLINE       0     0     0
            enc-d   ONLINE       0     0     2
          mirror-2  ONLINE       0     0     0
            enc-e   ONLINE       0     0     2
            enc-f   ONLINE       0     0     1
          mirror-3  ONLINE       0     0     0
            enc-g   ONLINE       0     0     0
            enc-h   ONLINE       0     0     3

errors: No known data errors

ZFS mi dice utilmente di "Determinare se il dispositivo deve essere sostituito ..." ma non sono sicuro di come farlo. Ho letto l'articolo di riferimento che è stato utile ma non esattamente conclusivo.

Ho esaminato i risultati del test SMART per le unità interessate e nulla mi è saltato fuori (tutti i test sono stati completati senza errori), ma posso pubblicare anche i dati SMART se sarebbe utile.

Aggiornamento: mentre mi preparavo a riavviare Memtest86 +, ho notato molti errori sulla console. Normalmente SSH, quindi non li avevo mai visti prima. Non sono sicuro di quale registro avrei dovuto controllare, ma l'intero schermo era pieno di errori che assomigliavano a questo (non la mia esatta riga di errore, l'ho appena copiato da un altro forum):

blk_update_request: I/0 error, dev sda, sector 220473440

Da alcuni googling, sembra che questo errore possa essere indicativo di un disco difettoso, ma è difficile per me credere che tutti stiano fallendo contemporaneamente in questo modo. Pensi su dove andare da qui?

Aggiornamento 2: ho riscontrato questo problema ZOL che potrebbe essere correlato al mio problema. Come nel caso dell'OP, sto usando hdparm per eseguire il downdown delle mie unità e vedo simili errori di checksum ZFS ed blk_update_requesterrori. La mia macchina sta ancora eseguendo Memtest, quindi non posso controllare il mio kernel o la versione ZFS al momento, ma almeno questa sembra una possibilità. Ho anche visto questa domanda simile che è un po 'scoraggiante. Qualcuno sa di problemi con ZFS e spinning down drive?

Aggiornamento 3: un firmware e una versione del driver non corrispondenti sul controller LSI possono causare errori come questo? Sembra che stia eseguendo una versione del driver di 20.100.00.00 e una versione del firmware di 17.00.01.00. Varrebbe la pena provare a eseguire il flashing del firmware aggiornato sulla scheda?

# modinfo mpt2sas
filename:       /lib/modules/3.10.0-327.22.2.el7.x86_64/kernel/drivers/scsi/mpt2sas/mpt2sas.ko
version:        20.100.00.00
license:        GPL
description:    LSI MPT Fusion SAS 2.0 Device Driver
author:         Avago Technologies <MPT-FusionLinux.pdl@avagotech.com>
rhelversion:    7.2
srcversion:     FED1C003B865449804E59F5

# sas2flash -listall
LSI Corporation SAS2 Flash Utility
Version 20.00.00.00 (2014.09.18) 
Copyright (c) 2008-2014 LSI Corporation. All rights reserved 

    Adapter Selected is a LSI SAS: SAS2308_2(D1) 

Num   Ctlr            FW Ver        NVDATA        x86-BIOS         PCI Addr
----------------------------------------------------------------------------

0  SAS2308_2(D1)   17.00.01.00    11.00.00.05    07.33.00.00     00:04:00:00

Aggiornamento 4: catturati altri errori dmesgnell'output. Non sono sicuro di cosa le abbia attivate, ma le ho notate dopo aver smontato tutte le unità dell'array in preparazione all'aggiornamento del firmware del controller LSI. Aspetterò un po 'per vedere se l'aggiornamento del firmware ha risolto il problema, ma qui ci sono gli errori nel frattempo. Non sono davvero sicuro di cosa significhino.

[87181.144130] sd 0:0:2:0: [sdc] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87181.144142] sd 0:0:2:0: [sdc] CDB: Write(10) 2a 00 35 04 1c d1 00 00 01 00
[87181.144148] blk_update_request: I/O error, dev sdc, sector 889461969
[87181.144255] sd 0:0:3:0: [sdd] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87181.144259] sd 0:0:3:0: [sdd] CDB: Write(10) 2a 00 35 04 1c d1 00 00 01 00
[87181.144263] blk_update_request: I/O error, dev sdd, sector 889461969
[87181.144371] sd 0:0:4:0: [sde] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87181.144375] sd 0:0:4:0: [sde] CDB: Write(10) 2a 00 37 03 87 30 00 00 08 00
[87181.144379] blk_update_request: I/O error, dev sde, sector 922978096
[87181.144493] sd 0:0:5:0: [sdf] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87181.144500] sd 0:0:5:0: [sdf] CDB: Write(10) 2a 00 37 03 87 30 00 00 08 00
[87181.144505] blk_update_request: I/O error, dev sdf, sector 922978096
[87191.960052] sd 0:0:6:0: [sdg] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87191.960063] sd 0:0:6:0: [sdg] CDB: Write(10) 2a 00 36 04 18 5c 00 00 01 00
[87191.960068] blk_update_request: I/O error, dev sdg, sector 906238044
[87191.960158] sd 0:0:7:0: [sdh] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87191.960162] sd 0:0:7:0: [sdh] CDB: Write(10) 2a 00 36 04 18 5c 00 00 01 00
[87191.960179] blk_update_request: I/O error, dev sdh, sector 906238044
[87195.864565] sd 0:0:0:0: [sda] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87195.864578] sd 0:0:0:0: [sda] CDB: Write(10) 2a 00 37 03 7c 68 00 00 20 00
[87195.864584] blk_update_request: I/O error, dev sda, sector 922975336
[87198.770065] sd 0:0:1:0: [sdb] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87198.770078] sd 0:0:1:0: [sdb] CDB: Write(10) 2a 00 37 03 7c 88 00 00 20 00
[87198.770084] blk_update_request: I/O error, dev sdb, sector 922975368

Aggiornamento 5: ho aggiornato il firmware per il controller LSI, ma dopo aver cancellato gli errori ZFS e il lavaggio, vedo lo stesso comportamento (errori di checksum minori su alcune unità). Il prossimo passo sarà l'aggiornamento del firmware sulle unità stesse.

Aggiornamento 6: ho sostituito il riser PCI dopo aver letto in alcuni forum che altre persone con il caso NSC800 U-NAS hanno avuto problemi con il riser fornito. Non vi è stato alcun effetto sugli errori di checksum. Ho rimandato l'aggiornamento del firmware dell'HDD perché il processo è un tale dolore, ma immagino sia giunto il momento di succhiarlo e creare un'unità flash DOS avviabile.

Aggiornamento 7: ho aggiornato il firmware sulle tre unità Seagate. Le altre unità o non avevano un aggiornamento del firmware disponibile o non ero in grado di ottenerlo (Western Digital mi ha detto che non c'era un aggiornamento del firmware per il mio disco). Nessun errore è emerso dopo uno scrub iniziale, ma lo darò almeno una settimana o due prima di dire che questo ha risolto il problema. Mi sembra altamente improbabile che il firmware in tre unità possa influenzare l'intero pool in questo modo.

Aggiornamento 8: gli errori di checksum sono tornati, proprio come prima. Potrei cercare un aggiornamento del firmware per la scheda madre, ma a questo punto sono in perdita. Sarà difficile / costoso sostituire i restanti componenti fisici (controller, backplane, cablaggio) e non sono sicuro al 100% che non sia un problema con la mia installazione (ZFS + Linux + LUKS + Spinning down idle drives). Altre idee sono benvenute.

Aggiornamento 9: sto ancora cercando di rintracciarlo. Mi sono imbattuto in questa domanda che aveva alcune somiglianze con la mia situazione. Quindi, sono andato avanti e ho ricostruito lo zpool usando ashift=12per vedere se ciò avrebbe risolto il problema (senza fortuna). Quindi, ho morso il proiettile e ho comprato un nuovo controller. Ho appena installato una scheda HBA Supermicro AOC-SAS2LP-MV8 . Ci darò una settimana o due per vedere se questo risolve il problema.

Aggiornamento 10: solo per chiuderlo. Sono passate circa 2 settimane da quando è entrata la nuova scheda HBA e, a rischio di jinx, non ho più avuto errori di checksum. Un grande grazie a tutti coloro che mi hanno aiutato a risolvere questo problema.


2
Puoi dirci di più sull'hardware? La presenza di tali errori su più unità sembra indicare un problema di backplane / controller / cablaggio più che un problema del disco.
ewwhite,

Non ci avevo pensato. Le unità si trovano in uno chassis U-NAS NSC-800 fornito con un backplane SATA / SAS integrato. Ciò è collegato tramite 2 connettori mini-sas a un LBA SAS 9207-8i HBA. Ciò è collegato tramite un riser PCI fornito con lo chassis a un Supermicro MBD-X10SDV-4C .
Dominic P,

1
La tua RAM è a posto? Ho avuto errori simili quando un modulo di memoria era difettoso - nessun errore del disco, ma alcuni (bassi) errori di checksum su tutte le unità.
user121391,

1
Che è molto probabile che il controller sia palesemente evidente a questo punto. In realtà era palesemente ovvio qualche tempo fa, con "Aggiornamento 4".
Michael Hampton,

1
Prego @ hak8or. Le persone su questo sito mi hanno aiutato così tanto, quindi è bello sentire il mio esempio che potrebbe aiutare qualcun altro.
Dominic P

Risposte:


6

La presenza di tali errori su più unità sembra indicare un problema di backplane / controller / cablaggio più che un problema di disco o RAM.


Grazie per l'aiuto. Al momento non sono in grado di sostituire tutti questi componenti. Hai un suggerimento su come potrei restringerlo o quale potrebbe essere il colpevole più probabile?
Dominic P,

Prova gli aggiornamenti del firmware di tutti i componenti interessati. Questi sono dischi SATA?
ewwhite,

Lo farò grazie. Inizierò con l'aggiornamento del firmware sul controller perché ho visto altrove che le versioni di firmware e driver devono corrispondere (vedere l'aggiornamento 3 sulla mia domanda). Sì, sono tutti dischi SATA da 1 TB e ricordo che ha smartctldetto che era disponibile un aggiornamento del firmware per alcuni dei dischi Seagate che sto usando, quindi li aggiornerò anch'io.
Dominic P

7

La mia regola generale è che se gli errori continuano a salire inaspettatamente, il disco deve essere sostituito; se è statico, potrebbero essersi verificate alcune condizioni transitorie che hanno causato l'errore e il sistema non sta riproducendo le condizioni che hanno causato problemi.

Alcuni errori di checksum non indicano necessariamente qualcosa di male meccanicamente con l'unità (accade il bit rot, ZFS capita solo di rilevarlo mentre altri file system no), ma se quegli errori si sono verificati nel corso di un'ora, allora è un situazione molto diversa rispetto a quando si sono verificati nel corso di un anno.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.