Transcript
Page 1: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Architektura systemu OpenContrail

Michał DubielKraków 2014

Page 2: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Plan

• Cloud operating system– Why?

• Network virtualization– Why it is important – OpenContrail solution

• OpenContrail architecture– Goals, assumptions– Functional partitioning– Components

Page 3: PLNOG 13: Michał Dubiel: OpenContrail software architecture

CLOUD OPERATING SYSTEM

• Compute power• Storage• Networking

Page 4: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Operating System analogy

• Resources in a typical server– CPU cores– Memory– Storage– Networking

• Resources in a datacenter– Hardware machines– Storage appliances– Networking equipment

Page 5: PLNOG 13: Michał Dubiel: OpenContrail software architecture

OpenStack

source: openstack.org

Page 6: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Up to now quite missing

source: openstack.org

Network virtualization - OpenContrail

Page 7: PLNOG 13: Michał Dubiel: OpenContrail software architecture

NETWORK VIRTUALIZATION

• Virtual endpoints domination• Solutions

Page 8: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Rack, servers, VMs

VMVMVMVM

hypervisor

VMVMVMVM

hypervisor

VMVMVMVM

hypervisor

Server rack

To spine switch

Page 9: PLNOG 13: Michał Dubiel: OpenContrail software architecture

A wider viewClos network

Page 10: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Observations

• Majority of network endpoints are virtual

• Virtual networks dominate

• Isolation between them has to be provided

• While using the same physical network

• Automatically

Page 11: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Solutions

• Vlans– Default OpenStack approach– Limited, not flexible

• Overlay networking– OpenContrail as a Neutron plugin– Flexible– Scalable

Page 12: PLNOG 13: Michał Dubiel: OpenContrail software architecture

VLANs

• VM’s interfaces placed on bridges– Each bridge for a virtual network

• Difficult to manage• 4096 VLAN tags limit– Can be extended using Shortest Path Bridging

• Physical switches have to contain the VN state

Page 13: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Overlay networking

• “Old” technology, new for data-centers• Physical underlay network– IP fabric– No state of the virtual networks

• Virtual overlay network– Holds state of the virtual networks– Dynamic tunnels (MPLSoGRE, VXLAN, etc.)

Page 14: PLNOG 13: Michał Dubiel: OpenContrail software architecture

VM migration example

VM1 VM2

Server 1

VM3

VM4 VM5

Server 2

VM6

VM7 VM8

Server 3

VM9

Physical switch

Virtual networks:

1 2

3

S3 VM9 Payload Physical network:

Page 15: PLNOG 13: Michał Dubiel: OpenContrail software architecture

VM migration example

VM1 VM2

Server 1

VM3

VM4 VM5

Server 2

VM6

VM7 VM8

Server 3

VM9Physical switch

Virtual networks:

1 2

3

S2 VM9 Payload Physical network:

Page 16: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Overlay networks advantages

• “Knowledge” about network only in the software (vRouter)

• Any switch works for IP fabric network– No configuration– Only speed matters– Low price

• OpenContrail implementation is standards-based (MPLS, BGP, VXLAN, etc.)

Page 17: PLNOG 13: Michał Dubiel: OpenContrail software architecture

OPENCONTRAIL ARCHITECTURE

• Goals• Nodes• Components

Page 18: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Architecture goals

• Scalability• Compatibility• Extensibility• Fault tolerance• Performance

Page 19: PLNOG 13: Michał Dubiel: OpenContrail software architecture

“Think globally, act locally”

• The system is physically distributed– No single point of failure– Scalability– Performance

• Logically centralized control and management– Simplicity– Ease of use

Page 20: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Architecture overview

Source: www.opencontrail.org

Page 21: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Configuration node

Source: www.opencontrail.org

Page 22: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Configuration node components

• Configuration API Server– Active/Active mode– Receives REST API calls– Publishes configuration to the IF-MAP Server– Receives configuration from other API Servers

• Discovery Service– Active/Active mode– A Registry of all OpenContrail services– Provides REST API for publishing and querying of

services

Page 23: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Configuration node components (2)

• Schema Transformer– Active/Backup mode– Receives high-level configuration from IF-MAP Server– Transforms high-level constructs (eg. virtual network) to

low-level (eg. routing instance)• IF-MAP Server– Active/Active mode– Publishes system configuration to Control nodes, Schema

Transformer – All configuration comes from API Server (both high and low

level)

Page 24: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Configuration node components (3)

• Service Monitor– Active/Backup mode– Monitors service virtual machines (firewall, analyzer,

etc.)– Calls nova API to control VMs

• AMPQ Server (RabbitMQ)– Communication between system components

• Persistent storage (Cassandra)– Receives and stores system configuration from the

Configuration API Server

Page 25: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Configuration flow (user)

1. User Request 2. Original API Server 3. RabbitMQ4. All API Servers5. Local IF-MAP Server6. Schema Transformer

Page 26: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Configuration flow (transformed)

1. Schema Transformer2. Configuration API Server3. RabbitMQ4. All API Servers5. Local IF-MAP Server6. Control nodes and DNS

Page 27: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Controller node

Source: www.opencontrail.org

Page 28: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Control node components

• Controller– Active/Active mode– Receives configuration from IF-MAP Server– Exchanges XMPP messages with vRouter Agent– Federate with other nodes and physical switches via

BGP/Netconf • DNS Service– Active/Active– Receives configuration from IF-MAP Server– Exchanges XMPP messages with vRouter Agent– Front-end only, backend using host native ‘named’

Page 29: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Compute nodeNova

SchedulerContrail Control

node

Nova vif driver

KVM

VM VM VM

Contrail Agent

Contrail vRouter

Kernel space

Nova compute

Libvirt

NetLink/dev/flowpkt

TCP

QEMU

TUN/TAP

Page 30: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Compute node components

• vRouter Agent– Communication via XMPP with the Control node– Installation of forwarding state into vRouter– ARP, DHCP, DNS proxy

• vRouter– Packet forwarding– Applying flow policies– Encapsulation, decapsulation

Page 31: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Agent <-> vRouter communication

• NetLink– Routing entry, next-hop, flow, etc. synchronization– Uses RCU

• /dev/flow– Shared memory for flow hash tables

• pkt tap device– Flow discovery (first packet of a flow)– ARP, DHCP, DNS proxy

Page 32: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Analytics node

Source: www.opencontrail.org

Page 33: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Analytics node components

• API Server– REST API for querying analytics

• Collector– Collects analytics information from all system nodes

• Query Engine– Map-reduce over collected analytics– Executes queries

• Rules Engine– Controls which events are collected by the Collector

Page 34: PLNOG 13: Michał Dubiel: OpenContrail software architecture

Any questions?


Recommended