Прежде всего, я должен сказать, что я очень новичок в качестве системного администратора. Я пытаюсь выполнять чужую работу, и у меня почти нулевой опыт кластеризации / балансировки нагрузки и тому подобного.
Вот такая ситуация.
Имею 4 физических сервера. Требуемые конфигурации:
2 реплицированных веб-сервера, они являются общедоступным интерфейсом для доступа к данным базы данных 2 реплицированных MySQL
Я бы хотел:
1 виртуальный IP-адрес, совместно используемый веб-серверами, с балансировкой нагрузки для двух машин. Этот IP-адрес будет публичным IP-адресом, указанным DNS.
1 виртуальный IP-адрес, совместно используемый mysql, как указано выше. Это будет интерфейс, используемый для подключения приложения.
Серверы находятся в удаленной ферме серверов, но они включены в VLAN.
Возможно ли достичь этой конфигурации? В таком случае как? Если нет, что было бы хорошей альтернативой?
Спасибо за подсказку.
Дарио
Несколько вопросов: вы хотите, чтобы нагрузка была сбалансирована, потому что, если у вас есть 4 машины 2apache и 2 mysql, вы настраиваете настройку аварийного переключения, так что если один сервер выходит из строя, он будет использовать другой сервер. И для достижения этого вы можете использовать Сердцебиение http://www.linuxjournal.com/article/5862
ЕСЛИ у вас высокая нагрузка, у вас может быть 3 узла с реплицированными apache / mysql и преобразовать 1 из ящиков в деидецированный балансировщик нагрузки.
Самая надежная установка - 2 балансировщика нагрузки 3 сервера apache 1 сильный сервер mysql и 1 резервная копия через сердцебиение
больше читать
мне очень понравилось руководство по кузнечному делу
http://www.howtoforge.com/high_availability_loadbalanced_apache_cluster
Учитывая ваши физические ограничения, вы действительно можете установить 2 хоста балансировщика нагрузки и 2 сервера Apache / MySQL. MySQL должен быть в конфигурации Master / Master, но это должно быть возможно. Это не даст вам большой производительности на стороне приложения, но обеспечит высокую доступность (при условии, что нагрузка не слишком высока).
Да, это определенно возможно.
Основная проблема, с которой вы столкнетесь, - это решить, как настроить серверы mysql. Если они находятся в режиме репликации главный / главный, то есть любой сервер может принимать записи, тогда это решение в порядке. Но репликация master / master встречается редко, и более вероятно, что они настроены в ситуации master / slave, что означает, что запись может осуществляться только в основную базу данных. Вы можете настроить балансировщик нагрузки перед ними, если уверены, что этот балансировщик нагрузки будет использоваться только для READS.
Вы по-прежнему можете настроить балансировщик нагрузки перед двумя для записи, но он должен быть достаточно умным, чтобы всегда переходить к основной базе данных, пока она исправна, и отказываться от подчиненной базы данных только в случае отказа главной. На этом этапе вам потребуется ручное вмешательство, чтобы исправить ситуацию, поскольку старый мастер не будет получать новые записи.
Настроить этот тип системы нетривиально, особенно в случае смерти мастера. Удачи.