У меня была аналогичная проблема некоторое время назад с моими резервными копиями. Я обнаружил, что я могу легко создавать резервные копии данных, но гарантируя, что и резервная копия, и исходный файл были действительными, а затем заменить их, если они были повреждены, было трудоемкой задачей. Я разработал приложение C#, чтобы сделать это для меня, но это было громоздко и не так эффективно.
В конце концов, я перешел на NAS NAS4Free с зеркалом ZFS. ZFS уделяет большое внимание целостности данных. ZFS блокирует контрольные суммы уровня и хранит эти контрольные суммы отдельно от файлов. Если вы создадите зеркало ZFS, данные будут присутствовать в двух (или более) местах, и вы можете очистить зеркало. Скраб проходит через каждый блок в зеркале и обеспечивает соответствие данных контрольной сумме. Если это не так, он захватывает действительный блок из другого местоположения (ов) в зеркале.
Это позаботится о ваших локальных данных. Что касается ваших внешних данных, если вы не можете создать решение для хранения ZFS с сайта, вам, вероятно, придется архивировать и проверять резервную копию за пределами сайта перед отправкой, а затем проверять целостность так часто, как требуется. Я создаю резервные копии всех моих файлов в виде зашифрованных архивов на ледник Амазонки и каталогизирую контрольные суммы в случае, если мне нужно что-то захватить из резервной копии позже.
Существует много возможных способов решения этой проблемы, но я нашел решение для хранения данных с ZFS самым простым, самым прозрачным и наименьшим количеством обслуживания. Я надеюсь, что это поможет, или что это по крайней мере указывает на вас в полезном направлении.
Nas4Free
ZFS
ZFS Mirrors