
TLDR; Mi grupo de espejos ZFS obtuvo algunos errores de suma de comprobación. Reemplacé el controlador, pensando que esa era la causa más probable, pero los errores no desaparecen. El borrado del grupo los restablece temporalmente, pero vuelven la próxima vez que ejecuto una limpieza. ¿Cómo puedo eliminarlos para siempre?
Historia completa: He tenido un ZFS mirror-0 configurado y ejecutándose en ubuntu 20.04.2 LTS durante algún tiempo. Cuando una de las unidades falló, aproveché la falla para reemplazar ambas unidades por otras más grandes, además de agregar una tarjeta PCI SATA-III para las nuevas unidades (las antiguas se habían conectado al controlador SATA II integrado). , ya que no tenía más puertos SATA III disponibles). Después de ejecutar las nuevas unidades y el controlador durante algunas semanas, ZFS se quejó de errores de suma de comprobación en ambas unidades nuevas y, como resultado, puso la matriz en un estado "degradado".
Algunas investigaciones me llevaron a la conclusión de que, dado que ambas unidades mostraban exactamente el mismo número de errores de suma de comprobación, era mucho más probable que se tratara de un problema con el controlador que con las unidades mismas. Así que saqué el nuevo controlador y volví a colocar las unidades en el controlador SATA II integrado por ahora, con la intención de reemplazar la tarjeta controladora una vez que verifique que ese es el problema. Luego eliminé los dos archivos que zpool status -v
mostraban errores permanentes, emití un mensaje zpool clear data
para restablecer los errores y ejecuté una limpieza.
Desafortunadamente, después de la limpieza los errores reaparecieron, solo que ahora ya -v
no mostraba un archivo, sino solo la dirección (inodo, creo), presumiblemente de uno de los archivos que había eliminado anteriormente. Lo intenté de nuevo, con el mismo resultado. Cada vez que ejecuto un fregado, aparece el siguiente resultado:
root@watchman:~# zpool status -v
pool: data
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://zfsonlinux.org/msg/ZFS-8000-8A
scan: scrub repaired 16K in 0 days 09:10:20 with 1 errors on Sat Jul 24 15:48:21 2021
config:
NAME STATE READ WRITE CKSUM
data DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
ata-ST8000VE000-2P6101_WSD1M5NW DEGRADED 0 0 15 too many errors
ata-ST8000VE000-2P6101_WSD1HEJX DEGRADED 0 0 15 too many errors
errors: Permanent errors have been detected in the following files:
data:<0x380508>
Por lo que puedo decir, este es el mismo problema que ya existía debido, presumiblemente, al controlador defectuoso, pero parece que no puedo solucionarlo. ¿Cómo puedo restaurar mi espejo a un estado de pleno funcionamiento?
ACTUALIZACIÓN: Finalmente abandoné la idea de borrar los errores y comencé de nuevo. Creé un nuevo grupo, robando una de las unidades del espejo existente. Luego ejecuté a rsync
para copiar todos los datos del grupo antiguo al nuevo. Esto produjo algunos errores (zfs no mintió acerca de los errores de datos), pero nada significativo o preocupante, y la exclusión de los archivos con errores permitió que rsync se completara exitosamente. Luego agregué la segunda unidad al nuevo grupo y, después de volver a platearlo, ahora todo se ve bien y se completó una limpieza en el nuevo grupo sin errores.
Entonces, suponiendo que todo siga viéndose bien durante la próxima semana, creo que es seguro asumir que la tarjeta SATA III fue la causa del problema y reemplazarla con una mejor marca/opción :)