¿Cómo se recupera zfs raidz-2 desde 3 unidades inactivas?

¿Cómo se recupera zfs raidz-2 desde 3 unidades inactivas?

Me pregunto qué pasó, cómo pudo ZFS recuperarse por completo o si mis datos aún están intactos.
Cuando llegué anoche vi esto para mi consternación y luego confusión.

zpool status
  pool: san
 state: DEGRADED
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: resilvered 392K in 0h0m with 0 errors on Tue Jan 21 16:36:41 2020
config:

        NAME                                          STATE     READ WRITE CKSUM
        san                                           DEGRADED     0     0     0
          raidz2-0                                    DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346  ONLINE       0     0     0
            ata-ST2000DM001-9YN164_W1E07E0G           DEGRADED     0     0    38  too many errors
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332  DEGRADED     0     0    63  too many errors
            ata-ST2000NM0011_Z1P07NVZ                 ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344  ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                    DEGRADED     0     0    75  too many errors

errors: No known data errors 

¿Cómo es posible que no haya errores de datos y que todo el grupo no tenga fallas?

Una unidad sdftiene una falla en la prueba smartctl para SMART read fail, las otras tienen un problema ligeramente menor; sectores incorregibles/pendientes o errores UDMA CRC.

Intenté desconectar cada unidad defectuosa y luego volver a conectarla, una a la vez, pero no sirvió de nada.

    $ zpool status
  pool: san
 state: DEGRADED
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: resilvered 392K in 0h0m with 0 errors on Tue Jan 21 16:36:41 2020
config:

        NAME                                          STATE     READ WRITE CKSUM
        san                                           DEGRADED     0     0     0
          raidz2-0                                    DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346  ONLINE       0     0     0
            ata-ST2000DM001-9YN164_W1E07E0G           DEGRADED     0     0    38  too many errors
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332  OFFLINE      0     0    63
            ata-ST2000NM0011_Z1P07NVZ                 ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344  ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                    DEGRADED     0     0    75  too many errors

Entonces, sintiéndome extremadamente afortunado, o un poco confundido si mis datos todavía pudieran estar allí, después de una inspección para encontrar el peor disco, lo reemplacé con mi único repuesto.

    $ zpool status
  pool: san
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Tue Jan 21 17:33:15 2020
        467G scanned out of 8.91T at 174M/s, 14h10m to go
        77.6G resilvered, 5.12% done
config:

        NAME                                              STATE     READ WRITE CKSUM
        san                                               DEGRADED     0     0     0
          raidz2-0                                        DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346      ONLINE       0     0     0
            replacing-1                                   DEGRADED     0     0     0
              ata-ST2000DM001-9YN164_W1E07E0G             OFFLINE      0     0    38
              ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1171516  ONLINE       0     0     0  (resilvering)
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332      DEGRADED     0     0    63  too many errors
            ata-ST2000NM0011_Z1P07NVZ                     ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344      ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                        DEGRADED     0     0    75  too many errors

La recuperación de plata se completó con éxito.

$ zpool status
  pool: san
 state: DEGRADED
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: resilvered 1.48T in 12h5m with 0 errors on Wed Jan 22 05:38:48 2020
config:

        NAME                                            STATE     READ WRITE CKSUM
        san                                             DEGRADED     0     0     0
          raidz2-0                                      DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346    ONLINE       0     0     0
            ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1171516  ONLINE       0     0     0
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332    DEGRADED     0     0    63  too many errors
            ata-ST2000NM0011_Z1P07NVZ                   ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344    ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                      DEGRADED     0     0    75  too many errors

Estoy en una encrucijada en este momento. Por lo general, pongo dda cero los primeros 2 MB de la unidad defectuosa y los reemplazo por sí mismo, lo cual no me importa, sin embargo, si realmente faltan datos, es posible que necesite estos dos últimos volúmenes para recuperar cosas.

Ahora tengo esto sdfen mi escritorio, eliminado. Siento que puedo, en el peor de los casos, usar este para ayudar en la recuperación.

Mientras tanto, creo que voy a desarrollar/cero los primeros dos MB de la unidad degradada ahora y reemplazarlos por sí mismos, y creo que las cosas deberían funcionar, enjuagar y repetir para la segunda unidad defectuosa, hasta que pueda conseguir algunos reemplazos. en la mano.

Pregunta Qué sucedió, cómo pudo mantenerse el grupo o es posible que me falten algunos datos (dudoso dada la integridad de zfs y sus informes).

¿Podría haberse debido a un orden afortunado de falla, por ejemplo, no el disco superior de la pila que falló?

Pregunta Este es solo para su información y no está relacionado con el tema. ¿Qué causó que los 3 fallaran al mismo tiempo? Creo que fue un exfoliante el catalizador. Revisé la noche anterior y todas las unidades estaban en línea.

Tenga en cuenta que el cableado ha sido un problema en el pasado reciente, la oficina hace frío por la noche, pero esos problemas simplemente han sido drive unavailable, a diferencia de los errores de suma de verificación. Estoy pensando que eso no es cableado, sino quizás unidades viejas, que tienen 5 años. ¿Pero 3 fracasos en un día? ¡Vamos, eso es suficiente para asustarnos a muchos!

Respuesta1

RAID-Z2 es de doble paridad, redundancia similar a RAID 6. Dos discos podrían fallar por completo y los datos se recuperarían de la paridad. Suponiendo que el resto de la matriz esté en buen estado.

No necesariamente tuviste errores de E/S.DEGRADADO significa que ZFS siguió usando el disco, a pesar de los errores de suma de comprobación. Quizás debido a algunos giros, pero el disco aún funciona. Porel enlacede esa salida:

Ejecute 'zpool status -x' para determinar qué grupo ha experimentado errores.

Busque el dispositivo con un recuento de errores distinto de cero para LEER, ESCRIBIR o CKSUM. Esto indica que el dispositivo ha experimentado un error de lectura de E/S, un error de escritura de E/S o un error de validación de suma de comprobación. Debido a que el dispositivo es parte de un espejo o dispositivo RAID-Z, ZFS pudo recuperarse del error y posteriormente reparar los datos dañados.

Si estos errores persisten durante un período de tiempo, ZFS puede determinar que el dispositivo está defectuoso y marcarlo como tal. Sin embargo, estos recuentos de errores pueden indicar o no que el dispositivo no se puede utilizar.

Respecto al estado de la unidad:

tal vez unidades viejas, que tienen 5 años. ¿Pero 3 fracasos en un día? ¡Vamos, eso es suficiente para asustarnos a muchos!

Copia de seguridad, restauración, prueba datos importantes ahora. De diferentes medios, no de esta matriz.

Reemplace las unidades que continúen degradadas. Definitivamente si el kernel informa errores de E/S en syslog. Si está bajo garantía o contrato de soporte, aprovéchelo. Si pasan la garantía, el fabricante apostó que no durarán tanto, así que téngalo en cuenta.

información relacionada