klink0v (klink0v) wrote,
klink0v
klink0v

Category:

Проблемы с Corosync внутри KVM-виртуалок

Есть такая софтинка для организации коммуникации между различными компонентами (например, узлами кластера), называется Corosync. В частности, её можно использовать в качестве транспорта по обмену сообщениями для менджера ресурсов кластера под названием Pacemaker.

Покуда под мои задачи ещё не купили много крутого и дорого железа, я тренируюсь на кошках KVM-виртуалках. И пытаюсь внутри них гонять все эти прелести.

Так вот, я обнаружил неприятный эффект. При некоторых обстоятельствах этот самый Corosync внутри виртуальных машин начинает дико косячить и вообще вести себя слабопредсказуемым образом. Иногда подвисает при попытке останова, иногда уходит в split-brain после рестарта одной из машин, иногда ещё чего-нибудь выкинет. Пришлось потратить несколько часов на разбор полётов.

Оказалось, что если ядро хост-машины собрано с опцией "CONFIG_BRIDGE_IGMP_SNOOPING", то дюже умный драйвер сетевого моста в Linux начинает сам решать, куда пропускать multicast-ы, а куда нет. И поскольку по умолчанию Corosync использует как раз таки групповые рассылки UDP-пакетов, то такое поведение ядра становится препятствием на пути оповещений, исходящих от виртуальной машины "в мир".

Соответственно, решений может быть три.

  1. Сконфигурировать Corosync на использование unicast.
  2. Использовать на хост-машине ядро без поддержки igmp snooping.
  3. Отключить igmp snooping командой типа
    echo 0 > /sys/devices/virtual/net/vmbr0/bridge/multicast_snooping
    где vmbr0 — имя моста на хост-машине, к которому подключена нужная нам виртуалка.

Если интересно, подробнее про эту проблему можно прочитать, например, здесь.

Tags: linux, troubleshooting, администрирование, виртуализация
Subscribe

  • Сцуко-Сбебранк

    ... Понадобилось мне тут сделать ещё один шаблон в Сбербанк-Онлайн "сверхлимитным". Есть у них такая фича. Ты создаешь шаблон на платёж,…

  • Габаритострадания

    ... Так исторически сложилось, что сейчас у меня "на семью" есть два автомобиля. "Старый" Ларгус с реношным двигателем K4M и…

  • Переткнулся в другого провайдера (Starlink)

    Продолжение вот этого поста. Не дожидаясь, пока мой "штатный" провайдер умрёт окончательно, решил переткнуться в другого. Как показвыает…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments