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