what is new in neutron qos
play

What is new in Neutron QoS? Miguel Lavalle Slawek Kaplonski - PowerPoint PPT Presentation

What is new in Neutron QoS? Miguel Lavalle Slawek Kaplonski miguel@mlavalle.com skaplons@redhat.com IRC: mlavalle@freenode IRC: slaweq@freenode AGENDA Introduction to Neutron QoS Existing QoS features in Neutron New features


  1. What is new in Neutron QoS? Miguel Lavalle Slawek Kaplonski miguel@mlavalle.com skaplons@redhat.com IRC: mlavalle@freenode IRC: slaweq@freenode

  2. AGENDA ● Introduction to Neutron QoS ● Existing QoS features in Neutron ● New features added in Queens release ● Planned New features 2

  3. Neutron QoS - basic concept

  4. Neutron QoS - data model

  5. Neutron QoS - usage Create QoS policy openstack network qos policy create Summit_Policy +-------------+--------------------------------------+ | Field | Value | +-------------+--------------------------------------+ | description | | | id | 8a495fea-e617-45f6-82e6-a61f7860c5cc | | is_default | False | | name | Summit_Policy | | project_id | 0783adde257d4a0280d3df1908b217c8 | | rules | [] | | shared | False | | tags | [] | +-------------+--------------------------------------+ 5

  6. Neutron QoS - usage Create QoS rule in policy openstack network qos rule create --type bandwidth-limit \ --max-kbps 1024 \ --max-burst-kbit 512 \ Summit_Policy +----------------+--------------------------------------+ | Field | Value | +----------------+--------------------------------------+ | direction | egress | | id | f9bb1173-1bf0-4942-8932-a69b61ef5b52 | | max_burst_kbps | 512 | | max_kbps | 1024 | | name | None | | project_id | | +----------------+--------------------------------------+ 6

  7. Neutron QoS - usage Attach QoS policy to port (or network) openstack port set --qos-policy Summit_Policy \ aa42976b-03d0-4fbb-90f8-fa7b88da8a2e openstack port show aa42976b-03d0-4fbb-90f8-fa7b88da8a2e +-----------------------+-------------------------------------------------+ | Field | Value | +-----------------------+-------------------------------------------------+ | created_at | 2018-05-07T14:51:49Z | | device_id | 80afc6fb-12a1-4bae-8cd4-6835aa819227 | | id | aa42976b-03d0-4fbb-90f8-fa7b88da8a2e | | mac_address | fa:16:3e:4e:e7:bc | | network_id | c8714b0a-f960-4db3-bbf6-f6dddb5a6843 | | project_id | 24f901074d52470da2c641e26c2753e1 | | qos_policy_id | 8a495fea-e617-45f6-82e6-a61f7860c5cc | | revision_number | 8 | | status | ACTIVE | | updated_at | 2018-05-09T20:36:11Z | +-----------------------+-------------------------------------------------+ 7

  8. Neutron QoS - available rule types Open vSwitch SR-IOV Linux Bridge L3 agent Bandwidth limit Egress / Ingress Egress (1) Egress / Ingress Egress / Ingress (3) Minimum - Egress (2) - - Bandwidth DSCP Marking Egress - Egress - 1. Max burst parameter is skipped because it's not supported by ip tool 2. Best effort - scheduler is not aware about this minimum bandwidth requirement for ports 3. Limit for Floating IP 8

  9. Neutron QoS - bandwidth limit rule Rule API openstack network qos rule create \ --type bandwidth-limit \ --max-kbps 512 \ --max-burst-kbit 128 \ --ingress \ Summit_Policy +----------------+--------------------------------------+ | Field | Value | +----------------+--------------------------------------+ | direction | ingress | | id | f5fc67f8-83a2-40be-ad12-d15fbe29381f | | max_burst_kbps | 128 | | max_kbps | 512 | | name | None | | project_id | | +----------------+--------------------------------------+ 9

  10. Neutron QoS - bandwidth limit rule Backend implementation - Open vSwitch L2 agent - ingress traffic sudo ovs-vsctl list qos _uuid : a4857dc7-e64f-4370-9cf2-408566871bf1 external_ids : {id="tap9a566f82-0c"} other_config : {max-rate="512000"} queues : {0=671cc958-2328-4d77-9e36-91984582e5a5} type : linux-htb sudo ovs-vsctl list queue _uuid : 671cc958-2328-4d77-9e36-91984582e5a5 dscp : [] external_ids : {id="tap9a566f82-0c", queue_type="0"} other_config : {burst="128000", max-rate="512000"} sudo ovs-vsctl list port tap9a566f82-0c | grep qos qos : a4857dc7-e64f-4370-9cf2-408566871bf1 10

  11. Neutron QoS - bandwidth limit rule Backend implementation - Open vSwitch L2 agent - egress traffic sudo ovs-vsctl list interface tap9a566f82-0c | grep ingress_ ingress_policing_burst: 256 ingress_policing_rate: 1024 11

  12. Neutron QoS - bandwidth limit rule Backend implementation - Linux bridge L2 agent - ingress traffic tc qdisc show dev tap2e939f9e-9e qdisc tbf 8002: root refcnt 2 rate 512Kbit burst 16Kb lat 50.0ms 12

  13. Neutron QoS - bandwidth limit rule Backend implementation - Linux bridge L2 agent - egress traffic tc filter show dev tap2e939f9e-9e parent ffff: filter protocol all pref 49 basic chain 0 filter protocol all pref 49 basic chain 0 handle 0x1 police 0x1 rate 1024Kbit burst 32Kb mtu 64Kb action drop overhead 0b ref 1 bind 1 13

  14. Neutron QoS - bandwidth limit rule Backend implementation - SR-IOV L2 agent - egress traffic ip link show enp8s0f0 3: enp8s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 90:e2:ba:5e:a6:40 brd ff:ff:ff:ff:ff:ff vf 0 MAC 00:00:00:00:00:00, tx rate 1000 (Mbps), max_tx_rate 1000Mbps, spoof checking on, link-state auto vf 1 MAC 56:92:c6:c6:e5:db, tx rate 2000 (Mbps), max_tx_rate 2000Mbps, spoof checking on, link-state auto 14

  15. Neutron QoS - DSCP marking rule Rule API openstack network qos rule create \ --type dscp-marking \ --dscp-mark 16 \ Summit_Policy +------------+--------------------------------------+ | Field | Value | +------------+--------------------------------------+ | dscp_mark | 16 | | id | e5256a9d-0ebd-4e45-acfe-bd2048d33d53 | | name | None | +------------+--------------------------------------+ 15

  16. Neutron QoS - DSCP marking rule Backend implementation - Open vSwitch L2 agent sudo ovs-ofctl show br-int | grep tap9a566f82-0c 141(tap9a566f82-0c): addr:fe:16:3e:47:85:27 sudo ovs-ofctl dump-flows br-int | grep in_port=141 | grep tos cookie=0x66a4b613766ef2e1, duration=70.889s, table=0, n_packets=0, n_bytes=0, idle_age=405, priority=65535,reg2=0,in_port=141 actions=mod_nw_tos:64,load:0x37->NXM_NX_REG2[0..5],resubmit(,0) 16

  17. Neutron QoS - DSCP marking rule Backend implementation - Linux bridge L2 agent iptables -t mangle -nL neutron-linuxbri-qos-o2e939f Chain neutron-linuxbri-qos-o2e939f (1 references) target prot opt source destination DSCP all -- 0.0.0.0/0 0.0.0.0/0 DSCP set 0x10 17

  18. Neutron QoS - Minimum bandwidth Rule API openstack network qos rule create \ --type minimum-bandwidth \ --min-kbps 512 \ --egress \ Summit_Policy +------------+--------------------------------------+ | Field | Value | +------------+--------------------------------------+ | direction | egress | | id | 5e5969f2-66f8-4bed-9905-b31b33902189 | | min_kbps | 512 | | name | None | +------------+--------------------------------------+ 18

  19. New rule types validation and reporting

  20. Rules validation - old way Report of available rule types Example for deployment with openvswitch and sriovnicswitch mechanism drivers openstack network qos rule type list +-----------------+ | Type | +-----------------+ | bandwidth_limit | (- supported by both drivers) +-----------------+ 20

  21. Rules validation - old way - problems ● There was no real validation - it was only information for user, ● Very limited range of rule types available in mixed deployments, ● Some attributes of rules have big impact of backend implementation (e.g. direction ) 21

  22. Rules validation - new way Report of available rule types Example for deployment with openvswitch and sriovnicswitch mechanism drivers: openstack network qos rule type list +-------------------+ | Type | +-------------------+ | bandwidth_limit | (- supported by both drivers) | dscp_marking | ( - supported by openvswitch driver) | minimum_bandwidth | (- supported by sriovnicswitch driver) +-------------------+ 22

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend