nova & neutron what's new in...

17
Nova & Neutron What's new in Kilo Pasquale Porreca & Daniele Casini, DEK Technologies

Upload: others

Post on 20-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Nova & Neutron What's new in Kilofiles.meetup.com/6653182/03-2-KiloNewFeatures_Mar_2015.pdf · Kilo Priorities Nova • Cell v2 • Continued object transition • Scheduler • V2.1

Nova & Neutron

What's new in Kilo

Pasquale Porreca & Daniele Casini, DEK Technologies

Page 2: Nova & Neutron What's new in Kilofiles.meetup.com/6653182/03-2-KiloNewFeatures_Mar_2015.pdf · Kilo Priorities Nova • Cell v2 • Continued object transition • Scheduler • V2.1

Specifications tweaks in Kilo

New specifications process introduced in Juno

• Specification is a formal document which defines what is being implemented

• Specifications are reviewed separately from the code

• To ensure an higher quality of the developed features, the specification process was intentionally slow

Tweaks for Kilo

• Trivial blueprints: for trivial changes a blueprint is enough

• Fast track approvals: helps to continue the work without starting the specification from scratch

• Backlog specifications: only the problem description section is required, not the implementation details

• Kilo priorities: a list of blueprints that deserves special attention from reviewers

3/31/2015 | Page 1 [email protected] [email protected]

Page 3: Nova & Neutron What's new in Kilofiles.meetup.com/6653182/03-2-KiloNewFeatures_Mar_2015.pdf · Kilo Priorities Nova • Cell v2 • Continued object transition • Scheduler • V2.1

Contents

3/31/2015 | Page 2 [email protected] [email protected]

Kilo Priorities Nova

• Cell v2

• Continued object transition

• Scheduler

• V2.1 API

• Functional testing

• Nova-network to Neutron migration

Neutron

• Distributed virtual router in Neutron

• Advanced services split

• L3 agent restructuring

• Pluggable IPAM

• VLAN trunking networks for NFV

Page 4: Nova & Neutron What's new in Kilofiles.meetup.com/6653182/03-2-KiloNewFeatures_Mar_2015.pdf · Kilo Priorities Nova • Cell v2 • Continued object transition • Scheduler • V2.1

Cells v2

3/31/2015 | Page 3 [email protected] [email protected]

Problems

• Single database and message queue for data persistence and communication

• Difficulties at scaling and providing fault tolerance

Cells

• Cells is an experimental feature to partition compute nodes into smaller groups with their own database and queue

• Nova-cells service for communication between the Nova API and instances/hosts within a cell

Cells v2

• Only deployments based on cells: the default installation will be a single cell setup

• In case of Nova API requests, a particular instance is identified by the three-tuple (database, queue, hostname)

Page 5: Nova & Neutron What's new in Kilofiles.meetup.com/6653182/03-2-KiloNewFeatures_Mar_2015.pdf · Kilo Priorities Nova • Cell v2 • Continued object transition • Scheduler • V2.1

Continued object transition

3/31/2015 | Page 4 [email protected] [email protected]

A conversion is ongoing on data structures used for RPC or database communications

An object encapsulation called Nova Objects is being introduced

Multi-versioning support for live-upgrade and database schema independence

Page 6: Nova & Neutron What's new in Kilofiles.meetup.com/6653182/03-2-KiloNewFeatures_Mar_2015.pdf · Kilo Priorities Nova • Cell v2 • Continued object transition • Scheduler • V2.1

Scheduler

3/31/2015 | Page 5 [email protected] [email protected]

What is the nova-scheduler

A service to establish which host a VM should be launched on

Kilo update for nova-scheduler

Clean up of the scheduler interfaces to have the nova-scheduler access clearly defined and isolated

Gantt

A project called Gantt is being started to provide a Scheduler-as-a-Service splitting the scheduler service out from Nova

Page 7: Nova & Neutron What's new in Kilofiles.meetup.com/6653182/03-2-KiloNewFeatures_Mar_2015.pdf · Kilo Priorities Nova • Cell v2 • Continued object transition • Scheduler • V2.1

V2.1 API

3/31/2015 | Page 6 [email protected] [email protected]

V2 API

It suffers for several problems

• Incorrect success return codes

• Poor input validation

• Poor or inconsistent error handling

• API inconsistencies

V3 API

• Already started in Havana and present in Juno as experimental feature to address the above problems

• Backward incompatibility

V2.1 API

• Introduced in Kilo, providing most of v3 API benefits while removing the backward incompatibility

• A new microversioning mechanism introduced in Kilo to easily change the REST API

Page 8: Nova & Neutron What's new in Kilofiles.meetup.com/6653182/03-2-KiloNewFeatures_Mar_2015.pdf · Kilo Priorities Nova • Cell v2 • Continued object transition • Scheduler • V2.1

Functional testing

3/31/2015 | Page 7 [email protected] [email protected]

Unit tests were required while only a few functional tests, mixed with unit tests, were performed

