Vários anos atrás eu tive as mesmas exigências que você. A solução que escolhi foi usar o ZFS por meio do driver ZFS-FUSE no meu servidor de armazenamento. Meu pensamento era que minhas fotos pessoais, documentos digitalizados e outros arquivos similares eram coisas que eu posso acessar apenas ocasionalmente, então pode ser um tempo muito longo, digamos um ano ou mais, antes de eu perceber que um arquivo foi corrompido devido a um erro de drive ou algo parecido.
Nesse momento, todas as cópias de backup que eu tenho podem ser a versão do arquivo corrompida.
O ZFS tem um benefício sobre o RAID-5, pois pode detectar e reparar erros nos dados armazenados nos discos individuais, mesmo que as unidades não relatem um erro de leitura durante a leitura dos dados. Ele detectará, por meio de somas de verificação, que um dos discos retornou informações corrompidas e usará os dados de redundância para reparar o disco.
Devido à forma como a soma de verificação no ZFS é projetada, senti que podia confiar nela para armazenar dados usados com pouca frequência por longos períodos de tempo. Toda semana eu corro um "zpool scrub" que passa e relê todos os dados e verifica checksums.
O ZFS-FUSE se apresentou muito bem nos últimos anos.
No passado distante, para um cliente, implementei um sistema de banco de dados que armazenava informações de soma de verificação em todos os arquivos armazenados em um diretório específico. Em seguida, tive outro script que seria executado periodicamente e verificar o arquivo contra a soma de verificação armazenada no banco de dados. Com isso, podemos detectar rapidamente um arquivo corrompido e restaurar a partir de backups. Nós estávamos basicamente implementando os mesmos tipos de verificações que o ZFS faz internamente.