44
Multisite OpenStack for NFV Bridging The Gap

Multisite OpenStack for NFV: Bridging the Gap

Embed Size (px)

Citation preview

Page 2: Multisite OpenStack for NFV: Bridging the Gap

● Gaps in multi-site OpenStack for NFV

● Tacker

● Kingbird

● Tricircle

● Putting it all together

Agenda

Page 3: Multisite OpenStack for NFV: Bridging the Gap

Gaps in Multi-site OpenStack for NFV

OpenStack VIM OpenStack VIM

VNF1 vRouter 1(IPv6) VNF2vRouter 2

(IPv6)

OpenStack

VNF2vRouter 2(IPv6)

? Disaster recovery of application…● App level consistency snapshot● Volume level cross site replication

NFV Orchestrator

Page 4: Multisite OpenStack for NFV: Bridging the Gap

Gaps in Multi-site OpenStack for NFV

OpenStack VIM OpenStack VIM

VNF1 vRouter 1(IPv6) VNF2vRouter 2

(IPv6)

NFV Orchestrator ? Tenant level image, SSH key, security group, IP/mac, metering, monitoring...

? Tenant level L2/L3 networking for E-W traffic? Tenant level quota control and resources view? Tenant level image, SSH key, security group, IP/mac, metering, monitoring...

Page 5: Multisite OpenStack for NFV: Bridging the Gap

OpenStack OpenStack OpenStack

Gaps in Multi-site OpenStack for NFV

Distributed Session DB

Stateless Session Process Unit

Distributed LB

Distributed VNF

? Tenant level L2/L3 networking for E-W traffic? Tenant level quota control and resources view? Tenant level image, SSH key, security group, IP/mac, metering, monitoring...

NFV Orchestrator

Page 6: Multisite OpenStack for NFV: Bridging the Gap

OPNFV Multisite Use Cases

Use case 1 Multisite identity service management

● Bug reported to KeyStone (Liberty)

Use case 2 VNF high availability across VIM ● Cross OpenStack L2 networking requirements to L2GW (Newton)

Use case 3 Multisite VNF Geo-Site disaster recovery

● Group VMs consistency snapshot via quiesce/unquiesce API (Newton)

● Volume level replication

Use case 4 Resources management and

synchronization. ● Kingbird● Tricircle

( for different deployment scenario )Use case 5 Centralized monitoring service.

Page 7: Multisite OpenStack for NFV: Bridging the Gap

VNF1 VNF2 VNF2

VNF3

VNF5

Service Function Chaining across sitesSite 1

Site 2

Site 3

Monitor and heal service chain in case of VNF failuresModify/update service chainsResilient to WAN bandwidth and delay

NFV Orchestrator

End-to-end Service Orchestration

traffic

Page 8: Multisite OpenStack for NFV: Bridging the Gap

Tacker Project Overview● Open NFV Orchestrator● VNF life cycle management

○ monitoring framework○ configuration framework

● VNF catalog management○ TOSCA template support

● EPA support○ CPU-Pinning, Huge Page, NUMA awareness, SR-IOV

● Auto resource creation○ Flavor, Network and Image creation

Page 9: Multisite OpenStack for NFV: Bridging the Gap

Multisite VIM Support● Unified view of VIM management using a single dashboard● Ease of deployment for operators to integrate Tacker with their existing

OpenStack installations with minimal overhead● Fulfillment of a certain level of RO functionality, by combining necessary

existing OpenStack modules such as heat and keystone

Page 10: Multisite OpenStack for NFV: Bridging the Gap

Unified View of VIM Management

Tacker

VIM 0(local OpenStack

Controller)

Liberty

Tacker can instantiate VNFs only on same OpenStack controller

Mitaka

Tacker

Site 1 - VIM(default – local

OpenStack Controller)

Site 2 -VIM(OpenStack Controller)

Site 3 - VIM(OpenStack Controller)

VNF placement on specific target OpenStack VIMExplicit Region support

Page 11: Multisite OpenStack for NFV: Bridging the Gap

Multiple OpenStack Versions

Tacker

Site 1 – (OpenStack controller)

Site 2 -(OpenStack Controller)

Site 3 -(OpenStack Controller)

• Operators have multiple OpenStack VIMs with different OpenStack versions• Detect KeyStone and HOT template version and translate accordingly• Gracefully downgrade resource requests on older VIMs

Kilo Liberty Mitaka

Page 12: Multisite OpenStack for NFV: Bridging the Gap

Tacker Multisite Architecture

● Multisite VIM module part of orchestrator component

● Pluggable driver framework○ (aka Bring your own VIM)

● VIMs shared across tenants● Horizon dashboard and CLI support

Tacker API

NFV Catalog

NFVOMultsite VIM VNFM

Custom Driver

OpenStack VIM driver

Page 14: Multisite OpenStack for NFV: Bridging the Gap

Kingbird Project

Resource synchronization and management for multi-region OpenStack deployments.

Based on OPNFV Multisite UC5, UC6.

Aggregated view of distributed resources.

Synchronization (ssh-keys, security groups, images, flavors, etc.)

Centralized quota management.

Page 15: Multisite OpenStack for NFV: Bridging the Gap

Quotas in OpenStack● Defined on a per-region basis.● Fragmented quota management in nova, neutron,

cinder.● Assigned per region.

○ E.g. max 50 instances in R1, max 30 instances in R2

● No process for synchronizing allocated quotas across regions.

R1

NeutronQM

NovaQM

R2

NeutronQM

NovaQM

CinderQM

CinderQM

Page 16: Multisite OpenStack for NFV: Bridging the Gap

Kingbird Quota Management● New centralized quota management function.● Global quota limits across multiple regions.● Minimal impact on the existing OpenStack services.

R1

Neutron Nova CinderQMQM QM

R2

NeutronQM

NovaQM

CinderQM

Kingbird

Keystone

Page 17: Multisite OpenStack for NFV: Bridging the Gap

Kingbird Quota Management● Use existing APIs to dynamically balance quota values.● Calculate resource usage upon synchronization.● Store the default/tenant quota limits in Kingbird.

○ Provide CRUD operations for the known quota limits○ Expose similar APIs (os-quota-set, os-quota-class-sets)

Page 18: Multisite OpenStack for NFV: Bridging the Gap

Kingbird Architecturekingbird-api

Provides an API for managing global quota limits and on-demand quota synchronization.

kingbird-engine

Responsible for communicating with OpenStack services in regions, fetching tenant resource usages, periodically rebalancing quota limits.

kingbird-api

rabbit-mq

kingbird-engine database

python-kingbirdclientHorizonMistralTackerOSS/BSS...

Page 19: Multisite OpenStack for NFV: Bridging the Gap

Kingbird Resources● Project status, bugs, and blueprints are tracked on Launchpad

https://launchpad.net/kingbird● Source code on Github

https://github.com/openstack/kingbird/

Page 20: Multisite OpenStack for NFV: Bridging the Gap

Tricircle

Site 1 -VIM(OpenStack Controller)

Site 2 -VIM(OpenStack Controller)

Site 3 - VIM(OpenStack Controller)

OpenStack API Gateway:● Reserve all API ecosystem like

Tacker, Heat, Magnum, Murano, SDK, CLI…

● Cross OpenStack L2/L3 networking automation and data movement

OpenStack API

OpenStack APIs OpenStack APIsOpenStack APIs

Tricircle

Tricircle is OpenStack API gateway with added value like cross OpenStack L2/L3 networking, volume/VM movement, image distribution, global resource view, distributed quota management …This makes massive distributed edge clouds work like one inter-connected cloud, one OpenStack

Page 21: Multisite OpenStack for NFV: Bridging the Gap

Tricircle

Site 2 -VIM(OpenStack Controller)

Site 2 -VIM(OpenStack Controller)

Site 3 - VIM(OpenStack Controller)

VM1 vRouter 1 VM2vRouter 2 VM3

OpenStack API Gateway:● Tenant level L2/L3 networking

automation for E-W traffic isolation

OpenStack API

Tricircle

L2GW1 L2GW1

Page 22: Multisite OpenStack for NFV: Bridging the Gap

Tricircle

22

Neutron APITricircle Plugin

L2GW Driver

bottom OpenStack bottom OpenStack

Network1-1

Nova API-GW

VLAN1VM1 VM2

Network1-2VxLAN2

XJob

11. Start async job for L2 Networking for (Network1-1, Network1-2)

12. Create L2GW local connection13. Create L2GW remote connection14. Populate remote mac/IP info

12. Create L2GW local connection13. Create L2GW remote connection14. Populate remote mac/IP info

L2 Networking(EVPN)

Tricircle-extend the network to where the VM is, automatically

Cinder API-GW

L2GW1 L2GW2

Page 23: Multisite OpenStack for NFV: Bridging the Gap

Tricircle

Tricircle

Site 2 -VIM(OpenStack Controller)

Site 2 -VIM(OpenStack Controller)

Site 3 - VIM(OpenStack Controller)

VM1(Trans Tool)

VM2(Trans Tool)

OpenStack API Gateway:● Move tenant’s data (VM,Volume,

Image,etc) across site leverage the cross site tenant L2/L3 networking

OpenStack APIs

volume volume

