Size: a a a

2020 June 23

AU

Alex U in Sysadminka
для этого нужен третий нод. а серверов в сетапе у меня с мастер-мастер всего два. давать предпочтение одному из них, чтобы держать на нём кворумный нод, нет смысла.
источник

AU

Alex U in Sysadminka
хотя это мысль - попробовать к keepalived привязать фэйловер скрипт, который стартанёт кворумный нод мускуля на том сервере, где сейчас активный айпишник 😂
источник

i

inqfen in Sysadminka
Лучше скриптом тогда уж в любое стороннее место писать переключение
источник

i

inqfen in Sysadminka
Типа witness
источник

i

inqfen in Sysadminka
чтобы алертить когда 1 может записать, второй может прочитать - но произошло переключение
источник

i

inqfen in Sysadminka
В итоге без полноценной третьей ноды будет хотя бы предупреждение, что что-то не так пошло
источник

i

inqfen in Sysadminka
Значит у тебя обе ноды живые, а вот между ними связи нет, готовимся к split brain
источник

i

inqfen in Sysadminka
можно автоматом на обоих дампы делать по такому случаю
источник

AU

Alex U in Sysadminka
переключение возможно, когда одна из них перестартовала. а сплитбрэйн возможен в том случае, если кто-то выдернет шнурок из приватной сети между двумя серверами. но такого не произойдёт.
источник

AU

Alex U in Sysadminka
у заказчика как-то сервера произвольно перестартовали из-за ошибки в биосе. за два месяца 3 рестарта самопроизвольных - но за серверами заказчики смотрели слабо, они даже не заметили ;)
источник

i

inqfen in Sysadminka
>но такого не произойдёт
А еще дети обещают маме, что больше никогда не будут кушать/какать
источник

AU

Alex U in Sysadminka
да, ты прав. но за 7 лет не произошло ни разу.
источник

i

inqfen in Sysadminka
Все что угодно произойдет, вопрос в том насколько готов и насколько больно
источник

i

inqfen in Sysadminka
У меня вот обновление нод на aws раз в неделю где-то было. Инстансы падали 3 раза за 2 года
источник

i

inqfen in Sysadminka
и стоит ли говорить, что пока я обновлял один ингресс, упал второй из-за проблем с гипервизором
источник

i

inqfen in Sysadminka
А процедура эта на 5 минут
источник

AU

Alex U in Sysadminka
везунчик 😆
источник

i

inqfen in Sysadminka
И вот именно в это окно и попало, хотя вероятность тоже никакая
источник

AU

Alex U in Sysadminka
в этом плане близость к своему железу помогает. знаешь, что никакой хрени на соседних вмках никто не делает.
источник

ВИ

Вадим Исаканов... in Sysadminka
Есть имхо, что просто мастер-мастер схема, даже с galeradb и подобными (не знаю про vitess), или недостаточно надежна, или слишком сложна (нужны всякие скрипты-костыли для проверки целостности данных).
Нет гарантии того, что запись прошла прям на все узлы нашего мастер-мастер.
Я б добавил какой-то буфер (типа Кафки), в котором данные хранятся, пока не придет подтверждение завершенной транзакции от всех узлов ДБ кластера.

И я тут кидал ссылку на митап Mysql@Scale, там чуваки из Баду и Авито говорили про их опыт:
- В основном master-slave схемы, а не мастер-мастер. Это просто проще.
- ProxySQL на каждом узле, который обращается к базе
- Запросы чз ProxySQL балансятся по нодам мускула, и proxysql выкидывает сдохшие узлы из списков балансировки. Тут вопрос про балансировку, раз они в основном используют мастер-слейв, видимо, мастеров все-таки обычно много.
- И тут деталь, которую я или не досмотрел, или не понял - как мы убеждаемся, что транзакции успешно прошли на всех узлах
источник