Depende de lo que quieras decir con "prevenir".
(En primer lugar, la rotura de bits es un término con múltiples definiciones. Esta pregunta no se trata de que el código no se pueda ejecutar debido a la falta de mantenimiento ).
Si quiere decir "prevenir" que probablemente detectará la corrupción por descomposición de bits, sí, eso funcionará. Sin embargo, no ayudará a corregir esa corrupción: los hash solo proporcionan detección de errores , no corrección .
En general, esto es lo que se entiende por "integridad": la posibilidad de detectar manipulación no autorizada / no intencionada de datos, no la posibilidad de prevenirla o corregirla.
En general, aún querría un RAID1 junto con copias de seguridad (posiblemente implementado con instantáneas ZFS o similares, no estoy familiarizado con la semántica de ZFS en las instantáneas RAID1 +), por varias razones:
si un disco falla fatalmente, necesita un RAID1 (o una copia de seguridad reciente) para restaurar sus datos; ninguna corrección de errores puede corregir la falla de un disco completo, a menos que tenga una copia completa de los datos (RAID1). Para un breve tiempo de inactividad, esencialmente debe tener RAID1.
Si elimina accidentalmente partes o todo el repositorio, necesita una copia de seguridad (RAID1 no lo protege, ya que refleja inmediatamente el cambio en todos los dispositivos)
Sin embargo, RAID1 de nivel de bloque (por ejemplo, a través de LVM o similar) con solo dos discos en sí mismo no lo protegerá contra la descomposición silenciosa de datos: el controlador RAID no puede saber cuál de los dos discos contiene los datos correctos. Necesita información adicional para eso, como una suma de verificación sobre los archivos. Aquí es donde las sumas de comprobación zsf y btrfs vienen en: pueden ser utilizados (lo cual no quiere decir que se utilizan en estos casos, no sé cómo ZFS o btrfs manejan cosas allí) para distinguir cuál de los dos discos tiene Los datos correctos.