Create VM with transportation tool, and attach the volume( data to be moved) to the VM, move the data across OpenStack through tenant level L2/L3 networking. *Conveyor, a project built above Tricircle will help to do this:https://launchpad.net/conveyor

Page 24: Multisite OpenStack for NFV: Bridging the Gap

Tricircle Resources● Project status, bugs, and blueprints are tracked on Launchpad

https://launchpad.net/tricircle● Source code on Github

https://github.com/openstack/tricircle

Page 25: Multisite OpenStack for NFV: Bridging the Gap

Putting it all together

Kingbird

Tacker

Site 1 - VIM(OpenStack Controller)

Site 2 -VIM(OpenStack Controller)

Tricircle

Site 4 - VIM(OpenStack Controller)

Site 5 -VIM(OpenStack Controller)

Site 6 - VIM(OpenStack Controller)

Multi-site NFV orchestration

Tenant level cross site L2/L3 networking automation, service chaining, data movement

Page 26: Multisite OpenStack for NFV: Bridging the Gap

Thanks, Q&A

Page 27: Multisite OpenStack for NFV: Bridging the Gap

Tacker Multisite Horizon Workflow

Page 28: Multisite OpenStack for NFV: Bridging the Gap

Tacker Multisite Horizon Workflow

Page 29: Multisite OpenStack for NFV: Bridging the Gap

Tacker Multisite Horizon Workflow

Page 30: Multisite OpenStack for NFV: Bridging the Gap

Tacker Multisite Horizon Workflow

Page 31: Multisite OpenStack for NFV: Bridging the Gap

Tacker Multisite Horizon Workflow

Page 32: Multisite OpenStack for NFV: Bridging the Gap

Need and Gap for Multi-site OpenStack in NFV (3)A new work item ETSI NFV GS IFA-020 was approved on Apr 7th to provide a report on the NFVO Split, where a first time ever try for a holistic view on multiple site NFVO architecture will be discussed and introduced

❏ The NFVO split architecture options should be designed to be complementary and not contradict each other

❏ Reference points should be reused as much as possible

❏ A potential option is shown on the left ❏ In this context, OpenStack would be expected to

provide certain level of RO functionality❏ Could be a combination of modules❏ Could be a not full-fledged RO entity

Page 33: Multisite OpenStack for NFV: Bridging the Gap

Gaps in these solutions and what different teams are doing to fix it

Kingbird

Tacker

Site 1 - VIM(OpenStack Controller)

Site 2 -VIM(OpenStack Controller)

Tricircle

Site 4 - VIM(OpenStack Controller)

Site 5 -VIM(OpenStack Controller)

Site 6 - VIM(OpenStack Controller)

Landscape for projects working together

Page 34: Multisite OpenStack for NFV: Bridging the Gap

Gaps in these solutions and what different teams are doing to fix it

Kingbird

Tacker

Site 1 - VIM(OpenStack Controller)

Site 2 -VIM(OpenStack Controller)

Tricircle

Site 4 - VIM(OpenStack Controller)

Site 5 -VIM(OpenStack Controller)

Site 6 - VIM(OpenStack Controller)

If tenant level cross site L2/L3 networking automation, service chaining, data movement are needed

Page 35: Multisite OpenStack for NFV: Bridging the Gap

Gaps in these solutions and what different teams are doing to fix it

Kingbird

Tacker

Site 1 - VIM(OpenStack Controller)

Site 2 -VIM(OpenStack Controller)

Tricircle

Site 4 - VIM(OpenStack Controller)

Site 5 -VIM(OpenStack Controller)

Site 6 - VIM(OpenStack Controller)

If tenant level quota control, resource sync..etc are required for multi-region deployment

Page 36: Multisite OpenStack for NFV: Bridging the Gap

Gaps in these solutions and what different teams are doing to fix it

KingbirdSite 1 - VIM(OpenStack Controller)

Site 2 -VIM(OpenStack Controller)

Tricircle

Site 4 - VIM(OpenStack Controller)

Site 5 -VIM(OpenStack Controller)

Site 6 - VIM(OpenStack Controller)

If tenant level quota control, resource sync..etc are required for multi-region deploymentRegion1 Tacker Region2 Tacker Region3 Tacker

Page 37: Multisite OpenStack for NFV: Bridging the Gap

Gaps in these solutions and what different teams are doing to fix it

Tacker

Site 1 - VIM(OpenStack Controller)

Site 2 -VIM(OpenStack Controller)

Tricircle

Site 4 - VIM(OpenStack Controller)

Site 5 -VIM(OpenStack Controller)

Site 6 - VIM(OpenStack Controller)

If tenant level cross site L2/L3 networking automation, service chaining, data movement in all sites are needed

