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