PFS (Personal File System)

What is PFS

PFS (Personal File System) is a portable network file sharing system designed for mobile computers. It is constructed from file servers on stationary hosts and mobile clients. It has a cache storage on the client, and dynamically adapts for variety of network speeds and bandwidths includes disconnection. All of PFS system is implemented on user land on UNIX, and communicates with client kernel with traditional NFS. Then, PFS can run on variety of UNIX variants.

In short, you can mount file server's disks onto your laptop computer over the network, and you can continue accessing to these files even when your computer disconnected from the network. You have no need to modify Operating Systems on both server and client!

Background

Recently, mobile computers become small, light and powerful. Many users can perform their work on small laptops. These machines can also connected to networks as well as stationary machines.

In a well networked environment, a mobile computer can act likes a stationary one. Users will share and use programs and data over the network. However, once it moves out to disconnected environment, it must work only with its own resources.

Mobile computers connect to his network with variety of methods from fast ethernet to slow wireless modems. And even during disconnected environment, File System must work.

In such environments, we can assume that a single user uses a mobile machine and an optimistic file consistency guaranty is acceptable. So, this file system is named as "Personal File System."

Feature

Support Disconnection
PFS client has a cache storage on it. It works within the cache during disconnection and re-integrate with file server after reconnection.
Automatically Adapt to Network Environments
PFS has multiple algorithms to synchronize files between server and clients. PFS measures file transfer performance itself, and automatically changes the algorithm to be fit current environment.
Portable
PFS is implemented as a set of user level programs and depend on Internet standard TCP/IP and NFS. It uses Berkeley DB library and memory map (mmap) system call, too. However, It's not an essential problem.
Since all of PFS is implemented on user level, you have no need to modify kernel both on server and client.
It works at least once on FreeBSD-2.2.8R, BSD/OS 3.1, RedHat Linux 5.2, SunOS 4.1.3 and Solaris 2.7.

Distribution

PFS will be distributed under GPL2 (GNU Public License version 2). It is still early alpha release and NO WARRANTY. USE IT AT YOUR OWN RISK!

Related Papers

Sorry! There are no on-line papers nor English papers.

Acknowledgment

I would like to thank Vipul Gupta and the members of Technology Development Department of SUN Microsystems Inc. for giving me a chance to refine and release PFS. They give me many important comments and suggestions, and help my happy life in SUN.

I thank Fumio Teraoka, Yoshikatsu Tada, Hideki Sunahara, Keisuke Uehara and the members of WIDE Project, Parallel & Distributed Processing Lab. and System Programming & Architecture Lab. of UEC for many discussions. Mitsuhiro Tamechika of NARA Institute of Science and Technology implemented transfer performance measurement routine.


Copyright(C)1999 by Tateoka,Takamichi.
tate@spa.is.uec.ac.jp