There are 2 ways zfs filesystem can be assigned to a non-global zone.
Method 1:
1. Create a zfs filesystem on global zone
zfs create orapool/app
Where orapool - is the zpool name and app is the zfs filesystem name
2. Export the above the zfs filesystem to non-global zone called appzone
zonecfg -z appzone
[root@server1]# zonecfg -z appzone
zonecfg:appzone> add fs
zonecfg:appzone:fs> set type=zfs
zonecfg:appzone:fs> set special=orapool/app
zonecfg:appzone:fs> set dir=/zonefs
zonecfg:appzone:fs> end
zonecfg:appzone> commit
zonecfg:appzone> exit
In the above method, non-global zone administrator does not have any control over the exported the filesystem, means can not set any attribute for the filesystem
Method 2:
In this method , the non-global zone administrator has complete control over the filesystem
[root@server1]# zonecfg -z appzone
zonecfg:appzone> add dataset
zonecfg:appzone:dataset> set name=orapool/app
zonecfg:appzone:dataset> end
zonecfg:appzone> commit
zonecfg:appzone> exit
zonecfg:appzone> add fs
zonecfg:appzone:fs> set type=zfs
zonecfg:appzone:fs> set special=orapool/app
zonecfg:appzone:fs> set dir=/zonefs
zonecfg:appzone:fs> end
zonecfg:appzone> commit
zonecfg:appzone> exit
In the above method, non-global zone administrator does not have any control over the exported the filesystem, means can not set any attribute for the filesystem
Method 2:
In this method , the non-global zone administrator has complete control over the filesystem
[root@server1]# zonecfg -z appzone
zonecfg:appzone> add dataset
zonecfg:appzone:dataset> set name=orapool/app
zonecfg:appzone:dataset> end
zonecfg:appzone> commit
zonecfg:appzone> exit
Once its exported, you can login to non-global zone and go ahead with the creating any no of filesystem on the exported the dataset
For example on orapoo/app you need orapool/app/test , orapool/app/test1, orapool/app/tes3
Use the following command to create the above filesystem on non-global zone
#zfs create orapool/app/test
#zfs create orapool/app/test1
#zfs create orapool/app/test2
So second approach is always best when you need to create multiple mountpoints on a dataset on non-global zone.
Other info:
Realtime issue faced:
I came across this issue when i was trying to set the mountpoint properties of previously exported dataset from global zone. I was getting error message as "Dataset is busy , its already exported"
Reason:
When you export a dataset from a global zone, it sets dataset's zone attribute, which does not get turned off even if you remove the dataset from zone configuration using zonefcg command. You can view all the attributes of zone using
#zfs get orapool/app
Solution:
Turn of the zone attribute
#zfs set zone=off orapool/app
No comments:
Post a Comment