Consistent inodes between distinct machines

Attila Nagy bra at fsn.hu
Thu Apr 17 08:44:07 UTC 2008


Hello,

I have several NFS servers, where the service must be available 0-24. 
The servers are mounted read only on the clients and I've solved the 
problem of maintaining consistent inodes between them by rsyncing an UFS 
image and mounting it via md on the NFS servers.
The machines have a common IP address with CARP, so if one of them falls 
out, the other(s) can take over.

This works nice, but rsyncing multi gigabyte files are becoming more and 
more annoying, so I've wondered whether it would be possible to get 
constant inodes between machines via alternative ways.

The best would be to have a common subversion server and each machine 
could do updates from that to its own local UFS filesystem. The problem 
is that the inode allocation isn't predictable, even when starting with 
the same filesystem image on all machines.

I see several arc4random calls in the following files:
src/sys/ufs/ffs/ffs_alloc.c
src/sys/ufs/ffs/ffs_vfsops.c
but it seems that if I change them to a constant value, the issue is 
becoming better, but there are still differences between the two 
machines, when I do svn checkout on both of them.
Doing a ktrace with the two svn co's it seems that it does exactly the 
same operations on the two machines.

So my question is: is it possible to maintain consistent inodes across 
several machines somehow if I execute the same operations (at least 
that's what I think an svn co does) on all of them?
Any other ways, which I could do to be able to switch between the NFS 
servers, without clients getting stale NFS filehandles?

Thanks,


More information about the freebsd-fs mailing list