[OpenAFS-devel] What are the supported underlying filesystems for the partitions on /afs?

Jeffrey Hutzelman jhutz@cmu.edu
Tue, 14 Mar 2006 14:47:38 -0500


On Saturday, March 11, 2006 09:19:20 PM -0800 Russ Allbery 
<rra@stanford.edu> wrote:

> Pedro Perez <pperez@opensourcetechnologies.net> writes:
>
>> So, my question is, which of the following filesystems can be used with
>> OpenAFS?
>
>>    ext2          yes
>>    ext3          ?
>>    XFS          yes
>>    JFS           ?
>>    reiserfs   ?
>>    reiser4    ?
>>    all of the above   ?
>
> On Linux, you can put the client cache on ext2 or ext3.  Nothing else.
> You definitely cannot use XFS.

On Linux, the cache will work on any filesystem which correctly supports 
the inode abstraction; in particular, on which we can remember the inode 
number of a file and then use it later to open that file.  In general, that 
means "real" (not virtual) filesystems where the on-disk data structures 
have this concept.  So, ext2 and ext3 will work, but XFS and reiser will 
not, and neither will things like msdos or tmpfs (but ext2 in a ramdisk 
works fine).

> On IRIX, you can use XFS for the client cache.  IRIX is a different
> issue.

Correct.  In general, on any given UNIX platform, there is exactly one 
filesystem whose internal kernel API is known to AFS and which can be used 
as a cache; generally it's the primary general-purpose filesystem for that 
platform.  On IRIX, that happens to be XFS (actually, EFS works as well, on 
versions of IRIX where it is still supported; this platform is unusual in 
that it supports _two_ cache filesystems instead of only one).

> For the *server*, you can run the namei file server on pretty much any
> file system.  The inode file server may be more sensitive; I'm not sure.

Correct.  The namei fileserver will run on any filesystem with reasonable 
semantics; particularly, it has to store real values for the owner, group, 
and mode of files, the fileserver has to be able to change those at will, 
and filenames must be case-sensitive (not just case-preserving).  The last 
requirement is not present on MacOS X, where we use a slightly different 
way of encoding information in filenames so that HFS+ can be used for vice 
partitions.

The inode fileserver is extremely sensitive to the filesystem in use; it 
requires kernel-level support, complete understanding of the on-disk 
filesystem structure and the in-memory representation of inodes, and 
several "spare" inode fields we can use to store AFS-specific data. 
Generally, on platforms where the inode server is supported, it works only 
with a single, specific filesystem.

-- Jeff