Errores de suma de comprobación de ZFS, ¿cuándo reemplazo la unidad?

9

Soy bastante nuevo en ZFS y tengo una configuración simple de agrupación de almacenamiento reflejada con 8 unidades. Después de algunas semanas de funcionamiento, una unidad parecía generar muchos errores, así que la reemplacé.

Pasan algunas semanas más y ahora veo pequeños errores en todo el grupo (ver el zpool statusresultado a continuación). ¿Debería estar preocupado por esto? ¿Cómo puedo determinar si el error indica que la unidad necesita ser reemplazada?

# 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 me dice "Determine si el dispositivo necesita ser reemplazado ...", pero no estoy seguro de cómo hacerlo. Leí el artículo referenciado que fue útil pero no exactamente concluyente.

He visto los resultados de la prueba SMART para las unidades afectadas, y nada me llamó la atención (todas las pruebas se completaron sin errores), pero también puedo publicar los datos SMART si sería útil.

Actualización: Mientras me preparaba para reiniciar en Memtest86 +, noté muchos errores en la consola. Normalmente hago SSH, así que no los vi antes. No estoy seguro de qué registro debería haber estado revisando, pero toda la pantalla estaba llena de errores que se ven así (no es mi línea de error exacta, solo copié esto de un foro diferente):

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

Según algunos Google, parece que este error puede ser indicativo de un mal disco, pero es difícil para mí creer que todos están fallando a la vez de esta manera. ¿Pensamientos sobre a dónde ir desde aquí?

Actualización 2: me encontré con este problema de ZOL que parece estar relacionado con mi problema. Al igual que el OP, estoy usando hdparm para hacer girar mis unidades y veo errores y blk_update_requesterrores de suma de verificación ZFS similares . Mi máquina todavía está ejecutando Memtest, por lo que no puedo verificar mi kernel o la versión de ZFS en este momento, pero esto al menos parece una posibilidad. También vi esta pregunta similar que es un poco desalentadora. ¿Alguien sabe de problemas con ZFS y unidades giratorias?

Actualización 3: ¿Podría una versión de firmware y controlador no coincidente en el controlador LSI causar errores como este? Parece que estoy ejecutando una versión de controlador de 20.100.00.00 y una versión de firmware de 17.00.01.00. ¿Valdría la pena intentar actualizar el firmware actualizado en la tarjeta?

# 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 <[email protected]>
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

Actualización 4: Capturó algunos errores más en la dmesgsalida. No estoy seguro de qué provocó esto, pero los noté después de desmontar todas las unidades en la matriz en preparación para actualizar el firmware del controlador LSI. Esperaré un poco para ver si la actualización del firmware resolvió el problema, pero mientras tanto, aquí están los errores. No estoy realmente seguro de lo que significan.

[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

Actualización 5: Actualicé el firmware para el controlador LSI, pero después de borrar los errores y la limpieza de ZFS, veo el mismo comportamiento (errores menores de suma de verificación en algunas de las unidades). El siguiente paso será actualizar el firmware en las propias unidades.

Actualización 6: Reemplacé el elevador PCI después de leer en algunos foros que otras personas con el caso U-NAS NSC800 han tenido problemas con el elevador proporcionado. No hubo efecto sobre los errores de suma de verificación. He estado posponiendo la actualización del firmware del disco duro porque el proceso es muy difícil, pero supongo que es hora de absorberlo y hacer una unidad flash de arranque de DOS.

Actualización 7: Actualicé el firmware en las tres unidades de Seagate. Las otras unidades no tenían una actualización de firmware disponible o no pude obtenerla (Western Digital me dijo que no había una actualización de firmware para mi unidad). No aparecieron errores después de un exfoliante inicial, pero lo voy a dar al menos una o dos semanas antes de decir que esto resolvió el problema. Me parece muy poco probable que el firmware en tres unidades pueda estar afectando a todo el conjunto de esta manera.

Actualización 8: Los errores de la suma de verificación están de vuelta, como antes. Podría buscar una actualización de firmware para la placa base, pero en este punto estoy perdido. Será difícil / costoso reemplazar los componentes físicos restantes (controlador, placa posterior, cableado), y simplemente no estoy 100% seguro de que no sea un problema con mi configuración (ZFS + Linux + LUKS + Desplegar unidades inactivas). Otras ideas son bienvenidas.

Actualización 9: Todavía estoy tratando de rastrear este. Encontré esta pregunta que tenía algunas similitudes con mi situación. Entonces, seguí adelante y reconstruí el zpool usando ashift=12para ver si eso resolvería el problema (sin suerte). Luego, mordí la bala y compré un nuevo controlador. Acabo de instalar una tarjeta HBA Supermicro AOC-SAS2LP-MV8 . Le daré una o dos semanas para ver si esto resuelve el problema.

Actualización 10: Solo para cerrar esto. Han pasado aproximadamente 2 semanas desde que entró la nueva tarjeta HBA y, a riesgo de maldecirla, no he tenido errores de suma de verificación desde entonces. Muchísimas gracias a todos los que me ayudaron a resolver esto.

Dominic P
fuente
2
¿Puedes contarnos más sobre el hardware? Tener esos errores en múltiples unidades parece indicar un problema de backplane / controlador / cableado más que un problema de disco.
ewwhite
No había pensado en eso. Las unidades están en un chasis U-NAS NSC-800 que viene con un plano posterior SATA / SAS incorporado. Eso está conectado a través de 2 conectores mini-sas a un HBA LSI SAS 9207-8i . Eso está conectado a través de una tarjeta vertical PCI que viene con el chasis a un Supermicro MBD-X10SDV-4C .
Dominic P
1
¿Está bien tu RAM? He tenido errores similares cuando un módulo de memoria estaba defectuoso: sin errores de disco, pero con una cantidad (baja) de errores de suma de comprobación en todas las unidades.
user121391
1
Es muy probable que el controlador sea evidente en este momento. En realidad, era evidente hace un tiempo, con la "Actualización 4".
Michael Hampton
1
De nada @ hak8or. Las personas en este sitio me han ayudado mucho, así que es bueno escuchar que mi ejemplo podría ayudar a alguien más.
Dominic P

Respuestas:

6

Tener esos errores en varias unidades parece indicar un problema de backplane / controlador / cableado más que un problema de disco o RAM.

ewwhite
fuente
Gracias por la ayuda. No puedo cambiar todos esos componentes en este momento. ¿Tiene alguna sugerencia sobre cómo podría reducirlo o cuál podría ser el culpable más probable?
Dominic P
Pruebe las actualizaciones de firmware de todos los componentes afectados. ¿Son estos discos SATA?
ewwhite
Lo haré, gracias. Comenzaré con la actualización de firmware en el controlador porque he visto en otros lugares que las versiones de firmware y controlador deben coincidir (consulte la actualización 3 en mi pregunta). Sí, todos son discos SATA de 1 TB, y recuerdo que smartctldijo que había una actualización de firmware disponible para algunos de los discos de Seagate que estoy usando, así que los actualizaré también.
Dominic P
7

Mi regla general es que si los errores continúan aumentando inesperadamente, el disco debe reemplazarse; si es estático, podría haber habido una condición transitoria que causó el error, y el sistema no reproduce las condiciones que causaron problemas.

Unos pocos errores de suma de comprobación no indican necesariamente nada malo mecánicamente con la unidad (ocurre una rotura de bits, ZFS simplemente lo detecta mientras que otros sistemas de archivos no lo hacen), pero si esos errores han ocurrido en el transcurso de una hora, entonces es un situación muy diferente que si hubieran sucedido en el transcurso de un año.

Shane Madden
fuente