¿Qué sucede si fuerzo a ZFS a separar un repuesto dinámico sin réplicas válidas?

9

Tengo un grupo de ZFS compuesto por 6 RAIDZ. Uno de los RAIDZ se degrada debido a la pérdida de dos discos en el único RAIDZ lo suficientemente cerca que ZFS no pudo recuperarse de la primera falla antes de que fallara el segundo disco. Aquí está la salida del "estado de zpool" poco después del reinicio:

  pool: pod2
 state: DEGRADED
status: One or more devices has experienced an error resulting in data
        corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
        entire pool from backup.
   see: http://www.sun.com/msg/ZFS-8000-8A
 scrub: resilver in progress for 0h6m, 0.05% done, 237h17m to go
config:

        NAME                                                 STATE     READ WRITE CKSUM
        pod2                                                 DEGRADED     0     0 29.3K
          raidz1-0                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F165XG    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F1660X    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F1678R    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F1689F    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16AW9    ONLINE       0     0     0
          raidz1-1                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16C6E    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16C9F    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16FCD    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16JDQ    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17M6V    ONLINE       0     0     0
          raidz1-2                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17MSZ    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17MXE    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17XKB    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17XMW    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17ZHY    ONLINE       0     0     0
          raidz1-3                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F18BM4    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F18BRF    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F18XLP    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09880    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F098BE    ONLINE       0     0     0
          raidz1-4                                           DEGRADED     0     0 58.7K
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09B0M    ONLINE       0     0     0
            spare-1                                          DEGRADED     0     0     0
              disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09BEN  UNAVAIL      0     0     0  cannot open
              disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F49M01  ONLINE       0     0     0  837K resilvered
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0D6LC    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CWD1    ONLINE       0     0     0
            spare-4                                          DEGRADED     0     0     0
              disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09C8G  UNAVAIL      0     0     0  cannot open
              disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F4A7ZE  ONLINE       0     0     0  830K resilvered
          raidz1-5                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-1CH_Z1F2KNQP    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BML0    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPV4    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPZP    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ78    ONLINE       0     0     0
          raidz1-6                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ9G    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQDF    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQFQ    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CW1A    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BV7M    ONLINE       0     0     0
        spares
          disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F49M01      INUSE     currently in use
          disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F4A7ZE      INUSE     currently in use
          disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F49MB1      AVAIL   
          disk/by-id/scsi-SATA_ST3000DM001-1ER_Z5001SS2      AVAIL   
          disk/by-id/scsi-SATA_ST3000DM001-1ER_Z5001R0F      AVAIL   

errors: 37062187 data errors, use '-v' for a list

Cuando el primer disco falló, lo reemplacé con un repuesto dinámico y comenzó a recuperarse. Antes de que se completara el resilver, falló un segundo disco, así que reemplacé el segundo disco con otro repuesto dinámico. Desde entonces comenzará a tener capacidad de recuperación, realiza aproximadamente el 50% y luego comienza a engullir memoria hasta que se lo coma todo y cause que el sistema operativo se bloquee.

Actualizar la RAM en el servidor no es una opción sencilla en este momento, y no me queda claro que hacerlo garantice una solución. Entiendo que habrá una pérdida de datos en esta etapa, pero si puedo sacrificar el contenido de este RAIDZ para preservar el resto del grupo, es un resultado perfectamente aceptable. Estoy en el proceso de hacer una copia de seguridad del contenido de este servidor en otro servidor, pero el problema del consumo de memoria obliga a reiniciar (o bloquear) cada 48 horas más o menos, lo que interrumpe mi copia de seguridad de rsync, y reiniciar el rsync lleva tiempo (puede reanudar una vez que se da cuenta de dónde se quedó, pero eso lleva mucho tiempo).

Creo que ZFS que intenta lidiar con dos operaciones de reemplazo de repuesto es la raíz del problema de consumo de memoria, por lo que quiero eliminar uno de los repuestos dinámicos para que ZFS pueda trabajar en uno a la vez. Sin embargo, cuando intento desconectar uno de los repuestos, aparece "no se puede desconectar / dev / disk / by-id / scsi-SATA_ST3000DM001-1CH_W1F49M01: no hay réplicas válidas". Tal vez pueda usar la opción -f para forzar la operación, pero no me queda claro cuál será exactamente el resultado, por lo que quería ver si alguien tiene alguna entrada antes de seguir adelante.

Si puedo llevar el sistema a un estado estable donde pueda permanecer operativo el tiempo suficiente para que se complete la copia de seguridad, planeo desmontarlo para una revisión, pero con las condiciones actuales está atascado en un poco de un ciclo de recuperación.

jasongullickson
fuente
Has etiquetado esto zfs-fuse. ¿Es esto realmente un fusible ZFS? Proporcione detalles del sistema operativo.
ewwhite
Puedes apostar ewwhite. Debian 6.0.6
jasongullickson
¿Cuánta RAM tiene este sistema? ¿Con qué frecuencia fregó la matriz?
Chris S
¿Por qué usabas FUSE y no una implementación real de ZFS? Especialmente dado que hay mucho hardware aquí. Estoy pensando que esta matriz está hecha ...
ewwhite
En el momento en que se creó el sistema, no había una implementación nativa de ZFS para Linux.
jasongullickson

Respuestas:

1

En este momento puede desconectar los discos UNAVAIL, ZFS ya no los está utilizando de todos modos.

Tienes dos discos fallidos en una configuración RAIDZ-1. Es muy probable que esté buscando alguna pérdida de datos y esté listo para restaurar desde la copia de seguridad.

Como nota al margen, RAIDZ ha demostrado ser muy escamoso en mi experiencia con OpenSolaris / Solaris11. Aconsejaría no usarlo en CUALQUIER tipo de carga de trabajo de producción.

Además, para reforzar lo que dijo ewwhite, FUSE no es su mejor opción. Aprovecharía esta oportunidad para migrar a algo más estable (tal vez FreeBSD 10).

Giovanni Tirloni
fuente