Рейтинг:0

Высокая доступность с циклическим перебором — rsync и репликация БД или кластер?

флаг au
knm

У меня есть одна машина (centos7) с установленными Apache, PHP, MariaDB и Nginx, Nodejs, MongoDB, которые используются во многих разных доменах.

Я хотел бы создать рабочее зеркало и не могу выбрать между двумя вариантами:

  1. rsync статические веб-сайты, файлы сервера и конфигурации + репликации mariadb и mongodb
  2. кластер из 2-х машин с проксмоксом или другой бесплатной технологией (тема новая для меня)

Я хочу, чтобы они оба обслуживали файлы, например master-master sync , чтобы каждый из них мог обслуживать ~ 50% запросов.

Не могли бы вы посоветовать, что более эффективно, и порекомендовать программное обеспечение/систему по вашему выбору?

Рейтинг:0
флаг ua

HA с кластером - единственный вариант (из перечисленных вами).

Двойной мастер может привести к неожиданным конфликтам с уникальными ключами.

rsync будет повредить базу данных, если вы не отключите источник и цель. Кроме того, rsync не может позволить вам писать в оба основных сервера — он не знает, как выполнять двустороннюю синхронизацию файлов базы данных.

Репликация MySQL или MariaDB обеспечивает некоторый ХА. Но если основной умирает, вам нужно вмешаться и переключиться на реплику. Восстановление репликации после восстановления требует некоторых ручных усилий.

Пожалуйста почитайте больше, прежде чем приступать к HA.

Galera встроена в MariaDB, так что это может быть для вас самым простым путем. Но это еще не "тривиально".

флаг au
knm
Можно ли настроить кластер из двух узлов «активный-активный» с одной машиной в США, а другой в ЕС? Как Centos с corosync и кардиостимулятором или DRBD? Или этот тип кластера может работать только через локальную сеть? Я бы хотел, чтобы этот кластер был сбалансирован циклическим методом. 2 машины — обе синхронизированы — обе обслуживают веб-сайты и хранят одни и те же файлы и базы данных. Если один выходит из строя, другой работает один. Это возможно ? Читаю https://www.amazon.es/CentOS-High-Availability-Mitja-Resman-ebook/dp/B00WX1CWXC прямо сейчас, но в книге приведен только пример локальной сети с 3 узлами.
флаг ua
@knm - Двойной мастер «активный-активный» имеет задержку, возможно, 100 мс. DRBD защищает только от сбоя диска; многие другие вещи могут выйти из строя. Кластер из 2 узлов требует ручного вмешательства для восстановления после сбоя (см. «разделенный мозг»). Amazon и другие облачные сервисы для различных других магии.
Рейтинг:0
флаг cn

Хотя MariaDB и MongoDB поддерживают кластеризацию, возможно, это будет лучшим решением для вас. nginx поддерживает различные способы отправки запросов, включая циклический перебор.

Это зависит от критичности вашей архитектуры! :)

флаг au
knm
Я просто хочу иметь 2 рабочие копии файлов и баз данных веб-сайтов. Я знаю, как настроить репликацию БД и файлы rsync. Но если есть более простой вариант, чтобы воспроизвести все сразу, я бы хотел его изучить.
флаг cn
Каждое решение имеет свое собственное решение для репликации (я имею в виду коммерческое), ваш вопрос отражает архитектуру кластеризации! :)
флаг ua
@knm — _не_ выполнять rsync-файлы во время работы СУБД.
флаг au
knm
@RickJames Мне просто нужны файлы веб-сайта rsync, а для MariaDB используется собственная система репликации. Но это решение делает этот кластер активно-пассивным или master-slave. Я ищу решение, в котором я могу использовать обе машины с DNS с циклическим перебором. Похоже, мне всегда приходится использовать только одну машину для добавления данных, а затем обе для чтения данных. Это верно? Или я могу настроить его на использование обоих серверов для обновления БД и статических файлов?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.