Redundant NFS with ZFS
Attila Nagy
bra at fsn.hu
Tue Jan 22 06:51:58 PST 2008
Hello,
I have some machines running FreeBSD as redundant NFS servers (using CARP).
The way they work is the following:
- I have a master (content) machine on which I maintain an UFS
filesystem image on an UFS
- I have this image mounted through md
- there are (any) number of NFS servers, one that is the master (from
the client PoV) and the others as slaves
- everytime I need changes in the content of the image, I make them,
then do a mount -o ro -u /nfs and issue an rsync to the NFS (slave)
servers, then I switch over the master and do a sync to there too
This works wonderfully, although the image distribution is slow and
painful (thanks to rsync).
With ZFS there is a more simple oppurtunity: make snapshots on the
content master and distribute them via zfs send&receive.
However there's a little problem: the fsids are not in sync and the
clients get stale NFS filehandle errors.
This is solved in the current scenario by distributing whole UFS images
with their static fsids, but I don't know how it would be possible with ZFS.
Currently I see two possibilities:
- changing the NFS server, so it can be manually set (like in Linux,
where it's possible to give an fsid parameter in exports)
- synchronize ZFS fsids across the machines
The second would be perfect for me, I just couldn't figure out how could
I do this (a cursory glance on the ZFS source didn't result a clean and
simple solution).
Any ideas on this?
(I've seen some discussions on this topic in a ZFS list, but there was
no solution, just a little misunderstanding with shared storages and Sun
clusters)
Thanks,
--
Attila Nagy e-mail: Attila.Nagy at fsn.hu
Free Software Network (FSN.HU) phone: +3630 306 6758
http://www.fsn.hu/
More information about the freebsd-fs
mailing list