210 likes | 217 Views
Explore the core projects of OpenStack, focusing on Quantum (Network) in this comprehensive guide. Learn about Quantum models, components, and communication among Quantum elements.
E N D
Yong Sheng Gong (龚永生) gongysh@cn.ibm.com gongysh #openstack-dev Quantum Core developer Architecture of Quantum Folsom Release
Agenda • OpenStack and Quantum • Quantum Architecture • Quantum models • communications among quantum components
Agenda • OpenStack and Quantum • Quantum Architecture • Quantum models • communications among quantum components
OpenStack: six core projects that form a complete IaaS solution Compute (Nova)Provision and manage virtual machines 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" Object Storage (Swift)petabytes of secure, reliable object storage Provides UI for Rest API Network (Quantum) Authentication with adapted from:http://ken.pepple.info/openstack/2012/02/21/revisit-openstack-architecture-diablo/ 4
Quantum-NaaS *-as-a-Service Capability OpenStack Service Compute Nova Swift (Objects) Storage Cinder (Block) Glance (Images) identity Keystone Network Quantum
Openstack architecture OpenStack Network API OpenStack Network API quantum-server REST Queue l3-agent plugin-agent quantum database dhcp-agent OpenStack Identity API
Quantum uses network virtualization 1.Hypervisor 2.nova-scheduler 3.nova-computes 1.quantum-server 2.plugin 3.agents 8
Agenda • OpenStack and Quantum • Quantum Architecture • Quantum models • communications among quantum components
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 • 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 l3-agent Quantum server & plugin Plugin agent DHCPagent DB Queue Note: we can share DB service and Queue with other OpenStack stack services 10
Layers in Quantum server vendor can add extensions to provide more features Quantum API and extensions Common service (Validation, Authn, Authz) Quantum Core Plugin API vendor specific plugin or open source plugin: linux bridge plugin openvswitch plugin nicira … Plugin DB device 11
Agenda • OpenStack and Quantum • Quantum Architecture • Quantum models • communications among quantum components
Network and physical bindings network Virtual network Model in quantum Physical network Identified by name Network binding Tenant network provider network VLAN GRE and local bindings have no physical network 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?
Other ways to view networks Shared internal networks Private internal networks internal Only fixed Ips are allocated from there. external Private external networks shared external networks we can create floating ips and router gateway on it, They should be able to access public network Other tenants besides the owner tenant can create ports on it. Only owner tenant can create ports on it. private shared
A networks sample for fixed ips Host A network A local Vlan ID 1 network C local Vlan ID 3 br-int int-br-eth1-1 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 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
Floatingip and Router Vm 10.0.1.5/24 gw: 10.0.1.1/24 Floating ip fixed port on fixed ip network Floatingip port Router interface 10.0.1.1/24 In general, The port acting as router interface should has gateway address of subnet gw_port 7.0.1.2/24 Floating ip: 7.0.1.4/24 External network internal nework router 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
Agenda • OpenStack and Quantum • Quantum Architecture • Quantum models • communications among quantum components
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 port_update network_delete tunnel_update q-agent-notifier- network-delete_fanout fanout q-agent-notifier- tunnel-update_fanout fanout q-agent-notifier- port-update_fanout fanout Exchange: Quantum topic Queue: q-agent-notifier- tunnel-update_fanout _{uuid4} q-agent-notifier- port-update_fanout _{uuid4} q-agent-notifier- network-delete_fanout _{uuid4} q-plugin notifications.info quantum-server Dhcp agent Plugin agent Comsumer:
Data flow of booting a virtual server among quantum components