В настоящее время я пытаюсь установить контроль трафика в нашем облаке OpenStack, и мои вопросы в одном предложении будут следующими: возможно ли вообще ограничить скорость конкретного порта с типом internal?
Вся история такова: мы запускаем сеть OpenStack Neutron через OpenVSwitch. Datapath можно найти здесь:
Следовательно, чтобы ограничить пропускную способность загрузки / выгрузки определенной подсети, наиболее интуитивно понятным подходом является установка правил QoS на агентах маршрутизатора L3, а именно на портах qr-XXXXXX-XX и qg-XXXXX-XX в узлах Neutron. Оба они внутренний тип в OVS-системе, и я пробовал следующие команды:
1.
ovs-vsctl set interface qr-XXXXXX-XX ingress_policing_rate=2000000
ovs-vsctl set interface qr-XXXXXX-XX ingress_policing_rate=2000
2.
ovs-vsctl -- set Port qr-XXXXXX-XX qos=@newqos \
-- --id=@newqos create QoS type=linux-htb other-config:max-rate=2000000 queues=0=@q0 \
-- --id=@q0 create Queue other-config:min-rate=2000000
Хотя ни один из них не кажется эффективным, когда я пытаюсь использовать iperf внутри виртуальных машин.
Между тем, я достигаю предела скорости, применяя точно такие же команды к qvoXXXXXX-XX, который подключен к каждой виртуальной машине. Я заметил, что они нормальные.
Поэтому я подозреваю, что ограничение скорости не поддерживает внутренний порт, который соединяет два сетевых пространства имен в Linux.
Спасибо за ваше драгоценное время, и я искренне признателен за вашу помощь!
После дня поиска в Google я обнаружил, что ограничение скорости не работает на внутреннем порту. Ссылка http://openvswitch.org/pipermail/discuss/2013-April/009586.html