Virtual Services
A New Abstraction for Server Consolidation1
John Reumanna, Ashish Mehrab, Kang G.
Shina, and Dilip Kandlurb
a) Department of Electrical Engineering and Computer Science, The University of Michigan, Ann Arbor, MI 48109-2122
b) Server Networking and Network Services, IBM T.J. Watson Research
Center, Yorktown Heights, NY 10598
Abstract:
Modern server operating systems (OS's) do not address the issue of
interference between competing applications. This deficiency is a major
road-block for Internet and Application Service Providers who want to multiplex
server resources among their business clients. To insulate applications
from each other, we introduce Virtual Services (VSs). Besides providing
per-service resource budgets, VSs drastically reduce cross-service interference
in the presence of shared backend services, such as databases and name
services.
VSs provide dynamic per-service resource partitioning and management
in a manner completely transparent to applications. To accomplish this
goal, we introduce a kernel-based work classification mechanism called
gates. Gates track work that propagates from one service to another and
are configured by the system administrator via simple rules. They automate
the binding of processes and sockets to VSs, and ensure that any work done
on behalf of a VS, even if it is done by shared services, is charged to
the resource budget of the VS that requested it. Using our experimental
Linux 2.0.36-based implementation we applied them effectively to co-hosted
Web servers. Thus, nearly eliminating performance interference between
the co-hosted sites.
This paper was originally published in the
Proceedings of the 2000 USENIX Annual Technical Conference,
June 18-23, 2000, San Diego, California, USA
Last changed: 12 Apr 2002 ml