zPET - IBM Z and z/OS Platform Evaluation and Test - Group home

zFS Version 1.5 Aggregate and Extended (v5) Directory Experience Part1

  

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