Я ищу двунаправленную синхронизацию данных между веб-узлами. У меня есть два веб-сервера с балансировкой нагрузки DNS. Сейчас я использую lsyncd, однако из-за функции балансировки нагрузки, когда я добавляю некоторый контент (файлы, изображения) на узел B, он не реплицируется на узел A. Можно ли использовать rsync (lsyncd), чтобы он синхронизировать файлы обоими способами?
Да, rsync справится с этим (запускается на обоих концах с флагом -u) или просто использует unison. Однако для процесса управляемого развертывания копирование файлов должно выполняться только в одном направлении.
А еще лучше использовать распределенную кластерную файловую систему, такую как AFS.
Вы можете посмотреть на файловую систему, такую как DRBD, которая автоматически синхронизирует смонтированный том по сети, что-то вроде сетевого зеркального набора RAID. В зависимости от ваших конкретных потребностей вам, возможно, придется настроить это как кластер с пульсом, чтобы избежать ситуаций с разделением мозга, но это может быть лучшим способом настроить двунаправленную синхронизацию для независимых систем.
В противном случае вы могли бы разработать какую-либо форму RSync со сценарием, но вы можете столкнуться с условиями гонки или странными аномалиями доступа к файлам.
Последний вариант, о котором я знаю, - это иметь файловый сервер в бэкэнде, который монтируют оба веб-сервера, так что на самом деле существует одно файловое хранилище или какое-либо другое решение для сервера общего хранения с использованием Fibre Channel или iscsi.