Имеются два удалённых друг от друга сервера на Ubuntu 16.04 и Win2012r2.
Оба втянуты в один домен с AD, на обоих имеются файловые шары с множеством различных прав доступа через AD.
В шарах порядка 3млн. файлов в 400тыс. директорий. Всего чуть более 3ТБ данных.
Всё это дело надо непрерывно синхронизировать с минимальными задержками между серверами хотя бы в одну сторону (с линукс на винду) и, желательно, бесплатными решениями.
Рассмотренные варианты:
Resilio Sync - не умеет синхронизировать расширенные атрибуты (xattr, ACLs), есть Connect, но там платно уже,
Syncthing - тоже не умеет синхронизировать расширенные права доступа,
rsync - всё отлично синхронизирует, но долго строит дерево каталогов,
lsyncd - нельзя синхронизировать с виндой, пробовал монтировать виндовую шару через CIFS, но там нет inotify и ничего не получилось,
osync - тоже не получилось синхронизировать с примонтированной виндовой CIFS директорией, выдаёт
No inotifywait command found. Cannot monitor changes.
Unison - не умеет синхронизировать расширенные права. Хотя двусторонняя синхронизация на тесте с параметрами
-repeat watch -fastcheck true
быстрее всех остальных, но на больших объёмах данных я так и не дождался окончания начального построения,
robocopy - встроенная утилита в винде, аналогична rsync в линуксе, на нём и остановился пока, т.к. там есть встроенные параметры мониторинга изменений в исходной шаре.
Запускаю в несколько процессов команды на каждую шару (для ускорения):
ROBOCOPY \\serv01\share \\serv02\share /MIR /SEC /Z /R:1 /W:5 /REG /MT:32 /MON:1 /SECFIX /NFL
/MON:1 - мониторит изменения источника за 1 минуту после окончания синхронизации и перезапускает процесс.
Проблема та же, что и у rsync - долгое построение дерева, отключить это, как в lsyncd или Unison, по видимому никак нельзя. Если кто знает, как можно отключить первоначальное построение дерева и сразу передавать изменения, подскажите, пожалуйста.
То что без начальной синхронизации менее надёжно знаю, планирую раз в сутки полностью прогонять rsync или robocopy.
Есть ли что-то ещё, что умеет синхронизировать так же и расширенные атрибуты, без первичного построения дерева?
Robocopy умеет как-то мониторить изменения файловой системы в линуксовой шаре, под линукс ничего, что так же работало бы с шарами, я не нашёл, только lsyncd и его производные, следящие за inotify.
В отдалённой перспективе снести винду и сделать везде lsyncd или zfs репликацию, но это дело будущего, сейчас надо решение в текущей конфигурации.