Как лучше реализовать непрерывную синхронизацию файлов и прав доступа к ним между двумя серверами на Linux и Windows?

Имеются два удалённых друг от друга сервера на 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 репликацию, но это дело будущего, сейчас надо решение в текущей конфигурации.
  • Вопрос задан
  • 305 просмотров
Пригласить эксперта
Ответы на вопрос 4
pindschik
@pindschik
Сисадмин
Из личного интереса дополню вопрос к сообществу: данная проблема не существует в связке Windows+Windows (через репликацию DFS), но есть ли вообще альтернативы, НОРМАЛЬНО работающие аналогичным DFS образом? Т.е. формирующие на лету буфер репликации, с разностным сжатием данных, отслеживающие права, альтернативные потоки файлов, СТАБИЛЬНЫЕ, и при этом не пасующие как Sync перед хранилищем, несколько большего размера и сложного строения, чем домашний фотоархив?
Ответ написан
SignFinder
@SignFinder
Wintel\Unix Engineer
В Samba есть какая-то поддержка DFS .
Возможно зря отказались от идеи с DFS?
Я не уверен, но возможно шары Samba можно добавлять в Folder Targets Namespace'ов, либо настроить одностороннюю DFSR c Windows шары на Samba шару.
Ответ написан
dimonchik2013
@dimonchik2013
настоящие экстремалы предпочитают жен своих друзей
cyberduck.io + sftp или что там еще

но все это не lsync , конечно
Ответ написан
@UPSA
anykey
Почему Ceph не смотрел?
Общий диск для
Ubuntu 16.04 и Win2012r2.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы