Архитектура Neutron. Модели Neutron. Взаимодействия компонентов Neutron

Содержание

Слайд 2

Программа OpenStack и Neutron Архитектура Neutron Модели Neutron Взаимодействия компонентов Neutron

Программа

OpenStack и Neutron
Архитектура Neutron
Модели Neutron
Взаимодействия компонентов Neutron

Слайд 3

Программа OpenStack и Neutron Архитектура Neutron Модели Neutron Взаимодействия компонентов Neutron

Программа

OpenStack и Neutron
Архитектура Neutron
Модели Neutron
Взаимодействия компонентов Neutron

Слайд 4

OpenStack: основные компоненты, которые формируют комплексное решение IaaS Compute (Nova) Создание

OpenStack: основные компоненты, которые формируют комплексное решение IaaS

Compute (Nova) Создание и управление

VM
Dashboard (Horizon) Портал самообслуживания
Identity (Keystone) Система аутентификации и авторизации
Network(Neutron) обеспечивает «сеть как сервис» (NaaS)
Image (Glance) Управление имиджами
Block Storage (CInder)
Object Storage (Swift) петабайты безопасного, надежного хранения
Слайд 5

Compute Storage Network Nova Swift (Objects) Glance (Images) *-as-a-Service Capability OpenStack

Compute

Storage

Network

Nova

Swift (Objects)

Glance (Images)

*-as-a-Service Capability

OpenStack Service

Neutron

Cinder (Block)

identity

Keystone

Neutron-NaaS

Слайд 6

Архитектура OpenStack

Архитектура OpenStack

Слайд 7

Типовая загрузка VM

Типовая загрузка VM

Слайд 8

Neutron и виртуализация сети 1.hypervisor 2.nova-scheduler 3.nova-computes 1.neutron-server 2.plugin 3.agents


Neutron и виртуализация сети

1.hypervisor
2.nova-scheduler
3.nova-computes

1.neutron-server
2.plugin
3.agents

Слайд 9

Программа OpenStack и Neutron Архитектура Neutron Модели Neutron Взаимодействия компонентов Neutron

Программа

OpenStack и Neutron
Архитектура Neutron
Модели Neutron
Взаимодействия компонентов Neutron

Слайд 10

Общая схема Neutron

Общая схема Neutron


Слайд 11

Типовая модель Neutron Management network. Используется для внутреннего взаимодействия межу компонентами

Типовая модель Neutron

Management network. Используется для внутреннего взаимодействия межу компонентами OpenStack.

IP адреса этой сети должны быть доступны только внутри Data центра. 
Data network. Предназначена для передачи данных VM в рамках развертывания облаков. Требования к IP-адресации в этой сети зависят от используемого плагина Neutron.
External network. Используется для обеспечения доступа VMs в Интернет. IP-адреса в этой сети должны быть аннонсированы в сети Интернет.
API network. Предоставляет все интерфейсы API OpenStack, в том числе API Neutron. IP-адреса в этой сети должны быть аннонсированы в сети Интернет. Это может быть и та же сеть, что и External Network. Здесь может быть и подсеть Neutron, использующей часть диапазона IP-адресов, под свои нужды.

from http://docs.openstack.org/trunk/openstack-network/admin/content/connectivity.html

Слайд 12

Еще одна модель Neutron DHCP L3

Еще одна модель Neutron


DHCP

L3

Слайд 13

С несколькими агентами

С несколькими агентами


Слайд 14

Мульти-хостовая модель DHCP агент обслуживает только локальные VMs L3 агент обслуживает локальные VMs и плавающие IPs

Мульти-хостовая модель

DHCP агент обслуживает только локальные VMs
L3 агент обслуживает локальные VMs

и плавающие IPs


Слайд 15

Neutron server & plugin Plugin agent DHCP agent DB Queue Neutron


Neutron
server & plugin

Plugin
agent

DHCP agent

DB

Queue
Neutron сервер
Осуществляет API и их расширения
Применяет

