Re: [zones-discuss] zoneadm wants more ZFS when only ZFS exists
On 2/4/11 10:32 PM, Darren Reed wrote: On a test system that is using only ZFS, I'm trying to create a zone but it keeps failing with: netvirt-d1 ~# zoneadm -z exclusivetestzone1 install ERROR: the zonepath must be a ZFS dataset. The parent directory of the zonepath must be a ZFS dataset so that the zonepath ZFS dataset can be created properly. I don't get it. This restriction never used to exist. Why do I need to do something extra that is mandatory? Further to this, there's a script on Oracle's website here: http://download.oracle.com/docs/cd/E19963-01/821-1460/z.conf.start-1/index.html that also fails to configure create a zone that can be installed with b154 bits. To give an example (/tmp/ozone is the script from the above page)... / is rpool/ROOT/solaris # zfs create rpool/ROOT/solaris/zone # zfs set mountpoint=/zone rpool/ROOT/solaris/zone The first thing I can see is that you are attempting to create a zone within the root pool's ROOT dataset which is not supported. If you had run zoneadm install directly you should have seen something like the following error message. admin@snv-158:/# zoneadm -z zone2 install ERROR: Installing a zone inside of the root pool's 'ROOT' dataset is unsupported. The interesting thing here is that when I run this by hand I get this message the first time. However if I then uninstall the zone and retry to install it I get the error that you're seeing: admin@snv-158:/# zoneadm -z zone2 uninstall Are you sure you want to uninstall zone zone2 (y/[n])? y admin@snv-158:/# zoneadm -z zone2 install ERROR: the zonepath must be a ZFS dataset. The parent directory of the zonepath must be a ZFS dataset so that the zonepath ZFS dataset can be created properly. I think this is because the zoneadm uninstall is removing the offending dataset and if you were to add that back in (but don't because it's not correct) you would see the original error. ... # zoneadm -z exclusivetestzone1 uninstall Are you sure you want to uninstall zone exclusivetestzone1 (y/[n])? y # zoneadm -z exclusivetestzone1 install ERROR: the zonepath must be a ZFS dataset. The parent directory of the zonepath must be a ZFS dataset so that the zonepath ZFS dataset can be created properly. # cat /zone/exclusivetestzone1.config create set zonepath=/zone/exclusivetestzone1 As you can see from this, the parent of the zonepath is /zone and that is a freshly created ZFS dataset. Furthermore, / which is the parent of /zone is also a ZFS dataset. Having /zone as a directory within / and not a dataset also results in the above error. Between zoneadm and zonecfg, I can't see anything that instructs me on how to resolve this. Am I missing something? Try changing the dataset you're using to something more like rpool/zones and try again. For example doing the following should work (I don't know what other steps your script is doing...): # zfs create -o mountpoint=/zones rpool/zones # zonecfg -z zone1 create set zonepath=/zones/zone1 commit exit # zoneadm -z zone1 install -evan Darren ___ zones-discuss mailing list zones-discuss@opensolaris.org ___ zones-discuss mailing list zones-discuss@opensolaris.org
Re: [zones-discuss] zoneadm wants more ZFS when only ZFS exists
On Fri, Feb 4, 2011 at 11:32 PM, Darren Reed darren.r...@oracle.com wrote: On a test system that is using only ZFS, I'm trying to create a zone but it keeps failing with: netvirt-d1 ~# zoneadm -z exclusivetestzone1 install ERROR: the zonepath must be a ZFS dataset. The parent directory of the zonepath must be a ZFS dataset so that the zonepath ZFS dataset can be created properly. I don't get it. This restriction never used to exist. Zones need to be on ZFS with a particular dataset layout so that boot environments can be managed with beadm, pkg, etc. That is, zone boot environments have very similar requirements that global zone boot environments have. Why do I need to do something extra that is mandatory? If the parent of the zonepath is itself a ZFS dataset, it does happen automatically. Further to this, there's a script on Oracle's website here: http://download.oracle.com/docs/cd/E19963-01/821-1460/z.conf.start-1/index.html that also fails to configure create a zone that can be installed with b154 bits. To give an example (/tmp/ozone is the script from the above page)... / is rpool/ROOT/solaris # zfs create rpool/ROOT/solaris/zone # zfs set mountpoint=/zone rpool/ROOT/solaris/zone That needs to be fixed. It would cause zone boot environments to be contained within global zone boot environments. As new global zone boot environments are created, you will end up with roughly 2x the number of non-global zone BEs. I normally use: zfs create -o mountpoint=/zones rpool/zones and would appreciate feedback as to whether others feel that this should be the default behavior if the zonepath is /zones/zonename and /zones doesn't already exist. As you can see from this, the parent of the zonepath is /zone and that is a freshly created ZFS dataset. Furthermore, / which is the parent of /zone is also a ZFS dataset. Having /zone as a directory within / and not a dataset also results in the above error. Between zoneadm and zonecfg, I can't see anything that instructs me on how to resolve this. Am I missing something? -- Mike Gerdts http://mgerdts.blogspot.com/ ___ zones-discuss mailing list zones-discuss@opensolaris.org