FairCloud: Sharing the Network in Cloud Computing

In cloud computing, networks are shared in a best-effort manner making it hard for both tenants & cloud providers to reason about how network resources are allocated. The reason networks are more difficult to share is because the network allocation of a VM X depends not only on the VMs running on the same machines as X, but also other VMs that X communicates with and the cross-traffic on each link used by X.

The work identifies the desirable requirements for bandwidth allocation across multiple tenants:

Fully utilized links are termed as congested links.

There is a hard trade-off between achieving network proportionality & providing each VM a useful bandwidth guarantee. Given a network proportional allocation, a tenant can arbitrarily reduce another tenant’s bandwidth by increasing the number of VMs communicating with a VM.

Even in the absence of the min-guarantee requirement, there is a tradeoff between network proportionality and high utilization. This is because a tenant might be disincentivized to use an uncongested path due to decrease in the tenant’s network propotional allocation along a congested link. This hurts overall network utilization. In other words, there are no utilization incentives for such network proportional allocation.

Traditional allocation properties don’t work.

Network sharing properties:

Three allocation policies in the tradeoff space:

The above policies can be deployed with:

The work evaluated the proposed allocation policies using simulation & a software switch implementation, through hand-crafted examples and traces of MapReduce jobs from a production cluster.

Strengths

Weaknesses

Future Work

Many possible areas of future work: