Transcript quantum

Architecture of Quantum Folsom Release
Yong Sheng Gong (龚永生)
[email protected]
gongysh #openstack-dev
Quantum Core developer
© 2012 IBM Corporation
Agenda
■
OpenStack and Quantum
■
Quantum Architecture
■
Quantum models
■
communications among quantum components
© 2012 IBM Corporation
Agenda
■
OpenStack and Quantum
■
Quantum Architecture
■
Quantum models
■
communications among quantum components
© 2012 IBM Corporation
OpenStack: six core projects that form a complete IaaS solution
Compute (Nova)
Provision and manage
virtual machines
Provides UI for
Dashboard (Horizon)
Self-service portal
Image (Glance)
Catalog and manage
server images
Identity (Keystone)
Unified authentication,
integrates with existing
systems
Network(Quantum)
provide "network
connectivity as a
service"
Rest API
Network
(Quantum)
Authentication with
Object Storage (Swift)
petabytes of secure,
reliable object storage
adapted from:
http://ken.pepple.info/openstack/2012/02/21/revisit-openstack-architecture-diablo/
4
© 2012 IBM Corporation
Quantum-NaaS
*-as-a-Service Capability
Compute
OpenStack Service
Nova
Swift (Objects)
Storage
Cinder (Block)
Glance (Images)
identity
Keystone
Network
Quantum
© 2012 IBM Corporation
Openstack architecture
OpenStack
Network API
OpenStack
Network API
quantum-server
REST
l3-agent
Queue
plugin-agent
quantum
database
dhcp-agent
OpenStack
Identity API
© 2012 IBM Corporation
Flow of booting a virtual server
© 2012 IBM Corporation
Quantum uses network virtualization
1.Hypervisor
2.nova-scheduler
3.nova-computes
1.quantum-server
2.plugin
3.agents
8
© 2012 IBM Corporation
Agenda
■
OpenStack and Quantum
■
Quantum Architecture
■
Quantum models
■
communications among quantum components
© 2012 IBM Corporation
Components of quantum
■
Quantum server
 Implement Qauntum API and its
extensions
 Enforce network model
• Network, subnet, and port
 IP addressing to each port
■
Plugin agent
 Run on each compute node
 Connect instances to network port
■
DHCP agent
 In multi-host mode, run on each compute
node (deferred)
 Start/stop dhcp server
 Maintain dhcp configuration
l3-agent
Quantum
server & plugin
Plugin
agent
DHCPagent
DB
Queue
L3-agent



■
Note: we can share DB service and Queue
with other OpenStack stack services
10
■
To implement floating Ips and other L3
features, such as NAT
One per network
Queue
 Enhance communication between each
components of quantum
DB – persistent network model
© 2012 IBM Corporation
Layers in Quantum server
Quantum API and extensions
vendor can add extensions
to provide more features
Common service
(Validation, Authn, Authz)
Quantum Core
Plugin API
Plugin
DB
11
vendor specific plugin or open source plugin:
1.
linux bridge plugin
2.
openvswitch plugin
3.
nicira
4.
…
device
© 2012 IBM Corporation
Agenda
■
OpenStack and Quantum
■
Quantum Architecture
■
Quantum models
■
communications among quantum components
© 2012 IBM Corporation
Quantum models
© 2012 IBM Corporation
Network and physical bindings
network
Virtual network
Model in quantum
Physical network
Identified by name
Network binding
Tenant network
GRE and local bindings have
no physical network
provider network
VLAN
Flat
GRE
local
Local binding are for
devstack single box playing
Linux bridge plugin has no
GRE support
Difference between provider network and tenant network?
© 2012 IBM Corporation
Other ways to view networks
internal
Only fixed Ips
are allocated
from there.
Private internal networks
Shared internal networks
external
we can create
floating ips and
router gateway
on it, They
should be able
to access
public network
Private external networks
private
Only owner tenant
can create ports
on it.
shared external networks
shared
Other tenants
besides the owner
tenant can create
ports on it.
© 2012 IBM Corporation
A networks sample for fixed ips
Host A
network A
local Vlan ID 1
network C
local Vlan ID 3
int-br-eth1-1
br-int
patch-tun
patch-port
veth
int-br-eth1-2
network B
local Vlan ID 2
phy-br-eth1-1
patch-int
phy-br-eth1-2
Physnet1 vSwitch
br-eth1-1
Physnet2 vSwith
br-eth1-2
br-tun
GRE
Physical net1
vlan ID 1000
physical net2
Flat
host B
host C
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
host C
© 2012 IBM Corporation
Floatingip and Router
Vm
10.0.1.5/24
gw: 10.0.1.1/24
Floatingip port
Floating ip fixed
port on fixed ip
network
Router interface
10.0.1.1/24
gw_port
7.0.1.2/24
Floating ip:
7.0.1.4/24
External network
router
In general,
The port acting as
router interface
should has gateway
address of subnet
internal nework
external network
vswitch br-ex
eth0
l3_agent
Router is used for VM to access outside
Floating IP is used for outside to access VM
© 2012 IBM Corporation
Agenda
■
OpenStack and Quantum
■
Quantum Architecture
■
Quantum models
■
communications among quantum components
© 2012 IBM Corporation
AMQP communication among quantum components
Dhcp agent
quantum-server
get_active_networks
get_network_info
get_dhcp_port
release_dhcp_port
release_port_fixed_ip
update_lease_expiration
Plugin agent
Quantum rest api
(resource CUD)
get_device_details
update_device_down
tunnel_sync
Quantum
topic
Exchange:
Queue:
Comsumer:
network_delete
q-plugin
quantum-server
notifications.info
Dhcp agent
tunnel_update
port_update
q-agent-notifiernetwork-delete_fanout
fanout
q-agent-notifiertunnel-update_fanout
fanout
q-agent-notifierport-update_fanout
fanout
q-agent-notifiernetwork-delete_fanout
_{uuid4}
q-agent-notifiertunnel-update_fanout
_{uuid4}
q-agent-notifierport-update_fanout
_{uuid4}
Plugin agent
© 2012 IBM Corporation
Data flow of booting a virtual server among quantum components
© 2012 IBM Corporation
Enjoy hacking OpenStack?
© 2012 IBM Corporation