The Design and Evaluation of a Distributed Reliable File System

Peer-to-peer (P2P) systems are, in contrast to clientserver (C/S) systems, fault-tolerant, robust, and scalable. While C/S distributed file systems, such as NFS (Network File System) or SMB (Server Message Block), do not scale with respect to the number of clients and exhibit a single point of failure, P2P file systems have the potential to cope with an increasing number of participants. Thus, this paper presents DRFS (Distributed Reliable File System), a P2P file system for cooperative environments. DRFS uses random, content-independent identifiers for data storage, while maintaining high performance and low overhead with many concurrent reads and writes. A dynamic replication mechanism ensures data availability, even under high churn. The application scenario considers an office environment, where DRFS is installed on employees’ machines, who store and request files. DRFS has been implemented using the Filesystem in Userspace (FUSE) interface, in order to provide users with transparent read and write operations. Experiments show the benefits of such a peer-to-peer architecture, when a small number of peers reads or writes in parallel: DRFS performs better than NFS, as soon as 6 peers read or write in parallel a 32 MB file. For unpopular files, it is also more reliable than IgorFS.

[1]  W. Vogels File system usage in Windows NT 4.0 , 2000, OPSR.

[2]  David Moore,et al.  Replication Strategies for Highly Available Peer-to-Peer Storage , 2002, Future Directions in Distributed Computing.

[3]  Antony I. T. Rowstron,et al.  Storage management and caching in PAST, a large-scale, persistent peer-to-peer storage utility , 2001, SOSP.

[4]  Shobhit Dayal,et al.  Characterizing HEC Storage Systems at Rest , 2008 .

[5]  Andrew S. Tanenbaum,et al.  Distributed Systems , 2007 .

[6]  Werner Vogels,et al.  File system usage in Windows NT 4.0 , 1999, SOSP.

[7]  Shankar Pasupathy,et al.  Measurement and Analysis of Large-Scale Network File System Workloads , 2008, USENIX Annual Technical Conference.

[8]  Maurice J. Bach The Design of the UNIX Operating System , 1986 .

[9]  Andrew S. Tanenbaum,et al.  Distributed systems: Principles and Paradigms , 2001 .

[10]  Rodrigo Rodrigues,et al.  High Availability in DHTs: Erasure Coding vs. Replication , 2005, IPTPS.

[11]  Ben Y. Zhao,et al.  Distributed Object Location in a Dynamic Network , 2002, SPAA '02.

[12]  Glenn Bailey,et al.  NFS and SMB Data Sharing Within a Heterogeneous Environment: A Real World Study , 1999, LISA-NT.

[13]  Robert Tappan Morris,et al.  Ivy: a read/write peer-to-peer file system , 2002, OSDI '02.

[14]  Ben Y. Zhao,et al.  Pond: The OceanStore Prototype , 2003, FAST.

[15]  Thomas Fuhrmann,et al.  IgorFs: A Distributed P2P File System , 2008, 2008 Eighth International Conference on Peer-to-Peer Computing.

[16]  David R. Karger,et al.  Wide-area cooperative storage with CFS , 2001, SOSP.

[17]  Andrew S. Tanenbaum,et al.  Distributed systems - principles and paradigms, 2nd Edition , 2007 .

[18]  Dah Ming Chiu,et al.  Erasure code replication revisited , 2004 .

[19]  Antony I. T. Rowstron,et al.  Pastry: Scalable, Decentralized Object Location, and Routing for Large-Scale Peer-to-Peer Systems , 2001, Middleware.

[20]  Peter Druschel,et al.  Pastry: Scalable, distributed object location and routing for large-scale peer-to- , 2001 .

[21]  David R. Karger,et al.  Chord: A scalable peer-to-peer lookup service for internet applications , 2001, SIGCOMM '01.

[22]  Ben Y. Zhao,et al.  OceanStore: an architecture for global-scale persistent storage , 2000, SIGP.

[23]  David Mazières,et al.  Kademlia: A Peer-to-Peer Information System Based on the XOR Metric , 2002, IPTPS.

[24]  Jacob R. Lorch,et al.  A five-year study of file-system metadata , 2007, TOS.

[25]  William Yurcik,et al.  A survey of peer-to-peer storage techniques for distributed file systems , 2005, International Conference on Information Technology: Coding and Computing (ITCC'05) - Volume II.