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 status
output 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_request
errori. 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 dmesg
nell'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=12
per 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.