Server virtualization

The client/server paradigm is a common means of implementing an application over a computer network. Servers provide services, such as access to files, directories, or web pages, and clients make use of those services. The communication between the clients and servers takes the form of a network protocol. These network protocols are often rigid and inflexible due to standardization, and because they are often implemented in the operating system kernels of the clients and servers. It is difficult to add new features to existing services without having complete control of all the clients and servers in question. Virtualization is a technique that can be used to alter the properties of a network service without requiring any modifications to the clients or servers. Virtualization is typically performed on an intermediate computer that is interposed between the clients and servers, such as a programmable router. This dissertation motivates the need for virtualization and presents several different examples of successful virtualizations. These virtualizations include translation, aggregation, replication and fortification. Virtualization is demonstrated both on commodity hardware, which has the advantage of low cost, and on a specialized network processor, which offers the advantage of high performance.

[1]  Tilman Wolf,et al.  Design issues for high-performance active routers , 2001, IEEE J. Sel. Areas Commun..

[2]  David Robinson The Advancement of NFS Benchmarking: SFS 2.0 , 1999, LISA.

[3]  Gerald J. Popek,et al.  Formal requirements for virtualizable third generation architectures , 1974, SOSP '73.

[4]  Richard W. Hamming,et al.  Error detecting and error correcting codes , 1950 .

[5]  Peter L. Higginson,et al.  Development of Router Clusters to Provide Fast Failover in IP Networks , 1998, Digit. Tech. J..

[6]  Chandramohan A. Thekkath,et al.  Petal: distributed virtual disks , 1996, ASPLOS VII.

[7]  Wei Jin,et al.  Interposed proportional sharing for a storage service utility , 2004, SIGMETRICS '04/Performance '04.

[8]  Terry A. Welch,et al.  A Technique for High-Performance Data Compression , 1984, Computer.

[9]  Larry L. Peterson,et al.  Making paths explicit in the Scout operating system , 1996, OSDI '96.

[10]  Margo I. Seltzer,et al.  Dealing with disaster: surviving misbehaved kernel extensions , 1996, OSDI '96.

[11]  Mahadev Satyanarayanan,et al.  The ITC distributed file system: principles and design , 1985, SOSP 1985.

[12]  Cynthia E. Irvine,et al.  Analysis of the Intel Pentium's Ability to Support a Secure Virtual Machine Monitor , 2000, USENIX Security Symposium.

[13]  Robert Wahbe,et al.  Efficient software-based fault isolation , 1994, SOSP '93.

[14]  Kenneth P. Birman,et al.  Deceit: a flexible distributed file system , 1990, [1990] Proceedings. Workshop on the Management of Replicated Data.

[15]  Scott M. Baker,et al.  The Mirage NFS router , 2004, 29th Annual IEEE International Conference on Local Computer Networks.

[16]  John K. Ousterhout,et al.  Tcl: An Embeddable Command Language , 1989, USENIX Winter.

[17]  James S. Plank A tutorial on Reed-Solomon coding for fault-tolerance in RAID-like systems , 1997 .

[18]  Jeff Dike,et al.  User-mode Linux , 2006, Annual Linux Showcase & Conference.

[19]  Gregory R. Ganger,et al.  Comparison-Based File Server Verification , 2005, USENIX Annual Technical Conference, General Track.

[20]  Marianne Shaw,et al.  Denali: Lightweight Virtual Machines for Distributed and Networked Applications , 2001 .

[21]  Scott Devine,et al.  Disco: running commodity operating systems on scalable multiprocessors , 1997, TOCS.

[22]  Ricardo Labiaga Enhancements to the Autofs Automounter , 1999, LISA.

[23]  John S. Heidemann,et al.  Implementation of the Ficus Replicated File System , 1990, USENIX Summer.

[24]  G.J. Minden,et al.  A survey of active network research , 1997, IEEE Communications Magazine.

[25]  Mendel Rosenblum,et al.  The design and implementation of a log-structured file system , 1991, SOSP '91.

[26]  Michael N. Nelson,et al.  Caching in the Sprite network file system , 1988, TOCS.

[27]  Miguel Castro,et al.  Using abstraction to improve fault tolerance , 2001, Proceedings Eighth Workshop on Hot Topics in Operating Systems.

[28]  Mahadev Satyanarayanan,et al.  Coda: A Highly Available File System for a Distributed Workstation Environment , 1990, IEEE Trans. Computers.

[29]  Ravi Nair,et al.  An Overview of Virtual Machine Architectures , 2004 .

[30]  Satinder Singh,et al.  The Autofs Automounter , 1993, USENIX Summer.

[31]  B. Clifford Neuman,et al.  Kerberos: An Authentication Service for Open Network Systems , 1988, USENIX Winter.

[32]  John H. Hartman,et al.  The Zebra striped network file system , 1995, TOCS.

[33]  Scott M. Baker,et al.  The design and implementation of the Gecko NFS Web proxy , 2001, Softw. Pract. Exp..

[34]  Rodney Van Meter,et al.  Network attached storage architecture , 2000, CACM.

[35]  Scott M. Baker,et al.  The Gecko NFS Web Proxy , 1999, Comput. Networks.

[36]  Beng-Hong Lim,et al.  Virtualizing I/O Devices on VMware Workstation's Hosted Virtual Machine Monitor , 2001, USENIX Annual Technical Conference, General Track.

[37]  Roy T. Fielding,et al.  Hypertext Transfer Protocol - HTTP/1.0 , 1996, RFC.

[38]  Roy T. Fielding,et al.  Hypertext Transfer Protocol - HTTP/1.1 , 1997, RFC.

[39]  Ben Y. Zhao,et al.  Tapestry: a resilient global-scale overlay for service deployment , 2004, IEEE Journal on Selected Areas in Communications.

[40]  Amin Vahdat,et al.  Interposed request routing for scalable network storage , 2000, TOCS.

[41]  Jeff Dike,et al.  A user-mode port of the Linux kernel , 2000, Annual Linux Showcase & Conference.

[42]  Randy H. Katz,et al.  A case for redundant arrays of inexpensive disks (RAID) , 1988, SIGMOD '88.

[43]  Carl A. Waldspurger,et al.  Memory resource management in VMware ESX server , 2002, OSDI '02.

[44]  Alan Rowe,et al.  Measuring Real-World Data Availability , 2001, LISA.

[45]  Jeffrey Katcher,et al.  PostMark: A New File System Benchmark , 1997 .

[46]  Scott M. Baker,et al.  Swarm: Agent-Based Storage , 2004, Software Engineering Research and Practice.

[47]  Dan Walsh,et al.  Design and implementation of the Sun network filesystem , 1985, USENIX Conference Proceedings.

[48]  RosenblumMendel,et al.  Virtual Machine Monitors , 2005 .

[49]  George C. Necula,et al.  Safe kernel extensions without run-time checking , 1996, OSDI '96.

[50]  Keith Marzullo,et al.  Supplying high availability with a standard network file system , 1988, [1988] Proceedings. The 8th International Conference on Distributed.

[51]  Kay M. Stanney,et al.  Virtual environments , 2002 .

[52]  Chandramohan A. Thekkath,et al.  Frangipani: a scalable distributed file system , 1997, SOSP.

[53]  Raj Srinivasan,et al.  RPC: Remote Procedure Call Protocol Specification Version 2 , 1995, RFC.

[54]  D. Huffman A Method for the Construction of Minimum-Redundancy Codes , 1952 .

[55]  Erich M. Nahum,et al.  Locality-aware request distribution in cluster-based network servers , 1998, ASPLOS VIII.