From z/OS 2.2 there is a performance advantage in running the ZFS file system as part of OMVS, rather than its own address space. The IBM documentation says When running zFS in the OMVS address space, each file system vnode operation (such as creating a directory entry, removing a directory entry, or reading from a file) will have better overall performance. Each operation will take the same amount of time while inside zFS itself. The performance benefit occurs because z/OS UNIX can call zFS for each operation in a more efficient manner. This will be relevant when you application is doing a lot of file IO – for example using a web server.
Before I started
The IBM doc says You can determine if zFS is in its own address space by issuing D OMVS,PFS. If the output shows an ASNAME value, zFS is running as a colony address space.
OMVS 0010 ACTIVE OMVS=(00,01,BP,IZ,RZ,BB) PFS CONFIGURATION INFORMATION PFS TYPE ENTRY ASNAME DESC ST START/EXIT TIME ... ZFS IOEFSCM ZFS LOCAL A 2021/02/17 17.35.06
The steps I took…
- I added KERNELSTACKS(ABOVE) to USER.Z24A.PARMLIB(BPXPRM00).
- Being ultra cautious I re-ipled.
- The documentation talks about putting IOEZPRM DD in OMVS, then goes on to say As the preferred alternative to the IOEZPRM DDNAME specification, delete the IOEZPRM DDNAME and use the IOEPRMxx parmlib member. So I did not change the OMVS proc. When I reipled it worked and I got the message IOEZ00374I No IOEZPRM DD specified in OMVS proc. Parmlib search being used.
- I edited USER.Z24A.PARMLIB(BPXPRM00) and removed the ASNAME in FILESYSTYPE TYPE(ZFS) ENTRYPOINT(IOEFSCM)
ASNAME(ZFS)Well I actually made a copy of the original line and put it between /* and */, then deleted the text.
- I reipled.
The D OMVS,PFS command now gives N/A instead of the Address Space Name
OMVS 0010 ACTIVE OMVS=(00,01,BP,IZ,RZ,BB) PFS CONFIGURATION INFORMATION PFS TYPE ENTRY ASNAME DESC ST START/EXIT TIME ... ZFS IOEFSCM N/A LOCAL A 2021/02/17 17.55.47
The hardest part was making sure I had an IPLable SARES1 in case I got it wrong!
I used to issue commands like f zfs,query,all. Now that the ZFS address space does not exist, you need to use f omvs,pfs=zfs,query,all.