40% нагрузки превратились в 0% для CPU User когда увеличили размер mac таблицы в OVS. Таблицу маков в ovs расширили, что позволило уменьшить количество unknown unicast трафика и снизить нагрузку. Также нагрузка на CPU упала из-за того, что весь unknown unicast приводит к перезаписи таблицы mac адресов, а на это нужен ресурс cpu. Rx flow hash для udp мы включили на сетевых нодах, так как там много udp трафика, потому что мы используем vxlan как оверлей для сетей тенантов.
ARP у нас иногда не проходили от нейтрона, пришлось включать в ядре чтобы наверняка (не смотря на то что у нас arp_responder = true, l2_population = true)
По поводу ovs-vsctl:
да, есть два варианта — native и ovs-ofctl (vsctl). У нас выставлено
of_interface = native
ovsdb_interface = native
Но проблема в том, что некоторые вызовы все равно проходят не как native, почему мы не поняли пока.
1. BGP плагин не дорабатывали. Разве что приходилось оборачивать участок кода в try/except для того чтобы bgp-агент не падал при попытке распарсить анонс, в причинах глубоко не разбирались, так как нам это было не нужно, нам нужно было только анонсировать сети
2. Да, сервера могут быть расположены в разных стойках. На серверах сеть настроена с VLAN. Внутри проектов vxlan
3. Так и есть, от NAT отказались совсем. Виртуальные роутеры — это neutron роутеры, которые располагаются на сетевых нодах. FWaaS — это, по сути, абстракция, для фильтрации трафика используетcя iptables. Правила iptables навешиваются на внутренние интерфейсы роутеров. NAT не выполняется, если адреса роутера и адреса сети за ним находятся в одном скоупе адресов, тут написано подробнее blog.episodicgenius.com/post/neutron-address-scopes
4. Да, у нас провайдерские сети vlan, внутри них уже накручен vxlan.
У нас нет нужды включать bare metal устройства в overlay сеть.
ARP у нас иногда не проходили от нейтрона, пришлось включать в ядре чтобы наверняка (не смотря на то что у нас arp_responder = true, l2_population = true)
8000+ виртуалок
да, есть два варианта — native и ovs-ofctl (vsctl). У нас выставлено
of_interface = native
ovsdb_interface = native
Но проблема в том, что некоторые вызовы все равно проходят не как native, почему мы не поняли пока.
1. BGP плагин не дорабатывали. Разве что приходилось оборачивать участок кода в try/except для того чтобы bgp-агент не падал при попытке распарсить анонс, в причинах глубоко не разбирались, так как нам это было не нужно, нам нужно было только анонсировать сети
2. Да, сервера могут быть расположены в разных стойках. На серверах сеть настроена с VLAN. Внутри проектов vxlan
3. Так и есть, от NAT отказались совсем. Виртуальные роутеры — это neutron роутеры, которые располагаются на сетевых нодах. FWaaS — это, по сути, абстракция, для фильтрации трафика используетcя iptables. Правила iptables навешиваются на внутренние интерфейсы роутеров. NAT не выполняется, если адреса роутера и адреса сети за ним находятся в одном скоупе адресов, тут написано подробнее blog.episodicgenius.com/post/neutron-address-scopes
4. Да, у нас провайдерские сети vlan, внутри них уже накручен vxlan.
У нас нет нужды включать bare metal устройства в overlay сеть.