Назад | Перейти на главную страницу

Лучший способ зеркалирования данных в двухузловом кластере apache

Я разрабатываю новую структуру сервера, и я планирую установить за ними две рабочие лошадки 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.