Я ищу очень быструю программу для синхронизации файлов, чтобы синхронизировать данные между несколькими машинами и сайтами. Что-то вроде Dropbox или Spideroak.
Программное обеспечение должно соответствовать следующим двум критериям:
1) и самое главное. Это должно быть очень быстро. Если я изменю файл, загрузка на сервер должна начаться в течение 10 секунд. Другие подключенные машины должны начать загрузку как можно скорее, как только загрузка будет завершена. Если бы программа поддерживала блокировку файла, о котором идет речь, было бы здорово.
2) он должен поддерживать шифрование на стороне клиента.
Dropbox не подходит из-за второго пункта, Spideroak не подходит из-за первого (иногда я получал очень неутешительные результаты).
Какие инструменты синхронизации файлов вы используете? Что посоветуете?
РЕДАКТИРОВАТЬ: все компьютеры работают под управлением Linux.
EDIT2: у меня есть 4-5 сайтов. К сожалению, у них не очень большие загрузки. В худшем (мой домашний офис ;-)) есть только DSL-соединение со скоростью загрузки 80 кб / с. Самостоятельно собрать что-то - не вариант, так как я ищу решение с умеренными затратами и надежностью ;-). У меня есть root-доступ ко всем рассматриваемым клиентам.
я бы порекомендовал GlusterFS. Это файловая система NAS, которая объединяет несколько серверов в одну файловую систему. Затем вы можете установить его через предохранитель. Вы также можете подключить серверы через решение IPsec, см. Openswan например. Чтобы добавить безопасности.
Из википедия о GlusterFS:
GlusterFS имеет клиентский и серверный компоненты. Серверы обычно развертываются как блоки хранения, причем на каждом сервере работает демон glusterfsd для экспорта локальной файловой системы в виде тома. Клиентский процесс glusterfs, который подключается к серверам с помощью настраиваемого протокола через TCP / IP, InfiniBand или SDP, составляет составные виртуальные тома из нескольких удаленных серверов с помощью стекируемых трансляторов. По умолчанию файлы хранятся целиком, но также поддерживается чередование файлов по нескольким удаленным томам. Затем последний том может быть смонтирован клиентским хостом с помощью механизма FUSE или доступен через клиентскую библиотеку libglusterfs без дополнительных затрат файловой системы FUSE. Большинство функций GlusterFS реализовано в виде переводчиков, в том числе:
О скольких сайтах вы говорите? Лично я бы посмотрел на то, чтобы настроить что-то с моими собственными серверами, используя что-то вроде файловой системы DRBD или DFS (Windows использует DFS в качестве файловой системы синхронизации по сети, DRBD - это решение Linux RAID 1 по IP), а затем подключите клиентов к общий ресурс на серверах (или подключенный диск), и все будет синхронизироваться автоматически.
Вторая тема исследования - каталоги rsync между серверами через SSH.
В противном случае вы, возможно, захотите создать собственное приложение и набор скриптов, чтобы делать то, что вы ищете, что, вероятно, будет непросто, дешево или легко.
Не зная специфики (количество сайтов, контроль на имеющихся у вас клиентских сайтах, пропускная способность и т. Д.), Трудно делать другие предложения.
РЕДАКТИРОВАТЬ - DRDB кажется оптимизированным для 2 серверов; Я не знаю, что потребуется, чтобы «связать» данные. Кроме того, вы собираетесь синхронизировать данные с одного сервера с выбросами? Вы запланировали приоритет путей синхронизации (например, у вас есть центральное репо, в котором все синхронизируется из, или вы децентрализованы в том, где и как данные будут поступать и куда? Или эти удаленные офисы синхронизируют что-то с центральным сервером?) Вы можете увидеть довольно сложную установку, если учесть эти вещи. Вам нужно будет посмотреть, есть ли способ запустить утилиту синхронизации, как предлагает http://billboebel.typepad.com/blog/2006/11/data_mirroring_.html или rsync в определенное время, или поиск файловой системы на основе кластера, которая обрабатывает несколько активных «первичных» одноранговых узлов без достаточных накладных расходов, которые резко снижают вашу пропускную способность.
Вы не упомянули размер редактируемых данных или надежность вашего соединения; если вы имеете дело со средним документом, у вас будут другие потенциальные повреждения и проблемы, чем при редактировании больших изображений.
Учитывая сложность такого рода настройки, которую вы рассматриваете, я также предлагаю рассмотреть решение удаленного доступа в качестве потенциального исправления. Если вы используете Linux, то вполне возможно, что в «основном» офисе есть центральный сервер, и люди будут входить в систему с помощью удаленных SSH-терминалов и запускать сеансы непосредственно с сервера, что очень похоже на решение Windows Terminal Services. Это дает вам больше контроля над резервным копированием данных, безопасным доступом и проверкой. Но для этого у вас должна быть хорошая связь. Очень быстрые соединения позволят SSH-соединения с X-forwarding, от посредственных до быстрых соединений вы можете настроить решение удаленного терминала, более похожее на VNC (зашифрованный туннель / VPN) для соединений клиент <-> сервер.
Еще одним соображением является подключение к центральному сайту VPN и монтирование каталогов через NFS или модуль FUSE, например SSHFS. Опять же, это зависит от вашей пропускной способности и стабильности соединения.
Если вы хотите сохранить синхронизацию данных в качестве решения, у вас по-прежнему будут потенциальные проблемы с блокировкой, и данные будут обновляться с учетом условий гонки, поэтому вам нужно будет исследовать лучшие файловые системы, которые могут автоматически справиться с этой ситуацией.
Если вы используете Windows для своих клиентов и серверов, я предлагаю вам изучить распределенную файловую систему. Также обратите внимание на автономное кэширование с помощью EFS. Если вы не используете Windows, сообщите нам, что вы используете.
Изменить: взгляните на tsync (бета) для Linux.
ChironFS это распределенная файловая система, предназначенная для репликации. Он не заботится о шифровании, но вы можете использовать его под зашифрованной файловой системой, например EncFS если вы хотите, чтобы каждый клиент управлял шифрованием, или ue SSHFS для защиты данных по сети. Не знаю, подойдет ли он по производительности.
Вы можете посмотреть на Unison http://www.cis.upenn.edu/~bcpierce/unison/ однако решение для файловой системы может лучше соответствовать вашим потребностям.