[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