Computer Science Department
School of Computer Science, Carnegie Mellon University
Cuckoo: Layered Clustering for NFS
Andrew J. Klosterman, Gregorey Ganger
Keywords: Cuckoo, NFS, replication, overload, load shedding,
file systems, trace analysis
Layered clustering allows unmodified distributed file systems to
enjoy many of the benefits of cluster-based file ser-vices. By
interposing between clients and servers, layered clustering requires
no changes to clients, servers, or the client-server protocol.
Cuckoo demonstrates one particular use of layered clustering: spreading
load among a set of otherwise independent NFS servers. Specifically,
Cuckoo replicates frequently-read, rarely-updated files from each
server onto others. When one server has a queue of requests, read
requests to its replicated files are offloaded to other servers.
No client-server protocol changes are involved. Sitting between
clients and servers, the Cuckoo interposer simply modifies selected
fields of NFS requests and responses. Cuckoo provides this load
shedding with about 2000 semicolons of C code. Further, analyses
of NFS traces [7, 8] indicate that replicating only 1000 10,000
objects allows 42 77% of all operations to be offloaded.