Deep Dive Into Quantum

1,957 views
1,881 views

Published on

China OpenStack User Group

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,957
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
261
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

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 10.0.0.2 10.0.0.3 virtual interface 3 (VIF) 2 virtual port Quantum Net1 L2 virtual 10.0.0.0/24 network 1 Subnet5
  6. 6. Intro TenantA-VM1 TenantA-VM2 TenantA-VM3 10.0.0.2 10.0.0.3 9.0.0.3 10.0.1.2 TenantA-VM4 Tenant-A Net1 Tenant-A Net2 172.16.0.30 10.0.0.0/24 10.0.1.0/24 Tenant-A Net3 172.16.0.0/24 Not VPN necessarily a VM! Tenant-A On Premise Net Public Net 172.16.0.0/24 88.0.0.0/186
  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 http://wiki.openstack.org/Quantum?action=AttachFil 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 notifications.info 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 http://docs.openstack.org/api/openstack-network/1.0/content/Networks.html 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 http://docs.openstack.org/api/openstack-network/1.0/content/Ports.html • 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 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.17
  18. 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.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 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/30

×