Page 38: Multisite OpenStack for NFV: Bridging the Gap

Existing projects and solutions● Multisite● Tacker● Kingbird● Tricircle

Page 39: Multisite OpenStack for NFV: Bridging the Gap

Tricircle

Tricircle

Site 1 -VIM(OpenStack Controller)

Site 2 -VIM(OpenStack Controller)

Site 3 - VIM(OpenStack Controller)

OpenStack API Gateway:● Tenant level quota control and resources

view● Tenant level image, SSH key, security

group, IP/mac, metering, monitoring...OpenStack API

OpenStack API OpenStack APIOpenStack API

Page 40: Multisite OpenStack for NFV: Bridging the Gap

Tricircle

40

Neutron APITricircle Plugin

L2GW Driver

bottom OpenStack bottom OpenStack

L2 NetworkingVM1 VM2

Network1-2Network1-1

1,2

Nova API-GW

3,4

5 5

VLAN1 VxLAN2L2GW1 L2GW2

acb

Tricircle

Page 41: Multisite OpenStack for NFV: Bridging the Gap

Quota sync algorithm

S0: Initial state.

>+-----+----+----+----+----+

>| | A | B | C | Kb |

>+-----+----+----+----+----+

>| S0 | | | | 10 |

>+-----+----+----+----+----+

S1: Kingbird syncs the limit in all regions:

>+-----+----+----+----+----+

>| | A | B | C | Kb |

>+-----+----+----+----+----+

>| S0 | | | | 10 |

>+-----+----+----+----+----+

>| S1 | 10 | 10 | 10 | 10 |

>+-----+----+----+----+----+

Three regions A, B, C and the global quota limit is vcpus=10 set in Kingbird

Page 42: Multisite OpenStack for NFV: Bridging the Gap

Quota sync algorithm

S2: Allocate 2 vcpus in A and 1 in C.

>+-----+----+----+----+----+----+----+----+----+

>| | A | B | C | Kb | Au | Bu | Cu | Su |

>+-----+----+----+----+----+----+----+----+----+

>| S0 | | | | 10 | 0 | 0 | 0 | 0 |

>+-----+----+----+----+----+----+----+----+----+

>| S1 | 10 | 10 | 10 | 10 | 0 | 0 | 0 | 0 |

>+-----+----+----+----+----+----+----+----+----+

>| S2 | 9 | 7 | 8 | 10 | 2 | 0 | 1 | 3 |

>+-----+----+----+----+----+----+----+----+----+

S3: Tenant allocates 2 more in A, 2 in B, and 2 more in C: so now the usage will be 4 in A, 2 in B, 3 in C (total 9).

>+-----+----+----+----+----+----+----+----+----+>| | A | B | C | Kb | Au | Bu | Cu | Su |>+-----+----+----+----+----+----+----+----+----+>| S0 | | | | 10 | 0 | 0 | 0 | 0 |>+-----+----+----+----+----+----+----+----+----+>| S1 | 10 | 10 | 10 | 10 | 0 | 0 | 0 | 0 |>+-----+----+----+----+----+----+----+----+----+>| S2 | 9 | 7 | 8 | 10 | 2 | 0 | 1 | 3 |>+-----+----+----+----+----+----+----+----+----+>| S3 | 5 | 3 | 4 | 10 | 4 | 2 | 3 | 9 |>+-----+----+----+----+----+----+----+----+----+

Global_remaining_limit = Kingbird_global_limit - Su(sum of all usages) Region_new_limit = Global_remaining_limit + resource_usage_in_that_region.

Page 43: Multisite OpenStack for NFV: Bridging the Gap

Tricircle

43

Neutron APITricircle Plugin

L2GW Driver

bottom OpenStack bottom OpenStack

Network1-1

3 Create Network1-1

Nova API-GW

1 Create Network1 2 Create VM1(Network1, AZ1)

VLAN1L2GW1 L2GW2

5. Create Port1 for VM1

VM1

6 Create VM1(Port1, Network1-1)

4. update Network1( segment1 = Network1-1@ AZ1)

*support from Networking L2GW project

Tricircle

Page 44: Multisite OpenStack for NFV: Bridging the Gap

Tricircle

44

Neutron APITricircle Plugin

L2GW Driver

bottom OpenStack bottom OpenStack

Network1-1

8 Create Network1-2

Nova API-GW

7 Create VM2(Network1, AZ2)

VLAN1L2GW1

10. Create Port2 for VM2

VM1

11 Create VM2(Port2, Network1-2)

9. update Network1( segment2 = Network1-2 @ AZ2)

VM2

Network1-2VxLAN2

L2GW2

Tricircle