Ruslan
Возможно я неправильно логику действий с инстансом понял
Dorian
Поцоны А кто как HA делает ?
Dorian
Поделитесь опытом ?
J
api сервисы через haproxy + keepalived, но хочется перейти на несколько активных haproxy + BGP или OSPF. OSPF тут ругали, но, между тем, с ним можно навернуть еще и Traffic Engineering.
Andrey
а кто ругал OSPF ? BGP лучше тем что оно уже есть в нейтроне) не нужно кастылить
J
Ну там было про то что божественная ExaBGP умеет проверки сервисов с помощью скриптов и если проверка не прошла, то перестает анонсировать заданный префикс. А чтоб такое сделать с OSPF Типа придется FRR\Bird держать и внешние скрипты. Как-то так что ли.
Ruslan
А можно какую-либо ссылку на описание внедрения с pros and cons bgp/ospf в связке с haproxy? Просто слабо представляю себе для чего это делается.
J
Именно оно ! 👍
Да, ты и рассказывал)
J
А можно какую-либо ссылку на описание внедрения с pros and cons bgp/ospf в связке с haproxy? Просто слабо представляю себе для чего это делается.
В общем, суть в чем, если у тебя несколько балансировщиков нагрузки, то keepalived (по сути VRRP) будет держать виртуальный адрес активным только на одном балансировщике одновременно. Соответсно, при падении виртуальный адрес переедет на другой сервер. Тут вижу такие проблемы: - VRRP довольно такой себе протокол, с ним бывают проблемы из-за мультикастов, например. - Балансировщиков несколько, а в каждый момент времени работает только один - Виртуальный адрес эт дополнительная путаница. Потому что держать на каждом хосте надо два адреса - адрес из той ж сети что vip и сам виртуальный адрес. - Требует L2 связность между участвующими в VRRP группе серверами С динамической маршрутизацией завязанной на доступность севиса получается так: Сервис на хосте активен - значит анонсируем /32 Префикс. Пропал - протокол маршрутизации шлет обновление и оно быстро расходится, этот хост исключается из доступных. Если маршруты все с одинаковой метрикой, то будет работать ECMP, там где есть его поддержка. То есть, трафик худо-бедно будет раскидываться между серверами. А если сюда прикрутить Traffic Engineering, то получится и возможность управлять и тем как именно трафик идет к целевому серверу и пропускной способностью зарезервированной для разных TE туннелей. Как-то так вижу) Не знаю, делает ли кто-то такое и надо ли оно. Но возможность эту вижу.
J
Чот криво написал, ну да ладно.
J
В общем, суть в чем, если у тебя несколько балансировщиков нагрузки, то keepalived (по сути VRRP) будет держать виртуальный адрес активным только на одном балансировщике одновременно. Соответсно, при падении виртуальный адрес переедет на другой сервер. Тут вижу такие проблемы: - VRRP довольно такой себе протокол, с ним бывают проблемы из-за мультикастов, например. - Балансировщиков несколько, а в каждый момент времени работает только один - Виртуальный адрес эт дополнительная путаница. Потому что держать на каждом хосте надо два адреса - адрес из той ж сети что vip и сам виртуальный адрес. - Требует L2 связность между участвующими в VRRP группе серверами С динамической маршрутизацией завязанной на доступность севиса получается так: Сервис на хосте активен - значит анонсируем /32 Префикс. Пропал - протокол маршрутизации шлет обновление и оно быстро расходится, этот хост исключается из доступных. Если маршруты все с одинаковой метрикой, то будет работать ECMP, там где есть его поддержка. То есть, трафик худо-бедно будет раскидываться между серверами. А если сюда прикрутить Traffic Engineering, то получится и возможность управлять и тем как именно трафик идет к целевому серверу и пропускной способностью зарезервированной для разных TE туннелей. Как-то так вижу) Не знаю, делает ли кто-то такое и надо ли оно. Но возможность эту вижу.
Вроде, kubernetes роутер так работает примерно, с gobgp анонсирует адрес каждого пода. Но я в этой контейнерной хренотени не разбираюсь чо-то.
Dorian
В общем, суть в чем, если у тебя несколько балансировщиков нагрузки, то keepalived (по сути VRRP) будет держать виртуальный адрес активным только на одном балансировщике одновременно. Соответсно, при падении виртуальный адрес переедет на другой сервер. Тут вижу такие проблемы: - VRRP довольно такой себе протокол, с ним бывают проблемы из-за мультикастов, например. - Балансировщиков несколько, а в каждый момент времени работает только один - Виртуальный адрес эт дополнительная путаница. Потому что держать на каждом хосте надо два адреса - адрес из той ж сети что vip и сам виртуальный адрес. - Требует L2 связность между участвующими в VRRP группе серверами С динамической маршрутизацией завязанной на доступность севиса получается так: Сервис на хосте активен - значит анонсируем /32 Префикс. Пропал - протокол маршрутизации шлет обновление и оно быстро расходится, этот хост исключается из доступных. Если маршруты все с одинаковой метрикой, то будет работать ECMP, там где есть его поддержка. То есть, трафик худо-бедно будет раскидываться между серверами. А если сюда прикрутить Traffic Engineering, то получится и возможность управлять и тем как именно трафик идет к целевому серверу и пропускной способностью зарезервированной для разных TE туннелей. Как-то так вижу) Не знаю, делает ли кто-то такое и надо ли оно. Но возможность эту вижу.
У меня кой где есть связки hap+bird
Dorian
С bfd нормально работает , но нужно ВСЕ переводить на l3 чтобы быдо счастье
Dorian
Calico в помощь :(
J
А сколько нод в контрол кластере?
Сколько душа просит. Все сервисы сами по себе stateless же (уж хз как по-русски). Кластер БД держать стоит в нечетном количестве экземпляров, то есть, 1-3-5-7.
J
С bfd нормально работает , но нужно ВСЕ переводить на l3 чтобы быдо счастье
Ну, bfd нужен ж для BGP, наверное? OSPF и сам быстро справится.
Dorian
В drbd?
J
Ну да.
Dorian
Все там ок уже
Dorian
Но direct wire нужен для надёжности
Dorian
Хочу взять 2е контрол ноды
J
Ну я в нем не шарю. Вот у нас два сервера c drbd, как им решать кто из них гланый если связь между ними нарушится?
Dorian
Никак не решить без кворума
Dorian
Ну неужели у всех по 3 ноды на control ?
Dorian
Не жирно ?
Ruslan
А как определить какой сервер бд является основным, не рекомендуется же писать сразу на нескольких серверах? Какой нибудь mysql proxy или можно задать политику - данный сервис пускать на единственный живой сервер, остальные использовать при падении?
J
Ну неужели у всех по 3 ноды на control ?
По три ноды не надо. Речь о базе данных. Для неё кворум нужен. А остальные сервисы - это WSGI.
Dorian
Для базы надо три базы)
Я понимаю Как это на 2х хостах сделать ?
J
Я понимаю Как это на 2х хостах сделать ?
Ну, как сообразишь) Можно и в виртуалку запихать если дисковая система позволит так сделать и тормозов не будет.
Dorian
А у вас как ?
Dorian
3 ноды?
J
А у меня все три сервера с контроллерными сервисами еще и компьюты. У меня очень маленький кластер для второстепенных всяких сервисов.
J
Но вот в CERN, например, дочерние Nova Cell контроллеры в виртуалках. Эт я к тому что так делают и ничо страшного нету в том чтоб какой-то инфраструктурный сервис запихать в виртуалку.
Dorian
Ну у галеры есть арбитр
Dorian
Нужно на рэббита посмотреть
J
А чо с ним?
Dorian
А чо с ним?
Как его на 2 ноды разнести Ну там вроде обычный mirror
Artem
Никто не встречался с тем, что нет notification.update? Прописал вот так: [notifications] notify_on_state_change = vm_state default_level = DEBUG Тем не менее, compute.instance.update не приезжают, даже до rabbit очереди не доходят и не логируются в conductor
Fox
Подскажите что лучше использовать Neutron DVR или Neutron L3 HA
Fox
Fox
мне кажется это разные вещи) в L3 HA роутер через keepalivd резервирует
Fox
а в DVR на каждой ноде роутер
Artem
Вроде чекбоксы, а? ;)
Artem
https://docs.openstack.org/liberty/networking-guide/scenario-dvr-ovs.html
Fox
нет
Artem
neutron router-create external --distributed=True --ha=True
J
нет
DVR: Инстансы с плавающими и внешними адресами ходят наржу напрямую через инстанс роутера на компьют ноде. snat для инстансов с серыми адресами остается централизованным - ходят через роутер на network ноде. L3 HA: Для L3 агентов используется keepalived и весь нат в один момент времени только через один роутер. Ясно что DVR пизже. Из минусов тут только то что сложновато отлаживать бывает.
J
Ну и да, в случае с DVR роутер который выполняет snat тоже может работать в режиме L3 HA - помрет он, его функции на себя возьмет другой.
Andrey
лучше не использовать ни то, ни другое
Evgeny
лучше не использовать ни то, ни другое
Просто l3 агентов на network нодах ставить?
Andrey
dvr усложняет архитектуру и увеличивает расход белых адресов, HA в L3 агенте есть и так правда переключение пара минут вместо секунды
Evgeny
dvr усложняет архитектуру и увеличивает расход белых адресов, HA в L3 агенте есть и так правда переключение пара минут вместо секунды
Как этого добиться ? У меня никак не хотели роутеры переезжать если выключал одну network ноду
Artem
dvr усложняет архитектуру и увеличивает расход белых адресов, HA в L3 агенте есть и так правда переключение пара минут вместо секунды
А ничего что весь трафик через туннели идёт к нетворкам, которые ещё и отказоустойчивость уменьшают
Andrey
А ничего что весь трафик через туннели идёт к нетворкам, которые ещё и отказоустойчивость уменьшают
если у вас деплой в 5 нод - dvr лучше чем +2 нетворк ноды если у вас деплой в 50+ нод - нетворк ноды сильно облегчают жизнь
Artem
если у вас деплой в 5 нод - dvr лучше чем +2 нетворк ноды если у вас деплой в 50+ нод - нетворк ноды сильно облегчают жизнь
Ещё раз, вы концентрируете трафик на Нетворк ноды, это не лучше ничем, кроме отсутствия Гемороя для админа
Andrey
мы обеспечиваем этим нодам ospf пиринг с оборудованием и избавляемся от ната
Andrey
а с dvr, подскажите, оно весь трафик локально гоняет ? или флоатинги через нетноды идут ?
Andrey
я помню какой-то дикий треш с dvr, но не могу вспомнить какой именно)
Artem
а с dvr, подскажите, оно весь трафик локально гоняет ? или флоатинги через нетноды идут ?
External сеть начинается прямо на физическом интерфейсе гипервизора, получается что внешний трафик идет прямо на гипервизор, минуя лишние прослойки. Тенантный трафик по vxlan
Anonymous
а можно как-то балунинг прикрутить ? чтобы есть вмка, 2vcpu, 4gb ram а я хочу лайв сделать 4 vcpu, 8gb??
Andrey
что бы обеспечить HA полезной нагрузки в облаке используют LBaaS
Andrey
у него должна быть точно входа
Andrey
в моем случае это нетворк нода
Andrey
*точка входа
Artem
Дефолтный LBaaS в openstack, это haproxy запущенный в namespace, который не умеет ha из коробки.
Artem
Если вы говорите про ha между network нодами, то у Вас только 1 из них может быть активна для одного роутера в один момент времени