Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Deep Dive Into Quantum


Published on

China OpenStack User Group

  • Be the first to comment

Deep Dive Into Quantum

  1. 1. Deep dive into Quantum 2012/11/10 COSUG Meet up Luo, Zhongyue1
  2. 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? Resources2
  3. 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 services3
  4. 4. Intro VM VM VM VM A1 A2 B1 B2 Tenant View Network A Network B Phy Srv 1 Phy Srv 2 Phy Srv 3 VM VM VM VM A1 B1 A2 B2 Hypervisor Hypervisor Hypervisor Provider View Data Centre Network4
  5. 5. Intro VM1 VM2 virtual server Nova virtual interface 3 (VIF) 2 virtual port Quantum Net1 L2 virtual network 1 Subnet5
  6. 6. Intro TenantA-VM1 TenantA-VM2 TenantA-VM3 TenantA-VM4 Tenant-A Net1 Tenant-A Net2 Tenant-A Net3 Not VPN necessarily a VM! Tenant-A On Premise Net Public Net
  7. 7. File Structure extensions choose one start7
  8. 8. File Structure agent extension implementations implementations handler setup api-pate.ini8
  9. 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 host9
  10. 10. Components API Extentions • QoS, SLA, L3 forwarding, Security, Metering, etc. • Enables innovation in virtual networking. • Extensions implemented by many plugins can become “core”.10
  11. 11. Overview RPC11
  12. 12. Overview e&do=get&target=quantum-technical-archicture.ppt 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 network_delete tunnel_update port_update tunnel_sync q-agent-notifier- q-agent-notifier- q-agent-notifier- Exchange: Quantum network-delete_fanout tunnel-update_fanout port-update_fanout topic fanout fanout fanout Queue: q-agent-notifier- q-agent-notifier- q-agent-notifier- q-plugin network-delete_fanout tunnel-update_fanout port-update_fanout _{uuid4} _{uuid4} _{uuid4} Comsumer: quantum-server Dhcp agent Plugin agent12
  13. 13. Rest APIs Networks • Represents an L2 network segment • Can associate with a set of subnets and ports quantum/api/v2/attributes.py13
  14. 14. Rest APIs Subnets • Represents a range of IP addresses • Allocated to devices • API request specifications o quantum/api/v2/attributes.py14
  15. 15. Rest APIs Ports • A connection point of a device to attach to a L2 Quantum network • Allocated to devices • API request specifications o quantum/api/v2/attributes.py15
  16. 16. Under the Hood
  17. 17. Configuration: Open vSwitch plugin Install KVM, Open vSwitch and configure your environment 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@ . NOTE: The database IP address in the file should be reachable by all compute nodes.17
  18. 18. Configuration: Open vSwitch plugin Edit nova.conf on nova-network and nova-manage hosts 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_plugin.ini18
  19. 19. How does the plugin get loaded?19
  20. 20. How does the plugin get loaded?20
  21. 21. How does the plugin get loaded?21
  22. 22. How does the plugin get loaded?22
  23. 23. How does the plugin get loaded?23
  24. 24. How does the plugin get loaded?24
  25. 25. How does the plugin get loaded?25
  26. 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.26
  27. 27. Why is there a agent for the Open vSwitch plugin?27
  28. 28. Why is there a agent for the Open vSwitch plugin?28
  29. 29. Why is there a agent for the Open vSwitch plugin? OVS cli wrappers29
  30. 30. Resources