Functional Tests check for correctness of a specific feature matching the results for a given input against the specification

In Kilo

• Tree Organization of the tests is changed

• Functional tests have their own dedicated place

Page 9: Nova & Neutron What's new in Kilofiles.meetup.com/6653182/03-2-KiloNewFeatures_Mar_2015.pdf · Kilo Priorities Nova • Cell v2 • Continued object transition • Scheduler • V2.1

Nova-network to Neutron migration

3/31/2015 | Page 8 [email protected] [email protected]

A migration procedure from nova-network to neutron is wanted for OpenStack deployments already in place

The migration procedure requires impacts both in nova-network

and in neutron

The main purpose is to ensure that the control plane elements can continue to work and that an operator could perform a rolling upgrade

The idea is that during migration Neutron REST API are restricted to read-write only by nova-api

Even if some work has been done, the migration procedure was not ready for Kilo and it has been postponed to Liberty

Page 10: Nova & Neutron What's new in Kilofiles.meetup.com/6653182/03-2-KiloNewFeatures_Mar_2015.pdf · Kilo Priorities Nova • Cell v2 • Continued object transition • Scheduler • V2.1

Contents

3/31/2015 | Page 9 [email protected] [email protected]

Kilo Priorities Nova

• Cell v2

• Continued object transition

• Scheduler

• V2.1 API & API Functional testing

• nova-network to Neutron migration

Neutron

• Distributed virtual router in Neutron

• Advanced services split

• L3 agent restructuring

• Pluggable IPAM

• VLAN trunking networks for NFV

Page 11: Nova & Neutron What's new in Kilofiles.meetup.com/6653182/03-2-KiloNewFeatures_Mar_2015.pdf · Kilo Priorities Nova • Cell v2 • Continued object transition • Scheduler • V2.1

Distributed virtual router in Neutron

3/31/2015 | Page 10 [email protected] [email protected]

Problem All the L3 Compute traffic flows through Neutron L3 Routers that are deployed in Network Nodes

• Tenant intra VM traffic flows through the Network Node

• VMs with Floating IP also receive and send packets through the Network Node Routers

Solution Add DVR (Distributed Virtual Router)

• VXLAN/GRE network supported in Juno

• VLAN underlay support added in Kilo

Page 12: Nova & Neutron What's new in Kilofiles.meetup.com/6653182/03-2-KiloNewFeatures_Mar_2015.pdf · Kilo Priorities Nova • Cell v2 • Continued object transition • Scheduler • V2.1

Advanced services split

3/31/2015 | Page 11 [email protected] [email protected]

Problems • Development concentrates around either layer 2 and 3 or layers 4

through 7

• Development is slowed down due to different velocities

Solution Split the Neutron repo into four repos, one for basic L2/L3 plumbing, and one each for LBaaS, FWaaS, and VPNaaS

Page 13: Nova & Neutron What's new in Kilofiles.meetup.com/6653182/03-2-KiloNewFeatures_Mar_2015.pdf · Kilo Priorities Nova • Cell v2 • Continued object transition • Scheduler • V2.1

L3 Agent restructuring

3/31/2015 | Page 12 [email protected] [email protected]

Problem

Most of the L3 agent functionality is provided by a single class which comprises about 75% of a single python file that is just over 2,000 lines of code.

This structure makes the agent very difficult to be extended and modified

Proposed change

• Create a full-fledged class that only handles the implementation of the router

• Decouple L3 services from the L3 agent class

Page 14: Nova & Neutron What's new in Kilofiles.meetup.com/6653182/03-2-KiloNewFeatures_Mar_2015.pdf · Kilo Priorities Nova • Cell v2 • Continued object transition • Scheduler • V2.1

Pluggable IPAM

3/31/2015 | Page 13 [email protected] [email protected]

Problems

• OpenStack is not yet ready to be integrated with existing infrastructure that uses external IPAM (IP Address Management)

• Most (if not all) Neutron plugins leverage an IPAM implementation that is embedded in the db_base_plugin implementation (difficult or impossible to integrate it with an external IPAM backend)

Proposed change

Addition of a well-defined, abstract IPAM interface, and refactoring of the existing NeutronDbPluginV2 to utilize that interface rather than directly perform IPAM actions on its own

Page 15: Nova & Neutron What's new in Kilofiles.meetup.com/6653182/03-2-KiloNewFeatures_Mar_2015.pdf · Kilo Priorities Nova • Cell v2 • Continued object transition • Scheduler • V2.1

VLAN trunking networks for NFV

3/31/2015 | Page 14 [email protected] [email protected]

Requirement

VLANs are needed for many NFV functions in order to keep different traffic flows separated

Problem

Many commonly used Neutron plugin configurations create networks that do not permit VLAN tagged traffic to transit the network (e.g ML2 when using the OVS or the VLAN)

What is implemented in Kilo

Added vlan_trasparent attribute to notify whether a specific network configuration supports trunk link or not

Future work

Fix OVS driver to support trunk port for VMs