[OmniOS-discuss] How do non-rpool ZFS filesystems get mounted?

Chris Siebenmann cks at cs.toronto.edu
Sun Mar 9 02:56:34 UTC 2014


| On Mar 5, 2014, at 1:38 PM, Chris Siebenmann <cks at cs.toronto.edu> wrote:
| > It turns out that there is an unpleasant consequence to syseventd
| > being willing to mount ZFS filesystems for additional pools before
| > the 'zfs mount -a' has run: you can get unresolvable mount conflicts
| > in some situations.
[...]
Richard Elling:
| ... a fix would necessitate building a multi-pool dependency
| tree. Where would this live?

 The thing is that ZFS already has a multi-pool dependency that works
perfectly well in this situation. 'zfs mount -a' processess all pools
at once and sorts the mount list so that /opt will be mounted before
/opt/bigthing. What makes this not work is that syseventd is willing
to mount filesystems from non-root pools before the rpool mounts have
completed (and also I believe to do pool mounts on a pool by pool basis).

 At a minimum I believe that syseventd should not be mounting
filesystems from non-rpool pools before all rpool mounts have
completed. I would prefer that syseventd not do mounts at all before
/system/filesystem/local finishes.

(You cannot in general defer syseventd until afterwards because there
are a number of dependencies in SMF today that I assume are there
for good reason. I have actually inventoried these in the process of
relocating syseventd to after fs-local so I can provide a list if people
want.[*])

	- cks
[*: This is where I wish SMF had a way to report the full dependency
    graph in one go in some format, so you did not have to play
    whack-a-mole when doing this sort of thing and also potentially
    blow up your system.]


More information about the OmniOS-discuss mailing list