2022-09-18 Инструментарий синхронизации файлов - Часть 2 - Syncthing

В продолжении выпуска Инструментарий синхронизации файлов - Часть 1 - Resilio Sync настал черед рассказать о программе с открытым исходным кодом для синхронизации файлов. Syncthing написан на языке GO и в отличие от Resilio это полностью открытый продукт, разрабатываемый сообществом без каких либо платных версий, подписок и ограничений.

Позволяет синхронизировать файлы Peer to Peer между несколькими компьютерами. Доступен для большинства операционных систем и встроенн в некоторые дистрибутивы NAS, например XigmaNAS.

Сразу перейдём к сути и составим таблицу сравнения сильных и слабых сторон.

  1. Открытый исходный код
  2. Недавно как и у resilio появилась поддержка “опасных” или недоверенных устройств. Данные на которых хранятся в зашифрованном виде. Функция уж работает, но реализация немного сыровата.
  3. Развитое управление версиями. Syncthing может создавать версии для каждого изменяемого файла и хранить их по типу резервной копии в отдельной папке в первозданном виде.

  1. В базе грубо говоря нет выборочной синхронизации, но её можно реализовать с использованием списков игнорировнаия. Реализация совершенно не пригодна для повседневного использования, но если необходимо закачать только отдельную часть папки, или только определенные типы файлов вполне рабочая.
  2. С каждой новой версией программы скорость синхронизации и надежность повышается, но она по-прежнему ниже.
  3. Невозможно делиться ссылками, файлами или папками с простыми людьми. Отсутствует механизм создания простой ссылки на скачивание клиента и подключение к папке. Если вы хотите поделиться чем-то с другим пользователем то сначала необходимо объяснить что такое Syncthing, как его поставить, зачем это вообще нужно а потом уже дать ID своей машины, после подключения клиента пошарить на него папку и только после этого начнется скачивание.
  4. Нет механизма ограничения доступа к папке. Тут конечно не совсем нет, для каждой папке можно задать “только раздача”, “только приём” или “туда-сюда”, но если речь идет не о ваших личных пирах, а о например коллегах или друзьях - им доступ к вашим файлам ограничить только на чтение например будет проблематично, потому что “только отдача” устанавливается на папку целиком.
  5. Я точно не замерял, но похоже syncthing не так филигранно обращается с памятью как rslsync.

  1. Мой опыт показывает что на NAS системах, основанных на FreeBSD syncthing может привести к OOM 1) ошибке всей системы и выгрузить тем самым дистрибутив из памяти. Поэтому я рекомендую использовать его только из контейнера.

Не смотря на то, что преимуществ немного - все они очень весомые, чтобы отдать предпочтение этой системы вместо проприетарного Resilio Sync. Но мне кажется для каждой программы есть своя ниша и свои пользователи. Я использую syncthing для синхронизации рабочих файлов, когда ненужно ни с кем делиться.

1)
Out of memory