Kai Schaetzl wrote:
Toby Bluhm wrote on Fri, 27 Jun 2008 08:54:56 -0400:

I don't understand your talk about "fake" directories. They are not
fake, they truly exist in the filesystem.

They are nevertheless fake. Consider the following:
- system A has mount points / and /home
- system B nfs mounts / on A without nohide at /nfs/A

Result is that you see *all* directories of A on B, including /home. There is no way to know that it doesn't exist on A, unless you compare the directories on both machines. There is no indication that you are not writing to A:/home when you write to /nfs/A/home. That is what I call "fake". It's definitely not "hidden". "hidden" comes from "hiding" = you don't see it. I consider this behavior *very* misleading.

That NFS only exports a single partition at a time is probably due to
the duplicate inode problem - maybe other stuff - I don't know. At any
rate, just export the additional fs and mount it where you like. Again,
nothing mysterious and it has been done that way since NFS was invented.

That may be so. I'm quite happy with this behavior as long as nfs doesn't pretend that something is there that isn't.

I was asking "where" that faked directory actually exists as it is gone when I unmount. If I understand your explanation correctly if I write to /nfs/A/home I'm actually writing to A, but not to the /home filesystem (as I think) but to a home directory on the / filesystem. Is that correct?

Yes. Let's use some examples. If A:/ is /dev/sda1 and A:/home is /dev/sda2, then in your above situation, writes to B:/nfs/A/home will be written to /dev/sda1 on A and _not_ /dev/sda2 on A. When A exports /, it's actually only exporting the filesystem on /dev/sda1.

That makes clear why it is gone when I unmount. Further, if I unmount /home on A I should still get /home when I list / on A.

Yes - you will get the /home that's on /dev/sda1

Just now that "faked" home on /. Correct?

I understand that this directory *does* exist on A (just not where one would think) *after* nfs mounting. However, from the standpoint of machine B it is a fake. It is artificially being created because an ls on A shows it. The correct behavior would be to *not list* any other mount points in the nfs mount.




Again, it's not fake, it's not artificial. It's truly there on /dev/sda1, the storage device. If you umount /home, rmdir /home, you can't mount /dev/sda2 on /home any more can you? If you mkdir /home2, you can put stuff in there until you run out of space on /dev/sda1. If you mount /dev/sda2 on /home2, the stuff you wrote to /home2 will still be on /dev/sda1 and will be hidden by the overlay of /dev/sda2. If you umount A:/ from B:/nfs/A and then write to B:/nfs/A - because B:/nfs/A will still exist as a real directory - it will be stored in /dev/sda1 on B. Whether you mount NFS exports or local disk partitions, it works the same way.


By your analogy, umounting /dev/sda2 /home should make /home disappear from / because it's not mounted. Or mounting /dev/sda1 as / should just make /dev/sda2 fall into /home without any entry in fstab.


--
Toby Bluhm
Alltech Medical Systems America, Inc.
30825 Aurora Road Suite 100
Solon Ohio 44139
440-424-2240 ext203


_______________________________________________
CentOS mailing list
CentOS@centos.org
http://lists.centos.org/mailman/listinfo/centos

Reply via email to