[Unionfs] unionfs exported over NFS
Jesse I Pollard
pollard at ccs.nrl.navy.mil
Thu Aug 30 13:23:16 EDT 2007
Hi all.
Though I'm new to the list, I have been reading and doing some investigation
before subscribing.
This problem appears to have existed at least since before January (though I
have not dug that deeply into the archives) and seems to re-occur every two
or three months.
I did not find a solution. I did find several emails and documents
(on-disk-format) that indicate that it should work.
I want to use it to aid in migrating from one SANS (an old 16 TB sans, going
into end of lifetime) to a new SANS (which has not become available yet).
The concept is to NFS mount the old SANS read-only; mount the new SANS
read-write; and export the union mount of these two NFS mount points to
various non-linux application servers.
Migrating data to the new SANS would then allow reading (using atime for
the new SANS) a file to migrate the data via a copy-up. OR a simple "find
-type f -exec touch '{}' ';' " in the union would do as well. The advantage
of allowing atime to do this is that the most recently needed data would
immediately be migrated just under normal usage. Later, the older data would
be migrated explicitly. This method would also allow user access to the data
immediately, without waiting for it to be copied to the new SANS first.
One of the limitations imposed is that the client systems do not, and can
not have unionfs installed. Most clients are Solaris (2.8 and 2.9) which
are also to-be phased out in a year. (The old SANS is to be retired at the
end of this year). There are also some SAMBA clients in the mix, but I don't
expect problems there.
Currently, my test environment involves only the old SANS, a local directory
and attempts to export the union mount of these.
In all cases, the NFS works to/from the desired target client, but not if
the export point is a union mount.
The test system is a VMware guest.
The kernels I have tried are:
linux 2.6.23-rc1-mm1 (with unionfs)
linux 2.6.23-rc3-mm1 (with unionfs)
linux 2.6.20.16 + linux-2.6.20-rc6-odf1.diff (my last test)
For some odd results, all tests on the server (doing the unionfs mount and
NFS export) /usr/sbin/showmount reveals that mounts DO exist. Both from my
test client, and a quick test from one of the existing client systems.
The client systems just report :
# mount lint:/mnt/torpedo /mnt/torpedo
mount: lint:/mnt/torpedo failed, reason given by server: Permission denied
The NFS exports are:
/mnt/torpedo <continue next line>
tabby(rw,fsid=129153,crossmnt,nohide,no_root_squash,no_subtree_check)
I also tested permissions as:
rw,no_root_squash
rw,nohide,no_root_squash
rw,crossmnt,no_root_squash
rw,crossmnt,nohide,no_root_squash
rw,crossmnt,nohide,no_root_squash,no_subtree_check
and finally:
rw,fsid=129153,crossmnt,nohide,no_root_squash,no_subtree_check
I don't think these are the problem. The only failures have occurred when
unionfs is involved.
I have also traced through rpc.mountd (via "rpc.mountd -d all -F") and
do not see any errors. (the last thing mountd does is register the mount
so that "showmount" can report it, then returns the file handle)
For the next week or so, I can be, and provide, a fairly extensive test
case.
More information about the unionfs
mailing list