LINUX.ORG.RU
ФорумAdmin

Настройка кластера HAProxy + Corosync + Pacemake

 


0

1

Доброго дня, товаращи-коллеги. Предвкушая эффекты об летящих в меня камней, попробую описать ситуацию. С Linux знаком около 3 месяцев. Собирал тестовый кластер в связке pacemaker + corosync + haproxy (Alt Server 9.1) и два простых виндовых веб-сервера. Настроив haproxy на работу с 80-м портом, получил результат, где запрос передается поочередно на каждый веб-сервер (использовал roundrobin с весами и без). Попробовал настроить работу для запросов по https, соответсвено, запрос проходит через haproxy, но сортировка не срабатывает. Подскажите, где копать? Заранее спасибо!

Ниже конфиг одного из узлов кластера:

   log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        _haproxy
    group       _haproxy
    daemon

    
    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats


defaults
    log                     global
    mode 		    tcp
    option                  tcplog
    option                  dontlognull
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000
    

frontend https_connect
    bind *:443 
    mode tcp
    option tcplog
    default_backend web_servers
    
backend web_servers
    mode tcp
    balance roundrobin
    server site1 192.168.0.220:443 
    server site2 192.168.0.221:443 

но сортировка не срабатывает

Что это значит? Запросы приходят только на один из бэкендов?

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Да. Я указываю через https ip-адрес балансировщика и он прокидывает на сначала на один из веб-серверов, прописанных в бэкенде, но при нажатии кнопки «обновить» через неопереденное количество попыток открывает второй веб-сервер. Такое ощущение, что сортировки нет вообще.

roman993
() автор топика
Ответ на: комментарий от roman993

https://serverfault.com/questions/580142/haproxy-tcp-roundrobin-loadbalancing...

Note that roundrobin is not a good strategy to achieve even load. It will make sure that each backend receives the same number of connections over time, but does not care how long each connection last.

TL;DR - если ты с одного клиента с одного экземпляра браузера тестируешь, то ты разницы не увидишь

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 2)
Ответ на: комментарий от Pinkbyte

Я правильно понял, если хочу получить результат, то тестировать нужно как минимум с двух разных браузеров, верно (касательно roundrobin)? А по статье получается, что для tcp нужно использовать leastconn?

roman993
() автор топика
Ответ на: комментарий от roman993

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

Если ты сможешь заставить браузер инициировать новое соединение с сайтом, не закрывая предыдущее(когда загрузка страницы закончена - соединение обычно закрывается, если только хитрые скрипты этому не препятствуют) - то можно и одним браузером

А по статье получается, что для tcp нужно использовать leastconn?

Если у тебя планируются длительные соединения с keepalive - то leastconn будет лучше

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Благодарю за помощь! Стало намного понятнее.

roman993
() автор топика
7 июля 2021 г.
Ответ на: комментарий от Pinkbyte

Доброй ночи. Позвольте еще вопрос относительно конфига прокси. Подскажите, если допустим у нас кластер pacemaker и corosync собран с общим ip из подсети 10.51.177.222, конфиг прокси в части фронтенда настроен на прослушку 80 порта. Но в бэкэндахьпл итогу должны быть сервера с подсетью 192.168.0.222-224. Вопрос, это вообще возможно? Чтобы запрос шел из клиентской сети 10.51.177 и перебрасывал на бэкенды 192.168.0? Подскажите, как грамотно реализовать? Два интерфейса на ппоксе поднять?

roman993
() автор топика
Ответ на: комментарий от roman993

Два интерфейса на проксе поднять?

Правильно - спустить 2 VLAN-а на сетевую карту фронтэнда или использовать 2 разные сетевые карты.

Костыльно - назначить второй IP-адрес из подсети 192.168.0 и гонять всё в пределах одного VLAN-а.

Pinkbyte ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.