Несколько нейтронных узлов только с одним узлом, подключенным к внешней сети
У меня 3 сетевых узла под управлением нейтрон-сервера..
Только один из этих узлов подключен к внешней сети
Я использую ml2 с openvswitch
в сопоставлении моста узла, подключенного к внешней сети - VIA FLOATING IPS, - у меня external_net сопоставлен с правильным мостом.
На других узлах у меня не определено это отображение, и у меня нет интерфейсов
У меня есть проблема заключается в следующем
Когда я пытаюсь запустить виртуальную машину, которая подключена к внешней сети, у меня появляется эта ошибка в журналах:
нейтрон-сервер: 2016-09-07 12:33:00.975 57352 ОШИБКА neutron.plugins.ml2.managers [req-def18170-5e45-4fef-9653-e008faa39913 - - - - -] Не удалось связать порт 035a58e1-f18f-428b-b78e-e8c0aaba7d14 на хост-узле002 для нормального vnic_type с использованием сегментов [{'segmentation_id': нет, phy sical_network': u'external_net', 'id': u'0d4590e5-0c48-4316-8b78-1636d3f44d43', 'network_type': u'flat'}]
нейтрон-сервер: 2016-09-07 12:33:00.975 57352 ОШИБКА neutron.plugins.ml2.managers [req-def18170-5e45-4fef-9653-e008faa39913 - - - - -] Не удалось связать порт 035a58e1-f18f-428b-b78e-e8c0aaba7d14 на хост-узле003 для нормального vnic_type с использованием сегментов [{'segmentation_id': нет, phy sical_network': u'external_net', 'id': u'0d4590e5-0c48-4316-8b78-1636d3f44d43', 'network_type': u'flat'}]
на обоих узлах ( node002 и node003), потому что им НЕ определена эта сеть! так это ошибка или такая настройка недействительна?
Спасибо
3 ответа
Причиной этой ошибки была неправильная конфигурация на узлах, которые НЕ размещают сеть провайдера.
в основном файл ядра ml2 ml2_conf.ini
параметр:
flat_network должен быть установлен в соответствующее значение на каждом узле
как на узле, который подключен ко всем плоским сетям (включая внутреннюю сеть), он должен быть установлен в
flat_networks = *
и на узле, который не размещает все плоские сети (например, сеть провайдера)
flat_networks = Physical_internal
В типичном развертывании OpenStack вы не привязываете экземпляры Nova напрямую к внешней сети. Как вы уже догадались, это не сработает, потому что эта сеть не выделена на вычислительных хостах.
Вместо этого вы присоединяете свои экземпляры к внутренней сети, а затем назначаете плавающие IP-адреса из внешней сети, используя, например, nova floating-ip-create
а также nova floating-ip-associate
,
Альтернативное решение состоит в том, чтобы использовать "внешние сети провайдера", схему, в которой ваши экземпляры nova подключаются непосредственно к сетям L2 с внешним подключением, а не полагаться на решение NAT с плавающим ip, описанное в предыдущих параграфах.
Я верю, что это не сработает. Вы должны иметь привязанные порты ко всем вашим 3 сетевым узлам.
Быстрая проверка заключается в том, чтобы остановить службы нейтрон-сервер, нейтрон-dhcp-агент, нейтрон-13-агент и агент нейтрон-метаданных из двух узлов сети, которые не связаны с внешними портами... и провести повторную проверку.