Dragonflow is an integral project in OpenStack that is designed to help OpenStack networking scale to thousands of compute nodes. It addresses limitations in Neutron's scalability, performance, and operability. Dragonflow uses a lightweight distributed SDN control plane architecture with pluggable database and publish-subscribe drivers. This allows it to distribute network services like DHCP, security groups, and DNAT across compute nodes for improved scalability and performance.
5. Dragonflow Highlights
• Integral “Big Tent” project in OpenStack
• Designed to Scale with High Throughput and Low Latency
• Lightweight and Simple
• Easily Extensible
• Distributed SDN Control Plane Architecture
• Focused on advanced networking services
• Distributes Policy Level Abstraction to the Compute Nodes
9. Pluggable Database Framework
Requirements
HA + Scalability
Different Environments have different requirements
Performance, Latency, Scalability, etc.
Why Pluggable?
Long time to productize
Mature Open Source alternatives
Allow us to focus on the networking services only
10. Distributed
DB
DB Data 3
DB Data 2
DB Data 1
Full Distribution
Compute Node 1
Dragonflow
Local Cache
OVS
Compute Node N
Dragonflow
OVS
Local Cache
Dragonflow DB Drivers
Redis ETCD ZookeeperRMC
DB Data 3
DB Data 2
DB Data 1
DB Data 3
DB Data 2
DB Data 1
11. Distributed
Database
DB Data 3
DB Data 2
DB Data 1
Selective Distribution
Compute Node 1
Dragonflow
Local Cache
OVS
DB Data 1
Compute Node N
Dragonflow
OVS
Local Cache
DB Data 3
DB Data 2
Dragonflow DB Drivers
Redis ETCD ZookeeperRMC
12. Compute Node
Dragonflow
Local Controller
Subscriber
Redis ØMQ
Compute Node
Dragonflow
Local Controller
Subscriber
Redis ØMQ
Compute Node
Dragonflow
Local Controller
Subscriber
Redis ØMQ
Compute Node
Dragonflow
Local Controller
Subscriber
Redis ØMQ
Neutron Server
Dragonflow
Plugin
Publisher
Redis ØMQ
Neutron Server
Dragonflow
Plugin
Publisher
Redis ØMQ
Neutron Server
Dragonflow
Plugin
Publisher
Redis ØMQ
. . .
DB
. . .
Pluggable Pub/Sub
18. Roadmap
Additional DB Drivers ZooKeeper, Redis…
Selective Proactive DB
Pluggable Pub/Sub Mechanism
DB Consistency
Distributed DNAT
Security Group
New Applications
Hierarchical Port Binding (SDN ToR) move to ML2
Containers (Kuryr plugin and nested VM support)
Topology Service Injection / Service Chaining
Inter Cloud Connectivity (Border Gateway / L2GW)
Optimize Scale and Performance
20. Newton Release New Applications
IGMP Application
Distributed Load Balancing (East/West)
Brute Force prevention
DNS service
Distributed Metadata proxy
Port Fault Detection
23. Ride the Dragon!
• Documentation
• https://wiki.openstack.org/wiki/Dragonflow
• Bugs & blueprints
• https://launchpad.net/dragonflow
• DF IRC channel
• #openstack-dragonflow
• Weekly on Monday at 0900 UTC in #openstack-meeting-4
(IRC)
Editor's Notes
Each local controller sync only relevant data according to its local ports
Depends on the virtual topology
Local controller gets all local ports information
DB framework must support waiting for changes on specific entry column values
The plugin tags the related objects with a special column value
Reduce the sync load and change rate
Each local controller only gets the subset of the data that is relevant for it
Each local controller sync only relevant data according to its local ports
Depends on the virtual topology
Local controller gets all local ports information
DB framework must support waiting for changes on specific entry column values
The plugin tags the related objects with a special column value
Reduce the sync load and change rate
Each local controller only gets the subset of the data that is relevant for it