Синхронизация файлов между веб-узлами

Я ищу некоторую двунаправленную синхронизацию данных между веб-узлами. У меня есть два веб-сервера с балансировкой нагрузки DNS. Я сейчас использую "lsyncd", однако из-за функции балансировки нагрузки, когда я добавляю некоторый контент (файлы, изображения) на узел B, он не реплицируется на узел A. Возможно ли использовать rsync (lsyncd), чтобы синхронизировать файлы обоими способами?

2 ответа

Решение

Вы можете посмотреть на файловую систему, такую ​​как DRBD, которая автоматически синхронизирует подключенный том по сети, что-то вроде сетевого зеркала RAID. В зависимости от ваших конкретных потребностей, вам, возможно, придется настроить это как кластер с биением сердца, чтобы избежать разрыва мозговых ситуаций, но это может быть лучшим способом настройки двунаправленной синхронизации для независимых систем.

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

Последний вариант, о котором я знаю, будет иметь файловый сервер на заднем конце, который монтируется на обоих веб-серверах, так что на самом деле будет одно хранилище файлов, или какое-то другое решение с общим сервером хранения, использующее оптоволоконный канал или iscsi.

Да, rsync справится с этим (запустит с обоих концов флаг -u) или просто использует унисон. Однако для процесса управляемого развертывания копирование файлов должно выполняться только в одном направлении.

Еще лучше, используйте распределенную кластерную файловую систему, такую ​​как AFS

Другие вопросы по тегам