quantum.pdf
Post on 14-Feb-2016
7 Views
Preview:
DESCRIPTION
TRANSCRIPT
2
TODO
Intro
Overview
File Structure
Components
REST APIs
Under the hood
– Configuration: Open vSwitch plugin
– How does the plugin get loaded?
– Why is there a agent for the Open vSwitch plugin?
Resources
3
Intro
What is Quantum?
Network-Connectivity-as-a-Service for OpenStack
Goal
• Provides an API to dynamically request and configure virtual networks
• Support API and API extensions to provide advanced network capabilities
• Integrate virtual networks with other OpenStack services
4
Intro
Network A Network B
VMA1
VMA2
VMB1
VMB2
Tenant View
Provider View
Phy Srv 1
VMA1
VMB1
Hypervisor
Phy Srv 2
VMA2
Hypervisor
Phy Srv 3
VMB2
Hypervisor
Data Centre Network
5
Intro
Net1 10.0.0.0/24
VM1 10.0.0.2 Nova
Quantum L2 virtual network
VM2 10.0.0.3
virtual port
virtual server
virtual interface (VIF)
Subnet 1
2
3
6
Intro
TenantA-VM1 10.0.0.2
TenantA-VM3 10.0.1.2
TenantA-VM2 10.0.0.3 9.0.0.3
Public Net 88.0.0.0/18
Tenant-A Net1 10.0.0.0/24
Tenant-A Net2 10.0.1.0/24
Tenant-A Net3 172.16.0.0/24
Tenant-A On Premise Net
172.16.0.0/24
VPN
TenantA-VM4 172.16.0.30
Not necessarily a VM!
9
Components
Plugins
• Cloud Operators weigh trade-offs, choose a plugin
• Hide backend technology
Server
• A generic tenant API to create and configure “virtual networks”
Agent
• Daemon to perform the actual network configuration on each physical host
10
Components
API Extentions
• QoS, SLA, L3 forwarding, Security, Metering, etc.
• Enables innovation in virtual networking.
• Extensions implemented by many plugins can become “core”.
12
Overview
Quantum topic
q-plugin
Exchange:
Queue: notifications.info
quantum-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
Quantum rest api (resource CUD)
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
quantum-server
http://wiki.openstack.org/Quantum?action=AttachFile&do=get&target=quantum-technical-archicture.ppt
13
Rest APIs
Networks
• Represents an L2 network segment
• Can associate with a set of subnets and ports
http://docs.openstack.org/api/openstack-network/1.0/content/Networks.html
quantum/api/v2/attributes.py
14
Rest APIs
Subnets
• Represents a range of IP addresses
• Allocated to devices
• API request specifications
o quantum/api/v2/attributes.py
15
Rest APIs
Ports
• A connection point of a device to attach to a L2 Quantum network
• Allocated to devices
http://docs.openstack.org/api/openstack-network/1.0/content/Ports.html
• API request specifications
o quantum/api/v2/attributes.py
17
Configuration: Open vSwitch plugin
Install KVM, Open vSwitch and configure your environment
http://blog.scottlowe.org/2012/08/17/installing-kvm-and-open-vswitch-on-ubuntu/
Edit etc/quantum/plugins.ini
core_plugin = quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPlugin
Edit etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini
mysql://root:nova@127.0.0.1:3306/ovs_quantum .
NOTE: The database IP address in the file should be reachable by all compute nodes.
18
Configuration: Open vSwitch plugin
Edit nova.conf on nova-network and nova-manage hosts
network_manager=nova.network.quantum.manager.QuantumManager
linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver
linuxnet_ovs_integration_bridge=br-int
Edit nova.conf on nova-compute hosts
libvirt_ovs_bridge=br-int
libvirt_vif_type=ethernet
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtOpenVswitchDriver
Start the agent
$ python ovs_quantum_agent.py ovs_quantum_plugin.ini
26
Why is there a agent for the Open vSwitch plugin?
The OVS agent
• Checks the configuration and mappings consistency of the local Open vSwitch environment and the central mysql database
• Polls directly to the local Open vSwitch instance
• Configures flows to implement the logical data model.
30
Resources
http://github.com/openstack/quantum
http://wiki.openstack.org/Quantum
http://docs.openstack.org/api/openstack-network/1.0/content/
http://docs.openstack.org/trunk/openstack-network/admin/content/index.html
http://openvswitch.org/openstack/documentation/
top related