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

Создание резервной среды ТОЛЬКО с 2 серверами (без третьего сервера, который выполняет балансировку нагрузки)

Прежде всего, извините, если на этот вопрос уже был дан ответ, но я уже некоторое время искал и не мог найти (или понять) ответ.

Итак, у меня есть два физических сервера с CentOS на них. На 1 из них уже есть несколько веб-сайтов и баз данных. Теперь я хочу создать резервную среду, используя балансировку нагрузки с переключением при отказе. Итак, в основном, я хочу, чтобы оба сервера работали, разделив работу на множество соединений, которые открыты в данный момент, и когда один из них выйдет из строя, пусть другой сервер берет на себя всю работу.

В каждом примере, с которым я сталкивался, был 3-й сервер для haproxy перед 2 веб-серверами. Но возможно ли это всего с двумя серверами (например, установив haproxy на оба веб-сервера)? Или есть лучший способ справиться с этой проблемой?

заранее спасибо.

Для этого есть несколько решений.

Самая простая установка, наверное, такая:

  • Синхронизируйте данные веб-сайтов между серверами с помощью DRBD

  • Запустите настройку MySQL master-slave между двумя серверами. Это будет означать, что все соединения с базой данных будут идти на один сервер. Если это не удается, вы должны переключиться на ведомое устройство (и повысить его до ведущего). Вы можете автоматизировать это. Репликация мастер-мастер, вероятно, слишком большая работа, если только вы не являетесь разработчиком на всех веб-сайтах.

  • Выполните циклическую балансировку нагрузки DNS (отлично работает с большинством новых браузеров, будет продолжать попытки, пока не найдет рабочий IP-адрес). Другое решение - использование HAProxy. В этом случае один сервер также будет действовать как балансировщик нагрузки для обоих серверов. Вы можете использовать keepalived для автоматического переключения на второй экземпляр HAProxy (на сервере 2), когда основной сервер выходит из строя.

Я не уверен, что назвал бы DRBD простым, крутым, может быть, но не простым. Как предложил Джероен: для маршрутизации трафика к обоим узлам можно использовать циклический DNS или HAProxy, но да, ваша настоящая проблема в том, что ваша база данных находится только в одном месте. Так что попадание на оба сервера может быть не тем, что вам нужно. DRBD обеспечит репликацию хранилища между серверами (решение проблемы). Или стандартная архитектура - это 2 * HAProxy перед веб-серверами N + 1 с базой данных на отдельной и высокодоступной платформе (возможно, ведущий / ведомый, может быть общее хранилище, может быть DRBD или, возможно, memched).