quantum.pdf

31
1 Deep dive into Quantum 2012/11/10 COSUG Meet up Luo, Zhongyue

Upload: ravi

Post on 14-Feb-2016

7 views

Category:

Documents


2 download

DESCRIPTION

Quantum.

TRANSCRIPT

1

Deep dive into Quantum

2012/11/10 COSUG Meet up

Luo, Zhongyue

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!

7

File Structure

start

choose one

extensions

8

File Structure

extension implementations

agent implementations

api-pate.ini

handler setup

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”.

11

Overview

RPC

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

Under the Hood

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:[email protected]: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

19

How does the plugin get loaded?

20

How does the plugin get loaded?

21

How does the plugin get loaded?

22

How does the plugin get loaded?

23

How does the plugin get loaded?

24

How does the plugin get loaded?

25

How does the plugin get loaded?

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.

27

Why is there a agent for the Open vSwitch plugin?

28

Why is there a agent for the Open vSwitch plugin?

29

Why is there a agent for the Open vSwitch plugin?

OVS cli wrappers