Если у меня два веб-сервера, как лучше всего синхронизировать их файлы?
К сожалению, сами сайты не могут быть существенно изменены. Большинство из них основано на Wordpress, но их более 200. Есть также несколько пользовательских сайтов.
Эта настройка идет с веб-сервера + сервера БД на балансировщик нагрузки Varnish + 2 веб-сервера + сервер БД. Поскольку Varnish может отправлять запросы на любой сервер по прихоти, о чем-либо вроде rsync с задержкой более 10 секунд не может быть и речи. Для всех серверов есть выделенный частный коммутатор.
Я думаю против NFS, где есть одна главная копия файлов из-за производительности и отказоустойчивости. Я хочу иметь возможность без проблем переводить любой сервер в автономный режим.
Я раньше возился с ChironFS, это файловая система FUSE, которая выполняет RAID 1 на уровне файлов. Он будет связан с NFS для сетевого аспекта. Плюсы в том, что это быстро и легко масштабируется до небольшого количества серверов. Минус в том, что это немного, так как вам также нужно использовать NFS.
Я тоже слышал об Unison, но никогда раньше не пробовал. Это уровень пользователя, поэтому я не уверен, насколько он надежен и какая задержка синхронизации будет.
Есть ли другие варианты, которые я не видел?
GlusterFS? У вас были бы оба веб-сервера как серверы gluster (скажем, экспорт / srv / export), а также действующие как клиенты gluster, монтирующие один и тот же экспортируемый том (скажем, moutning / srv / share). Файловые операции будут выполняться в / srv / share и распространяться на все блоки в кластере.
Есть ли другие варианты, которые я не видел?
Вы можете использовать кластерную файловую систему, например OCFS2. Веб-узлы могут монтировать файловую систему OCFS2, например, с помощью iSCSI. Файловая система OCFS2 находится на LUN в SAN с резервными полками.
Нетривиально в настройке, но решает указанную вами проблему.
Что ж, unison - это просто rsync с возможностью выбора различий, так что этого нет. Лично я бы придерживался NFS - он такой же надежный и надежный, как и любой другой вариант, и, по крайней мере, он прошел боевые испытания с большим количеством знаний "на пробах", и вы можете сделать его HA, если вам нужно надежность. Все остальные варианты совместно используемой файловой системы либо очень «нишевые», либо ужасно ненадежны, либо ужасно неэффективны, либо представляют собой сочетание всех трех.