Mirroring using vinum+NFS

Peter Jeremy peterjeremy at optushome.com.au
Thu Jul 10 13:10:18 PDT 2003


I'm looking at building a fileserver and want to mirror the data
across two systems (if one fails, I can use the other).

Consider system A as the server and system B as the mirror.  In theory,
on system A I should be able to:
	mount B:/big/data/blob /remote
	vnconfig /big/data/block as vn0
	vnconfig /remote as vn1
	vinum mirror vn0+vn1 as serverdata
	mount /dev/vinum/serverdata /serverdata
	export /serverdata

(The reason for running the local filesystem through a vnode mount is
to make system A and system B interchangeable).  Does anyone see any
problems with this?  Any ideas on how much overhead a 50-100GB vnode
mount adds over a raw device?

Can anyone suggest the behaviour if system B fails?  Can vinum treat
this as a "failed disk" or will it get caught by the NFS I/O blocking
until the failed server returns?

Does anyone have any alternative suggestions?  It would probably be
enough to watch all local writes and mirror them onto the remote
system.  This approach might even be cleaner than a true mirror but I
don't believe I can do this without a fair amount of local development
(watching writes either using kqueue or a custom geom module and
queueing them into a second filesystem via some protocol).  The volume
of data (size and number of files) makes an rsync approach fairly
impractical.

Peter


More information about the freebsd-hackers mailing list