сетевую модель
Сети, подсети и порты
IP адресация для каждого порта
Plugin агент
Запущен на каждой compute node
Соединяет instances с сетевым портом
DHCP агент
В multi-host режиме, запущен на каждой compute node (отложенный)
Старт/атоп DHCP сервер
Поддерживает DHCP конфигурацию
L3-агент
Для реализации floating IPs и другие функции L3, такие как NAT
Один на сеть
Metadata-агент
Работает между Neutron L3-агентом и Openstack nova metadata API сервером

Note: база данных (DB) и диспечер очередей сообщений (Queue) могут быть использованы другими службами OpenStack

l3-agent

metadata-agent

Компоненты Neutron (для ovs, qemu и linux bridge plugin)

Слайд 16

Neutron API and extensions Common service (Validation, Authn, Authz) Plugin API


Neutron API and extensions

Common service
(Validation, Authn, Authz)

Plugin API

DB

Plugin

device

Neutron Core

Поставщик специальных

plug-in или
open source plug-in:
linux bridge plugin
openvswitch plugin
nicira plugin

Поставщик может добавлять
расширения для увеличения
функциональности

Уровни Neutron сервера

Слайд 17

Программа OpenStack и Neutron Архитектура Neutron Модели Neutron Взаимодействия компонентов Neutron

Программа

OpenStack и Neutron
Архитектура Neutron
Модели Neutron
Взаимодействия компонентов Neutron

Слайд 18

Основные модели Neutron

Основные модели Neutron

Слайд 19

Neutron LbaaS модель HealthMonitor Pool Member Vip port subnet * * *

Neutron LbaaS модель

HealthMonitor

Pool

Member

Vip

port

subnet

*

*

*

Слайд 20

Сеть и физические связи local Flat VLAN GRE Сетевые подключения GRE

Сеть и физические связи

local

Flat

VLAN

GRE

Сетевые подключения

GRE и локальные подключения не имеют физической

сети

Linux bridge plug-in не поддерживает GRE

Локальные подключения для devstack одного поля

Понимание различий Neutron provider сети и сети tenant

Слайд 21

Другой путь рассмотрения сети private shared external internal Здесь можно выделять

Другой путь рассмотрения сети

private

shared

external

internal

Здесь можно выделять floating IPs и маршрутизатор

должен иметь доступ к сети общего пользования

Другие tenants, кроме владельца tenat также могут создавать порты.

Только владелец tenant может создавать порты здесь.

Только fixed IPs выделяются здесь

Слайд 22

Пример сети с fixed IPs (ovs plug-in) Physnet1 vSwitch br-eth1 Physnet2

Пример сети с fixed IPs (ovs plug-in)

Physnet1 vSwitch
br-eth1

Physnet2 vSwith
br-eth2

br-int

br-tun

GRE

host B

int-br-eth1

phy-br-eth1

int-br-eth2

phy-br-eth2

patch-tun

patch-int

patch-port

veth

Host A

host

C

network A
local Vlan ID 1

network B
local Vlan ID 2

network C
local Vlan ID 3

local vlan id <-> tunnel id done by br-tun flow
local vlan id <-> physical net vlan id done by physical net and br-int vSwitch

VM ports

DHCP ports

eth1

eth2

GRE

Слайд 23

Пример сети с fixed IPs (linux bridge plugin) Host A host

Пример сети с fixed IPs (linux bridge plugin)

Host A

host C

Brq

VM ports

DHCP

ports

eth1

eth2

eth1.1

Dhcp namespace (qdhcp-)

veth

tun

Brq

eth1.2

Brq

Dhcp namespace (qdhcp-)

veth

Dhcp namespace (qdhcp-)

Слайд 24

FloatingIP и маршрутизатор router gw_port 10.0.7.2/24 Floating ip: 10.0.7.4/24 Router interface

FloatingIP и маршрутизатор

router

gw_port
10.0.7.2/24
Floating ip:
10.0.7.4/24

