ShaRE: run-time system for high-performance virtualized routers
Abstract
The enormous size and scope of today’s Internet make the deployment of new network technologies and advanced services difficult. One strategy to address such ossification is to combine two evolving trends in building network services—overlay networks and network virtualization. The combination allows multiple overlay networks providing alternate end-to-end services to co-exist on a shared virtualized substrate. The building blocks of such a substrate—termed virtualized routers— utilize programmable multi-processor hardware to provide the flexibility of hosting diverse services simultaneously, and process packets at high rates. In this dissertation, we describe the design and implementation of ShaRE, the first run-time system for such high-performance, multi-service virtualized routers. ShaRE provides two functionalities. First, ShaRE multiplexes hardware resources among multiple services while preventing damaging interactions and instabilities. Second, ShaRE exposes a packet-processing-oriented resource abstraction layer and includes a set of adaptation mechanisms to simplify the programmability and portability of high-performance network services. Virtualized routers exhibit several unique characteristics that make the above functionalities challenging. First, network services are required to process packets within a small delay from their arrivals. Second, at these time-scales, network traffic is bursty and often hard-to-predict. Third, the overhead of reallocating processors from one service to another in current router hardware is larger than the packet processing time. Finally, to achieve high performance, router hardware (unlike conventional systems) includes a complex array of resources such as multi-core processors, fixed-function co-processors, and inter-processor communication mechanisms. In designing ShaRE, we make three contributions. First, we design Everest, an agile and wary scheduler for allocating processors to services in high-performance routers. Everest’s agility and wariness help cope with stringent delay tolerance, and difficult-to-predict and significant fluctuations in packet arrival rates, and large context-switch overheads. Second, we demonstrate that the efficacy of a scheduler depends on various system, workload and service characteristics, and design variants of Everest that perform the best under different characteristics. Finally, to minimize the overhead of replicating services or check-pointing and migrating services from one processor to another, we identify and exploit several unique characteristics of network services. We instantiate our contributions on Intel’s IXP2400 programmable router hardware.