У нас есть структура папок в нашей интрасети, которая содержит около 800 000 файлов, разделенных на около 4000 папок. Нам нужно синхронизировать это с небольшим кластером машин в наших DMZ. Глубина конструкции очень мала (она никогда не превышает двух уровней глубины).
Большинство файлов никогда не меняются, каждый день появляется несколько тысяч обновленных файлов и 1-2 тысячи новых файлов. Данные представляют собой исторические отчетные данные, которые хранятся там, где исходные данные были очищены (т.е. это завершенные отчеты, для которых исходные данные достаточно стары, чтобы мы их заархивировали и удалили). Синхронизация один раз в день достаточна, учитывая, что это может произойти в разумные сроки. Отчеты создаются в одночасье, и мы первым делом синхронизируем утром как запланированное задание.
Очевидно, что из-за того, что очень немногие файлы меняются на регулярной основе, мы можем значительно выиграть от инкрементного копирования. Мы попробовали Rsync, но это может занять от восьми до двенадцати часов, только чтобы завершить операцию «создание списка файлов». Понятно, что мы быстро перерастаем то, на что способен rsync (12-часовой период слишком длинный).
Мы использовали другой инструмент под названием RepliWeb для синхронизации структур, и он может выполнять поэтапную передачу примерно за 45 минут. Однако, кажется, что мы превысили его предел, он начал видеть, что файлы отображаются как удаленные, когда их нет (возможно, какая-то внутренняя структура памяти исчерпана, мы не уверены).
Кто-нибудь еще сталкивался с масштабным проектом синхронизации такого рода? Есть ли что-то, предназначенное для обработки массивных файловых структур, подобных этой, для синхронизации?