Convert a Mounted zFS Version 1.4 Aggregate to a zFS Version 1.5 Aggregate Using the –converttov5 Configuration Option
We determined that the OMVSSPN.VER15.ZFS file system was a candidate for extended (v5) directories.
Using the method of having the zFS configuration –converttov5 option ON to update the attributes of a mounted file system, we gave the file system the converttov5 parameter. We ensured that no other file systems were mounted or moved to this system while we were performing this activity.
On the USS-owning system, display the –converttov5 configuration option. Then set it to on.
$ zfsadm configquery -converttov5
IOEZ00317I The value for configuration option -converttov5 is OFF.
$ zfsadm config -converttov5 on
IOEZ00300I Successfully set -converttov5 to on
$ zfsadm configquery -converttov5
IOEZ00317I The value for configuration option -converttov5 is ON.
Next, on the USS-owning system remount samemode the file system.
UNMOUNT FILESYSTEM('OMVSSPN.VER15.ZFS') REMOUNT(SAMEMODE)
Here are sample zFS messages you may see.
IOEZ00048I Detaching aggregate OMVSSPN.VER15.ZFS
IOEZ00044I Aggregate OMVSSPN.VER15.ZFS attached successfully.
The file system now has the converttov5 attribute and was converted to a version 1.5 aggregate. As the directories are accessed, they will be converted to extended (v5) directories. New directories will be extended (v5) directories. You can see the attribute assigned via the zfsadm aggrinfo command.
$ zfsadm aggrinfo -aggregate OMVSSPN.VER15.ZFS -long
OMVSSPN.VER15.ZFS (R/W COMP): 26600551 K free out of total 59261760
version 1.5
auditfid E2E2F0F0 F0F6AB7C 0020
sysplex-aware, converttov5
3325068 free 8k blocks; 7 free 1K fragments
32800 K log file; 80 K filesystem table
8192 K bitmap file
Since, we did not want to have other mounted, remounted, or moved file systems to have this parameter, we turned –converttov5 off on this system.
$ zfsadm config -converttov5 off
IOEZ00300I Successfully set -converttov5 to off
$ zfsadm configquery -converttov5
IOEZ00317I The value for configuration option -converttov5 is OFF.
Create a zFS Version 1.5 Aggregate
A version 1.5 aggregate can be created on z/OS V2R1 by formatting a VSAM LDS as version 5 using the zFS IOEFSUTL format batch utility or the z/OS UNIX zfsadm format command. Version 1.5 aggregates are not formatted by default. They must be explicitly requested with the -version5 option. You can change the default version that is formatted by setting the format_aggrversion configuration option to 5.
Note: When the -version4 or -version5 parameters are not provided, the zFS format utilities IOEAGFMT and IOEFSUTL request the value of the format_aggrversion configuration option from the zFS kernel to determine the default aggregate version for the format. If the zFS PFS is down they will fail.
This configuration option (format_aggrversion) also affects both of the following:
- The zfsadm format command when neither the -version4 nor the -version5 option is specified, and
- Users of the Format Aggregate API such as the BPXWH2Z tool, the z/OS UNIX TSO/E ISHELL command, or the z/OS UNIX automount shell command with the allocany or allocuser keyword.
Note: The IOEFSUTL batch program only formats with new auditfids. This means that new zFS aggregates will have a unique auditfid by default.
Note: The default for the zFS IOEPRMxx option, CONVERT_AUDITFID, is being changed from OFF to ON. This means that any existing zFS aggregates that have the non-unique auditfid will be converted to have a unique auditfid on the next read-write mount.
Note: The IOEAGFMT batch program and the zfsadm format command have changed the default to -newauditfid.
The zfsadm aggrinfo command with the –long option can be used to display the aggregate version.
Below are the results of creating a zFS version 1.5 aggregate in our environment using the following techniques after all systems were migrated to z/OS V2R1:
- zFS IOEFSUTL format batch utility.
- The z/OS UNIX zfsadm format command.
- Change the default version that is formatted by setting the format_aggrversion configuration option to 5.
Create a zFS Version 1.5 Aggregate Using IOEFSUTL
To create a zFS Version 1.5 aggregate using the zFS IOEFSUTL format batch utility, we first defined the VSAM LDS using these attributes:
DEFINE CLUSTER (NAME(OMVSSPT.V15.ZFS) -
LINEAR CYL(1000 100) SHAREOPTIONS(3) -
STORCLAS(SMSOE) -
DATACLAS(SMSOE) -
MGMTCLAS(SMSOE))
We then formatted the aggregate as a version 1.5 with the following JCL definitions:
...
//CREATE EXEC PGM=IOEFSUTL,REGION=0M,
// PARM=('format -aggregate OMVSSPT.V15.ZFS -version5')
...
This is an example of the format results:
IOEZ00559I zFS IOEFSUTL: Initializing z/OS zFS
Version 02.01.00 Service Level OA41870 - HZFS410.
Created on Mon Jun 3 12:34:28 EDT 2013.
Address space asid x46
IOEZ00760I No IOEZPRM DD specified. Parmlib search being used.
IOEZ00004I Formatting to 8K block number 90000 for primary extent of OMVSSPT.V15.ZFS.
IOEZ00005I Primary extent loaded successfully for OMVSSPT.V15.ZFS.
IOEZ00077I HFS-compatibility aggregate OMVSSPT.V15.ZFS has been successfully created.
We then TSO mounted the zFS Version 1.5 (/zfspetmounts/zfsv15) off of a zFS Version 1.4 mounted file system (/zfspetmounts). Note that you can not mount a version 1.5 aggregate on a prior to z/OS V2R1 system. You will receive reason codes like EF096A32, which describe the condition where a new version aggregate cannot be processed on this system.
MOUNT FILESYSTEM('OMVSSPT.V15.ZFS') TYPE(ZFS)
MODE(RDWR) MOUNTPOINT('/zfspetmounts/zfsv15')
Next we used the new z/OS V2R1 zFS zfsadm fileinfo command to display the directory versions.
The version 1.4 file system mountpoint directory showed as a v4 directory.
$ zfsadm fileinfo -path /zfspetmounts
path: /zfspetmounts
*** global data ***
fid 3196,8947036 anode 1983,7320
length 8192 format BLOCKED
1K blocks 8 permissions 777
uid,gid 0,0 access acl 0,0
dir model acl 0,0 file model acl 0,0
user audit F,F,F auditor audit N,N,N
set sticky,uid,gid 0,0,0 seclabel none
object type DIR object linkcount 8
object genvalue 0x00000000 dir version 4
dir name count na dir data version 6
dir tree status na dir conversion na
file format bits na,na,na file charset id na
file cver na charspec major,minor na
direct blocks 0x00003A25
indirect blocks none
mtime Jun 25 13:38:19 2013 atime Jun 25 13:39:25 2013
ctime Jun 25 13:38:19 2013 create time May 21 13:35:10 2009
reftime none
The version 1.5 file system mountpoint directory showed as an extended (v5) directory.
$ zfsadm fileinfo -path /zfspetmounts/zfsv15
path: /zfs petm ount s/zf sv15
*** global data ***
fid 1, 1 anod e 49228,516
leng th 8192 form at BLOCKED
1K blocks 8 perm issi ons 755
uid, gid 0,0 access acl 0,0
dir model acl 0,0 file model acl 0,0
user audit F,F,F auditor audit N,N,N
set sticky,uid,gid 0,0,0 secl abel none
object type DIR object linkcount 2
object genvalue 0x00000000 dir version 5
dir name count 2 dir data version 0
dir tree status VALID dir conversion na
file format bits na,na,na file charset id na
file cver na charspec major,minor na
direct blocks 0x00 00B6 02
indirect blocks none
mtime Jun 25 12:58:58 2013 atime Jun 25 12:58:58 2013
ctime Jun 25 12:58:58 2013 create time Jun 25 12:58:58 2013
reftime none
Create a zFS Version 1.5 Aggregate Using zfsadm format
The following are the steps we took to create a version 1.5 aggregate using the z/OS UNIX zfsadm format command.
First, we allocated the aggregate using the zfsadm define command.
$ zfsadm define -aggr OMVSSPT.V15.ZFS -cyl 1000 100
IOEZ00248I VSAM linear dataset OMVSSPT.V15.ZFS successfully created.
Then we formatted the aggregate using the zfsadm format –version5 command.
$ zfsadm format -aggr OMVSSPT.V15.ZFS -version5
IOEZ00077I HFS-compatibility aggregate OMVSSPT.V15.ZFS has been successfully created
We then mounted the file system from the z/OS V2R1 system. Note that the local mount will fail on lower than z/OS V2R1 releases.
$ mount -f OMVSSPT.V15.ZFS /zfspetmounts/zfsv15
Using the zfsadm aggrinfo command with the –long parameter, we see that it is a version 1.5 aggregate.
$ zfsadm aggrinfo -aggr OMVSSPT.V15.ZFS -long
OMVSSPT.V15.ZFS (R/W COMP): 718311 K free out of total 725760
version 1.5
auditfid E2E2F0F0 F2F6E80B 0030
sysplex-aware
89788 free 8k blocks; 7 free 1K fragments
7264 K log file; 48 K filesystem table
112 K bitmap file
If you mounted the file system as sysplex-aware (for example: RWSHARE or read-only) and there are no lower releases in the sysplex, and you have connectivity, the file system displays will show as not being a client (CLIENT=N). Also, any mount parameters provided with the mount will display. Here is a df command display.
$ df -vkP /zfspetmounts/zfsv15
Filesystem 1024-blocks Used Available Capacity Mounted on
OMVSSPT.V15.ZFS 725760 7449 718311 2% /zfspetmounts/zfsv15
ZFS, Read/Write, Device:3943, ACLS=Y
File System Owner : Z1 Automove=Y Client=N
Filetag : T=off codeset=0
Aggregate Name : OMVSSPT.V15.ZFS
We used the new z/OS V2R1 zfsadm fileinfo command to display the directory versions.
The version 1.4 file system mountpoint directory showed as a v4 directory.
$ zfsadm fileinfo -path /zfspetmounts
path: /zfspetmounts
*** global data ***
fid 3196,8947036 anode 1983,7320
length 8192 format BLOCKED
1K blocks 8 permissions 777
uid,gid 0,0 access acl 0,0
dir model acl 0,0 file model acl 0,0
user audit F,F,F auditor audit N,N,N
set sticky,uid,gid 0,0,0 seclabel none
object type DIR object linkcount 8
object genvalue 0x00000000 dir version 4
dir name count na dir data version 6
dir tree status na dir conversion na
file format bits na,na,na file charset id na
file cver na charspec major,minor na
direct blocks 0x00003A25
indirect blocks none
mtime Jun 25 13:38:19 2013 atime Jun 25 14:22:29 2013
ctime Jun 25 13:38:19 2013 create time May 21 13:35:10 2009
reftime none
The version 1.5 file system mountpoint directory showed as an extended (v5) directory.
$ zfsadm fileinfo -path /zfspetmounts/zfsv15
path: /zfspetmounts/zfsv15
*** global data ***
fid 1,1 anode 21496,516
length 8192 format BLOCKED
1K blocks 8 permissions 755
uid,gid 0,0 access acl 0,0
dir model acl 0,0 file model acl 0,0
user audit F,F,F auditor audit N,N,N
set sticky,uid,gid 0,0,0 seclabel none
object type DIR object linkcount 2
object genvalue 0x00000000 dir version 5
dir name count 2 dir data version 0
dir tree status VALID dir conversion na
file format bits na,na,na file charset id na
file cver na charspec major,minor na
direct blocks 0x000001EA
indirect blocks none
mtime Jun 25 14:20:32 2013 atime Jun 25 14:20:32 2013
ctime Jun 25 14:20:32 2013 create time Jun 25 14:20:32 2013
reftime none
Create a zFS Version 1.5 Aggregate Using format_aggrversion Configuration option
The following are the steps we took to create a Version 1.5 aggregate using the default version that is formatted by setting the format_aggrversion configuration option to 5.
First, we queried the format_aggrversion setting and saw it is set to the default version 4.
$ zfsadm configquery -format_aggrversion
IOEZ00317I The value for configuration option -format_aggrversion is 4.
We then dynamically changed the format_aggrversion setting to 5.
$ zfsadm config -format_aggrversion 5
IOEZ00300I Successfully set -format_aggrversion to 5
We queried the format_aggrversion setting after and saw it is now set to the version 5.
$ zfsadm configquery -format_aggrversion
IOEZ00317I The value for configuration option -format_aggrversion is 5.
Then, we defined the aggregate.
$ zfsadm define -aggr OMVSSPT.V15.ZFS -cyl 1000 100
IOEZ00248I VSAM linear dataset OMVSSPT.V15.ZFS successfully created.
We used the zfsadm format command to format the aggregate and it was formatted as a version 1.5 aggregate.
$ zfsadm format -aggr OMVSSPT.V15.ZFS
IOEZ00077I HFS-compatibility aggregate OMVSSPT.V15.ZFS has been successfully created
The aggregate was then mounted on /zfspetmounts/zfsv15.
$ mount -f OMVSSPT.V15.ZFS /zfspetmounts/zfsv15
Using the zfsadm fileinfo command we see that the version 1.5 file system mountpoint directory showed as an extended (v5) directory.
$ zfsadm fileinfo -path /zfspetmounts/zfsv15
path: /zfspetmounts/zfsv15
*** global data ***
fid 1,1 anode 14825,516
length 8192 format BLOCKED
1K blocks 8 permissions 755
uid,gid 0,0 access acl 0,0
dir model acl 0,0 file model acl 0,0
user audit F,F,F auditor audit N,N,N
set sticky,uid,gid 0,0,0 seclabel none
object type DIR object linkcount 2
object genvalue 0x00000000 dir version 5
dir name count 2 dir data version 0
dir tree status VALID dir conversion na
file format bits na,na,na file charset id na
file cver na charspec major,minor na
direct blocks 0x00012355
indirect blocks none
mtime Jun 25 14:43:23 2013 atime Jun 25 14:43:23 2013
ctime Jun 25 14:43:23 2013 create time Jun 25 14:43:23 2013
reftime none
Author: Alfred Lease