Friday, April 28, 2017

What is Fat Tree and how to construct it in 4-steps ?

Fat tree network topology looks like a tree topology like below example. In tree topology, we have same terminologies like Root, parent, child etc.  This is mainly used to connect a large number of physical servers/ computers in a large data center.
Fig-1. An example of tree network topology


It is recommended that reader should go through the basics of cloud computing and data center first.

In the tree structure topology, leaf nodes are physical servers or computers. Rest other nodes are switches.

Switches are basically 3 types: Core switches, Aggregation switches, and Edge switches.
Servers can be heterogeneous in terms of their configurations.

Fat tree topology is based on the complete binary tree. Below is an example of 3 layer Fat tree topology. The top layer (level-0) of switches is called Core layer. The second layer of switches is called Aggregation layer. And the third layer of switches is called Edge layer. The number of ports in each switch is same.

Fig-2. An example of 3 layer Fat tree topology.
Now let's construct a Fat tree network.
The information we need is the number of ports present in each switch. Let k be the number of ports that each switch contains. Switches with k number of ports in a Fat tree topology is called k-ary or k-port Fat tree network topology.
From the value of k, we’ll derive the number of core switches, aggregation switches, edge switches and the maximum number of servers that can be attached.
A set of (k/2) number of aggregation switches and (k/2) number of edge switches are combined together and that is known as a Pod.

Example - 1:

Let k=4, i.e. each switch has 4 ports.

Step-1:                                          
    Number of core switches is (k/2)^2 = 4 core switches.  If the value of k=8, we need (8/2)^2=16 core switches.
    Number of pods = k = 4.
Fig-3. Step-1 of Fat tree construction

Step-2:                                          
    Each pod consists of (k/2)=(4/2)=2 aggregation switches and (k/2)=(4/2)=2 edge switches.
    The switches are organized in layer wise. First layer is aggregation layer. Second layer is edge layer.
Fig-4. Step-2 of Fat tree construction


Step-3:                                          
    Each aggregation switch within a pod is connected to (k/2)=(4/2)=2 core switches and (k/2)=(4/2)=2 edge switches.
Fig-5. Step-3 of Fat tree construction

Step-4:                                          
    Each edge switch within a pod is connected to (k/2)=(4/2)=2 servers and (k/2)=(4/2)=2 aggregation switches. That means each pod will be connected to (k/2)^2=(4/2)^2=4 servers.
    Hence the maximum number of servers that can be connected to the network is (k^3)/4=16 servers.
Fig-6. Step-4 of Fat tree construction





Example - 2:

If the value of k=8, each switch has 8-ports.
Step-1:                                           
    Number of core switches is (k/2)^2 = 16 core switches.
    Number of pods = k = 8.

Step-2:                                           
    Each pod consists of (k/2)=(8/2)=4 aggregation switches and (k/2)=(8/2)=4 edge switches.
    The switches are organized in layer wise. First layer is aggregation layer. Second layer is edge layer.
  
Step-3:                                          
    Each aggregation switch within a pod is connected to (k/2)=(8/2)=4 core switches and (k/2)=(8/2)=2 edge switches.

Step-4:                                          
    Each edge switch within a pod is connected to (k/2)=(8/2)=4 servers and (k/2)=(8/2)=4 aggregation switches. That means each pod will be connected to (k/2)^2=(8/2)^2=16 servers.
    Hence the maximum number of servers that can be connected to the network is (k^3)/4=128 servers.


Thats all for now.
Please comment if you need more information.



-Thank you

7 comments: