Há vários anos, eu tinha 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 semelhantes eram coisas que eu só podia acessar ocasionalmente, por isso pode levar muito tempo, digamos um ano ou mais, antes de perceber que um arquivo foi corrompido devido a um erro na unidade ou algo parecido.
A essa altura, todas as cópias de segurança que possuo podem ser esta versão apodrecida em bits do (s) arquivo (s).
O ZFS possui um benefício sobre o RAID-5, pois ele 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á, através de somas de verificação, que um dos discos retornou informações corrompidas e usará os dados de redundância para reparar esse disco.
Devido à maneira como a soma de verificação é projetada no ZFS, senti que podia confiar neles para armazenar dados usados com pouca frequência por longos períodos de tempo. Toda semana eu executo um "zpool scrub" que passa e relê todos os dados e verifica as somas de verificação.
O ZFS-FUSE teve um desempenho muito bom para mim 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. Eu tinha outro script que seria executado periodicamente e verificaria o arquivo na soma de verificação armazenada no banco de dados. Com isso, poderíamos detectar rapidamente um arquivo corrompido e restaurar a partir de backups. Basicamente, estávamos implementando o mesmo tipo de verificação que o ZFS realiza internamente.