Синхронизировать две директории на Linux
Мне нужна распределенная файловая система (или инструмент синхронизации), способный синхронизировать каталог на 4 компьютерах.
Мои требования:
- автономный доступ (данные должны быть доступны в автономном режиме на каждом компьютере)
- сохранить права на выполнение: некоторые файлы помечены как исполняемые на разделе Linux. Этот флаг должен быть реплицирован.
- Эффективная стратегия синхронизации: некоторые из моих файлов имеют размер 20 ГБ, они меняются довольно часто, но очень небольшими частями (образы Virtualbox). Дельта-передачи приветствуются.
- эффективная обработка пространства: нет истории для файлов, файлы не должны копироваться во временные каталоги "на случай, если вы сломаете это".
- он должен распространять удаления файлов
- Модификация может произойти в любом из 4 шт., они должны распространяться при подключении другого ПК.
- Решение должно быть отказоустойчивым: большую часть времени 4 ПК отключены / не могут синхронизироваться.
Другие характеристики моего решения:
- Синхронизация выполняется по локальной сети, общий объем синхронизируемых данных составляет около 180 ГБ в десяти тысячах файлов. Изменения небольшие, но могут происходить в больших файлах.
- На данный момент меня интересует решение только для Linux.
- Простая стратегия слияния: конфликты либо не возникают, либо решаются с помощью "последних побед"
Я не нашел хорошего решения. Я пытался:
- Унисон: это единственный, который работает на данный момент, но мне пришлось сделать много пользовательских конфигураций (скрипты cron, которые связывают выполнение). Он зависает на моем компьютере в течение многих минут, чтобы обнаружить изменения, свет диска постоянно горит.
- Sparkleshare не очень хорошо обрабатывает большие файлы. Он хранит историю всех ваших изменений, которая растет бесконечно. Они обещают, что это будет исправлено в следующих выпусках, но на данный момент это все еще не соответствует моим потребностям.
- Owncloud не очень хорошо обрабатывает большие файлы, имеет плохую производительность копирования, хранит историю каждого файла, который я изменяю (можно отключить).
- коде? (помогите! Я не смог правильно его настроить!)
- http://git-annex.branchable.com/assistant/ преобразует все ваши файлы в символические ссылки и помечает исходный файл как доступный только для чтения ("на всякий случай, если вы сделаете ошибку, изменяя его"!). Перед тем, как редактировать файл, вы должны выполнить специальную команду "git-annex unlock", которая создает локальную копию файла, и вы должны не забыть снова заблокировать ее, если вы хотите, чтобы она была синхронизирована. Я должен был изучить руководство, прежде чем смог вернуть мои 180 Гб файлов! Никогда больше на моем компьютере!
Что попробовать дальше?
1 ответ
Похоже, я некрою старую ветку, но, надеюсь, это поможет кому-то в будущем.
BTsync, вероятно, идеальный вариант для вас. Он использует частный рой и трекер для создания общих ресурсов синхронизации. Он очень отказоустойчив и хорошо обрабатывает блоки данных, а не просто синхронизирует файлы.