With the rise of the Internet of Things (IoT), fog computing has emerged to help traditional cloud computing in meeting scalability demands. Fog computing makes it possible to fulfill real-time requirements of applications by bringing more processing, storage, and control power geographically closer to edge devices. However, since fog computing is a relatively new field, there is no standard platform for research and development in a realistic environment, and this dramatically inhibits innovation and development of applications suitable for the fog. In response to these challenges, we propose the FDK: A Fog Development Kit for software-defined edge-fog systems. By providing high-level interfaces for allocating computing and networking resources, the FDK abstracts the complexities of fog computing from developers and enables rapid development of edge-fog systems. Also, the FDK supports the utilization of virtualized devices to create a highly realistic emulation environment, allowing fog application prototypes to be built with zero additional costs and enabling portability to a physical infrastructure. We evaluate the resource allocation performance of the FDK using a testbed, including eight edge devices, four fog nodes, and five OpenFlow switches. Our evaluations show that the delay of resource allocation and deallocation is less than 279ms and 256ms for 95 of edge-fog transactions, respectively. Besides, we demonstrate that resource allocations are appropriately enforced and guaranteed, even amidst extreme network congestion.
Typically, network resource management is accomplished using a load balancer, which attempts to find a suitable path to one or more destinations while optimally spreading traffic throughout the network to avoid congestion. In many cases, Equal-Cost Multi-Path (ECMP) routing is used to manage network resources by distributing traffic throughout the network. However, several authors, such as Katta @cite_12 and Zhang @cite_27 , suggest that ECMP's performance is far from optimal and that it is known to result in unevenly distributed network flows and poor performance. In response, Katta proposed Clove @cite_12 , a congestion-aware load balancer that works alongside ECMP by modifying encapsulation packet header fields to manipulate flow paths, ultimately providing lower Flow Completion Times (FCT) than ECMP. Similarly, Zhang proposed Hermes @cite_27 , a distributed load balancing system, which offers up to 10 Clove can handle link failures and topology asymmetry, Hermes can handle more advanced and complex uncertainties in the network such as packet black-holes and switch failures.
@cite_27 @cite_12
2744698795 2770706713
Production datacenters operate under various uncertainties such as traffic dynamics, topology asymmetry, and failures. Therefore, datacenter load balancing schemes must be resilient to these uncertainties; i.e., they should accurately sense path conditions and timely react to mitigate the fallouts. Despite significant efforts, prior solutions have important drawbacks. On the one hand, solutions such as Presto and DRB are oblivious to path conditions and blindly reroute at fixed granularity. On the other hand, solutions such as CONGA and CLOVE can sense congestion, but they can only reroute when flowlets emerge; thus, they cannot always react timely to uncertainties. To make things worse, these solutions fail to detect handle failures such as blackholes and random packet drops, which greatly degrades their performance. In this paper, we introduce Hermes, a datacenter load balancer that is resilient to the aforementioned uncertainties. At its heart, Hermes leverages comprehensive sensing to detect path conditions including failures unattended before, and it reacts using timely yet cautious rerouting. Hermes is a practical edge-based solution with no switch modification. We have implemented Hermes with commodity switches and evaluated it through both testbed experiments and large-scale simulations. Our results show that Hermes achieves comparable performance to CONGA and Presto in normal cases, and well handles uncertainties: under asymmetries, Hermes achieves up to 10 and 20 better flow completion time (FCT) than CONGA and CLOVE; under switch failures, it outperforms all other schemes by over 32 . Most datacenters still use Equal Cost Multi-Path (ECMP), which performs congestion-oblivious hashing of flows over multiple paths, leading to an uneven distribution of traffic. Alternatives to ECMP come with deployment challenges, as they require either changing the tenant VM network stacks (e.g., MPTCP) or replacing all of the switches (e.g., CONGA). We argue that the hypervisor provides a unique point for implementing load-balancing algorithms that are easy to deploy, while still reacting quickly to congestion. We propose Clove, a scalable load-balancer that (i) runs entirely in the hypervisor, requiring no modifications to tenant VM networking stacks or physical switches, and (ii) works on any topology and adapts quickly to topology changes and traffic shifts. Clove relies on standard ECMP in physical switches, discovers paths using a novel traceroute mechanism, uses software-based flowlet-switching, and continuously learns congestion (or path utilization) state using standard switch features. It then manipulates packet-header fields in the hypervisor switch to direct traffic over less congested paths. Clove achieves 1.5 to 7 times smaller flow-completion times at 70 network load than other load-balancing algorithms that work with existing hardware. Clove also captures some 80 of the performance gain of best-of-breed hardware-based load-balancing algorithms like CONGA that require new equipment.