|
zones and ZFS file systems
Starting off with a freshly created pool, let's see the steps to create a zone based on a ZFS file system. Here we see our new pool with only one file system:
fsh-sole# zfs list
NAME USED AVAIL REFER MOUNTPOINT
kwame 160K 7.63G 18K /kwame
fsh-sole#
Now, we'll create and configure a local zone "ejkzone". Note, we set the zonepath within the path of the ZFS pool:
fsh-sole# zonecfg -z ejkzone
ejkzone: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:ejkzone> create
zonecfg:ejkzone> set zonepath=/kwame/kilpatrick
zonecfg:ejkzone> commit
zonecfg:ejkzone> exit
fsh-sole#
Now we install zone "ejkzone" and notice that the installation tells us that it will automatically create a ZFS file system for us:
fsh-sole# zoneadm -z ejkzone install
A ZFS file system has been created for this zone.
Preparing to install zone .
Creating list of files to copy from the global zone.
Copying <10116> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1198> packages on the zone.
Initialized <1198> packages on zone.
Zone is initialized.
The file contains a log of the zone installation.
fsh-sole#
Now we can boot the zone to use it, and can also see that the file system kwame/kilpatrick was automatically created for us:
fsh-sole# zoneadm -z ejkzone boot
fsh-sole# zoneadm list
global
ejkzone
fsh-sole# zoneadm -z ejkzone list -v
ID NAME STATUS PATH BRAND IP
3 ejkzone running /kwame/kilpatrick native shared
fsh-sole# zfs list
NAME USED AVAIL REFER MOUNTPOINT
kwame 517M 7.12G 20K /kwame
kwame/kilpatrick 517M 7.12G 517M /kwame/kilpatrick
fsh-sole#
Now if we login into the zone via 'zlogin -C ejkzone', we notice that the local zone cannot see any ZFS file systems (only the global zone can):
ejkzone# zfs list
no datasets available
ejkzone#
If we then want to create and delegate some ZFS file systems to the local zone "ejkzone" so that "ejkzone" has administrative control over the file systems, we can do that. From the global zone, we do:
fsh-sole# zfs create kwame/textme
fsh-sole# zonecfg -z ejkzone
zonecfg:ejkzone> add dataset
zonecfg:ejkzone:dataset> set name=kwame/textme
zonecfg:ejkzone:dataset> end
zonecfg:ejkzone> exit
fsh-sole#
Now, we can get the "zoned" property of the newly created file system:
fsh-sole# zfs get zoned kwame/textme
NAME PROPERTY VALUE SOURCE
kwame/textme zoned off default
fsh-sole#
Huh, it says "off". But we delegated it to a local zone. Why is that? Well in order for this to take affect, we have to reboot the local zone. After doing that, we can see from the global zone:
fsh-sole# zfs get zoned kwame/textme
NAME PROPERTY VALUE SOURCE
kwame/textme zoned on local
fsh-sole#
And from the local zone "ejkzone":
ejkzone# zfs list
NAME USED AVAIL REFER MOUNTPOINT
kwame 595M 7.05G 20K /kwame
kwame/textme 18K 7.05G 18K /kwame/textme
ejkzone#
And now we have administrative control over the file system via the local zone:
ejkzone# zfs get copies kwame/textme
NAME PROPERTY VALUE SOURCE
kwame/textme copies 1 default
ejkzone# zfs set copies=2 kwame/textme
ejkzone# zfs get copies kwame/textme
NAME PROPERTY VALUE SOURCE
kwame/textme copies 2 local
ejkzone#
Double checking on the global zone:
fsh-sole# zfs get copies kwame/textme
NAME PROPERTY VALUE SOURCE
kwame/textme copies 2 local
fsh-sole# zpool history -l
History for 'kwame':
2008-04-23.16:01:17 zpool create -f kwame c1d0s3 [user root on fsh-sole:global]
2008-04-23.16:29:42 zfs create kwame/textme [user root on fsh-sole:global]
2008-04-23.16:36:45 zfs set copies=2 kwame/textme [user root on fsh-sole:ejkzone]
fsh-sole#
Happy zoning
(2008-04-23 15:43:25.0/2008-04-23 15:43:25.0)
Permalink
Trackback: http://blogs.sun.com/erickustarz/en_US/entry/creating_a_zone_based_on
|
You forgot to mention the part where you're now screwed because you can't LU Zones on ZFS :-(
Or has that changed recently?
Posted by stevel on April 23, 2008 at 06:18 PM PDT #
<p>
The changes to make ZFS root for real have gone back. To take full advantage of those changes (including LU zones on ZFS) are for install, and those changes are done and are just going through final process checks before being integrated.
</p>
Posted by eric kustarz on April 23, 2008 at 06:41 PM PDT #
awesome... looking forward to it!
Posted by stevel on April 24, 2008 at 06:34 AM PDT #
The reboot for the "zoned" property seems very annoying. Is there work in progress or planned to make zoned datasets work without rebooting?
Posted by jauricchio on April 24, 2008 at 10:27 AM PDT #
The requirement to reboot is something you'd have to ask the zones people about:
http://www.opensolaris.org/os/community/zones/
Posted by eric kustarz on April 24, 2008 at 11:17 AM PDT #