Давно я не брал в руки шашки.
Проблема оказалась глубже и интереснее, чем можно было себе представить.
Я постараюсь представить то, что было найдено с тех пор.
Приключения с IPv6
Прежде всего скажу — ребята, я не понимаю, зачем нужен IPv6 на платформе, которая сама никуда не привязана по этому самому протоколу и сама назначает себе те адреса, которые хочет. Мы с коллегой решили: «А зачем козлиный баянЭ» – и запретил IPv6. Это было строго запрещено.В трёх местах, на уровне ядра и модуля.
В то же время мы обновили программное обеспечение до последней стабильной версии.
Как отключить IPv6
- В файле /etc/default/grub в строку GRUB_CMDLINE_LINUX_DEFAULT добавлен параметр ipv6.disable=1.
- В файле /etc/modprobe.d/aliases отключите псевдоним net-pf-10 и отключите псевдоним ipv6.
- В файле /etc/sysctl.conf мы назначили net.ipv6.conf.all.disable_ipv6 = 1 и net.ipv6.conf.default.disable_ipv6 = 1.
При этом, конечно, пароли на новые автомобили перестали добавлять.
Что изменилось? Похоже, dnsmasq не запускается.
Потом я нашел в резервных копиях старые версии ПО и установил их.
Но боже мой, это всё равно не работает! Что за чудеса? В журналах много информации, но нет конкретных указаний на то, что происходит. Я начал перебирать все логи подряд, в том числе и системные.
Я случайно увидел, что на самом деле существуют журналы, рассказывающие о том, что произошло, но они не находятся в /var/log, как можно было бы ожидать.
Нет, они почему-то спрятаны в /var/lib/neutron/ha_confs и далее — в имя каталога входит имя подсети.
Существует конфигурация, сгенерированная нейтронами, и журналы запуска для поддержки активности.
У нас «стабильная» конфигурация.
Автоматически сгенерированная конфигурация содержит адреса IPv6. Демон Keepalived не запускается — он получает релиз от системы.
Мы запретили IPv6? После этого dnsmasq больше не запускается по нужному адресу — поскольку адреса нет, его должен был поднять Keepalived. Мне пришлось вернуть его обратно.
Вывод: если отключить IPv6 на уровне ядра, dnsmasq перестанет работать.
Не отключайте IPv6 в версии Openstack от Mitaka!
Старая проблема
Но старая история продолжается.
В некоторых случаях проблема возникает сразу после создания виртуальной машины, в других — нет. Напомню: периодически некоторые пакеты начинают пропадать.
А иногда это даже выглядит так, как показано на картинке.
Мы нашли относительно простой способ обойти эту проблему.
Сейчас это делается путем отрыва внутреннего IP-адреса и назначения его из другой подсети — нам часто приходится добавлять новые подсети.
Проблема уходит на некоторое время.
Некоторые машины работают отлично.
Настоящие «танцы с бубном».
Новые горизонты
Недавно я доказал себе, что эта проблема кроется в недрах OpenStack. Новую платформу мы построили по образу и подобию старой, используя при этом испытательные полигоны.Все работало отлично, в ферме было до 300 машин, и никаких сбоев! Мы обрадовались и начали готовить его к «производству».
Это подразумевало введение «разорванных» диапазонов IP-адресов — так оно и произошло.
Мы навели порядок в колхозе, убрав эти самые триста машин.
И вдруг на трех тестовых виртуальных машинах произошло то же самое, что и на старой ферме — начали пропадать пакеты, причем в большом количестве.
Похоже, проблема в самой настройке сети OpenStack. Да Да! Все дело в настройке виртуального роутера.
К сожалению, примеров нормального построения сети для более чем 20 виртуальных машин в сети найти невозможно.
Так что, похоже, продолжение следует. Теги: #Системное администрирование #Облачные вычисления #openstack #ipv6 #neutron #mitaka
-
Увеличивайте Скорость Команды В Обмен На Все
19 Oct, 24 -
Сопоставление Доменов Wordpress 3 2.0
19 Oct, 24 -
Персональные Данные И Закон
19 Oct, 24 -
Стандартизация
19 Oct, 24 -
Идея Веб-Сервиса
19 Oct, 24