Depende do que você quer dizer com "evitar".
(Primeiro de tudo, bit-rot é um termo com várias definições. Esta questão é não sobre code se tornando irrecuperável devido à falta de manutenção .)
Se você quer dizer "previna" que ele provavelmente detectará corrupção pelo decaimento de bits, sim, isso funcionará. No entanto, não ajudará a corrigir essa corrupção: os hashes só fornecem detecção de erro, não correção .
Isto é geralmente o que se entende por "integridade": A possibilidade de detectar manipulação não autorizada / não intencional de dados, não a possibilidade de prevenir ou corrigir isso.
Geralmente, você ainda deseja um RAID1 junto com backups (possivelmente implementados com instantâneos do ZFS ou semelhantes, não estou familiarizado com a semântica do ZFS em instantâneos RAID1 +), por diversos motivos:
-
se um disco falhar fatalmente, você precisará de um RAID1 (ou um backup recente) para restaurar seus dados; nenhuma correção de erro pode corrigir a falha de todo um disco, a menos que tenha uma cópia completa dos dados (RAID1). Por um curto período de inatividade, você essencialmente deve ter o RAID1.
-
se você acidentalmente excluir partes ou todo o repositório, precisará de um backup (o RAID1 não protege você, pois reflete imediatamente a alteração em todos os dispositivos)
RAID1 em nível de bloco (por exemplo, via LVM ou similar) com apenas dois discos em si não protege você contra a decadência silenciosa de dados: o controlador RAID não pode saber qual dos dois discos mantém a dados corretos. Você precisa de informações adicionais para isso, como uma soma de verificação dos arquivos. É aí que entram as somas de verificação ZSF e btrfs: elas podem ser usadas (o que não quer dizer que são usadas nesses casos, eu não sei como o ZFS ou o btrfs lida com as coisas lá) distinguir qual dos dois discos contém os dados corretos.