Я разрабатываю новую структуру сервера, и я планирую установить за ними две рабочие лошадки apache и базу данных sql. Мне было интересно, как лучше всего отразить данные между серверами apache. Пользовательские данные на этих серверах должны быть ограничены, поскольку большая их часть будет доступна с S3.
Из предварительных исследований, которые я провел до сих пор, я читал о GlusterFS и DRBD, но поможет ли простой сценарий rsync?
Честно говоря, я бы не советовал выполнять репликацию в реальном времени между машинами apache. Пусть у них будет свой собственный код или rsync с «главного» сервера время от времени. live-time (или близкое к нему) - это много проверок файлов, в которых нет необходимости в 99% случаев.
Лично я бы рекомендовал использовать три слоя.
Балансировка нагрузки / веб-серверы (ваши http / php процессы)
Файловые серверы (код / файлы, которые необходимо использовать на всех веб-узлах)
Серверы баз данных (ваши серверные базы данных)
Намного проще, чем выполнять полную репликацию между серверами.
Если у вас нет возможности иметь выделенный файловый сервер (NFS / ect), иметь "Web2" Mount "User Uploads Web1", оба веб-сервера смогут читать и писать в общую область, синхронизация и т.д. не требуется, если вы не обновляете код сайта.
Web1
/var/www/website/www
/var/www/website/_files
web2
/var/www/website/www
/var/www/website/_files (NFS mouned to Web1)
/var/www/website/_files.bak (rsync copy from web1 incase web1 explodes)
Оба сервера практически готовы к работе с точки зрения хранилища, они избыточны, и вам не нужно добавлять какую-либо сложную ерунду по синхронизации.
редактировать:
http://www.migrate2cloud.com/blog/how-to-setup-nfs-server-on-aws-ec2
есть руководство по использованию NFS на экземпляре EC2.