Как лучше всего синхронизировать большие объемы данных по всему миру?

StackOverflow https://stackoverflow.com/questions/233966

Вопрос

У меня есть большой объем данных, которые нужно синхронизировать на 4 или 5 сайтах по всему миру, около полутерабайта на каждом сайте.Оно меняется (либо добавляется, либо меняется) примерно на 1,4 Гигабайта в день, причем данные могут меняться на любом из четырех сайтов.

Большой процент (30%) данных представляет собой дубликаты пакетов (возможно, упакованные JDK), поэтому решение должно включать способ определения того факта, что на локальном компьютере лежат такие вещи, и вместо этого захватить их. скачивания с другого сайта.

Контроль версий не является проблемой, это не база кода как таковая.

Мне просто интересно, есть ли какие-нибудь решения (желательно с открытым исходным кодом), которые приближаются к такому?

Мой детский скрипт, использующий rsync, больше не помогает, мне хотелось бы выполнить более сложную и интеллектуальную синхронизацию.

Спасибо

Редактировать :Это должно быть на базе UNIX :)

Это было полезно?

Решение

Попытался ли ты Унисон?

Я добился хороших результатов.По сути, это более умный rsync, который, возможно, вам и нужен.Существует список, в котором сравниваются инструменты синхронизации файлов. здесь.

Другие советы

Похоже на работу для BitTorrent.

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

Затем каждый сайт загружает (через BitTorrent) все файлы.Это обеспечит совместное использование полосы пропускания и автоматическое повторное использование локальных копий.

Фактический рецепт будет зависеть от ваших потребностей.Например, вы можете создать 1 начальное значение BitTorrent для каждого файла на каждом хосте и установить время модификации начального файла таким же, как время модификации самого файла.Поскольку вы будете делать это ежедневно (ежечасно?), лучше использовать что-то вроде «make», чтобы (повторно) создавать начальные файлы только для новых или обновленных файлов.

Затем вы копируете все начальные файлы со всех хостов в централизованное расположение («каталог трекера») с опцией «перезаписывать, только если они более новые».Это даст вам набор торрент-сидов для всех новейших копий всех файлов.

Затем каждый хост загружает все начальные файлы (опять же, с настройкой «перезаписать, если более новая») и начинает загрузку BitTorrent для всех из них.Это приведет к загрузке/перезагрузке всех новых/обновленных файлов.

Промойте и повторяйте ежедневно.

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

Как насчет чего-нибудь вроде Red Hat? Глобальная файловая система, чтобы вся структура была разделена по каждому сайту на несколько устройств, а не дублировалась в каждом месте?

Или, возможно, коммерческая сетевая система хранения данных, например, от Левосторонние сети (отказ от ответственности: я понятия не имею о стоимости и не использовал их).

У вас есть много вариантов:

  • Вы можете попробовать настроить реплицируемая БД для хранения данных.
  • Используйте комбинацию rsync или лфтп и пользовательские скрипты, но это вас не устраивает.
  • Использовать мерзавец репозитории с максимальным сжатием и синхронизация между ними с помощью некоторых скриптов
  • Поскольку объем данных довольно большой и, вероятно, важный, сделайте либо какую-нибудь собственную разработку, наймите эксперта ;)

Проверьте супер гибкий....это довольно круто, я не использовал его в крупномасштабной среде, но в трехузловой системе он работал отлично.

Звучит как работа для Общий доступ к папкам

Вы пробовали detect-renamed патч для rsync(http://samba.anu.edu.au/ftp/rsync/dev/patches/detect-renamed.diff)?Сам не пробовал, но интересно, обнаружит ли он не только переименованные, но и дублированные файлы.Если он не обнаружит дублированные файлы, то, думаю, можно будет изменить патч, чтобы это сделать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top