Hi Oz,
Thanks for your contribution!
The readwrite/readonly loopback mount (lofs) options are intended
to provide non-global access to a global filesystem, directory, file,
or device. The proper usage is as follows:
-w "<global_dir_name>|<non-global_dir_name>"
-r "<global_dir_name>|<non-global_dir_name>"
The only reason that I clarified this usage is because your example
seemed to imply the reverse use. e.g. "<non-globaldir>|<globaldir"
I added the check for the presence of the filesystem, directory,
file or device in the global zone to the Zone Manager because if
I don't when zoneadm will fail with the an error. Here is an
example with the safeguard disabled:
In this example, I am attempting to readonly mount the global
directory "/nodata" which does not exist in the global zone on
/fstest2 in the non-global zone fstest.
# zonemgr -a add -n fstest -z /zones -P admin123 -r "/nodata|/fstest"
could not verify fs /fstest: could not access /nodata: No such file or
directory
zoneadm: zone fstest failed to verify
Error: Zone installation failed, return value: 0
Note that the resulting state of the zone is configured.
# zonemgr -a list
ID NAME STATUS PATH BRAND
IP
0 global running / native
shared
- fstest1 configured /zones/fstest2 native
shared
The zone can't be installed unless the configuration is changed to
use a filesystem, directory, file or device that exists in the
global zone.
Lastly, the documentation for this safeguard is the error message
that you see when you specify a filesystem, directory, file, or device
that does not exist in the global zone.
Best regards and thanks for using the Zone Manager!
Brad
On Thu, 2007-03-08 at 16:06 -0500, ozan s. yigit wrote:
> zonemgr issue:
>
> i happen to use mount points in my global zone that are different
> than the mount points i want to see in a non-global zone; for example
> my interactive login zone has a lofs /home that maps to global zone
> (say) /zfs-home which is distinctly *different* than /home in
> the global zone. [it has different home dirs]
>
> zoneadm code has the most peculiar [mis]feature: it thinks it should
> check the local directory spec in the global zone, for eg. -w "gdir|ldir"
> for reasons at best muddy: to protect my sanity? to enforce a best-practice
> policy: "hmm, thou shalt name all your mount points same for lofs in global
> and non-global zones"
>
> globaldir=`echo ${rodirs[$i]} | cut -d"|" -f1`
> localdir=`echo ${rodirs[$i]} | cut -d"|" -f2`
> if [ -d "$localdir" ]
> then
> true
> else
> error_message "The \"$localdir\" directory does not exist
> in the global zone."
> fi
>
> this check will succeed in this peculiar case (because i happen
> to have /home) but fail when i want to do (say) -r "/zfs-shared|/shared"
> because /shared does not exist in the global zone.
>
> here is a suggestion: either give me enough rope, or document and skip
> the unnecessary syntax. either let me do
>
> -w "/my/own/zfs/none/of/your/beeswax|/local"
> or
> -w "/local" # same global and non-global mt point
>
>
> a minor glitch in an otherwise amazingly useful script.
>
> oz
_______________________________________________
zones-discuss mailing list
[email protected]