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