Я создал субдомен для статический контент чтобы иметь возможность обслуживать его более эффективно несколько веб-серверов с балансировкой нагрузки. Этот статический контент обновляется автоматически, со скоростью ~ 1к файлов в день.
Прямо сейчас использую rsync обновить серверы в ведущий / ведомый путь но поскольку в контенте содержится более 100 тыс. файлов, требуется все больше и больше времени и ставит увеличение нагрузки ввода / вывода и на главном, и на подчиненных.
Я не могу использовать решение Я сделал предложение на Повышение производительности rsync вопрос, так как я не могу знать, какие файлы были изменены без stat
- их всех, и это не решит проблему увеличения затрат на ввод-вывод. Я также должен обрабатывать удаление файлов.
Я подумал об использовании чего-то вроде a r / o NFS на рабов, но это могло несколько победить балансировку нагрузки эффект и поставить безвозмездный SPOF.
Кстати, на серверах работает AIX, но меня также интересует решение в более общем контексте.
Возможно, вам стоит рассмотреть DRBD с OCFS, чтобы у вас были главные / главные узлы. Это не создает SPOF, потому что каждый узел имеет локальную копию.
Вы также можете создать два сервера узла NFS (главный / резервный DRBD или главный / главный DRBD с LB). Если у вас много узлов, это лучший вариант.
Почему бы вам просто не использовать обратный прокси, например Кальмар?
Если вы используете rsync, убедитесь, что файлы не открываются каждый раз, когда вы их синхронизируете. Таким образом сравниваются только списки файлов и метки времени, и это должно быть достаточно быстро, даже с миллионами файлов.
rsync -t должен копировать отметки времени и сравнивать только отметки времени. Если это не сработает, используйте параметр только размер (если ваш файл может измениться без изменения размера, будьте осторожны)