the 'why' of pseudofs
Matthew Dillon
dillon at apollo.backplane.com
Tue Feb 17 17:45:37 PST 2009
There are several reasons for using PFSs.
* Shared allocation space. You don't have to worry about blowing
out small filesystems and having to resize them.
* Each PFS has its own inode space, allowing mirroring to be used
to manage backups on a per-PFS basis. Thus mirroring slaves can
be conveniently created and destroyed, and masters can be used
to differentiate what you do and do not want to back up. e.g.
I want to backup /home, I don't want to backup /usr/obj.
In this respect there is actually a lot more to it... PFSs are
the primary enabler for most of the future multi-master clustering
work. Even slaves are extremely inconvenient to do without PFSs
to manage independant inode spaces.
* Each PFS can have its own history/snapshot retention policy.
For example you want to retain history on /home but who cares
about /tmp or /usr/obj ? You might want to retain only a few
days worth of snapshots for /var but hundreds of days for /home.
* Each PFS can be pruned / reblocked independantly of the others.
For example /build on pkgbox is configured to spend a lot longer
pruning and reblocking then /archive.
With regards to softlinks vs null mounts, null mounts are preferred
because softlinks are not always handled properly, or handled in
the expected way, by utilities.
An example of this would be, say, /usr/src. If /usr/src is a softlink
then the /usr/obj paths generated would be the expanded softlink.
So instead of getting /usr/obj/usr/src/... you would instead get
/usr/obj/pfs/@@0xffffffffffffffff:0007/src/...
It can get messy very quickly when the filesystem space is glued
together with softlinks instead of mounts.
-Matt
More information about the Users
mailing list