[OmniOS-discuss] mountpoint on the parent pool

Jim Klimov jimklimov at cos.ru
Sun Feb 12 19:46:27 UTC 2017


12 февраля 2017 г. 16:08:11 CET, Dirk Willems <dirk.willems at exitas.be> пишет:
>Hi Jim,
>
>
>Thank you for your feedback and your thoughs, I make some test for 
>clarifying my experience ...
>
>
>*_On Solaris 11_*
>
>root at soledg14:~# zpool create -O mountpoint=none -O compression=lz4 
>Testpool c0t60060160F4D0320042F89EFA1FF1E611d0
>
>root at soledg14:~# zpool list
>Testpool            49.8G   122K  49.7G 0%  1.00x  ONLINE  -
>rpool                278G  83.7G   194G  30%  1.00x  ONLINE  -
>
>root at soledg14:~# zfs list
>Testpool 143K  49.0G    31K  none
>Testpool/TestZones                                31K  49.0G 31K 
>/TestZones
>
>root at soledg14:~# zoneadm list -civ
>  - TestZone         configured  /TestZones/TestZone solaris    excl
>
>root at soledg14:~# zoneadm -z TestZone install
>The following ZFS file system(s) have been created:
>     Testpool/TestZones/TestZone
>Progress being logged to 
>/var/log/zones/zoneadm.20170212T140109Z.TestZone.install
>        Image: Preparing at /TestZones/TestZone/root.
>
>  Install Log: /system/volatile/install.16565/install_log
>  AI Manifest: /tmp/manifest.xml.vvcbTb
>   SC Profile: /usr/share/auto_install/sc_profiles/enable_sci.xml
>     Zonename: TestZone
>Installation: Starting ...
>
>         Creating IPS image
>Startup linked: 1/1 done
>         Installing packages from:
>             solaris
>              origin: http://oracle-oem-oc-mgmt-ops-proxy-edg:8002/IPS/
>             cacao
>              origin: http://oracle-oem-oc-mgmt-ops-proxy-edg:8002/IPS/
>             mp-re
>              origin: http://oracle-oem-oc-mgmt-ops-proxy-edg:8002/IPS/
>             opscenter
>              origin: http://oracle-oem-oc-mgmt-ops-proxy-edg:8002/IPS/
>DOWNLOAD                                PKGS         FILES    XFER 
>(MB)   SPEED
>Completed                            285/285   55878/55878 479.8/479.8 
>
>5.9M/s
>
>PHASE                                          ITEMS
>Installing new actions                   73669/73669
>Updating package state database                 Done
>Updating package cache                           0/0
>Updating image state                            Done
>Creating fast lookup database                   Done
>Updating package cache                           4/4
>Installation: Succeeded
>
>       Note: Man pages can be obtained by installing pkg:/system/manual
>
>  done.
>
>         Done: Installation completed in 221.859 seconds.
>
>
>  Next Steps: Boot the zone, then log into the zone console (zlogin -C)
>
>               to complete the configuration process.
>
>Log saved in non-global zone as 
>/TestZones/TestZone/root/var/log/zones/zoneadm.20170212T140109Z.TestZone.install
>
>
>root at soledg14:~# zfs list
>Testpool 932M  48.1G    31K  none
>Testpool/TestZones                                   931M 48.1G    32K 
>
>/TestZones
>Testpool/TestZones/TestZone                          931M 48.1G    32K 
>
>/TestZones/TestZone
>Testpool/TestZones/TestZone/rpool                    931M 48.1G    31K 
>
>/rpool
>Testpool/TestZones/TestZone/rpool/ROOT               931M 48.1G    31K 
>
>legacy
>Testpool/TestZones/TestZone/rpool/ROOT/solaris       931M  48.1G 847M  
>/TestZones/TestZone/root
>Testpool/TestZones/TestZone/rpool/ROOT/solaris/var  84.3M  48.1G 83.4M 
>
>/TestZones/TestZone/root/var
>Testpool/TestZones/TestZone/rpool/VARSHARE            31K 48.1G    31K 
>
>/var/share
>Testpool/TestZones/TestZone/rpool/export              62K 48.1G    31K 
>
>/export
>Testpool/TestZones/TestZone/rpool/export/home         31K 48.1G    31K 
>
>/export/home
>
>
>So on Solaris 11 it allow you to install a zone even if the parent 
>mountpoint = none
>
>
>*_Did also some test on OmniOS_*
>
>root at OmniOS:/root# zfs list
>NAME                                         USED  AVAIL  REFER
>MOUNTPOINT
>DATA 435G   774G    23K  /LXZones
>DATA/Backup                                  432G   774G   432G /Backup
>DATA/LXMatterMost                            408M   774G   347M 
>/LXZones/LXMatterMost
>DATA/Zones2                                 2,13G   774G    23K /Zones2
>DATA/Zones2/NGINX                            959M   774G    24K 
>/Zones2/NGINX
>DATA/Zones2/NGINX/ROOT                       959M   774G    23K legacy
>DATA/Zones2/NGINX/ROOT/export                 71K   774G    23K /export
>DATA/Zones2/NGINX/ROOT/export/home            48K   774G    23K
>/export/home
>DATA/Zones2/NGINX/ROOT/export/home/witte      25K   774G    25K 
>/export/home/witte
>DATA/Zones2/NGINX/ROOT/zbe                   959M   774G   959M legacy
>DATA/Zones2/Percona                         1,19G   774G    24K 
>/Zones2/Percona
>DATA/Zones2/Percona/ROOT                    1,19G   774G    23K legacy
>DATA/Zones2/Percona/ROOT/export               71K   774G    23K /export
>DATA/Zones2/Percona/ROOT/export/home          48K   774G    23K
>/export/home
>DATA/Zones2/Percona/ROOT/export/home/witte    25K   774G    25K 
>/export/home/witte
>DATA/Zones2/Percona/ROOT/zbe                1,19G   774G  1,19G legacy
>
>
>root at OmniOS:/root# zfs set mountpoint=none DATA
>root at OmniOS:/root# zfs list
>NAME                                         USED  AVAIL  REFER
>MOUNTPOINT
>DATA 435G   774G    23K  none
>DATA/Backup                                  432G   774G   432G /Backup
>DATA/LXMatterMost                            408M   774G   347M none
>DATA/Zones2                                 2,13G   774G    23K /Zones2
>DATA/Zones2/NGINX                            959M   774G    24K 
>/Zones2/NGINX
>DATA/Zones2/NGINX/ROOT                       959M   774G    23K legacy
>DATA/Zones2/NGINX/ROOT/export                 71K   774G    23K /export
>DATA/Zones2/NGINX/ROOT/export/home            48K   774G    23K
>/export/home
>DATA/Zones2/NGINX/ROOT/export/home/witte      25K   774G    25K 
>/export/home/witte
>DATA/Zones2/NGINX/ROOT/zbe                   959M   774G   959M legacy
>DATA/Zones2/Percona                         1,19G   774G    24K 
>/Zones2/Percona
>DATA/Zones2/Percona/ROOT                    1,19G   774G    23K legacy
>DATA/Zones2/Percona/ROOT/export               71K   774G    23K /export
>DATA/Zones2/Percona/ROOT/export/home          48K   774G    23K
>/export/home
>DATA/Zones2/Percona/ROOT/export/home/witte    25K   774G    25K 
>/export/home/witte
>DATA/Zones2/Percona/ROOT/zbe                1,19G   774G  1,19G legacy
>
>root at OmniOS:/root# zonecfg -z Test
>Test: No such zone configured
>Use 'create' to begin configuring a new zone.
>zonecfg:Test> create
>zonecfg:Test> set zonepath=/Zones2/Test
>zonecfg:Test> info
>zonecfg:Test> exit
>root at OmniOS:/root# zonecfg -z Test info
>zonename: Test
>zonepath: /Zones2/Test
>brand: ipkg
>autoboot: false
>bootargs:
>pool:
>limitpriv:
>scheduling-class:
>ip-type: shared
>hostid:
>fs-allowed:
>root at OmniOS:/root#
>
>I'm not making here the filesytem DATA/Zones2/Test !!!!
>
>
>root at OmniOS:/root# zfs list
>NAME                                         USED  AVAIL  REFER
>MOUNTPOINT
>DATA                                         435G   774G    23K none
>DATA/Backup                                  432G   774G   432G /Backup
>DATA/LXMatterMost                            408M   774G   347M none
>DATA/Zones2                                 2,13G   774G    23K /Zones2
>DATA/Zones2/NGINX                            959M   774G    24K 
>/Zones2/NGINX
>DATA/Zones2/NGINX/ROOT                       959M   774G    23K legacy
>DATA/Zones2/NGINX/ROOT/export                 71K   774G    23K /export
>DATA/Zones2/NGINX/ROOT/export/home            48K   774G    23K
>/export/home
>DATA/Zones2/NGINX/ROOT/export/home/witte      25K   774G    25K 
>/export/home/witte
>DATA/Zones2/NGINX/ROOT/zbe                   959M   774G   959M legacy
>DATA/Zones2/Percona                         1,19G   774G    24K 
>/Zones2/Percona
>DATA/Zones2/Percona/ROOT                    1,19G   774G    23K legacy
>DATA/Zones2/Percona/ROOT/export               71K   774G    23K /export
>DATA/Zones2/Percona/ROOT/export/home          48K   774G    23K
>/export/home
>DATA/Zones2/Percona/ROOT/export/home/witte    25K   774G    25K 
>/export/home/witte
>DATA/Zones2/Percona/ROOT/zbe                1,19G   774G  1,19G legacy
>
>root at OmniOS:/root# zoneadm list -civ
>   ID NAME             STATUS     PATH BRAND    IP
>    0 global           running    / ipkg     shared
>    - DNS              installed  /Zones/DNS lipkg    excl
>    - LXDebian8        installed  /Zones/LXDebian8 lx       excl
>    - LXMatterMost     installed  /LXZones/LXMatterMost lx       excl
>    - Percona          installed  /Zones2/Percona lipkg    excl
>    - NGINX            installed  /Zones2/NGINX lipkg    excl
>    - Test             configured /Zones2/Test ipkg     shared
>
>root at OmniOS:/root# zoneadm -z Test install
>WARNING: zone LXMatterMost is installed, but its zonepath 
>/LXZones/LXMatterMost does not exist.
>Sanity Check: Looking for 'entire' incorporation.
>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.
>root at OmniOS:/root#
>
>On this point I had to uninstall the LXMatterMost zone because I set
>the 
>mountpoint=none on the DATA pool and the LXMatterMost zone depend on
>the 
>mountpoint=/LXZones of the DATA pool.
>
>Then I also created a filesystem DATA/Zones2/Test
>
>
>root at OmniOS:/root# zfs create -o mountpoint=/Zones2/Test
>DATA/Zones2/Test
>root at OmniOS:/root# zfs list
>NAME                                         USED  AVAIL  REFER
>MOUNTPOINT
>DATA 435G   774G    23K  none
>DATA/Backup                                  432G   774G   432G /Backup
>DATA/Zones2                                 2,13G   774G    23K /Zones2
>DATA/Zones2/NGINX                            959M   774G    24K 
>/Zones2/NGINX
>DATA/Zones2/NGINX/ROOT                       959M   774G    23K legacy
>DATA/Zones2/NGINX/ROOT/export                 71K   774G    23K /export
>DATA/Zones2/NGINX/ROOT/export/home            48K   774G    23K
>/export/home
>DATA/Zones2/NGINX/ROOT/export/home/witte      25K   774G    25K 
>/export/home/witte
>DATA/Zones2/NGINX/ROOT/zbe                   959M   774G   959M legacy
>DATA/Zones2/Percona                         1,19G   774G    24K 
>/Zones2/Percona
>DATA/Zones2/Percona/ROOT                    1,19G   774G    23K legacy
>DATA/Zones2/Percona/ROOT/export               71K   774G    23K /export
>DATA/Zones2/Percona/ROOT/export/home          48K   774G    23K
>/export/home
>DATA/Zones2/Percona/ROOT/export/home/witte    25K   774G    25K 
>/export/home/witte
>DATA/Zones2/Percona/ROOT/zbe                1,19G   774G  1,19G legacy
>DATA/Zones2/Test 23K   774G    23K  /Zones2/Test
>
>
>And now it is allowed to install the zone :)
>
>
>root at OmniOS:/root# zoneadm -z Test install
>/Zones2/Test must not be group readable.
>/Zones2/Test must not be group executable.
>/Zones2/Test must not be world readable.
>/Zones2/Test must not be world executable.
>/Zones2/Test: changing permissions to 0700.
>Sanity Check: Looking for 'entire' incorporation.
>        Image: Preparing at /Zones2/Test/root.
>
>    Publisher: Using omnios (http://pkg.omniti.com/omnios/r151020/).
>        Cache: Using /var/pkg/publisher.
>   Installing: Packages (output follows)
>Packages to install: 388
>Mediators to change:   1
>  Services to change:   5
>
>DOWNLOAD                                PKGS         FILES    XFER 
>(MB)   SPEED
>Completed                            388/388   37406/37406 
>332.0/332.0    0B/s
>
>PHASE                                          ITEMS
>Installing new actions                   61025/61025
>Updating package state database                 Done
>Updating package cache                           0/0
>Updating image state                            Done
>Creating fast lookup database                   Done
>
>       Note: Man pages can be obtained by installing pkg:/system/manual
>  Postinstall: Copying SMF seed repository ... done.
>         Done: Installation completed in 93,895 seconds.
>
>  Next Steps: Boot the zone, then log into the zone console (zlogin -C)
>               to complete the configuration process
>
>root at OmniOS:/root# zoneadm -z Test boot; zlogin -C Test
>[Connected to zone 'Test' console]
>Loading smf(5) service descriptions: 113/113
>Hostname: Test
>
>Test console login:
>
>root at OmniOS:/root# zfs list
>NAME                                         USED  AVAIL  REFER
>MOUNTPOINT
>DATA 435G   774G    23K  none
>DATA/Backup                                  433G   774G   433G /Backup
>DATA/Zones2                                 2,66G   774G    24K /Zones2
>DATA/Zones2/NGINX                            959M   774G    24K 
>/Zones2/NGINX
>DATA/Zones2/NGINX/ROOT                       959M   774G    23K legacy
>DATA/Zones2/NGINX/ROOT/export                 71K   774G    23K /export
>DATA/Zones2/NGINX/ROOT/export/home            48K   774G    23K
>/export/home
>DATA/Zones2/NGINX/ROOT/export/home/witte      25K   774G    25K 
>/export/home/witte
>DATA/Zones2/NGINX/ROOT/zbe                   959M   774G   959M legacy
>DATA/Zones2/Percona                         1,19G   774G    24K 
>/Zones2/Percona
>DATA/Zones2/Percona/ROOT                    1,19G   774G    23K legacy
>DATA/Zones2/Percona/ROOT/export               71K   774G    23K /export
>DATA/Zones2/Percona/ROOT/export/home          48K   774G    23K
>/export/home
>DATA/Zones2/Percona/ROOT/export/home/witte    25K   774G    25K 
>/export/home/witte
>DATA/Zones2/Percona/ROOT/zbe                1,19G   774G  1,19G legacy
>DATA/Zones2/Test 540M   774G    23K  /Zones2/Test
>DATA/Zones2/Test/ROOT                        540M   774G    23K legacy
>DATA/Zones2/Test/ROOT/zbe                    540M   774G   540M legacy
>
>So that's why I ask the question :)
>
>In my opinion we miss some logic in the zoneadm, we don't need to set a
>
>parent mountpoint like i proof with above example.
>
>Maybe someone can have a look on the code it would be great to fix
>this, 
>if I had the knowledge how to fix it it should be great, but I'm 
>unfortunately not so smart and intelligent as you guy's  sorry :(
>
>I wish ;)
>
>
>Kind Regards,
>
>
>Dirk
>
>
>On 10-02-17 22:19, Jim Klimov wrote:
>> 9 февраля 2017 г. 18:09:04 CET, Dirk Willems <dirk.willems at exitas.be>
>пишет:
>>> Thanks Dan,
>>>
>>>
>>> I just was wondering about it, because in Solaris it's allowed we do
>it
>>>
>>> all the time and it's become a automatic behavior for us, but if we
>>> know
>>> it we can arrange it like you do.
>>>
>>>
>>> Thanks
>>>
>>>
>>> On 09-02-17 17:41, Dan McDonald wrote:
>>>>> On Feb 9, 2017, at 11:28 AM, Dirk Willems <dirk.willems at exitas.be>
>>> wrote:
>>>>> Hello OmniOS,
>>>>>
>>>>> Why isn't allowed to install a LX-Zone or Zone if the DATA pool
>>> doesn't have a mountpoint on the parent ?
>>>>>
>>>>> below example doesn't allow you to install a Zone or LX-Zone
>>>>>
>>>>> root at OmniOS:/root# zfs list
>>>>> NAME                           USED  AVAIL  REFER  MOUNTPOINT
>>>>> DATA                           432G   777G    23K  none
>>>>> DATA/Backup                    432G   777G   432G  /Backup
>>>>> DATA/LXZones                    23K   777G    23K  /LXZones
>>>>>
>>>>>
>>>>> below example does allow you to install a Zone or LX-Zone
>>>>>
>>>>> root at OmniOS:/root# zfs list
>>>>> NAME                           USED  AVAIL  REFER  MOUNTPOINT
>>>>> DATA                           433G   776G    23K  /LXZones
>>>>> DATA/Backup                    432G   776G   432G  /Backup
>>>>> DATA/LXMatterMost              229M   776G   228M
>>> /LXZones/LXMatterMost
>>>>>
>>>>> It's kind ignoring because i like to make separated filesystems
>for
>>> having a nice overview :)
>>>> All zones (not just LX) need to be a subdirectory of a higher-level
>>> ZFS filesystem.  This is so zoneadm(1M) can create the zone root.
>>>> bloody(~)[0]% zfs list | grep zones | grep -v zbe
>>>> data/zones                              3.90G   509G    23K  /zones
>>>> data/zones/lipkg0                       3.14G   509G    24K
>>> /zones/lipkg0
>>>> data/zones/lipkg0/ROOT                  3.14G   509G    23K  legacy
>>>> data/zones/lx0                           465M   509G   465M
>>> /zones/lx0
>>>> data/zones/lx1                           315M   509G   239M
>>> /zones/lx1
>>>> bloody(~)[0]%
>>>>
>>>> My bloody box has zones name per their brand, so you can see what I
>>> mean.
>>>> Dan
>>>>
>> Just in case, do you not mistake zone roots here with delegated
>datasets (e.g. for data or local progs, but with zfs structure managed
>from inside the zone)? This is indeed usable even from different pools
>in solaris 10 up to openindiana at least.
>> --
>> Typos courtesy of K-9 Mail on my Samsung Android

Well, seems there is some mix of apples and oranges here - but you don't sen mountpoint of a pool (or rather its root dataset), while you do have a mountpoint of a sub-dataset dedicated to zones (zones2 and testzones) so the system can find it. Would be more interesting if these did not exist with such names and/or mountpoints before zoneadm call. Otherwise, if there is indeed an error or point of improvement, it is likely in brand scripts and should be easily fixable.

Jim
--
Typos courtesy of K-9 Mail on my Samsung Android


More information about the OmniOS-discuss mailing list