Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: ha cluster web  (Прочитано 2071 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн artem.ultra

  • Автор темы
  • Участник
  • *
  • Сообщений: 226
    • Просмотр профиля
    • Sa-iT
ha cluster web
« : 30 Июля 2015, 22:57:18 »
приветствую!
есть задача построить отказоустойчивый веб сервер.
на сегодня пока что имеем сайты (файловая структура) + БД MySql
на чем все это лучше (и как) это реализовать?
как синхронизировать файловую структуру? drbd?
с Mysql понятно, можно сделать репликацию, но опять же таки вопрос, если упал один mysql как сайт поймет что нужно слать запрос на резервный?
подскажите пожалуйста по теме, может есть кого либо наработки в эту сторону?

Оффлайн petro25

  • Участник
  • *
  • Сообщений: 182
    • Просмотр профиля
Re: ha cluster web
« Ответ #1 : 31 Июля 2015, 11:43:06 »
Самому можно сделать так(долго и тяжело):
Keepalived, HAProxy, Apache(Nginx), MariaDB-Galera cluster + GlusterFS(можно DRBD или другие).

Но для такой схемы нужно 5 серверов(очень много), 2 сервера - это вебсервер + балансировка, и 3 сервера для кластера БД, можно 2 но тогда после падения могут быть глюки. На 2 серверах поднимается Keepalived(балансировка ІР), HAProxy(балансировка нагрузики - к примеру 50/50), Apache и общее хранилище(я когдато делал GlusterFS, но можна любое другое) которое монтируется на обоих серверах.

Для БД ставиться на все 3 сервера MariaDB-Galera_cluster + на 2 сервера Keepalived.

В результате сайт грузится на обох серверах с одинаковой папки + конектится на 1 ІР к БД. Если хост с БД упал - keepalived переключает ІР на другой сервер с БД(все автоматом, в настройках ниче менять не надо). Если упадет один из веб-серверов - тоже keepalived переключится на другой и все будет ок.


Вариант по проще и если кривые руки, мало знаний и лень потом все админить и думать когда оно упадет - то этот более подходящий:
Арендуеш на Amazon 2 EC2 сервера + 1 RDS +1EBS(точно не помню как оно называется)(нужного тебе обьема)

Настраиваеш балансировку web-трафика средствами Amazon на эти 2 инстанса, к ним подключаеш как общее хранилише EBS(диск) и подключаеш к веб-приложению сервер БД.

На Amazon сервер БД(RDS) не упадет(малая вероятность падения), также не нужно никакого DRBD и т.д. так как просто подключен общий раздел.

PS: прошу прощения если некоторые термины не правильно назвал: RDS, EBD, EC2...(сам в них путаюсь)
« Последнее редактирование: 31 Июля 2015, 11:45:57 от petro25 »

Оффлайн artem.ultra

  • Автор темы
  • Участник
  • *
  • Сообщений: 226
    • Просмотр профиля
    • Sa-iT
Re: ha cluster web
« Ответ #2 : 01 Августа 2015, 13:27:23 »
спасибо за совет!
тоесть, для организации веб кластера нужно как минимум 5 серверов?
два из который apache/nginx + Keepalived, HAProxy,DRBD
и три с MariaDB/Mysql + Keepalived ?
или я не правильно понял?
это просто мой первый проект, и пока понимание не очень большое ...

Оффлайн jcrush

  • Активист
  • *
  • Сообщений: 678
  • Khabara.Ru
    • Просмотр профиля
    • Компьютерные интернет обзоры
Re: ha cluster web
« Ответ #3 : 01 Августа 2015, 13:41:56 »
но опять же таки вопрос, если упал один mysql как сайт поймет что нужно слать запрос на резервный?

у меня на движке так определяется что упало mysql, так что думаю на php это не сложно

if($query) {            // Safify query     
$query = preg_replace("/([0-9a-f]){32}/", "********************************", $query); // Hides all hashes            $query_str = "$query";        }   
Ubuntu Mate Stfw.Ru — SEO блог ...

Оффлайн artem.ultra

  • Автор темы
  • Участник
  • *
  • Сообщений: 226
    • Просмотр профиля
    • Sa-iT
Re: ha cluster web
« Ответ #4 : 02 Августа 2015, 16:41:21 »
раз для моих целей, двух серверов мало, как бы посоветовали поступить?
и еще одно, к примеру у нас есть два ип сервера, сервера в разных ДЦ. как при падении одного сервера, это ип подхватится на другом серваке? ведь как ни крути, другой ДЦ ничего не знает про этот ип от первого ДЦ.

Оффлайн petro25

  • Участник
  • *
  • Сообщений: 182
    • Просмотр профиля
Re: ha cluster web
« Ответ #5 : 03 Августа 2015, 10:37:08 »
раз для моих целей, двух серверов мало, как бы посоветовали поступить?
и еще одно, к примеру у нас есть два ип сервера, сервера в разных ДЦ. как при падении одного сервера, это ип подхватится на другом серваке? ведь как ни крути, другой ДЦ ничего не знает про этот ип от первого ДЦ.

Относительно разных адресов в разных подсетях, я даже не знаю как решать - можно в днс 2 ІР забить и оно будет балансить нагрузку через ДНС но это не гуд, так как если один из серваков упадет то будет около половины запросов получать ответ - что сервер не доступен.

MySQL - если у себя делать кластер - очень много ресурсов надо для нормального кластера. Лучше арендовать MySQL гдето(тот же Amazon).


Нескромный вопрос - у тебя уже есть железо или просто планы? Если просто планы - то лучше все в облаках делать - можно териториально все разнести и бекапить проще, если есть железо - ну тут уже нужно смотреть что есть и что с него можно сделать.

Оффлайн artem.ultra

  • Автор темы
  • Участник
  • *
  • Сообщений: 226
    • Просмотр профиля
    • Sa-iT
Re: ha cluster web
« Ответ #6 : 03 Августа 2015, 12:45:57 »
железо есть. но можно и в облака уйти, это не проблема.
что с облаков по рекомендовал бы?

Оффлайн petro25

  • Участник
  • *
  • Сообщений: 182
    • Просмотр профиля
Re: ha cluster web
« Ответ #7 : 03 Августа 2015, 14:29:17 »
Amazon - ну или можно искать чтото локально в Росси или СНГ, но Amazon рулит - там куча плюшек - балансери, БД, еще всякое...

Оффлайн artem.ultra

  • Автор темы
  • Участник
  • *
  • Сообщений: 226
    • Просмотр профиля
    • Sa-iT
Re: ha cluster web
« Ответ #8 : 03 Августа 2015, 21:57:30 »
а у вас есть опыт работы с AMAZON?

Оффлайн petro25

  • Участник
  • *
  • Сообщений: 182
    • Просмотр профиля
Re: ha cluster web
« Ответ #9 : 04 Августа 2015, 09:50:15 »
Да, но заниматься этим не буду  :)

 

Страница сгенерирована за 0.038 секунд. Запросов: 25.