Elastic Tree:
Energy Efficient SDN
Team-16
Objective of the Project
- To come up with an energy-saving scheme to be implemented within data centers at the same time, not compromising on performance.
- To implement the scheme in Software Defined Network and investigate the energy savings.
- Look at the prospects of ML(HODMD in particular) to anticipate spikes in traffic and prepare network beforehand.
DataCenter Networks and the Need for Green Computing
- Data centers are typically provisioned for peak workload, and run well below capacity most of the time, and traffic can be satisfied by a subset of the network links.
- fixed overheads such as fans switch chips, and transceivers waste power at low loads.
- energy consumption of data center devices increases very slightly with the rise of the workload.
This is why turning off a switch is more beneficial than to limit its use (for example turning off
some ports).
DataCenter Networks and the Need for Green Computing
- If the amount of unused links is large enough, then some switches can be turned off. The concept of ElasticTree starts with this observation.
- The main idea is to monitor data center traffic in order to optimize the set of network
elements that must stay active to meet performance and fault tolerance goals.
Architecture
Why onOS as Controller ?
- scalability of large scale fat networks
- visualization of links
- has capacity to provide north bound network functions
FAT-Tree Architechture
We go for Fat tree Topology since it is a mesh like topology which has more paths
The effect of individual component failure is manageable (Fault Tolerent)
Fat Tree Topology
Each Layer has same aggregated bandwidth
Can be Built with cheap devices with uniform capacity
FAT-Tree Architechture
K-ary FAT Tree
Ex. 4-ary FAT Tree
- Each Pod consists of (k/2)^2 servers
Pod 1
Pod 2
Pod 3
Pod 4
FAT-Tree Architechture
K-ary FAT Tree
Ex. 4-ary FAT Tree
- Each Pod consists of (k/2)^2 servers
Pod 1
Pod 2
Pod 3
Pod 4
- Three Layer Architecture: Edge, Aggregation, Core
FAT-Tree Architechture
K-ary FAT Tree
Ex. 4-ary FAT Tree
- Each Pod consists of (k/2)^2 servers and 2 layers of k/2 k-port switches
- Three Layer Architecture: Edge, Aggregation, Core
- Each Edge Switch Connects to k/2 servers and k/2 aggregation switches
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
FAT-Tree Architechture
K-ary FAT Tree
Ex. 4-ary FAT Tree
- Each Pod consists of (k/2)^2 servers and 2 layers of k/2 k-port switches
- Three Layer Architecture: Edge, Aggregation, Core
- Each Edge Switch Connects to k/2 servers and k/2 aggregation switches
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
- Each Aggregation Switch Connects to k/2 edge and k/2 core switches.
Elastic-Tree Architechture
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
Optimizer
Traffic Matrix
Topology
Subset
Subset
Power Controll
Routing
Fat-Tree Architecture: Addressing
Adress follows: 10.p.e.h
p: pod
e: edge switch
h: host
Fat-Tree Architecture: Routing
- In order to have a single path between every pair of hosts and optimally use multiple paths present in the topology, default paths are pushed when the network start-up.
- The idea is to distribute paths between hosts to maximize the bandwidth available for host-to-host’s traffic.
A default path is composed of a set of flow rules to enable the connexion between two hosts
Fat-Tree Architecture: Routing
Match | IP | OUT PORT | PRIORITY |
---|---|---|---|
IP Dest | 10.1.2.0/24 | 1 | 4 |
IP Dest | 10.1.1.0/24 | 2 | 4 |
IP Src | 10.1.2.0/24 | 4 | 3 |
IP Src | 10.1.1.0/24 | 3 | 3 |
Elastic-Tree Architecture: Routing
- When traffic is running in the network, the optimizer module collects traffic statistics in order to compute the minimal number of switches needed to satisfy the demand.
- Then the forwarding module generates a new set of default paths based on the subset of devices received.
- After removing the previous default paths, we compute paths and update flow tables as shown in the previous slide. (The only thing that varies is the number of aggregation and core switches available.)
Elastic-Tree Architechture
Optimizer
Traffic Matrix
Topology
Subset
Subset
Power Control
Routing
Elastic-Tree Architechture
Optimizer
Topo Aware Heuristic
Topo-Aware Heuristic
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
- For a particular demand, the edge switch doesn't care Which Aggregation switches are active, but How Many are active...
FAT-Tree Architechture
Topo-Aware Heuristic
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
- For a particular demand, the edge switch doesn't care Which Aggregation switches are active, but How Many are active...
- "View" of every edge switch is the same.. all see the same number of aggregation switches above
FAT-Tree Architechture
Topo-Aware Heuristic
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
- For a particular demand, the edge switch doesn't care Which Aggregation switches are active, but How Many are active...
- "View" of every edge switch is the same.. all see the same number of aggregation switches above
FAT-Tree Architechture
Topo-Aware Heuristic
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
- For a particular demand, the edge switch doesn't care Which Aggregation switches are active, but How Many are active...
- "View" of every edge switch is the same.. all see the same number of aggregation switches above
2Gbps
Suppose most active trafic is 2Gbps
FAT-Tree Architechture
Topo-Aware Heuristic
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
- For a particular demand, the edge switch doesn't care Which Aggregation switches are active, but How Many are active...
- "View" of every edge switch is the same.. all see the same number of aggregation switches above
2Gbps
Suppose most active trafic is 2Gbps
It suffices if ANY TWO Aggregation switches are active. Dosent matter which
FAT-Tree Architechture
Topo-Aware Heuristic
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
- For a particular demand, the edge switch doesn't care Which Aggregation switches are active, but How Many are active...
- "View" of every edge switch is the same.. all see the same number of aggregation switches above
2Gbps
Suppose most active trafic is 2Gbps
It suffices if ANY TWO Aggregation switches are active. Dosent matter which
FAT-Tree Architechture
Topo-Aware Heuristic
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
2Gbps
For each edge switch e, in pod p, Calculate minimum number of links required to support uptraffic
FAT-Tree Architechture
Topo-Aware Heuristic
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
2Gbps
For each edge switch e, in pod p, Calculate minimum number of links required to support uptraffic
FAT-Tree Architechture
Topo-Aware Heuristic
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
2Gbps
For each edge switch e, in pod p, Calculate minimum number of links required to support uptraffic
FAT-Tree Architechture
Topo-Aware Heuristic
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
For each edge switch e, in pod p, Calculate minimum number of links required to support uptraffic
FAT-Tree Architechture
Topo-Aware Heuristic
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
2Gbps
For each edge switch e, in pod p, Calculate minimum number of links required to support downtraffic
Similarly for Down Traffic,
FAT-Tree Architechture
Topo-Aware Heuristic
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
2Gbps
The minimum number of links required for edge switch e to support the total traffic is the maximum of these..
FAT-Tree Architechture
Topo-Aware Heuristic
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
2Gbps
Now, we calculate the minimum number of active links required from pod p to core to support up traffic
FAT-Tree Architechture
Topo-Aware Heuristic
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
2Gbps
Now, we calculate the minimum number of active links required from pod p to core to support up traffic
FAT-Tree Architechture
Topo-Aware Heuristic
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
2Gbps
Minimum number of links required to connect pod p to core is maximum of these
FAT-Tree Architechture
Topo-Aware Heuristic
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
compute the minimum number of aggregation switches required to satisfy up-traffic (edge → agg) in pod p:
Max
Max
Max
Max
FAT-Tree Architechture
Topo-Aware Heuristic
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
compute the minimum number of aggregation switches required to satisfy up-traffic (edge → agg) in pod p:
Max
Max
Max
Max
FAT-Tree Architechture
Topo-Aware Heuristic
compute the minimum number of aggregation switches required to satisfy down-traffic (core → agg) in pod p:
Aggr
FAT-Tree Architechture
Topo-Aware Heuristic
compute the minimum number of aggregation switches required to satisfy down-traffic (core → agg) in pod p:
Aggr
FAT-Tree Architechture
Topo-Aware Heuristic
compute the minimum number of aggregation switches required to satisfy down-traffic (core → agg) in pod p:
Aggr
the minimum number of aggregation switches required to satisfy traffic in pod p is hence:
FAT-Tree Architechture
Topo-Aware Heuristic
compute the minimum number of aggregation switches required to satisfy down-traffic (core → agg) in pod p:
Aggr
the minimum number of aggregation switches required to satisfy traffic in pod p is hence:
FAT-Tree Architechture
Topo-Aware Heuristic
compute the minimum number of core switches that caters to maximum traffic from aggregation
Aggr
The traffic between the core and the most active pod informs the number of core switches that must be active to satisfy the traffic demands
FAT-Tree Architechture
Topo-Aware Heuristic
compute the minimum number of core switches that caters to maximum traffic from aggregation
Aggr
The traffic between the core and the most active pod informs the number of core switches that must be active to satisfy the traffic demands
FAT-Tree Architechture
Topo-Aware Heuristic
compute the minimum number of core switches that caters to maximum traffic from aggregation
Aggr
The traffic between the core and the most active pod informs the number of core switches that must be active to satisfy the traffic demands
Now we have number of core and aggregation switches that needs to be turned on
FAT-Tree Architechture
Topo-Aware Heuristic
Pod 1
Pod 2
Pod 3
Pod 4
Edge
Aggr
2Gbps
Now, we calculate the minimum number of active links required from pod p to core to support down traffic
Energy Consumption
(also Bandwidth)
Linear, Uniformly increasing Bandwidth
HODMD Prediction
Our Workflow
We use REST api to communicate to onOS
topo_discovery.py
defaultpath.py
flowMeasure.py
monitoringTools.py
runElasticTree.py
fattree.py
to build graph of the current topology based on ONOS info
to create single default path between every host in the network
to compute the number of switches needed in each layer in order to satisfy traffic and save energy
remove/add link , delete flow tables
Returns the Subset of topology to be active
Python file to create virtual SDN network connected to ONOS controller
Elastic Tree: Energy Efficient SDN
By Incredeble us
Elastic Tree: Energy Efficient SDN
- 50