get me a network
play

Get me a network From boot to woot! Matt Riedemann Armando - PowerPoint PPT Presentation

Get me a network From boot to woot! Matt Riedemann Armando Migliaccio Huawei SUSE N-O-P Nova PTL M-N-O Neutron PTL Agenda Rationale Proposed solution Community effort Testing Future work Demo Q&A


  1. Get me a network From boot to woot!

  2. Matt Riedemann Armando Migliaccio Huawei SUSE N-O-P Nova PTL M-N-O Neutron PTL

  3. Agenda • Rationale • Proposed solution • Community effort • Testing • Future work • Demo • Q&A

  4. Rationale

  5. Rationale

  6. Rationale ● Cloud user wants a VM connected to the Internet ○ Neutron requires an intimate knowledge about networking ○ Must create a private logical network (for isolation) ■ Create a subnet (for IP address management) ○ Must create a router (to get external connectivity) ■ Uplink the router to a well known external network ■ Downlink the router on the previously created subnet

  7. Rationale ● Cloud user wants a VM connected to the Internet ○ Neutron requires an intimate knowledge about networking ○ Must create a private logical network (for isolation) ■ Create a subnet (for IP address management) ○ Must create a router (to get external connectivity) ■ Uplink the router to a well known external network ■ Downlink the router on the previously created subnet

  8. Proposed solution • What if these steps were fully automated?

  9. Proposed solution • What if these steps were fully automated? • That is what get-me-a-network does • The operator performs a one-time setup • The user will get the network provisioned on the boot of the first VM

  10. Proposed solution • What if these steps were fully automated? • That is what get-me-a-network does • The operator performs a one-time setup • The user will get the network provisioned on the boot of the first VM

  11. Proposed solution On server create • • Nova and Neutron work together to figure out what to do • If the user has no network, one will be provisioned and the VM will be given external connectivity • Any other boot request will piggyback on the first and the network is reused • NOTE: VMs are not given floating IP automatically

  12. Community effort: timeline • Liberty • May 2015 - Design discussion at Vancouver summit • July 2015 - Neutron spec merges • Aug 2015 - Neutron implementation starts (but stalls) • Mitaka • January 2016 - Neutron implementation resumes (Neutron cores at Nova mid-cycle) • March 2016 - Neutron Feature completes • Newton • May 2016 - Nova spec merges • Aug 2016 - Nova feature completes • Sep 2016 - Integration testing completes

  13. Community effort: timeline • Some initial pushback • Consensus and blueprint specification • http://specs.openstack.org/openstack/neutron-specs/specs/mitaka/get-me-a-network.html • The building blocks • Subnet pools to provide automatic IPAM • Default external networks

  14. Community effort: Neutron • The workflow • During the initial cloud setup, the operator: • creates default subnet pool(s) (ie. the IP space(s) to allocate subnets from) • creates a default external network (ie. the route to the Internet) • During the boot phase, Neutron (atomically): • Fetches an IP space from the default pool • Creates a network, subnet(s), router and uplink • Returns the UUID of the allocated network to Nova

  15. Community effort: Nova • Blueprint specification • https://specs.openstack.org/openstack/nova-specs/specs/newton/implemented/get-me-a-net work.html • Considerations • Handling “none” for explicit no network allocation • Mixed-level computes • What the request format should look like (usual networks dict vs enums) • The REST API is explicit, but the CLI provides a sane default (auto) • Nova runs the “dry-run” check in Neutron to make sure everything is setup • The “dry-run” option was not part of the original Neutron implementation • Nova does not retry; Neutron auto-allocated-topology is idempotent

  16. Community effort: Nova The workflow • • POST /servers with microversion >= 2.37 and networks=”auto” in the body • nova-api checks if all nova-compute services are new enough to handle this • nova-api validates that if no network is already available to the project, one can be automatically allocated • nova-compute: if a network is available to the project, use it, otherwise if asked to auto-allocate a network, attempt that by calling Neutron • If this succeeds, a port is created on the new network • If this fails, the server build is aborted (no retries), a fault is recorded and the instance is put into ERROR state

  17. Testing • Test cases to expose concurrency and locking issues • Multiple users to compete on subnet pool access • Multiple requests coming from same user performing ‘first boot’ • e.g. nova boot --flavor m1.small --image centos73 --nic auto --min-count 3 • This stresses the idempotency of the auto-allocated-topology extension in Neutron

  18. Future work • Get Floating IP automatically allocated • Initially ruled out • To avoid consuming precious “IPv4” • To allow IPv6-only environments seamlessly • Control external gateway modes • Enabling/Disabling SNAT • Provision any kind of topology • Provider networks (vlan) vs logical networks (vxlan)

  19. Q&A

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