Как стать автором
Обновить

Комментарии 39

1) Сабж не использует дисковое пространство незнакомых друг другу нод для хранения общака? Чтобы получить дисковое пространство в сабже, нужно самому запустить две ноды?

2) Сабж, тем не менее, использует незнакомые ноды для децентрализованного поиска нужных нод? Какой расход по трафику?
Syncthing не использует сторонние ноды для передачи данных, связь происходит напрямую.

Дисковое пространство ограничено только ресурсами нод. Сервис – децентрализованный – ближе по технологии к Bittorrent Sync, а не к Dropbox. Ключевые особенности я постарался перечислить в посте.

Для поиска нод и их связи между собой используется центральный узел, который указывается в конфигурационном файле.
Параметр globalAnnounceServer по умолчанию настроен на сервер announce.syncthing.net:22025, но ведь исходный код открыт и вам никто не запрещает развернуть свой собственный узел синхронизации.

Данные по трафику я собираю и планирую выложить чуть позже, на данный момент добавил в пост информацию по потреблению памяти и процессорного времени.

Хм, тогда что в сабже децентрализованного? Получается, это просто удобный open-source, self-hosted софт, но совершенно централизованный? Причем из коробки он цетрализован на чьем-то частном сервере?
Центральный сервер необходим только для поиска нод и их связи с адресами машин. Он ни каким образом не участвует в передаче данных.

Как я уже писал ниже в комментариях, вы можете поднять свой собственный глобальный сервер и использовать его для своих нужд.

Либо вы можете указать в конфигурационном файле айпи адрес удаленной ноды, открыть на ней необходимые порты и программа будет обращаться к ней напрямую, минуя глобальный пиринговый сервер.
Первое предложение правильнее звучит так:
Центральный сервер необходим только для поиска идентификаторов нод и их связи с айпи адресами.
Давно пользуюсь rsync. Синхронизирую рабочий компьютер, домашний, raspberry pi и рабочий сервер с его помощью. Не вижу преимуществ у предложенного решения.
Rsync работает с одним соединением, а это торрент со всеми радостями балансировки нагрузки.
Так это торрент или программа синхронизации? )
Понимаю, если речь идет о группе пользователей, rsync не очень удобен.
Это гибрид. Вы с проектом BTSync не знакомы? Классическое применение у меня: я кидаю новые фотографии в каталог на десктопе. Автоматом изменения заливаются на мой сервер домашний, сервер отца и десктопе деда. Меня это спасло, когда я сжег случайно винт с данными. BTSync поддерживает примитивное версионирование, кстати.
Не знаком. У меня аналогично, что то меняю на рабочем компьютере, автоматически применяется к домашнему. Что то закидываю в папку android, автоматически появляется на планшете.
С торрентами первичная настройка в разы проще, чем скрипты переписывать. Особенно, если динамические ip и NAT с другими граблями.
Плюс пробивается NAT, используется ретрекер, находятся пиры по DHT. AES-256 из коробки.
Спасибо, попробую, а то что-то btsync не справляется с синхронизацией, когда в папке часто происходят изменения. И бывает что файлы залипают и не синхронизируются сколько не жди.
Спасибо, давно ждал открытых аналогов. Файлы не портит? Какие основные грабли?
Присоединяюсь к вопросу: не портятся ли файлы при синхронизации на блочном уровне? Интересует синхронизация pst файла объемом 2-3ГБ.
Насколько сильно кушает ресурсы? BTSync на слабеньком NAS'е и на тачке с FreeBSD создает немалую нагрузку.
добавил информацию о нагрузке и потреблении ресурсов в конце поста
Правильно ли я понял, что обе ноды в описываемой инсталляции находились в пределах одной сети(локалка)?
А как насчет ситуации, когда одна или обе ноды будут находиться на NAT-ом?
у меня заработало только когда я прописал IP вместо dynamic и пробросил порты
О. Тогда печаль. BTSync обходит такое за счёт своего стандартного трекера. А серверную часть в виде трекера здесь поднять можно?
Не знаю, не стал разбираться
Исходный код это хорошо. А тупым вроде меня что делать? Пакеты бы или репозиторий))
В пределах локальной сети каждая нода имеет свой открытый порт для оповещений.

В случае, когда ноды находятся за NAT, используется внешний сервер для связи нод.

Эти параметры указываются в конфигурационном файле и могут быть изменены при желании.
Присмотреться стоит, без сомнения… но как написано на сайте проекта — протокол еще не устоялся и до версии 1.0 возможны кардинальные изменения… так что ИМХО, поиграться можно, но надо ждать релиза…
А насчет проблем с сихронизацией часто изменяющихся файлов и большого количества мелких файлов в Btsync — лично я поставил в крон перезапуск сервиса раз в час, это дает пинок Btsync — у для принудительной сихронизации.

А также возможно разработчики Btsync таки откроют исходники на фоне появления конкурента с открытыми исходниками.
Проскакивала у них такая идея вроде. Тут сложность конкуренции вообще. Я не понимаю стратегию монетизации. Единственный вариант, который я вижу — аренда места у них на серверах под синхронизацию. По сути тот же Dropbox, но с более широкими возможностями работы из-за распределенности.
Одно из двух — или у разработчиков Btsync хитрый план по монетизации и они просто создали некое сообщество, которое помогло отработать технологию и проверить на самые очевидные баги, либо им все это фиолетово и цель не в монетизации… но тогда конкурент с открытыми исходниками при условии активной разработки и багрепортинге более предпочтителен нежели вроде рабочий Btsync, но мутный в плане того, кто смотрит мои файлы например.ИМХО опять же.
В теории btsync можно использовать без их ретрекера. Но с пирами будет труднее. Останутся прямые адреса и DHT. Открытый продукт в целом предпочтительнее.
И не только в теории — но мне удалось запустить Btsync без ретрекера только в пределах локальной сети — или если есть два сервера со статическими IP и проброшенными портами через NAT, а также прописанными хостами.
Как вариант — подконтрольный выделенный сервер с белым IP где то в интернете как собственный ретрекер. Но учитывая объем сихронизируемых данных — влетит в копеечку.
Все относительно. МТС предоставляет мне белый IP с каналом 50/100 мегабит (день/ночь) за 700 рублей в сутки. Дома 24/7 работает сервер на Debian с виртуальными машинами. Мне совсем не трудно использовать его подобным образом. Вы, кстати, про DHT забыли. Есть ненулевые шансы, что он с помощью темной магии найдет пиров через него вне сети (естественно не за NAT)
700 рублей/сутки умножить на 30 дней = 21000 рублей… к сожалению мне жаба не подпишет… да и альтернатив Ростелекому в месте моего проживания нет.
Статический IP есть конечно — но опять же все упирается в объемы синхронизации…
А насчет темной магии — у меня не сработало, как ни старался…
Стоп. Фигня получилась. В месяц, конечно.
не по теме конечно, но скрині макОС стали… ну не знаю.
Просьба по теме к автору поста — проверьте пожалуйста, есть ли какая то возможность сихронизировать папки в пределах одной ноды — к примеру на разных разделах или винчестерах. Ситуация использования — бэкап данных на подключаемый USB винчестер например.Про использование rsync — да, сейчас им и пользуюсь…
В Btsync я такой возможности без особых извратов не нашел.
BTSync ноду считает неделимой сущностью. Это да. Я, кстати, так и не понял в чем суть ограничения. Чтобы самопересечений и вложенных синхронизаций избежать? Типа каталога, который синхронизируется, а он сам часть более крупной синхронизации.
Ага Ага.Единственное что придумалось — запустил две ноды Btsync на разных портах одного сервера — но это двойная нагрузка, непонятные глюки с синхронизацией, иногда непредсказуемая загрузка под 100% CPU.
К сожалению, не нашел варианта решения вашей задачи с помощью Syncthing. Полагаю, автор не предусматривал такое использование программы.

Подобную тему уже освещали на Хабре, используя уилиту rsnapshot для Linux систем. Попробуйте ее или просмотрите комментарии, чтобы найти подходящее для вас решение: habrahabr.ru/post/136595/

Для Windows можно использовать HandyBackup: www.handybackup.ru/
Скрипт автозапуска для малинки: gist.github.com/arudmin/5a13e9105814c3f568ec

Создайте файл в папке /etc/init.d и сделайте его исполняемым. Сама программа должна быть в папке /usr/local/bin, но это можно изменить в скрипте.
Все круто, но как делать так чтобы без лишних действий перезаписывались файлы в случае если одна из папок в режиме мастер?
А то приходится нажимать кнопку для перезаписи, т.е. постоянно отслеживать состояние.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории