Open vSwitch in Neutron Performance Challenges and Hardware O ffl oad Date: Hong Kong, 6th Nov. 2013 Authors: Yongsheng Gong gongysh@unitedstack.com Bo Liang liang.bo@99cloud.net � 1
197 Deployments Hyper-V 5% Nicira 5% Brocade 3% big switch 2% NEC 2% Source Reference: http://www.openstack.org/summit/portland-2013/session-videos/presentation/ openstack-user-committee-update-and-survey-results OPEN VSWITCH USAGES IN NEUTRON � 2 PAGE:
Agendas Open vSwitch usages in Neutron 1 Open vSwitch & Openflow 2 Problem Statement 3 Acceleration Solutions 4 OPEN VSWITCH USAGES IN NEUTRON � 3 PAGE:
Open vSwitch usages in Neutron OPEN VSWITCH USAGES IN NEUTRON � 4 PAGE:
Popular Deployment Public Switch 10.10.1.0/24 � � � CONTROLLER � NETWORK NODE � COMPUTE NODE � � � � KEYSTONE � OVS-AGENT � NOVA-COMPUTE � NOVA-COMPONENTS � DHCP-AGENT � OVS-AGENT GLANCE � L3-AGENT � NEUTRON-SERVER � METADATA-AGENT � CINDER OVS OVS Private Switch 172.16.0.0/24 OPEN VSWITCH USAGES IN NEUTRON � 5 PAGE:
VM Tra ffi c Path � � COMPUTE NODE � COMPUTE NODE COMPUTE NODE br-int br-int OVS br-int OVS phynet gre OVS phynet gre phynet gre OPEN VSWITCH USAGES IN NEUTRON � 6 PAGE:
VLAN Bridges � � vlan100 eth1 eth1 veth br-eth1 br-int br-int br-eth1 (veth) qr-c0bfa11f-ce(tag=1) 10.0.0.1 10.0.0.3 tap99c710cc-ce(tag=1) 10.0.0.4 tapcfbfc01f-a1(tag=1) 10.0.0.2 tapa98bfce2c-11(tag=1) qg-9c24ade1c0-c1 74.125.31.101 br-ex 74.125.31.1 Router eth2 74.125.31.254 OPEN VSWITCH USAGES IN NEUTRON � 7 PAGE:
GRE Bridges � � 1.1.1.2 1.1.1.1 eth1 eth1 br-tun br-tun gre-2(remote_ip=“1.1.1.2”) gre-2(remote_ip=“1.1.1.1”) patch-int (peer=patch-tun) patch-int (peer=patch-tun) patch-int (peer=patch-tun) patch-int (peer=patch-tun) br-int br-int 10.0.0.1 qr-c0bfa11f-ce(tag=1) ★ 10.0.0.3 tap99c710cc-ce(tag=1) 10.0.0.2 10.0.0.4 tapcfbfc01f-a1(tag=1) ★ tapa98bfce2c-11(tag=1) 74.125.31.101 qg-9c24ade1c0-c1 ★ br-ex 74.125.31.1 ★ Router eth2 74.125.31.254 OPEN VSWITCH USAGES IN NEUTRON � 8 PAGE:
Neutron Workflow 1 set gateway 10.0.0.1 dnsmasq gives ip: 10.0.0.2 Start Neutron-Server 2 Start Open vSwitch Agent VM1 QDHCP 3 Start L3-Agent BR-INT BR-EX 4 Start DHCP-Agent QROUTER 5 Start METADATA-Agent 6 Create Networks OVS BR-TUN 7 Create Routers ETH1 ETH2 8 Boot VMs OPEN VSWITCH USAGES IN NEUTRON � 9 PAGE:
GRE Tunnel Tunnel 1-2 Host1 Host2 Tunnel 2-3 Tunnel 1-3 Host3 OPEN VSWITCH USAGES IN NEUTRON � 10 PAGE:
Open vSwitch & Openflow OPEN VSWITCH USAGES IN NEUTRON � 11 PAGE:
Open vSwitch & Openflow Open fm ow Controller Open fm ow Protocol ovsdb Secure Channel OVS BR 1 2 3 4 5 6 7 L2 switching: “in_port=*,actions=output:7” Broadcast: “in_port=1,actions=output:flood” packet packet packet incoming packet packet packet packet incoming packet packet OPEN VSWITCH USAGES IN NEUTRON � 12 PAGE:
Flow Tables with L2 1 Patch in port Population dl_dst=00:00:00:00:00:00/01:00:00:00:00:00 Table 10 Table 20 LEARN_FROM_TUN UCAST_TO_TUN Table 1 in_port=1 PATCH_LV_TO_TUN Table 2 Table 0 in_port=2 dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 GRE_TUN_TO_LV Table 21 FLOOD_TO_TUN 2 GRE Tunnel ovs bridge br-tun Port OPEN VSWITCH USAGES IN NEUTRON � 13 PAGE:
Problem Statement OPEN VSWITCH USAGES IN NEUTRON � 14 PAGE:
GRE Head OUTER IP HEADER GRE HEADER GRE HEADER INNER IP HEADER PAYLOAD C K S Reserved VER Protocol Checksum Reserved Key Sequence Number HTTP Server MTU Compatible Problem OPEN VSWITCH USAGES IN NEUTRON � 15 PAGE:
MTU Comparison mtu1400 mtu 1500 OPEN VSWITCH USAGES IN NEUTRON � 16 PAGE:
GRE Tunnel Extensibility Tunnels: N - 1 OPEN VSWITCH USAGES IN NEUTRON � 17 PAGE:
Flow Match • First Packet • Subsequent user space Source Destination kernel OPEN VSWITCH USAGES IN NEUTRON � 18 PAGE:
Improved Architecture � � � COMPUTE NODE COMPUTE NODE COMPUTE NODE br-int br-int br-int OVS/LinuxBridge OVS/LinuxBridge OVS/LinuxBridge phynet phynet phynet A Switch Running OVS Tunnel Between Switchs A Switch Running OVS phynet phynet phynet OVS/LinuxBridge OVS/LinuxBridge OVS/LinuxBridge br-int br-int br-int � � � COMPUTE NODE � COMPUTE NODE � COMPUTE NODE � OPEN VSWITCH USAGES IN NEUTRON � 19 PAGE:
Other Solutions • Flow Matching • DPDK, PF_RING, netmap • GRE Tunnel • VxLAN OPEN VSWITCH USAGES IN NEUTRON � 20 PAGE:
OVS Hardware Comparison ovs centec v330 OPEN VSWITCH USAGES IN NEUTRON � 21 PAGE:
OVS Debugging Tips • Test basic connectivity • Use tcpdump to see if expected packets are on the wire • Try it without OVS • Use “ovs-ofctl dump-flows bridge” to see if packets hit the flows OPEN VSWITCH USAGES IN NEUTRON � 22 PAGE:
Thanks! That’s all for today Date: Hong Kong, 6th Nov. 2013 Authors: Yongsheng Gong, Bo Liang OPEN VSWITCH USAGES IN NEUTRON � 23 PAGE:
Recommend
More recommend