Корень общего документа в кластерной настройке Apache
Я настраиваю кластер из трех серверов Apache и не могу найти много информации о том, как лучше всего обрабатывать общий корень документа. В настоящее время я планировал создать выделенный файловый сервер и поделиться исходным кодом сайта через NFS. Затем каждая машина Apache монтирует этот каталог NFS и обслуживает файлы PHP оттуда.
Единственная альтернатива NFS, которую я могу придумать, - это rsync исходных файлов между каждым сервером, но это выглядит грязно.
Мой вопрос заключается в том, как лучше всего делиться исходным кодом сайта с несколькими серверами Apache с балансировкой нагрузки?
Спасибо!
2 ответа
На самом деле я бы порекомендовал что-то еще по линии rsync, которую вы рассматривали Для довольно статического набора файлов (например, docroot для веб-сайта) эта настройка работает довольно хорошо. Попадание в распределенные файловые системы (OCFS2, GFS2) или NFS добавит дополнительные точки потенциального сбоя, создаст потенциальные проблемы с производительностью и значительно увеличит сложность установки. Кроме того, большинству распределенных файловых систем требуется (дорогое) оборудование SAN для совместного использования дисков (если только вы не используете что-то вроде DRDB, которое, я не уверен, подойдет для вашей установки).
Я бы настроил один сервер (он может иметь минимальные ресурсы или даже быть виртуальным) в качестве вашего промежуточного сервера. Настройте его точно так же, как ваши производственные веб-серверы, и любые производственные изменения будут сделаны там. Затем соберите набор скриптов (возможно / возможно, использующих rsync или аналог), которые будут перенаправлять ваш веб-корень с промежуточного сервера на все ваши рабочие серверы.
Другой возможной настройкой является сохранение вашего webroot в вашей любимой системе контроля версий исходного кода (что вы должны делать в любом случае), и чтобы три рабочих сервера извлекали корень документа непосредственно из хранилища.
Похоже, вы хотите распределенную файловую систему
http://en.wikipedia.org/wiki/List_of_file_systems
У меня был Grid-проект, и нам пришлось построить вычислительный кластер, и я решил использовать OpenAFS, который я знаю только один. Это своего рода отстой с точки зрения обучения, потому что это нелегко.
Однако у той ссылки, которую я разместил, есть список их. Некоторые поддерживают репликацию и чередование (отказоустойчивые и параллельные. Просто исследуйте их и выберите тот, который вам нравится).