Router interface
10.0.1.1/24

Порт, подключеный к интерфейсу маршрутизатора, должен

иметь адрес из сети шлюза

FloatingIP порт

Floating IP, фиксированный порт на фиксированной IP сети

l3_agent

external network
vswitch br-ex

Vm
10.0.1.5/24
gw: 10.0.1.1/24

eth0

Для VM маршрутизатор используется для доступа снаружи и
позволяет VM на разных подсетях или сетях получать
доступ друг к другу с плавающим IP. Также используется
для доступа VM во вне.

Vm
10.0.20.5/24
gw: 10.0.20.1/24

Слайд 25

Пример сети с fixed IP и маршрутизатором (ovs plugin) Physnet1 vSwitch

Пример сети с fixed IP и маршрутизатором
(ovs plugin)

Physnet1 vSwitch
br-eth1

Physnet2 vSwith
br-eth2

br-int

br-tun

GRE

Host A

ovs-neutron-agent

network A
local Vlan ID 1

network B
local Vlan ID 2

network C
local Vlan ID 3

VM ports

DHCP ports

eth1

eth2

Router interface ports

Physnet1 vSwitch
br-eth1

Physnet2 vSwith
br-eth2

br-int

br-tun

GRE

Host B
L3-agent
ovs-neutron-agent
dhcp-agent

network A
local Vlan ID 3

network B
local Vlan ID 1

network C
local Vlan ID 2

eth1

eth2

br-ex

Router gateway and flaoting ip ports

eth0

Слайд 26

Программа OpenStack и Neutron Архитектура Neutron Модели Neutron Взаимодействия компонентов Neutron

Программа

OpenStack и Neutron
Архитектура Neutron
Модели Neutron
Взаимодействия компонентов Neutron

Слайд 27

Neutron topic q-plugin Exchange: Queue: dhcp neutron-server Dhcp agent q-agent-notifier- network-delete_fanout

Neutron
topic

q-plugin

Exchange:

Queue:

dhcp

neutron-server

Dhcp agent

q-agent-notifier-
network-delete_fanout
fanout

q-agent-notifier-
tunnel-update_fanout
fanout

q-agent-notifier-
port-update_fanout
fanout

q-agent-notifier-
network-delete_fanout
_{uuid4}

q-agent-notifier-
tunnel-update_fanout
_{uuid4}

q-agent-notifier-
port-update_fanout
_{uuid4}

Plugin agent

Comsumer:

get_device_details
update_device_down
tunnel_sync

Neutron Rest API (resource CRUD)

tunnel_update

network_delete

port_update

get_active_networks
get_network_info
get_dhcp_port
release_dhcp_port
release_port_fixed_ip
update_lease_expiration

Plugin agent

Dhcp agent

neutron-server

Использование частей AMQP

компонентами Neutron

dhcp

Слайд 28

Последовательность загрузки VM с использованием Neutron компонент

Последовательность загрузки VM с использованием Neutron компонент

Слайд 29

Доступ к Metadata Data network L3 agent namespace qrouter- Or DHCP

Доступ к Metadata


Data network

L3 agent namespace
qrouter-
Or DHCP agent namespace
qdhcp-

neutron-ns-metadata-proxy

neutron-metadata-agent

unix socket

Network

node

Management network

Control node

nova-api-metadata

Compute node

VM

Слайд 30

Mulitihost Data network Management network Control node external network

Mulitihost


Data network

Management network

Control node

external network

Слайд 31

Control node LbaaS компоненты neutron.conf: service_plugins = neutron.services.loadbalancer.plugin.LoadBalancerPlugin lbaas_agent.ini: interface_driver =

Control node

LbaaS компоненты

neutron.conf:
service_plugins = neutron.services.loadbalancer.plugin.LoadBalancerPlugin
lbaas_agent.ini:
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
device_driver = neutron.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver


Neutron-server

Network node

neutron-lbaas-agent

neutron--agent

Pool

namespace xx

haproxy

Management network

Data network