Description of the Journaling topology
Matthew Dillon
dillon at apollo.backplane.com
Fri Dec 31 00:11:11 PST 2004
:This is potentially dangerous. In general, I think you want the
:journalling to occur as close to the storage as possible -- i.e., on the
:*target* machine, not the originating machine.
:
:The scenario I'm thinking of -- one not too uncommon when running
:unwieldy makefiles -- is as follows: (A and B are NFS clients, T is the
:NFS server):
:
:A: rmdir() called
:A: rmdir() journalled
:A: rmdir() sent to server
:T: directory is removed
:A: crashes
:B: mkdir() called on same directory
:B: mkdir() journalled
:B: mkdir() sent to server
:B: mkdir() journal marked as complete.
:T: directory is created
:[a day later...]
:A: reboots, starts replaying journal
:A: rmdir() sent to server
:A: rmdir() journal marked as complete.
:T: directory is removed
:
:Thus, one rmdir() call ends up being called twice. Or am I missing
:something?
Well, in this scenario A and B would not be doing the journaling, the NFS
server would be doing the journaling. The act of journaling is not
something you run independantly on N machines all sharing the same
NFS based filesystem. That would never work.
-Matt
Matthew Dillon
<dillon at xxxxxxxxxxxxx>
More information about the Kernel
mailing list